Project

General

Profile

Xbox One DVB-T/T2/C tuner

Added by Stephen Neal almost 5 years ago

Hi all

This looks like it could be very good value if Open Source drivers appear for it : http://www.xbox.com/en-GB/xbox-one/accessories/digital-tv-tuner#fbid=1ui_UaaGUzy GBP£25/EUR€30 for a DVB-T/T2/C USB tuner for use with the Microsoft Xbox One (but like the Sony Play TV presumably usable on any PC platform if Linux drivers appear)


Replies (378)

RE: Xbox One DVB-T/T2/C tuner - Added by Anthony Thomas about 2 years ago

It's mainly because of the space available where my cable and satellite connections come in to the house.

I have 4xDVB-S2 satip server which fits in a small cupboard and I obviously need a TVH server to utilise that. The TVH server is elsewhere in the house.

After having kernel issues in the past with various tuner cards I like to keep things separate. The TVH server is also a Web and file server, I prefer to keep that stable and available. I utilised an old "nettop" to essentially create a cheap 4xDVB-C satip server.

RE: Xbox One DVB-T/T2/C tuner - Added by Christian Cooperhill about 2 years ago

Sorry to be dumb, but after messing around with this on my Ubuntu 16.04.2 server yesterday, I still couldn't get it to show in DVB adapters in TVHeadend.

git clone git://linuxtv.org/media_build.git
git clone --depth=1 https://github.com/trsqr/media_tree.git -b xboxone ./media
cd media_build
make dir DIR=../media
make distclean
make

Following these instructions, I then run sudo make install, which seems to install all the drivers.
Then when I modprobe tda18250, that takes just fine.
When I modprobe dvb-usb-dib0700, the terminal hangs and seems to do nothing?

Am I missing something? Granted, it could be something simple as I'm not as versed in Linux as everyone here. Any help appreciated.

RE: Xbox One DVB-T/T2/C tuner - Added by Olli Salonen about 2 years ago

Christian, this might be a silly question, but did you try to reboot? After make you could do a "sudo make rmmod" to remove the old DVB modules that might be loaded currently and only then try to add the new ones. Alternatively, you could just reboot the PC after "make install" to get rid of whatever was loaded....

If it still hangs, try modprobing the dib0700 with additional parameter "modprobe dvb-usb-dib0700 debug=9" and have a look at /var/log/kern.log (even after a reboot) to see where does it get stuck...

RE: Xbox One DVB-T/T2/C tuner - Added by Christian Cooperhill about 2 years ago

D'oh, I didn't try a reboot, I'm going to be kicking myself if that's the solution.
Thanks for the fast response, I'll give it a try when I get home tonight.

RE: Xbox One DVB-T/T2/C tuner - Added by Anthony Thomas about 2 years ago

To echo what Olli has said, you can do it without rebooting but rebooting is the cleanest option.

RE: Xbox One DVB-T/T2/C tuner - Added by Andras Farago about 2 years ago

Unfortunately I have the same issues with the "original" driver, but I will try to dump the registers under raspbian.

Can you implement "FUNCTION: tmbslTDA18250A_GetPowerLevel" in your driver?

Unfortunately, I don't know anyone who has an USB sniffer, and as I can see the USB sniffers are quite expensive to buy one just for fun :)

RE: Xbox One DVB-T/T2/C tuner - Added by C vH about 2 years ago

I made an LibreELEC image for the RPi 2/3 with that driver, looks working.
If anyone wanne try feel free http://cvh.libreelec.tv/Test/xbox/.

RE: Xbox One DVB-T/T2/C tuner - Added by Olli Salonen about 2 years ago

Thanks CvH, I was planning to, but now I don't have to. Will you compile it for x86 as well please? :)

Andras, ok, there's not much we can do then, except start to guess which registers to change but that's a neverending task. I'll do that power level thing a bit later, the next couple of weeks I'm very little in front of my PC...

RE: Xbox One DVB-T/T2/C tuner - Added by C vH about 2 years ago

yes generic compile is running but takes a while - btw didn't worked to backport the driver to 4.9 (see Slack)

RE: Xbox One DVB-T/T2/C tuner - Added by Josu Lazkano about 2 years ago

Hello,

I am trying to compile the driver in a Raspberry I have this error:

[email protected]:~/media_build $ make dir DIR=../media
make -C linux/ dir DIR="../../media" 
make[1]: Entering directory '/home/pi/media_build/linux'
rm -rf drivers firmware include sound .patches_applied .linked_dir .git_log.md5 git_log kernel_version.h
/bin/sh: 1: lsdiff: not found
Makefile:128: recipe for target 'dir' failed
make[1]: *** [dir] Error 127
make[1]: Leaving directory '/home/pi/media_build/linux'
Makefile:32: recipe for target 'dir' failed
make: *** [dir] Error 2

Am I missing something?

Kind regards.

RE: Xbox One DVB-T/T2/C tuner - Added by Stephen Neal about 2 years ago

As a relative novice at this, but who has got it working on a Pi3, it looks like you don't have lsdiff installed - which is a dependency for compilation?

Have you installed all the packages you need for building media_build - they are detailed here https://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

It's probably patch or patchutils you have missing?

RE: Xbox One DVB-T/T2/C tuner - Added by Mark Clarkstone about 2 years ago

@olli

Many thanks for your work on getting this tuner working (on Linux). I'm happy to report - after creating my own BananaPi Armbian image & including your git commits (as patches) to the build process - that the tuner from my initial testing with w-scan, works great on DVB-T!

I did have some minor issues, firmware failing to load, which was resolved by increasing the coherent_pool to 1M..

dmesg is here if interested http://termbin.com/orcc


Have both tuners now working fine, although tvh crashed for some unknown reason, installed corekeeper so I can debug it if it happens again.

RE: Xbox One DVB-T/T2/C tuner - Added by Ian P. about 2 years ago

Hi all,

Thanks for everyone's work getting the drivers done, it mostly works for me on DVB-T and T2.

However, out of three available T2 muxes (UK Crystal Palace) I can only scan one of them. The other two give the following output:

2017-08-03 22:14:21.191 subscription: 0044: "scan" subscribing to mux "586MHz", weight: 6, adapter: "Panasonic MN88472 #0 : DVB-T #0", network: "Freeview", service: "Raw PID Subscription" 
2017-08-03 22:14:22.731 linuxdvb: Panasonic MN88472 #0 : DVB-T #0 - poll TIMEOUT
2017-08-03 22:14:26.191 mpegts: 586MHz in Freeview - scan no data, failed
2017-08-03 22:14:26.192 subscription: 0044: "scan" unsubscribing

and

2017-08-03 22:14:04.152 subscription: 003E: "scan" subscribing to mux "570MHz", weight: 6, adapter: "Panasonic MN88472 #0 : DVB-T #0", network: "Freeview", service: "Raw PID Subscription" 
2017-08-03 22:14:05.769 linuxdvb: Panasonic MN88472 #0 : DVB-T #0 - poll TIMEOUT
2017-08-03 22:14:09.151 mpegts: 570MHz in Freeview - scan no data, failed
2017-08-03 22:14:09.154 subscription: 003E: "scan" unsubscribing

These are the only two muxes that won't scan, and they're the only two that show the "poll TIMEOUT" error. The settings are identical for each of the three T2 muxes.

Does anyone (Olli maybe) have suggestions on how to debug it?

Thanks again!

ian

[EDIT: I see what it is, the driver gives that poll TIMEOUT message when there is no signal. My signal is weak so sometimes the tuning fails.]

RE: Xbox One DVB-T/T2/C tuner - Added by marco raap about 2 years ago

Hello,

@ C vH I downloaded your Image and installed it successfully. BUT. in TVHeadend I didn't find any muxes. Always Failure.

  792.068238] usb 1-1.3: new high-speed USB device number 11 using dwc_otg
[  792.159119] usb 1-1.3: New USB device found, idVendor=045e, idProduct=02d5
[  792.159134] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  792.159142] usb 1-1.3: Product: Xbox USB Tuner
[  792.159149] usb 1-1.3: Manufacturer: Microsoft Corp.
[  792.159156] usb 1-1.3: SerialNumber: 000684150615
[  792.160249] dvb-usb: found a 'Microsoft Xbox One Digital TV Tuner' in cold state, will try to load a firmware
[  792.160462] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
[  792.243301] dib0700: firmware started successfully.
[  792.755003] dvb-usb: found a 'Microsoft Xbox One Digital TV Tuner' in warm state.
[  792.755327] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[  792.755429] dvbdev: DVB: registering new adapter (Microsoft Xbox One Digital TV Tuner)
[  792.942578] mn88472 3-0018: Panasonic MN88472 successfully identified
[  792.946651] tda18250 3-0060: NXP TDA18250BHN/M successfully identified
[  792.949081] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Panasonic MN88472)...
[  792.949243] dvb-usb: Microsoft Xbox One Digital TV Tuner successfully initialized and connected.
[  792.963740] mn88472 3-0018: downloading firmware from file 'dvb-demod-mn88472-02.fw'
[  793.055734] usb 1-1.3: DVB: adapter 0 frontend 0 frequency limits undefined - fix the driver
[  793.055767] usb 1-1.3: DVB: adapter 0 frontend 0 frequency limits undefined - fix the driver
LibreELEC:~ # 

this is what I get. so what can I do? I´m not capable of compile myself or such things.

Thank You for the really great Work.

RE: Xbox One DVB-T/T2/C tuner - Added by C vH about 2 years ago

@marcoraap
thx for trying, I got similar feedback from other sides so something is fishy :/
I try to build Ollies version to rule out some mistake at my patch.

RE: Xbox One DVB-T/T2/C tuner - Added by Mark Clarkstone about 2 years ago

Ian P. wrote:

Hi all,

Thanks for everyone's work getting the drivers done, it mostly works for me on DVB-T and T2.

However, out of three available T2 muxes (UK Crystal Palace) I can only scan one of them. The other two give the following output:

[...]

and

[...]

These are the only two muxes that won't scan, and they're the only two that show the "poll TIMEOUT" error. The settings are identical for each of the three T2 muxes.

Does anyone (Olli maybe) have suggestions on how to debug it?

Thanks again!

ian

[EDIT: I see what it is, the driver gives that poll TIMEOUT message when there is no signal. My signal is weak so sometimes the tuning fails.]

What mux info are you entering? Avoid using AUTO if you can, I got away with setting the freq, and bandwidth to 8MHz

RE: Xbox One DVB-T/T2/C tuner - Added by Walter av about 2 years ago

Christian Cooperhill wrote:

D'oh, I didn't try a reboot, I'm going to be kicking myself if that's the solution.
Thanks for the fast response, I'll give it a try when I get home tonight.

You stated you are running ubuntu 16.04.2, which comes with the linux kernel 4.8(if installed directly from 16.04.2 install media) instead of upgrading from 16.04 or 16.04.1 (both uses 4.4 kernel).

I was only able to compile and load this xbox tuner driver when using a newer linux kernel version 4.10.x which is default for ubuntu 16.04.3.

If you are still running 16.04.2 with kernel 4.8 please try to install the 4.10 kernel with the following command:

uname -a #check which kernel you are running
sudo apt-get install linux-generic-hwe-16.04-edge linux-headers-generic-hwe-16.04-edge #installs 4.10 kernel
#!!!
#maybe you need to install without the '-edge' part since 16.04.3 came out today and maybe edge installs 4.12.x

Than clean up the older compile with forced installed drivers for your current older kernel:

cd media_build
sudo make rminstall
make distclean
sudo apt-get install --reinstall linux-image-`uname -r`

Than reboot to your newer kernel, and verify its there:

uname -a

Than repeat the xbox compiling steps to install, you can continue from "make distclean" if you haven't altered anything in the media_build directory.

cd media_build
make distclean
make
sudo make install
#reboot wasn't necessary in my case

RE: Xbox One DVB-T/T2/C tuner - Added by Walter av about 2 years ago

Stephen Neal wrote:

As a relative novice at this, but who has got it working on a Pi3, it looks like you don't have lsdiff installed - which is a dependency for compilation?

Have you installed all the packages you need for building media_build - they are detailed here https://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

It's probably patch or patchutils you have missing?

You're right about the lsdiff package from patchutils however did you get it to compile for the default raspbian linux kernel 4.9.x? Could you please share how you did it?

RE: Xbox One DVB-T/T2/C tuner - Added by Walter av about 2 years ago

marco raap wrote:

Hello,

@ C vH I downloaded your Image and installed it successfully. BUT. in TVHeadend I didn't find any muxes. Always Failure.

[...]

this is what I get. so what can I do? I´m not capable of compile myself or such things.

Thank You for the really great Work.

Please be more complete with your findings. What kind of network are you trying to scan DVB-C, DVB-T or DVB-T2 and which frequencies? Please post which version of tvheadend and the kernel comes with RPI libreelec image you are using?

RE: Xbox One DVB-T/T2/C tuner - Added by Josu Lazkano about 2 years ago

Walter av wrote:

Stephen Neal wrote:

As a relative novice at this, but who has got it working on a Pi3, it looks like you don't have lsdiff installed - which is a dependency for compilation?

Have you installed all the packages you need for building media_build - they are detailed here https://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

It's probably patch or patchutils you have missing?

You're right about the lsdiff package from patchutils however did you get it to compile for the default raspbian linux kernel 4.9.x? Could you please share how you did it?

Hello Stephen,

I am actually building the driver for the Raspbian kernel, it is getting so long to compile, I leave allthe night and it fail again. I installed more packages:

apt-get install git patchutils raspberrypi-kernel-headers libdigest-sha-perl libproc-processtable-perl

Now it is compiliung again so I will have a result in hours, I will comment here how is going.

Kind regards.

RE: Xbox One DVB-T/T2/C tuner - Added by C vH about 2 years ago

Walter av wrote:

Please be more complete with your findings. Please post which version of tvheadend and the kernel comes with RPI libreelec image you are using?

I currently try to rule out that the LE system is somehow influencing the driver (everyone is reporting the same that no data is working - everything else looks okay). Tvh and Kernel is at latest stable version so there should be no surprises.

marco raap wrote:

I didn't find any muxes

pls try http://cvh.libreelec.tv/Test/xbox/ the 1.1 version of the image (now pure media_build offered from Olli instead of patch)

RE: Xbox One DVB-T/T2/C tuner - Added by Walter av about 2 years ago

@Olli Salonen
Thanks for building a linux kernel conform driver, so far these are my findings for single DVB-T and multiple DVB-C use cases on ubuntu server 16.04 amd64bit with linux kernel version 4.10.28 from the HWE stack.

Just able to test DVB-T with service provider "Digitenne FTA Netherlands, Drenthe" and got it working although with a very low reception (5/10%). I had to sit outside with an external antenna(passive) and was able to watch 4 channels at the same time on the same 786MHZ mux. Other mux frequencies(506,546,570,738) did successful service scans here but I have no subscription to that. After a couple of minutes 3-5 some continuity errors come up. This might be just the case for this region I'm in right now as in bad reception in rural areas.

Remote testing multiple xbox as DVB-C tuners work like @Anthony Thomas already confirmed. Got that working on 3 tuners to scan muxes (even high frequencies) and work simultaneously on the same server using the service provider "Ziggo FTA Netherlands, Sassenheim". Although they seem to generate more continuity errors than other solutions.

I will do comparison tests with other adapters and older xbox drivers builds @Sky Anakin for both DVB-T and DVB-C next week, to compare continuity error performance.

Again thanks for pushing this!

RE: Xbox One DVB-T/T2/C tuner - Added by Stephen Neal about 2 years ago

For those asking how I installed the drivers on my Pi 3 - this is what I remember doing. I can't guarantee it's a complete how-to - but it's a good set of hints.

I first downloaded Jessie Lite Raspbian from here : https://www.raspberrypi.org/downloads/raspbian/

Flashed that to a Micro SD card, added an empty file called ssh (no extension) to the MicroSD card to enable SSH.

Booted up, let it do its thing then SSHed in (default login pi default password raspberry) and did :

sudo apt-get update

Downloaded Raspbian kernel headers :

sudo apt-get install raspberrypi-kernel-headers (Details here : https://www.raspberrypi.org/documentation/linux/kernel/headers.md )

Installed dependencies for building media_build

sudo apt-get install libdigest-sha-perl make gcc git patch patchutils libproc-processtable-perl following instructions here (Raspbian=Debian in this case) https://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

Then followed the instructions in this thread

git clone git://linuxtv.org/media_build.git
git clone --depth=1 https://github.com/trsqr/media_tree.git -b xboxone ./media
cd media_build
make dir DIR=../media
make distclean
make

There may have been some errors at this point regarding additional dependencies to add - I think I just sudo apt-get installed the packages in question that were flagged.

I then installed with sudo make install and rebooted with sudo reboot now

I then realised I needed firmware.

cd /lib/firmware

sudo wget http://linuxtv.org/downloads/firmware/dvb-usb-dib0700-1.20.fw (I found the link by googling)

sudo wget http://palosaari.fi/linux/v4l-dvb/firmware/MN88472/02/088b891ac9273ff8c6818fca27b24d81/dvb-demod-mn88472-02.fw (Again - slightly trickier - but found by googling)

sudo reboot now to reboot

These two firmware files need to be present in /lib/firmware as - I think - they are loaded onto the USB tuner when it is initialised by the driver.

I may have missed a stage out - if I get a chance I'll repeat it from scratch and update this post.

  • EDITED to add firmware download

Please note - I don't claim this is a good way, the right way, the only way to do this - it just worked for me. I'm watching the Crystal Palace DVB-T/T2 muxes in London (with a rooftop aerial/antenna and a reasonable signal)

RE: Xbox One DVB-T/T2/C tuner - Added by Walter av about 2 years ago

@Stephen Neal
Thanks for posting your Rpi steps, I will try to repeat these steps however they do not really differ much from the steps I took earlier especially concerned possible kernel patching. But libreELEC also runs 4.9.34 kernel which '@C vH' was able to compile the module for.

@C vH
The v1.1 image (6023c32ff56c39d1f70a880895be5fb3 LibreELEC-RPi2.arm-8.1-xbox-dvb-driver-mb-1.1.img.gz) is not working yet for me on DVB-T, took the same tuner + antenne on the same spot (as with my netbook 1 minute before) and was not able to scan any muxes. I installed tvheadend(4.2.2-75 ~ LibreELEC Tvh-addon v8.2.111) from the addons (thought it was already installed on your image), however dmesg spits out these messages:

usb 1-1.3: DVB: adapter 0 frontend 0 frequency limits undefined - fix the driver

RE: Xbox One DVB-T/T2/C tuner - Added by C vH about 2 years ago

Walter av wrote:

The v1.1 image (6023c32ff56c39d1f70a880895be5fb3 LibreELEC-RPi2.arm-8.1-xbox-dvb-driver-mb-1.1.img.gz) is not working yet for me on DVB-T, took the same tuner + antenne on the same spot (as with my netbook 1 minute before) and was not able to scan any muxes. I installed tvheadend(4.2.2-75 ~ LibreELEC Tvh-addon v8.2.111) from the addons (thought it was already installed on your image), however dmesg spits out these messages:

urgs I guess we triggered the problem we have with some usb devices like the TT-3650 that somehow do not work for some reason (we didn't found till date), sadly i have zero reception at home so I can't test it :(

(101-125/378)