Xbox One DVB-T/T2/C tuner
Added by Stephen Neal about 10 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 (420)
RE: Xbox One DVB-T/T2/C tuner - Added by Phil Hawker over 6 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 over 6 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 over 6 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 over 6 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...
RE: Xbox One DVB-T/T2/C tuner - Added by C vH over 6 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 over 6 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 over 6 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 over 6 years ago
OK, will do!
Crossing fingers!
RE: Xbox One DVB-T/T2/C tuner - Added by Erik Högström over 6 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 over 6 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 over 6 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 over 6 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 [email protected]):
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....
make install.rtf (10.5 KB) make install.rtf |
RE: Xbox One DVB-T/T2/C tuner - Added by Phil Hawker over 6 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 over 6 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 over 6 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 over 6 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 over 6 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/
./buildsudo reboot
RE: Xbox One DVB-T/T2/C tuner - Added by B W over 6 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/
./buildsudo reboot
Good to know! Are there any improvements worth recompiling for?
RE: Xbox One DVB-T/T2/C tuner - Added by C vH over 6 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 over 6 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 over 6 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 over 6 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 over 6 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 over 6 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 over 6 years ago
C vH wrote:
I'll edit my post to reflect this
you need still
make untar
Updated...
Thanks (again...)