Project

General

Profile

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 Chris Koster about 7 years 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 about 7 years 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 about 7 years 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.

mark@bananapi:~$ 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 about 7 years 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 about 7 years 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 about 7 years 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 7 years 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 7 years 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 about 7 years 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 about 7 years 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. about 7 years 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 about 7 years 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 about 7 years 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 almost 7 years 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 almost 7 years 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 almost 7 years 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 almost 7 years 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 Anthony Thomas almost 7 years ago

Any improvements for the low sensitivity and signal issues?

Haven't been able to reasonably boost my signal enough to overcome this. Still usable, but regular pixelisation of the image.

RE: Xbox One DVB-T/T2/C tuner - Added by Tom Joyce almost 7 years ago

Mark Clarkstone wrote:

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 :)

After a false start and then properly reading this thread I've got it up and running. Thanks to everyone who helped get a working system.

RE: Xbox One DVB-T/T2/C tuner - Added by Egon Emil almost 7 years ago

Geht the following error. Anyone an idea?

root@peter:~/media_build # make dir DIR=../media
make -C linux/ dir DIR="../../media" 
make[1]: Entering directory '/root/media_build/linux'
rm -rf drivers include sound .patches_applied .linked_dir .git_log.md5 git_log kernel_version.h
/bin/sh: 1: lsdiff: not found
Makefile:120: recipe for target 'dir' failed
make[1]: *** [dir] Error 127
make[1]: Leaving directory '/root/media_build/linux'
Makefile:32: recipe for target 'dir' failed
make: *** [dir] Error 2

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

You don't have lsdiff installed on your system, which is a requirement for compiling the thing. "sudo apt-get install patchutils" if it's a Ubuntu system...

RE: Xbox One DVB-T/T2/C tuner - Added by Egon Emil almost 7 years ago

Thank you, now it works. : )

But after the make command i get

root@peter:~/media_build # make
make -C /root/media_build/v4l 
make[1]: Entering directory '/root/media_build/v4l'
No version yet, using 4.9.0-0.bpo.4-amd64
scripts/make_makefile.pl
Updating/Creating .config
make[2]: Entering directory '/root/media_build/linux'
Syncing with dir ../../media
Applying patches for kernel 4.9.0-0.bpo.4-amd64
patch -s -f -N -p1 -i ../backports/api_version.patch
patch -s -f -N -p1 -i ../backports/pr_fmt.patch
patch -s -f -N -p1 -i ../backports/debug.patch
patch -s -f -N -p1 -i ../backports/drx39xxj.patch
patch -s -f -N -p1 -i ../backports/v4.12_revert_solo6x10_copykerneluser.patch
patch -s -f -N -p1 -i ../backports/v4.10_sched_signal.patch
patch -s -f -N -p1 -i ../backports/v4.10_fault_page.patch
patch -s -f -N -p1 -i ../backports/v4.10_refcount.patch
patch -s -f -N -p1 -i ../backports/v4.9_mm_address.patch
patch -s -f -N -p1 -i ../backports/v4.9_dvb_net_max_mtu.patch
patch -s -f -N -p1 -i ../backports/v4.9_ktime_cleanups.patch
Patched drivers/media/dvb-core/dvbdev.c
Patched drivers/media/v4l2-core/v4l2-dev.c
Patched drivers/media/rc/rc-main.c
Syncing with dir ../../media
make[2]: Leaving directory '/root/media_build/linux'
Preparing to compile for kernel version 4.9.0
File not found: /lib/modules/4.9.0-0.bpo.4-amd64/build/.config at ./scripts/make_kconfig.pl line 33, <IN> line 4.
Updating/Creating .config
make[2]: Entering directory '/root/media_build/linux'
Syncing with dir ../../media
Patches for 4.9.0-0.bpo.4-amd64 already applied.
make[2]: Leaving directory '/root/media_build/linux'
Preparing to compile for kernel version 4.9.0
File not found: /lib/modules/4.9.0-0.bpo.4-amd64/build/.config at ./scripts/make_kconfig.pl line 33, <IN> line 4.
make[1]: *** No rule to make target '.config', needed by '.myconfig'.  Stop.
make[1]: Leaving directory '/root/media_build/v4l'
Makefile:26: recipe for target 'all' failed
make: *** [all] Error 2

its a debian jessie system

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

You're missing the headers.

sudo apt-get install linux-headers-`uname -r`

RE: Xbox One DVB-T/T2/C tuner - Added by Egon Emil almost 7 years ago

Thanks! :-)

installed linux-headers and libproc-processtable-perl. now it works!

sudo apt-get install linux-headers-`uname -r`
sudo apt-get install libproc-processtable-perl

RE: Xbox One DVB-T/T2/C tuner - Added by Dude Duder almost 7 years 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.

That's what I did on my Orange Pi Pc (Armbian, Ubuntu 4.14.11) and the build succeeds:

root@orangepipc:~# lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 045e:02d5 Microsoft Corp. Xbox One Digital TV Tuner
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

However there are no adapters in Tvheadend and I cannot load the driver:

root@orangepipc:~# modprobe -v dvb-usb-dib0700
insmod /lib/modules/4.14.11-sunxi/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko 
modprobe: ERROR: could not insert 'dvb_usb_dib0700': Unknown symbol in module, or unknown parameter (see dmesg)

dmesg

[  430.542617] dvb_usb: Unknown symbol dvb_create_media_graph (err 0)

What's wrong?

(201-225/420)