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:
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
makesudo 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 almost 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 almost 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
makesudo 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?