Xbox One DVB-T/T2/C tuner

Added by Stephen Neal about 3 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 (218)

RE: Xbox One DVB-T/T2/C tuner - Added by Chris Koster 2 months ago

I've been following this topic for a while now and got a xbox one tuner working. Thanks everybody for the information and work put in!

PS. For anybody interested, al lot of chinese TV sticks sold on various markets are also working now that Panasonic MN88472 demodulator support is in. Hopefully it is soon in main media_build and kernel. Examples of these sticks:

http://blog.palosaari.fi/2013/10/naked-hardware-14-dvb-t2-usb-tv-stick.html?showComment=1391026576324#c5151394301177091379

RE: Xbox One DVB-T/T2/C tuner - Added by Em Smith 2 months ago

I connected one of these to my x86 laptop and it's wasn't even detected, even with lsusb. The media build tree wouldn't build, possibly because my kernel is too new (4.10) and fence.h got renamed to dma_fence.h.

I know it won't create /dev/dvb, but should I expect the device to be detected by lsusb even without a compiled media build tree ? Or is it a completely non-standard device that just happens to have a usb connector and needs the driver tree to even be detected? Or is there a power switch I'm missing? :-)

Any chance the patches get merged upstream since one of my other boxes is an unofficial Libreelec build and they use crazycat69 mediabuild so it would be nice to have it upstream.

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

Em Smith wrote:

I connected one of these to my x86 laptop and it's wasn't even detected, even with lsusb. The media build tree wouldn't build, possibly because my kernel is too new (4.10) and fence.h got renamed to dma_fence.h.

I know it won't create /dev/dvb, but should I expect the device to be detected by lsusb even without a compiled media build tree ? Or is it a completely non-standard device that just happens to have a usb connector and needs the driver tree to even be detected? Or is there a power switch I'm missing? :-)

Any chance the patches get merged upstream since one of my other boxes is an unofficial Libreelec build and they use crazycat69 mediabuild so it would be nice to have it upstream.

Olli has already submitted patches upstream

The tuner should be detected without any driver installed, but as an unknown device. After you've got the driver in the kernel, it should show up in lsusb.

[email protected]:~$ lsusb
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 045e:02d5 Microsoft Corp. Xbox One Digital TV Tuner
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 045e:02d5 Microsoft Corp. Xbox One Digital TV Tuner
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

RE: Xbox One DVB-T/T2/C tuner - Added by Em Smith 2 months ago

Thanks for the quick reply. Maybe my device is a dud since I've tried it in a few machines and none of them log anything in dmesg or lsusb, whereas (for example) years ago the PS3Eye logged something even though there were no drivers at the time.

I've downloaded the patches but not had success yet applying them to my Libreelec tree. I'll give it another go at the weekend when I have some free time.

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

You should definitely get something in the system logs when inserting the device, regardless of the drivers compiled. And of course you should see the USB ID of the device in the lsusb printout - your system might or might not tell you that this USB ID is for the Xbox tuner, but that's not relevant (depends on the USB device database and not the drivers). The patches are included in the LibreELEC 8.1.1 and 8.1.2 releases. Do you have a custom tree for some special purpose?

RE: Xbox One DVB-T/T2/C tuner - Added by Em Smith 2 months ago

My LibreElec is running on an Amlogic device (rather than a Pi or PC) and so it has to use an unofficial 8.1.8 fork on github by kszaq. His top post on the L/E Amlogic Forum says "External DVB tuner support is experimental via media_build drivers from CrazyCat69." They also use the old 3.14 kernel that seems common in these devices.

I saw the hard work had got in to L/E, but I hadn't realized the fork used a different media_build. I'm not sure why it uses a different tree, maybe to support some of the android boxes that have internal tuners.

It's strange about my xbox device. I initially thought maybe the Amlogic box didn't supply enough power (even though tuners normally require minimal power), but it didn't log anything even on my Ubuntu desktop when swapping it to the same port as another tuner (I see the old tuner log disconnect messages and then nothing until I reconnect the old tuner). Didn't see anything on an older Debian device either.

RE: Xbox One DVB-T/T2/C tuner - Added by Em Smith about 1 month ago

I decided to buy another one and the new one works and was detected in dmesg immediately. So the first one I bought is a dud.

To get it to work on Ubuntu I had to patch the linux/Makefile to stop it applying the version patch that didn't apply, but after that it all built, worked and tunes HD fine.

Thanks.

diff --git a/linux/Makefile b/linux/Makefile
index 33585ff..362872c 100644
--- a/linux/Makefile
+++ b/linux/Makefile
@@ -155,8 +155,7 @@ apply_patches apply-patches:
        rm -f mm/frame_vector.c; \
        for i in $$PATCHES; do \
                echo patch -s -f -N -p1 -i ../backports/$$i; \                                                                                  
-               patch -s -f -N -p1 -i ../backports/$$i --dry-run || exit 1; \                                                                   
-               patch -s -f -N -p1 -i ../backports/$$i; \                                                                                       
+               patch -s -f -N -p1 -i ../backports/$$i --dry-run && patch -s -f -N -p1 -i ../backports/$$i; \
                mv .patches_applied .patches_applied.old; \
                echo $$i > .patches_applied; \
                cat .patches_applied.old >> .patches_applied; \

RE: Xbox One DVB-T/T2/C tuner - Added by Max B. about 1 month ago

Ian P. wrote:

Dave Travers wrote:

So full install instructions:-

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

It's actually started making now. will let you know how I get on.

Yes, that's it. Don't forget to reboot at the end.

Hey,

When running the make command, the "git reset --hard 9ccb87d" helps a lot and the scripts get a lot further. However after a while i get the following error:

make -C /home/pi/media_build/v4l 
make[1]: Entering directory '/home/pi/media_build/v4l'
creating symbolic links...
make -C firmware prep
make[2]: Entering directory '/home/pi/media_build/v4l/firmware'
make[2]: Leaving directory '/home/pi/media_build/v4l/firmware'
make -C firmware
make[2]: Entering directory '/home/pi/media_build/v4l/firmware'
make[2]: Nothing to be done for 'default'.
make[2]: Leaving directory '/home/pi/media_build/v4l/firmware'
Kernel build directory is /lib/modules/4.9.35-v7+/build
make -C ../linux apply_patches
make[2]: Entering directory '/home/pi/media_build/linux'
Syncing with dir ../../media
Patches for 4.9.35-v7+ already applied.
make[2]: Leaving directory '/home/pi/media_build/linux'
make -C /lib/modules/4.9.35-v7+/build SUBDIRS=/home/pi/media_build/v4l  modules
make[2]: Entering directory '/home/pi/linux-be2540e540f5442d7b372208787fb64100af0c54'

  ERROR: Kernel configuration is invalid.
         include/generated/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.

  CC [M]  /home/pi/media_build/v4l/msp3400-driver.o
In file included from <command-line>:0:0:
././include/linux/kconfig.h:4:32: fatal error: generated/autoconf.h: No such file or directory
 #include <generated/autoconf.h>
                                ^
compilation terminated.
scripts/Makefile.build:293: recipe for target '/home/pi/media_build/v4l/msp3400-driver.o' failed
make[3]: *** [/home/pi/media_build/v4l/msp3400-driver.o] Error 1
Makefile:1490: recipe for target '_module_/home/pi/media_build/v4l' failed
make[2]: *** [_module_/home/pi/media_build/v4l] Error 2
make[2]: Leaving directory '/home/pi/linux-be2540e540f5442d7b372208787fb64100af0c54'
Makefile:51: recipe for target 'default' failed
make[1]: *** [default] Error 2
make[1]: Leaving directory '/home/pi/media_build/v4l'
Makefile:26: recipe for target 'all' failed
make: *** [all] Error 2

RE: Xbox One DVB-T/T2/C tuner - Added by Thomas xyz 22 days ago

Hi,
I use on my Wetek Play 2 Libreelec 8.2.0 and an Xbox One USB tuner, but this is not angezeiegt me in TV Headend, but it is recognized under linux already.

What else do I have to do?
Thank you

Bus 002 Device 003: ID 045e:02d5 Microsoft Corp. Xbox One Digital TV Tuner

RE: Xbox One DVB-T/T2/C tuner - Added by C vH 22 days ago

Try installing Raybuntu WP2 builds - the drivers for AML (S905 ..) are coming with LE9 to the official build (hopefully).

RE: Xbox One DVB-T/T2/C tuner - Added by Michael C. 18 days ago

Hi,
I think the current driver has a problem with receiving some DVB-C frequencies. I'm testing LibreElec build from C vH on RPi and RPi 2 and a lot of channels are giving continuity errors, especially HD channels.
Do you have any advice how to fix it?

RE: Xbox One DVB-T/T2/C tuner - Added by Chris Koster 18 days ago

I don't know if this is a driver issue, if it is I also wouldn't know how to fix it. Anyway, i'm using two of these tuners for a couple of months now in a total of four tuners. These XBOX tuners seem very sensitive for bad/low signal. In my experience with TVH continuity errors are signal problems most of the time.

RE: Xbox One DVB-T/T2/C tuner - Added by Anthony Thomas 18 days ago

Chris Koster wrote:

I don't know if this is a driver issue, if it is I also wouldn't know how to fix it. Anyway, i'm using two of these tuners for a couple of months now in a total of four tuners. These XBOX tuners seem very sensitive for bad/low signal. In my experience with TVH continuity errors are signal problems most of the time.

Yep, definitely more sensitive to poor signal compared to other tuners. I've got 4 in use and I see regular breakups. It doesn't ruin what I'm watching but it's certainly not desirable.

RE: Xbox One DVB-T/T2/C tuner - Added by Tom Joyce about 21 hours ago

Mark Clarkstone wrote:

The tuner should be detected without any driver installed, but as an unknown device. After you've got the driver in the kernel, it should show up in lsusb.

I'm running tvheadend 4.24 on the latest version of Raspbian Stretch on a Pi 3. The Xbox tuner shows up in lsusb but not in the tvheadend DVB source interface. Any suggestions as to how to get tvheadednd to see it gratefully accepted.

$ tvheadend --version
tvheadend: version 4.2.4
$ lsusb
Bus 001 Device 006: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
Bus 001 Device 005: ID 413c:2501 Dell Computer Corp. 
Bus 001 Device 004: ID 045e:02d5 Microsoft Corp. Xbox One Digital TV Tuner

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

Tom Joyce wrote:

Mark Clarkstone wrote:

The tuner should be detected without any driver installed, but as an unknown device. After you've got the driver in the kernel, it should show up in lsusb.

I'm running tvheadend 4.24 on the latest version of Raspbian Stretch on a Pi 3. The Xbox tuner shows up in lsusb but not in the tvheadend DVB source interface. Any suggestions as to how to get tvheadednd to see it gratefully accepted.

[...]

Is it detected in dmesg? If you haven't got the patched media_build it won't know which driver to load.

RE: Xbox One DVB-T/T2/C tuner - Added by Tom Joyce about 14 hours ago

Mark Clarkstone wrote:

Is it detected in dmesg? If you haven't got the patched media_build it won't know which driver to load.

Is this the relevant extract from dmesg output or is more needed to diagnose the issue?

$ dmesg
[...]
[    2.270181] usb 1-1.3: new high-speed USB device number 4 using dwc_otg
[    2.400824] usb 1-1.3: New USB device found, idVendor=045e, idProduct=02d5
[    2.400840] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber                         =3
[    2.400849] usb 1-1.3: Product: Xbox USB Tuner
[    2.400856] usb 1-1.3: Manufacturer: Microsoft Corp.
[    2.400864] usb 1-1.3: SerialNumber: 004360100615
[    2.456729] systemd[1]: Listening on Syslog Socket.
[    2.457308] systemd[1]: Listening on fsck to fsckd communication Socket.
[    2.457520] systemd[1]: Listening on udev Kernel Socket.
[    2.457828] systemd[1]: Listening on Journal Socket.
[    2.458590] systemd[1]: Created slice User and Session Slice.
[    2.459425] systemd[1]: Set up automount Arbitrary Executable File Formats Fi                         le System Automount Point.
[    2.459746] systemd[1]: Started Forward Password Requests to Wall Directory W                         atch.
[...]

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

Tom Joyce wrote:

Mark Clarkstone wrote:

Is it detected in dmesg? If you haven't got the patched media_build it won't know which driver to load.

Is this the relevant extract from dmesg output or is more needed to diagnose the issue?

[...]

You're missing the driver.. Use Olli's git patches & build it :)

RE: Xbox One DVB-T/T2/C tuner - Added by Tom Joyce about 12 hours ago

Thanks for the diagnosis! Am I right in thinking the cure is

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

If so, what directory should I be in when I use the above commands? I started trying while in my home directory but suspect I should be in /

1 ... 7 8 9 (201-218/218)