Project

General

Profile

Xbox One DVB-T/T2/C tuner

Added by Stephen Neal over 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 (388)

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

Hi - followed the instructions here and all now working really well. However I ran through the process twice, as the DVB_DEMUX_SECTION_LOSS_LOG Kconfig item for some reason now defaults to Y, which fills the dmesg log with very verbose debug output after every retune event on my system. So definitely worth running a "make menuconfig" before the final make and resetting that item (under "Multimedia Support" / "Enable DVB demux section packet loss log"). This requires the "ncurses-dev" (Ubuntu / Debian) package to run. Running "make menuconfig" also allows easy stripping out of support for large numbers of unwanted drivers, making a massive difference to the build time on slow systems. So the adapated Dave Travers instructions become:

++++++++++++++++++++++++++++++++++++++++++++++++++++

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
git reset --hard 9ccb87d
make dir DIR=../media
make distclean

make menuconfig

make

sudo make install

<reboot>

++++++++++++++++++++++++++++++++++++++++++++++++

The Packet Loss (and other) debug messages looked alarming, but only occur after a retune and everything working fine, so I think safe to ignore.

<<EDIT>> Probably worth saying that I'm not actually running Tvheadend on this system, but rather using the V4L software demuxer from the xbox tuner TS stream to a basic Perl Shoutcast / Icecast Radio Stream server into a number of Squeezeboxes. So the Packet Loss messages from the demuxer may not be an issue when using Tvheadend?? However the instructions on this thread seem to be the best (only?) set of reliable instructions to get this tuner working well under Linux.

Hope this helps...

RE: Xbox One DVB-T/T2/C tuner - Added by Erik Högström about 2 years ago

Hi,

I have TVHeadend version HTS Tvheadend 4.2.5-18~g951777a51 installed on a Raspberry Pi 2B (Linux raspberrypi2 4.9.59-v7+ #1047 armv7l GNU/Linux)

I recently got the Xbox One DVB-T/T2/C tuner but can't get it to show up in TvHeadend.

Dmesg gives me:
[ 3.476663] usb 1-1.3: new high-speed USB device number 4 using dwc_otg
[ 3.617451] usb 1-1.3: New USB device found, idVendor=045e, idProduct=02d5
[ 3.628034] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3.642407] usb 1-1.3: Product: Xbox USB Tuner
[ 3.650507] usb 1-1.3: Manufacturer: Microsoft Corp.
[ 3.659067] usb 1-1.3: SerialNumber: 000501220615

lsusb gives me:
Bus 001 Device 004: ID 045e:02d5 Microsoft Corp. Xbox One Digital TV Tuner

I first tried with getting the firmware refered to here: https://www.linuxtv.org/wiki/index.php/Xbox_One_Digital_TV_Tuner

Still nothing happened. Then I found this page, and followed the guide (thanks for making clarifying it, I got lost in all the threads)

So I followed this:
@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
git reset --hard 9ccb87d
make dir DIR=../media
make distclean

make menuconfig

make

sudo make install

<reboot>@

I had some errors at first but reading the threads I then installed headers...

Still no adapter showing up in TvHeadend.... Please help!

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

pls show an complete dmesg, maybe the *.fw are missing ?

RE: Xbox One DVB-T/T2/C tuner - Added by Erik Högström about 2 years ago

Please see the attached dmesg....

Also, after some further reading I found that I dont have a /dev/dvb folder, which to my understanding should be there if everything loaded as it should.

If I do a lsmod I get:
Module Size Used by
arc4 2211 0
ecb 2426 0
md4 3862 0
md5 2608 2
hmac 3252 2
nls_utf8 1656 2
cifs 422712 4
cfg80211 544545 0
rfkill 20851 2 cfg80211
snd_bcm2835 24427 0
snd_pcm 98501 1 snd_bcm2835
snd_timer 23968 1 snd_pcm
snd 70032 3 snd_timer,snd_bcm2835,snd_pcm
bcm2835_gpiomem 3940 0
uio_pdrv_genirq 3923 0
uio 10204 1 uio_pdrv_genirq
fixed 3285 0
ip_tables 13161 0
x_tables 20578 1 ip_tables
ipv6 408900 39

and if I understand correctly there should be a dvd_core or something...

As you might guess, I'm not even close to tech level as most on this forum...

dmesg.rtf (18.8 KB) dmesg.rtf

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

Hmm from dmesg I would bet you have it not installed, there is no sign of it at the dmesg.
If it wasn't installed properly you should get some warning after sudo make install.

RE: Xbox One DVB-T/T2/C tuner - Added by Erik Högström about 2 years ago

I question...

I can try to run the process again just to make sure, but I install it as my user using sudo and not as the tvheadend user "hts", is that correct?

Thanks for your help!!

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

yea no problem, but better remove both folder before you start from scratch (/media and /media_build)

and watch out if you see some warning/errors at the end of every command execution

RE: Xbox One DVB-T/T2/C tuner - Added by Erik Högström about 2 years ago

OK, will do!

Crossing fingers!

RE: Xbox One DVB-T/T2/C tuner - Added by Erik Högström about 2 years ago

I'm at it "as we speak"....

There is some text after I execute "make" command (see attached file) that I don't know if it's an error or not...

Should I worry?

And btw. when I have executed the "sudo make install" and rebooted, do I need to do anything else?

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

as long it still builds no problem (hopefully)

sudo make install

and reboot :) - maybe fw is missing - we will see

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

Hi - My comments above were related to an install this week on an x86 / Ubuntu Server 16.04 system, but I've also had the Xbox DVB-T(2) Tuner working a few months ago on a Pi2B running Raspbian Stretch Lite using the original instructions, and it's also now working (perfectly) with TVHeadend on a (Pi)CM3 Slice under LibreELEC 8.2.3

You don't state what OS you're using - I remember needing to install a bunch of dependencies to complete the build on Raspbian, but all were flagged pretty clearly via the MAKE output. If you're running a fully updated Raspian, install the kernel headers, firmware (dvb-demod-mn88472-02.fw etc.) and other flagged dependencies then it should "just work"...?

Are you being too aggressive in flushing unwanted components with the "make menuconfig"? I didn't run that at all when I had it running on the Pi2B, but the build took several hours (I think I left it running overnight) - so providing you don't flush too many things away a menuconfig will certainly speed things up a lot...

RE: Xbox One DVB-T/T2/C tuner - Added by Erik Högström about 2 years ago

Hi,

Thanks for your reply.

I'm running the following:
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

I have already installed the "dvb-demod-mn88472-02.fw etc".

I tried it again and I seem to get the same results as previously, i.e. no success, I this time I didn't use the "make menuconfig". I don't get any flags but as you mention it takes forever and I run from terminal on a laptop and had to leave somewhere half-way so I did not see the end result....

I attached the result from the "make install" command if that could give any leads....

Thanks for guiding/helping with this!!!!

Some kind of update

I ran dmesg again and got the following:
[ 22.353900] media: loading out-of-tree module taints kernel.
[ 22.364958] media: Linux media interface: v0.10
[ 22.387727] WARNING: You are using an experimental version of the media stack.
As the driver is backported to an older kernel, it doesn't offer
enough quality for its usage in production.
Use it with care.
Latest git patches (needed if you report a bug to ):
4df4b1ea632e7af561f405bc799b3f37cd504c43 mn88473: set PLP reg to 0 if no PLP given
[ 22.393491] dvb_usb: disagrees about version of symbol rc_register_device
[ 22.393518] dvb_usb: Unknown symbol rc_register_device (err -22)
[ 22.393586] dvb_usb: disagrees about version of symbol rc_free_device
[ 22.393595] dvb_usb: Unknown symbol rc_free_device (err -22)
[ 22.393647] dvb_usb: disagrees about version of symbol rc_allocate_device
[ 22.393655] dvb_usb: Unknown symbol rc_allocate_device (err -22)
[ 22.393768] dvb_usb: disagrees about version of symbol rc_unregister_device
[ 22.393784] dvb_usb: Unknown symbol rc_unregister_device (err -22)
[ 23.939726] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[ 23.940006] IPv6: ADDRCONF: eth0: link is not ready
[ 25.559729] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1
[ 25.559940] IPv6: ADDRCONF: eth0: link becomes ready
[ 30.864111] FS-Cache: Netfs 'cifs' registered for caching
[ 30.865029] Key type cifs.spnego registered
[ 30.865056] Key type cifs.idmap registered
[ 32.120688] Adding 102396k swap on /var/swap. Priority:-1 extents:1 across:102396k SSFS
[ 33.498389] random: crng init done
[ 1017.041215] usb 1-1.3: USB disconnect, device number 4
[ 1022.714180] usb 1-1.2: new high-speed USB device number 5 using dwc_otg
[ 1022.845189] usb 1-1.2: New USB device found, idVendor=045e, idProduct=02d5
[ 1022.845208] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1022.845220] usb 1-1.2: Product: Xbox USB Tuner
[ 1022.845229] usb 1-1.2: Manufacturer: Microsoft Corp.
[ 1022.845240] usb 1-1.2: SerialNumber: 000501220615
[ 1022.890198] dvb_usb: disagrees about version of symbol rc_register_device
[ 1022.890220] dvb_usb: Unknown symbol rc_register_device (err -22)
[ 1022.890306] dvb_usb: disagrees about version of symbol rc_free_device
[ 1022.890315] dvb_usb: Unknown symbol rc_free_device (err -22)
[ 1022.890384] dvb_usb: disagrees about version of symbol rc_allocate_device
[ 1022.890392] dvb_usb: Unknown symbol rc_allocate_device (err -22)
[ 1022.890524] dvb_usb: disagrees about version of symbol rc_unregister_device
[ 1022.890533] dvb_usb: Unknown symbol rc_unregister_device (err -22)

Now atleast it seems to identify something regarding dvb_usb....

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

Hi - was the "make.rtf" file on your previous post the entire output?? I assume you removed the (several hundred..) compiles / links (the CC and LD lines)?

Anyway... a quick search on the " dvb_usb: disagrees about version of symbol rc_register_device " messages reveals several hits suggesting that you need to remove old drivers first and then re-run the make install - I honestly can't remeber if I did this or not. cf. " https://www.tbsdtv.com/forum/viewtopic.php?f=59&t=10025 " for example...

RE: Xbox One DVB-T/T2/C tuner - Added by Erik Högström about 2 years ago

Hi again,

No this was not the full make. I posted this "work-in-progress" since it took forever and thus removed all the compiles....

Thanks for the lead, I will try again, i.e. remove "/media and /media_build" (thanks C vH) and then do as the post describes:

sudo rm -r -f /lib/modules/$(uname -r)/kernel/drivers/media
sudo rm -r -f /lib/modules/$(uname -r)/kernel/drivers/staging/media

Interestingly I had already read the thread you suggested, but this was before I had the "semi-success" with dmesg... just as a side note...

Well, better get to it. Will let you know wether I'm crying out of joy or shivering in the shower from further failure :)

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

I had to reinstall my raspberry again and ended up getting bits and pieces from all over the topic. For anyone trying to install this on a rpi, here's my install on a fresh raspbian:

Device: RaspberryPi 2
OS: 2017-11-29-raspbian-stretch-lite

sudo apt-get update && apt-get upgrade -y
sudo reboot

sudo apt-get install raspberrypi-kernel-headers
sudo reboot

sudo apt-get install libdigest-sha-perl make gcc git patch patchutils libproc-processtable-perl
sudo reboot

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
git reset --hard 9ccb87d
make dir DIR=../media
make distclean
make

sudo make install

At this point I was missing the .fw file. I'm not sure why, thought the media_build would have provided this? Anyhow, I grabbed it somewhere else:

cd /lib/firmware/
sudo wget http://palosaari.fi/linux/v4l-dvb/firmware/MN88472/02/latest/dvb-demod-mn88472-02.fw

Finally, install tvheadend itself. Not relevant to the topic, but you probably want this :-)

# install tvheadend
sudo apt-get install dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61

echo "deb https://dl.bintray.com/mpmc/deb raspbianstretch release-4.2" | sudo tee -a /etc/apt/sources.list

sudo apt-get update
sudo apt-get install tvheadend -y

sudo reboot

RE: Xbox One DVB-T/T2/C tuner - Added by Erik Högström about 2 years ago

Hi,

Where have you been all my life? :)

I will se if the last attempt I tried did the trick otherwise I will try your suggestion...

Regarding TvHeadend I'm already up and running... that was the reason why I got myself a USB DVB tuner...

--- Update ----

My last attempt was not successful. Now there's not even any dvb usb output at all in the dmesg.... Do I need to start all over with a fresh install or what?

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

Btw you can use the normal media_build as well, the driver was merged some times ago.

git clone git://linuxtv.org/media_build.git
cd media_build/
./build

sudo reboot

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

C vH wrote:

Btw you can use the normal media_build as well, the driver was merged some times ago.

git clone git://linuxtv.org/media_build.git
cd media_build/
./build

sudo reboot

Good to know! Are there any improvements worth recompiling for?

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

Besides the overall newer driver stack nothing worth to mention for the Xbox Stick.

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

In light of some of the posts above I've been experimenting with a minimal Media Build for this tuner on a Raspberry Pi 2B. After some serious pruning via "make menuconfig" I've reduced the "make" time from >4 hours / 593 modules down to 7 minutes / 32 modules (on a non-overclocked original Pi 2B), which could be worthwhile as the RPi people are about to bump the default kernel to 4.14, most likely to requiring the whole Media Build process to be repeated after the next major apt-get upgrade from their PPA. Note that this will produce a kernel media stack with ONLY support for this tuner (and perhaps some near-relatives), so if you need more extensive support, for example for DVB-S tuners, remote controls, CEC etc. then you will either need to select further options at the "make menuconfig" step or use the default full build process from CvH's post above. Note that trying to remove ALL Remote Control support failed to produce a workable .config file for some reason, so the attached file is the least I could get to work.

I've attached the saved .config file from my menuconfig and provide detailed instructions below, assuming a build under Raspian Stretch Lite on a Pi2B using the default "pi" user. The starting point is a clean, up-to-date Raspbian Stretch Lite Micro-SD card (16GB in my case, although 2GB or more should work)

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git git-man libdigest-sha-perl liberror-perl libncurses5-dev libproc-processtable-perl libtinfo-dev patchutils raspberrypi-kernel-headers
sudo reboot

git clone --depth=1 git://linuxtv.org/media_build.git
cd media_build/linux
make download
make untar
cd ..

make distclean

Now create / copy the attached file "PiXboxMBConfig.txt" as "PiXboxMBconfig" into /home/pi/media_build/v4l/
Run "sudo make menuconfig", first <Load> PiXBoxMBconfig, make any changes if you want to add further support, then <Save> as ".config" (note the leading period!) and then <Exit>.

sudo make menuconfig
make -j5
sudo make install
cd /lib/firmware
sudo wget http://palosaari.fi/linux/v4l-dvb/firmware/MN88472/02/latest/dvb-demod-mn88472-02.fw

sudo reboot

And all should be working, with dmesg output after plugging in the tuner to a USB port looking something like:

[  256.297050] usb 1-1.2: new high-speed USB device number 5 using dwc_otg
[  256.428185] usb 1-1.2: New USB device found, idVendor=045e, idProduct=02d5
[  256.428202] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  256.428214] usb 1-1.2: Product: Xbox USB Tuner
[  256.428224] usb 1-1.2: Manufacturer: Microsoft Corp.
[  256.428235] usb 1-1.2: SerialNumber: 004610010415
[  256.485777] media: loading out-of-tree module taints kernel.
[  256.489024] media: Linux media interface: v0.10
[  256.499082] WARNING: You are using an experimental version of the media stack.
                As the driver is backported to an older kernel, it doesn't offer
                enough quality for its usage in production.
                Use it with care.
               Latest git patches (needed if you report a bug to [email protected]):
                d83a8243aaefe62ace433e4384a4f077bed86acb media: v4l2-compat-ioctl32.c: don't copy back the result for certain errors
[  256.515090] WARNING: You are using an experimental version of the media stack.
                As the driver is backported to an older kernel, it doesn't offer
                enough quality for its usage in production.
                Use it with care.
               Latest git patches (needed if you report a bug to [email protected]):
                d83a8243aaefe62ace433e4384a4f077bed86acb media: v4l2-compat-ioctl32.c: don't copy back the result for certain errors
[  256.565052] dvb-usb: found a 'Microsoft Xbox One Digital TV Tuner' in cold state, will try to load a firmware
[  256.569453] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
[  256.678032] dib0700: firmware started successfully.
[  257.197240] dvb-usb: found a 'Microsoft Xbox One Digital TV Tuner' in warm state.
[  257.197634] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[  257.197836] dvbdev: DVB: registering new adapter (Microsoft Xbox One Digital TV Tuner)
[  257.197867] usb 1-1.2: media controller created
[  257.200214] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[  257.470630] mn88472 3-0018: Panasonic MN88472 successfully identified
[  257.485709] tda18250 3-0060: NXP TDA18250BHN/M successfully identified
[  257.489261] usb 1-1.2: DVB: registering adapter 0 frontend 0 (Panasonic MN88472)...
[  257.489323] dvbdev: dvb_create_media_entity: media entity 'Panasonic MN88472' registered.
[  257.492239] dvb-usb: Microsoft Xbox One Digital TV Tuner successfully initialized and connected.
[  257.492784] usbcore: registered new interface driver dvb_usb_dib0700

Note that the MN88472 firmware (which you still need to manually retrieve, as in the wget above) doesn't get downloaded to the stick until an application attempts to use it.

PiXboxMBConfig.txt (8.38 KB) PiXboxMBConfig.txt minimal Media Build make menuconfig file for Xbox DVB tuner on a Pi2B
PiXboxMBConfig.txt (8.38 KB) PiXboxMBConfig.txt minimal Media Build make menuconfig file for Xbox DVB tuner on a Pi2B

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

git clone --depth=1 git://linuxtv.org/media_tree.git
git clone --depth=1 git://linuxtv.org/media_build.git
cd media_build/linux
make tar DIR=/home/pi/media_tree

you can remove the dl of the media_tree (that takes for ever to download at an rpi)

git clone --depth=1 git://linuxtv.org/media_build.git
cd media_build/linux
make download

does exactly the same with just an 8mb download :)

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

That's even better! - I was just, rather slavishly, following the instructions at https://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

I'll edit my post to reflect this

Thanks :)

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

That's a fantastic bit of work.
I'm running a number of tuners on a low power Intel Atom system, which meant compilation also took ages.

Has there been any improvements over time to improve the drivers for the sensitivity of these tuners?
Because I still suffer from some breakups and pixelisation.

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

I'll edit my post to reflect this

you need still

make untar

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

C vH wrote:

I'll edit my post to reflect this

you need still

make untar

Updated...

Thanks (again...)(/)

(226-250/388)