This documentation applies only Turris OS 3.x that is no longer present in newly sold routers. The new documentation is located at https://docs.turris.cz/.
With Digital Video Broadcasting tuners you can stream and share your TV and radio on your LAN network and even you can choose your favorite channel and stream it outside your network.
Before we start I would like to tell you that only with one tuner you can watch multiple free channels in ONE MUX or one PAID channel from ALL MUXes. If you need to watch multiple channels simultaneously you need to have more tuners.
That's all that you want to know. Since Turris OS 2.5 it's necessary to install modules to get the working tuner on your setup.
Before we buy a tuner (eh… maybe too late)?
If not, please read it, because it contains important information. What we need to know?
First, you need to know, which type of tuner do you want to use and if it is supported in Linux, which we can find on LinuxTV.org.
If it is too late let's go on directly to this step How to check if tuner is supported in the GNU/Linux.
Why we want to use DVB tuner? Why we won't use set-top-box?
No one is telling you that you can't use set-top-box, but often firmware in set-top boxes are old (and also could be broken) and you can't add features to it, because it is closed source and manufacturers won't add additional features to it.
For example, I met case, where set-top-box was provided by the provider and there was USB port. I was saying something like: “Oh great! I can watch my movies from HDD”, but the reality was different. I can not use it, because the USB port is only for service purposes.
Also, the other reason is you can't play it anywhere as you want, because you need to move the set-top box with you and have there also signal from coax cable/antenna/satellite.
With this solution, you can use this amazing media player Kodi (When you have a larger library I really recommend to use it with Plex or Emby, because you don't need to pay for a subscription), which is available on all platforms and also on some Smart TVs and you can use it on Steam Link, but before installing Kodi you'll need to install TVHeaded with this commands on the Turris router
opkg update opkg install tvheadend
Most common in Europe are
We can split our article into four parts
What it means? Some DVB tuners are really unique and not many users have them and use them.
Supported/verified tuners and also if you want to recommend or say something about your tuner, please leave a note here:
As you can see TurrisOS supports only a few tuners, which are common and easy to buy. If your tuner runs on Linux that means it is supported on Linux and you can compile a kernel with required modules. How to get kernel module included in next Turris OS version?
It can happen that your tuner is non-labeled and you don't remember brand and type of your tuner. Don't worry and in this article, we'll help you find the necessary details.
Let's plug it into your router and now you need to use SSH connection
(you can also use commands in LuCI
)
When you're connected in your router write or copy&paste
first:
lsusb
and now we can see which ID has our tuner and even which manufacturer made it and how it called.
for example:
Bus 001 Device 003: ID 0b48:300d TechnoTrend AG TT-connect CT-3650 CI
Now we know brand and type of tuner. We will copy brand and type into the clipboard and now you will need to go to this site: LinuxTV.org and paste it to search field. Usually, you will find your tuner there and that means tuner, which you have is supported by Linux and also you can find there if it is necessary to download firmware. If your tuner isn't here I'm afraid that it isn't supported in Linux. Before you give it up you can search on Google.
In next step, we will check if there is loaded module (driver) on Turris OS
lsusb -t
and then you can see:
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=dvb_usb_ttusb2, 480M
From the output, we could recognize that we have a driver, but usually it doesn't mean that it all set.
You can miss firmware. You will need to open syslog, which is located in /var/log/messages
If everything is prepared it will tell you something similar like this:
[ 490.281564] dvb-usb: Technotrend TT-connect CT-3650 successfully initialized and connected.
Now you can skip this whole article and go to installing TVheadend to use tuner: (probably https://www.turris.cz/doc/cs/public/tvheadend_lxc ? )
If it doesn't say that it was connected it is possible that you miss some firmware. Let's check it out!
First, it is better to go to this site https://www.linuxtv.org and check if tuner requires firmware. If you didn't find the correct information, let's check it manually.
When you have missing firmware you will see similar output as I do: in messages (syslog)
[ 281.406071] usb 2-2: Direct firmware load for dvb-usb-terratec-h7-az6007.fw failed with error -2 [ 281.406076] usb 2-2: dvb_usb_v2: Did not find the firmware file 'dvb-usb-terratec-h7-az6007.fw'. Please see linux/Documentation/dvb/ for more details on firmware-problems. Status -2
So in my case, I was forced download dvb-usb-terratec-h7-az6007.fw
from some page, which was linked on LinuxTV.org
Unfortunately some tuners don't have any information about missing firmware and in this case, you need to move to this step: How to check if tuner is supported in the GNU/Linux.
#####How to find out?
#####I will show one way (there exist many ways how to find out)
We don't have module even with firmware doesn't work! Don't give it up. We can do it together. Let's check it if it is working on Linux!
It is really necessary to try it on Ubuntu or other distributions and you will need same or newer kernel. Why? Sometimes it can happen that maintainer of driver decided to provide no support for it. Also, he could rewrite older code and also fix some old bugs.
Anyway, it's better to use Ubuntu live or something similar. It should be a new system, because we need to find, which modules are required by DVB tuner.
First, you will need to open terminal and write there:
lsmod
(don't clear it and don't close it, but you can use new terminal)
and you will see this output
ubuntu@ubuntu:~$ lsmod Module Size Used by drbg 32768 1 ansi_cprng 16384 0 ctr 16384 1 ccm 20480 1 arc4 16384 2 iwldvm 233472 0 mac80211 737280 1 iwldvm snd_hda_codec_realtek 81920 1 snd_hda_codec_generic 77824 1 snd_hda_codec_realtek snd_hda_intel 36864 3 iwlwifi 200704 1 iwldvm snd_hda_codec 135168 3 snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel snd_hda_core 73728 4 snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel coretemp 16384 0 snd_hwdep 16384 1 snd_hda_codec snd_pcm 106496 3 snd_hda_codec,snd_hda_intel,snd_hda_core cfg80211 565248 3 iwlwifi,mac80211,iwldvm input_leds 16384 0 joydev 20480 0 snd_seq_midi 16384 0 serio_raw 16384 0 snd_seq_midi_event 16384 1 snd_seq_midi snd_rawmidi 32768 1 snd_seq_midi lpc_ich 24576 0 snd_seq 69632 2 snd_seq_midi_event,snd_seq_midi snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi snd_timer 32768 2 snd_pcm,snd_seq ite_cir 28672 0 snd 81920 16 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device rc_core 28672 1 ite_cir mac_hid 16384 0 soundcore 16384 1 snd shpchp 36864 0 parport_pc 32768 0 ppdev 20480 0 lp 20480 0 parport 49152 3 lp,ppdev,parport_pc autofs4 40960 2 squashfs 49152 1 overlay 49152 1 nls_iso8859_1 16384 1 dm_mirror 24576 0 dm_region_hash 24576 1 dm_mirror dm_log 20480 2 dm_region_hash,dm_mirror uas 24576 0 usb_storage 69632 2 uas i915 1208320 5 psmouse 126976 0 ahci 36864 0 libahci 32768 1 ahci i2c_algo_bit 16384 1 i915 drm_kms_helper 139264 1 i915 syscopyarea 16384 1 drm_kms_helper r8169 81920 0 sysfillrect 16384 1 drm_kms_helper sysimgblt 16384 1 drm_kms_helper mii 16384 1 r8169 fb_sys_fops 16384 1 drm_kms_helper drm 360448 7 i915,drm_kms_helper fjes 28672 0 video 40960 1 i915
Make sure you have a working internet connection and plug there your tuner and it's preferred to do in a new terminal.
lsmod
and now you can see this:
ubuntu@ubuntu:~$ lsmod Module Size Used by dvb_usb_az6007 20480 0 cypress_firmware 16384 1 dvb_usb_az6007 dvb_usb_v2 36864 1 dvb_usb_az6007 dvb_core 122880 2 dvb_usb_v2,dvb_usb_az6007 drbg 32768 1 ansi_cprng 16384 0 ctr 16384 1 ccm 20480 1 arc4 16384 2 iwldvm 233472 0 mac80211 737280 1 iwldvm snd_hda_codec_realtek 81920 1 snd_hda_codec_generic 77824 1 snd_hda_codec_realtek snd_hda_intel 36864 3 iwlwifi 200704 1 iwldvm snd_hda_codec 135168 3 snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel snd_hda_core 73728 4 snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel coretemp 16384 0 snd_hwdep 16384 1 snd_hda_codec snd_pcm 106496 3 snd_hda_codec,snd_hda_intel,snd_hda_core cfg80211 565248 3 iwlwifi,mac80211,iwldvm input_leds 16384 0 joydev 20480 0 snd_seq_midi 16384 0 serio_raw 16384 0 snd_seq_midi_event 16384 1 snd_seq_midi snd_rawmidi 32768 1 snd_seq_midi lpc_ich 24576 0 snd_seq 69632 2 snd_seq_midi_event,snd_seq_midi snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi snd_timer 32768 2 snd_pcm,snd_seq ite_cir 28672 0 snd 81920 16 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device rc_core 28672 3 dvb_usb_v2,dvb_usb_az6007,ite_cir mac_hid 16384 0 soundcore 16384 1 snd shpchp 36864 0 parport_pc 32768 0 ppdev 20480 0 lp 20480 0 parport 49152 3 lp,ppdev,parport_pc autofs4 40960 2 squashfs 49152 1 overlay 49152 1 nls_iso8859_1 16384 1 dm_mirror 24576 0 dm_region_hash 24576 1 dm_mirror dm_log 20480 2 dm_region_hash,dm_mirror uas 24576 0 usb_storage 69632 2 uas i915 1208320 5 psmouse 126976 0 ahci 36864 0 libahci 32768 1 ahci i2c_algo_bit 16384 1 i915 drm_kms_helper 139264 1 i915 syscopyarea 16384 1 drm_kms_helper r8169 81920 0 sysfillrect 16384 1 drm_kms_helper sysimgblt 16384 1 drm_kms_helper mii 16384 1 r8169 fb_sys_fops 16384 1 drm_kms_helper drm 360448 7 i915,drm_kms_helper fjes 28672 0 video 40960 1 i915
Now you will need to do difference between these two outputs. And if you want you can also use dmesg
to check if there's required firmware.
You can see this difference:
dvb_usb_az6007 20480 0 cypress_firmware 16384 1 dvb_usb_az6007 dvb_usb_v2 36864 1 dvb_usb_az6007 dvb_core 122880 2 dvb_usb_v2,dvb_usb_az6007 rc_core 28672 3 dvb_usb_v2,dvb_usb_az6007,ite_cir
Let's check packages in the repository for
Turris 1.x
Turris Omnia
and look if the package (driver) is available on TurrisOS and you can install it with following commands:
opkg update opkg install kmod-dvb-usb-az6007
but also don't forget to install other dependencies from difference output.
If something is missing or it isn't supported at all you need to go to this step: How to check if the tuner is supported in Linux and how to ask to add support to TurrisOS?
RC packages are for remote controller, which you can't use with the router.
Why you couldn't try it on Windows?
I know that it would be easier for you, but we need to know if there exist support for your tuner. Sometimes it could happen that manufacturer doesn't support Linux, which is bad, but you can try to contact him to add support for Linux, which could take the time or he will tell you that he is so sorry that he won't do it. I know that it can be hard and that's why there's community, which can do their job - when there's no support at all. I'm really afraid in this case you're forced to use it on a supported system. When it isn't working on supported system maybe your is broken and it is time to buy a new tuner. At the beginning of this article, I told you, how to choose tuner. Don't forget it. The manufacturer needs to support GNU/Linux and also provide drivers to the upstream. In that case, your tuner can live forever!
We figured it out that your tuner is running on Linux, but we don't have drivers for your tuner.
Which you can see by this output:
in syslog (/var/log/messages
)
[143291.169246] usb 1-1.2: new high-speed USB device number 8 using fsl-ehci
and lsusb -t
tell you this:
|__ Port 2: Dev 6, If 0, class="Vendor" Specific Class, Driver=, 480M
If you do not hurry and will wait until we add required package, please send us difference output to tech.support@turris.cz and don't forget to include your tuner name and type.