Project

General

Profile

Xbox One DVB-T/T2/C tuner

Added by Stephen Neal almost 6 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 (393)

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

Hello,

I start a thread in the Raspberry web forum about how to compile the dvb modules with the device patch: https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=216227

It will be great to keep in stable kernel and just compile the needed drivers.

Hope someone could help on this.

Kind regards.

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

Played with a pair of tuners for a while now, I can't get channel 30 (545.833mhz) which is DVB-T2 to tune though (Crystal Palace transmitter).

It worked once and I restarted the box to move it to a different power socket and on reboot the mux was marked fail. Have yet to get it back which is annoying since it's BBC/ITV/C4 HD.

Using 4.17.5-041705-generic kernel at the moment on ubuntu server 18.04.

It works well for DVB signals but T2 does seem flakey as others have reported. Anyone else got some experience in the UK with this and trying to tune HD channels?

https://i.imgur.com/dxs47Hj.png (wide image) is all I get on the mux, so it's picking up 7 of 8 channels on the mux, just not actually doing anything with it.

As a control I've tested with my Samsung C580 TV and it picks up the DVB-T2 on C30 fine so ruled out the antenna system.

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

My experience is that it needs a strong, very clean DVB-T2 signal to work well. From an aerial which was working fine on T2 with a Sony TV and Humax PVR it gave loads of continuity errors and pixelation on the stick with T2 (Ch55 off a local relay, so only core PSB channels) but worked OK on DVB-T. Replaced the downlead (shared with FM and DAB aerials) and all other coax with good quality satellite cable and proper, fully screened triplexors / splitters and all now working very well with no errors. Using LibreELEC 8.5.5 on a CM3 Slice (RasPi3B derivative) which has fully working drivers and firmware. Not sure if the issue was some sort of harmonic interference from the FM / DAB side (I think unlikely) or simply a poor signal.

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

That's an interesting point, though unfortunately my TV doesn't show signal strength when tuned in - in any useful way.

Be interesting to know if anyone's using it in the London area with Ch30 then I guess, it's a fairly new installation so one would hope it's not terrible cable wise but you never know. Unfortunately being a rental place I'm hesitant to rewire it all up.

Guess it'll be SDTV for the meantime!

Here's to hoping for a full DVB-T2 migration in the UK like other european countries have already done.

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

I believe that mux moved to 714MHz, which may require a new aerial.

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

Ian P. wrote:

I believe that mux moved to 714MHz, which may require a new aerial.

Sure it's moved away? There's an effort to clear the 700mhz bands: http://www.digitaluk.co.uk/operations/700mhz_clearance

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

Ian P. wrote:

I believe that mux moved to 714MHz, which may require a new aerial.

PSB3 is Channel 30 / 545.8MHz from Crystal Palace - but for months I've had a rogue 714MHz mux appear when I allow network discovery. I wondered where it had come from - is it a relay that is also flagged?

What have moved in London are COM7 and COM8 - as they are migrating to SFNs nationwide (and reduced their data rate to allow for the increased guard interval required) to allow them to continue broadcasting. However they are now out-of-group for Crystal Palace aerials which has meant a lot of us Londoners with aerials grouped for CP have lost them fully or partially. They are now on Channel 55 / 746MHz and C56 / 754MHz. This is a temporary measure until the 700MHz clearance kicks in. At that point I guess we'll be moving to all DVB-T2 for most services to free up capacity.

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

Think it's safe to assume it's not going to improve though, the driver situation or if the firmware needed tweaking - it's not a big enough bug to attract much dev time and it can actually work, I did manage to get it tuned to BBC One HD last night albeit for an hour before it died again so I guess in theory it does work - just not reliably nor usefully for some.

Okay so seems it works better in the evening so could definitely be signal related:
https://i.imgur.com/M1FqugN.png

Though it spits errors constantly, though the visual breakup is rare, maybe one or two blocking artefacts per minute.

So guess it does work just not as sensitive of a tuner as the TV or other DVB-T2 capable sticks.

Edit: SNR looks low though, would have hoped for 30dB+ so I guess it's right on the cusp of being too low?

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

is there any online guides or youTube videos on how to install this?

I've tried looking on this website but nothing is easy to follow unless you're highly technical.

I'd like to use my Laptop as a portable TV using the Xbox USB TV Tuner, ideally in Windows 8.1 but Linux is fine also.

I just need a guide that a bit easier to follow.

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

Anthony Thomas wrote:

I can confirm this is working!

System:
Asus EB1501
Intel Atom 330
2GB RAM
Ubuntu 17.04
Linux ION 4.10.0-24-generic #28-Ubuntu SMP Wed Jun 14 08:14:34 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Not sure if required but I put the MN88472 firmware in /lib/firmware
http://palosaari.fi/linux/v4l-dvb/firmware/MN88472/02/latest/

Running minisatip to act as a satip server - feeding to TVH on another system. It presents DVB-C and DVB-T.

DVB-C is working well so far for me. Time to buy some more adapters.

Any way to make a bootable USB version of Linux that has all the software needed, so we can just use Rufus to copy to a Bootable USB Stick?

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

If you're capable you can install something light like Lubuntu to a USB stick so it boots natively off it and then install TVH and use VLC to watch the streams... but that's a very long post to type up.

As for pointers I'd use virtualbox to make a virtualised environment where you boot the linux iso and the usb stick is passthrough mounted inside so you can install to the usb stick as you would any other hard drive. Once installed, shutdown the virtual machine and reboot to it on the laptop.

You'd likely need to check your laptop can boot in legacy mode, or enable UEFI mode in virtualbox prior to installation. Secureboot will scupper you too so lots of caveats to find out.

From there it'd be a case of adding the ubuntu PPA (even for lubuntu) and installing tvheadend (probably stable).
Oh and you'd want UKUU installed, also via PPA so you can install a recent kernel easily, I'm running 4.17.5 this way. In addition to that putting the firmware file in /lib/firmware.

Then reboot and use TVheadend as usual.

Is it a faff? Yep huge pain in the butt. Is it your only option here? Probably, no windows drivers exist and even if they did there's no TVheadend on windows as one would expect. NextPVR isn't as good in my experience.

So yeah... long winded but it should :work:

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

Hi all. Thanks to everyone so far for the work put towards getting these (now cheap) tuners working.

I've gotten one to work on a RPi 3B+, it took me a bit of digging around on this thread and around a few other places on the internet, so I've put together the following to benefit anyone else who is struggling. :)

I used a 64-bit LinuxMint host, others based on Debian should work with these instructions (Debian itself, Ubuntu, etc)
You may need to issue a few of the sudo'd commands on their own, else the next line may be accepted as a password, and fail.

Install a few things

sudo apt-get --force-yes install git bc tmux dcfldd build-essential libssl-dev

Start a tmux sesssion so you can reattach if you get disconnected (I'm working on a remote system).

tmux

Grab the image 2018-06-27-raspbian-stretch-lite.img from raspberrypi.org.

sudo losetup -P /dev/loop0 2018-06-27-raspbian-stretch-lite.img
mkdir ~/pikernel
mkdir ~/pikernel/boot
mkdir ~/pikernel/rootfs
sudo mount /dev/loop0p1 ~/pikernel/boot
sudo mount /dev/loop0p2 ~/pikernel/rootfs
cd ~/pikernel
git clone https://github.com/raspberrypi/tools ~/pikernel/tools
echo PATH=\$PATH:~/pikernel/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin >> ~/.bashrc
source ~/.bashrc
git clone --depth=1 -b rpi-4.16.y https://github.com/raspberrypi/linux.git
cd linux
KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=~/pikernel/rootfs modules_install
sudo cp ~/pikernel/boot/$KERNEL.img ~/pikernel/boot/$KERNEL-backup.img
sudo cp arch/arm/boot/zImage ~/pikernel/boot/$KERNEL.img
sudo cp arch/arm/boot/dts/*.dtb ~/pikernel/boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* ~/pikernel/boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README ~/pikernel/boot/overlays/
sudo wget http://palosaari.fi/linux/v4l-dvb/firmware/MN88472/02/latest/dvb-demod-mn88472-02.fw -O ~/pikernel/rootfs/lib/firmware/dvb-demod-mn88472-02.fw
sync
sudo umount ~/pikernel/boot
sudo umount ~/pikernel/rootfs
sudo losetup -d /dev/loop0

You will now have a modified image with kernel 4.16.18-v7+ and the demodulator firmware.

[email protected]:~ $ uname -a
Linux raspberrypi 4.16.18-v7+ #1 SMP Tue Aug 28 19:18:56 BST 2018 armv7l GNU/Linux
[email protected]:~ $ lsusb
Bus 001 Device 004: ID 045e:02d5 Microsoft Corp. Xbox One Digital TV Tuner
Bus 001 Device 005: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Now write to your SD card. This assumes your card reader appears at /dev/mmcblk0, like mine, otherwise change the path.

sudo dcfldd if=~/2018-06-27-raspbian-stretch-lite.img of=/dev/mmcblk0
sync

Remove the card and put it in to the Pi.

Install tvheadend (now remoted to the Pi)

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 stable-4.2" | sudo tee /etc/apt/sources.list.d/tvheadend.list
sudo apt-get update
sudo apt-get --force-yes install tvheadend
sudo apt-get clean

Prevent the kernel from being 'updated' back to 4.14 (thanks Zadolux)
sudo apt-mark hold raspberrypi-bootloader && sudo apt-mark hold raspberrypi-kernel

This works for me on a Pi 3+, but the same image should work on Pi 2, 3, and CM3.
Bear in mind the 4.16 Pi Kernel is WIP and you may encounter issues

Potential issue with networking instability; I had issues with network traffic stalling (SMB, SSH, SCP, watching recordings etc). Adding the following to /etc/rc.local fixed this for me, it uses the CPU for network-based checksums instead of offloading this to the ethernet adapter hardware:
ethtool --offload eth0 rx off tx off
...where eth0 is the name of the network adapter.

Also, I have a premade image (375MB) of the above if anyone has somewhere I can put it.
The forum implied I can attach a file up to 488MB, but that might not actually be too welcome.

[EDIT] 2018-10-07 Added build-essential and libssl-dev as required packages prior to building

[EDIT] 2018-10-27 Added a note about networking issues and disabling hardware-based checksumming.

[EDIT] 2018-10-29 Added instructions to prevent the kernel being reverted to 4.14 by updating.

tvh.png (13.2 KB) tvh.png

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

OR, you could use LibreELEC for the Pi, where it works OOTB. Alternatively, if you have a 4.17 or above kernel system, I believe it is now automatically supported.

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

I did try the LibreELEC build which worked, but I wanted it in a minimal Raspbian image as I want to run it headless with a bunch of other things on there as well.

Paul Griffiths and Josu Lazkano on this thread also wanted to be able to build this, Paul for his VPN.

It's all options... whatever works best for people :)

It works on the 4.16 branch from the RPi kernel repo, I didn't modify anything or add patches, unless you count the firmware image.

RE: Xbox One DVB-T/T2/C tuner - Added by Petr Andrysek almost 2 years ago

Here is image with 4.16 kernel. Many thanks to Imola Dan for instructions. Xbox tuner works "out of the box".

https://drive.google.com/file/d/1qBuOpF_ih-nbUjk1YJhfZ4YqT3al6NlZ/view?usp=sharing

Tested on RPI2.

RE: Xbox One DVB-T/T2/C tuner - Added by Josu Lazkano almost 2 years ago

Petr Andrysek wrote:

Here is image with 4.16 kernel. Many thanks to Imola Dan for instructions. Xbox tuner works "out of the box".

https://drive.google.com/file/d/1qBuOpF_ih-nbUjk1YJhfZ4YqT3al6NlZ/view?usp=sharing

Tested on RPI2.

I try the image, and it has 4.14 kernel:

# uname -a
Linux raspberrypi 4.14.50+ #1122 Tue Jun 19 12:21:21 BST 2018 armv6l GNU/Linux

Regards.

RE: Xbox One DVB-T/T2/C tuner - Added by Petr Andrysek almost 2 years ago

I've downloaded the image from G drive and it is 4.16:

[email protected]:~ $ uname -a
Linux raspberrypi 4.16.18-v7+ #1 SMP Thu Sep 27 10:51:48 CEST 2018 armv7l GNU/Linux

RE: Xbox One DVB-T/T2/C tuner - Added by Josu Lazkano almost 2 years ago

Hello,

My Pi is Model B Revision 2.0.

I upgrade all the system, but similar version:

# uname -a
Linux raspberrypi 4.14.70+ #1144 Tue Sep 18 17:20:50 BST 2018 armv6l GNU/Linux

Kind regards.

RE: Xbox One DVB-T/T2/C tuner - Added by Petr Andrysek almost 2 years ago

Hello, I am affraid I do not know where is the problem :( img from my google drive has 4.16 kernel. I downloaded and flashed it to SD card and I am 100% sure it is 4.16.

RE: Xbox One DVB-T/T2/C tuner - Added by Imola Dan almost 2 years ago

One thing I forgot about this... apt-get update will 'update' you back to the 4.14 kernel (!) :P

Something to watch out for... things will appear to still be ok until you notice recordings aren't happening and your tuners are missing in tvh.

RE: Xbox One DVB-T/T2/C tuner - Added by Rich 11 almost 2 years ago

I have this tuner running on an rpi zero w and it seems to work OK regards signal strength but I occasionally get this:

[ 2067.606526] systemd-journald201: Sent WATCHDOG=1 notification.
[ 2127.608381] systemd-journald201: Sent WATCHDOG=1 notification.
[ 2190.756496] usb usb1-port1: disabled by hub (EMI?), re-enabling...
[ 2190.756534] usb 1-1: USB disconnect, device number 2
[ 2190.758346] Unable to handle kernel NULL pointer dereference at virtual address 00000014
[ 2190.771079] pgd = 5771fbb4
[ 2190.775869] [00000014] *pgd=00000000
[ 2190.781660] Internal error: Oops: 5 [#1] ARM
[ 2190.788106] Modules linked in: rfcomm bnep cmac sha256_generic arc4 ecb md4 md5 hmac hci_uart btbcm serdev nls_utf8 bluetooth cifs ecdh_generic ccm tda18250 mn88472 dvb_usb_dib0700 dib9000 dib7000m dib0090 dib0070 dib3000mc dibx000_common dvb_usb dvb_core snd_bcm2835(C) snd_pcm snd_timer snd sg uio_pdrv_genirq uio i2c_dev ip_tables x_tables ipv6 iscsi_tcp libiscsi_tcp libiscsi brcmfmac cfg80211 rfkill brcmutil fixed
[ 2190.838804] CPU: 0 PID: 660 Comm: kdvb-ad-0-fe-0 Tainted: G C 4.18.14+ #1153
[ 2190.851730] Hardware name: BCM2835
[ 2190.857370] PC is at mn88472_sleep+0x24/0x60 [mn88472]
[ 2190.864829] LR is at dvb_usb_fe_sleep+0x3c/0x58 [dvb_usb]
[ 2190.872552] pc : [<bf4260b8>] lr : [<bf3c6350>] psr: a0000013
[ 2190.881131] sp : d8139ef0 ip : d8139f08 fp : d8139f04
[ 2190.888606] r10: 00000000 r9 : c0a7dcf8 r8 : d8138000
[ 2190.895990] r7 : d8672800 r6 : d867299c r5 : d73b09f8 r4 : 00000000
[ 2190.904786] r3 : d7d40e00 r2 : 00000030 r1 : 0000000c r0 : db0de818
[ 2190.913508] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 2190.922868] Control: 00c5387d Table: 1b354008 DAC: 00000055
[ 2190.930855] Process kdvb-ad-0-fe-0 (pid: 660, stack limit = 0x43e7bc1b)
[ 2190.939794] Stack: (0xd8139ef0 to 0xd813a000)
[ 2190.946442] 9ee0: bf426094 db0de818 d8139f1c d8139f08
[ 2190.959076] 9f00: bf3c6350 bf4260a0 db0de818 00000001 d8139f7c d8139f20 bf3aa760 bf3c6320
[ 2190.971662] 9f20: 201d5818 60000013 db0dea54 d8672988 00000040 00000000 00000000 dbb79bc0
[ 2190.984222] 9f40: c005821c d8139f44 d8139f44 1269cd2f c00423ec d8f39c00 db121ce0 00000000
[ 2190.996828] 9f60: db0de818 bf3aa4b0 d8f39c18 d9427cb0 d8139fac d8139f80 c0042b58 bf3aa4bc
[ 2191.009678] 9f80: ffffffff db121ce0 c0042a3c 00000000 00000000 00000000 00000000 00000000
[ 2191.022719] 9fa0: 00000000 d8139fb0 c00090ac c0042a48 00000000 00000000 00000000 00000000
[ 2191.035929] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 2191.049294] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 2191.062852] [<bf4260b8>] (mn88472_sleep [mn88472]) from [<bf3c6350>] (dvb_usb_fe_sleep+0x3c/0x58 [dvb_usb])
[ 2191.078309] [<bf3c6350>] (dvb_usb_fe_sleep [dvb_usb]) from [<bf3aa760>] (dvb_frontend_thread+0x2b0/0x4ec [dvb_core])
[ 2191.094680] [<bf3aa760>] (dvb_frontend_thread [dvb_core]) from [<c0042b58>] (kthread+0x11c/0x158)
[ 2191.109292] [<c0042b58>] (kthread) from [<c00090ac>] (ret_from_fork+0x14/0x28)
[ 2191.119465] Exception stack(0xd8139fb0 to 0xd8139ff8)
[ 2191.127309] 9fa0: 00000000 00000000 00000000 00000000
[ 2191.141018] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 2191.154667] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 2191.164077] Code: e5903228 e3a0100c e3a02030 e593406c (e5940014)
[ 2191.173118] ---[ end trace 2b59af1d8eeea781 ]---
[ 2191.784379] usb 1-1: dvb_frontend_stop: warning: thread 6e6ae6d1 won't exit

I'm running 4.18.14+ which is obtainable from the rpi-update tool

sudo BRANCH=next rpi-update

RE: Xbox One DVB-T/T2/C tuner - Added by Imola Dan almost 2 years ago

Not sure, sorry. It could just be the USB driver in 4.18 not quite being there yet. If it was an insufficient power supply then you'd probably have undervoltage warnings logged as well.

Self-built 4.16 has still been mostly OK for me on a Pi3; the only issue being occasional instability with network traffic (affected Samba, SSH, SCP, watching recordings through TVH etc).
Adding the following to /etc/rc.local fixed this for me:
ethtool --offload eth0 rx off tx off
Where eth0 is the name of the ethernet device. Check with ifconfig.
This does network checksumming on the CPU instead of offloading it to the network hardware; again, possibly drivers which aren't quite there yet.

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

Imola Dan wrote:

One thing I forgot about this... apt-get update will 'update' you back to the 4.14 kernel (!) :P

Found a little workaround for it:
sudo apt-mark hold raspberrypi-bootloader && sudo apt-mark hold raspberrypi-kernel

It should then stop updating the bootloader/kernel - executing apt update and apt upgrade works without "destroying" tvheadend.
Thanks for the image!

RE: Xbox One DVB-T/T2/C tuner - Added by Imola Dan almost 2 years ago

Zadolux S. wrote:

Found a little workaround for it:
sudo apt-mark hold raspberrypi-bootloader && sudo apt-mark hold raspberrypi-kernel

It should then stop updating the bootloader/kernel - executing apt update and apt upgrade works without "destroying" tvheadend.
Thanks for the image!

Thanks, I've added a note for that to the big post above :)

RE: Xbox One DVB-T/T2/C tuner - Added by Xavier Yazbeck over 1 year ago

So has anybody gotten this working in something like linux mint 18.3?
I've tried most of the stuff here, with no luck, I then tried manually moving the dvb-demod-mn88472-02.fw file to /lib/firmware, but for some reason my computer sees this specific .fw file out of all the others to be an image file...
(I tried it on my Rasberry pi B and it worked out of the box, but i don't like the fact that the ethernet port and the usb ports share the same chipset)

(326-350/393)