162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciFAQ 462306a36Sopenharmony_ci=== 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci.. note:: 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci 1. With Digital TV, a single physical channel may have different 962306a36Sopenharmony_ci contents inside it. The specs call each one as a *service*. 1062306a36Sopenharmony_ci This is what a TV user would call "channel". So, in order to 1162306a36Sopenharmony_ci avoid confusion, we're calling *transponders* as the physical 1262306a36Sopenharmony_ci channel on this FAQ, and *services* for the logical channel. 1362306a36Sopenharmony_ci 2. The LinuxTV community maintains some Wiki pages with contain 1462306a36Sopenharmony_ci a lot of information related to the media subsystem. If you 1562306a36Sopenharmony_ci don't find an answer for your needs here, it is likely that 1662306a36Sopenharmony_ci you'll be able to get something useful there. It is hosted 1762306a36Sopenharmony_ci at: 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci https://www.linuxtv.org/wiki/ 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciSome very frequently asked questions about Linux Digital TV support 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci1. The signal seems to die a few seconds after tuning. 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci It's not a bug, it's a feature. Because the frontends have 2662306a36Sopenharmony_ci significant power requirements (and hence get very hot), they 2762306a36Sopenharmony_ci are powered down if they are unused (i.e. if the frontend device 2862306a36Sopenharmony_ci is closed). The ``dvb-core`` module parameter ``dvb_shutdown_timeout`` 2962306a36Sopenharmony_ci allow you to change the timeout (default 5 seconds). Setting the 3062306a36Sopenharmony_ci timeout to 0 disables the timeout feature. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci2. How can I watch TV? 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci Together with the Linux Kernel, the Digital TV developers support 3562306a36Sopenharmony_ci some simple utilities which are mainly intended for testing 3662306a36Sopenharmony_ci and to demonstrate how the DVB API works. This is called DVB v5 3762306a36Sopenharmony_ci tools and are grouped together with the ``v4l-utils`` git repository: 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci https://git.linuxtv.org/v4l-utils.git/ 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci You can find more information at the LinuxTV wiki: 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci https://www.linuxtv.org/wiki/index.php/DVBv5_Tools 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci The first step is to get a list of services that are transmitted. 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci This is done by using several existing tools. You can use 4862306a36Sopenharmony_ci for example the ``dvbv5-scan`` tool. You can find more information 4962306a36Sopenharmony_ci about it at: 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci https://www.linuxtv.org/wiki/index.php/Dvbv5-scan 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci There are some other applications like ``w_scan`` [#]_ that do a 5462306a36Sopenharmony_ci blind scan, trying hard to find all possible channels, but 5562306a36Sopenharmony_ci those consumes a large amount of time to run. 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci .. [#] https://www.linuxtv.org/wiki/index.php/W_scan 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci Also, some applications like ``kaffeine`` have their own code 6062306a36Sopenharmony_ci to scan for services. So, you don't need to use an external 6162306a36Sopenharmony_ci application to obtain such list. 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci Most of such tools need a file containing a list of channel 6462306a36Sopenharmony_ci transponders available on your area. So, LinuxTV developers 6562306a36Sopenharmony_ci maintain tables of Digital TV channel transponders, receiving 6662306a36Sopenharmony_ci patches from the community to keep them updated. 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci This list is hosted at: 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci https://git.linuxtv.org/dtv-scan-tables.git 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci And packaged on several distributions. 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci Kaffeine has some blind scan support for some terrestrial standards. 7562306a36Sopenharmony_ci It also relies on DTV scan tables, although it contains a copy 7662306a36Sopenharmony_ci of it internally (and, if requested by the user, it will download 7762306a36Sopenharmony_ci newer versions of it). 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci If you are lucky you can just use one of the supplied channel 8062306a36Sopenharmony_ci transponders. If not, you may need to seek for such info at 8162306a36Sopenharmony_ci the Internet and create a new file. There are several sites with 8262306a36Sopenharmony_ci contains physical channel lists. For cable and satellite, usually 8362306a36Sopenharmony_ci knowing how to tune into a single channel is enough for the 8462306a36Sopenharmony_ci scanning tool to identify the other channels. On some places, 8562306a36Sopenharmony_ci this could also work for terrestrial transmissions. 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci Once you have a transponders list, you need to generate a services 8862306a36Sopenharmony_ci list with a tool like ``dvbv5-scan``. 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci Almost all modern Digital TV cards don't have built-in hardware 9162306a36Sopenharmony_ci MPEG-decoders. So, it is up to the application to get a MPEG-TS 9262306a36Sopenharmony_ci stream provided by the board, split it into audio, video and other 9362306a36Sopenharmony_ci data and decode. 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci3. Which Digital TV applications exist? 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci Several media player applications are capable of tuning into 9862306a36Sopenharmony_ci digital TV channels, including Kaffeine, Vlc, mplayer and MythTV. 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci Kaffeine aims to be very user-friendly, and it is maintained 10162306a36Sopenharmony_ci by one of the Kernel driver developers. 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci A comprehensive list of those and other apps can be found at: 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci https://www.linuxtv.org/wiki/index.php/TV_Related_Software 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci Some of the most popular ones are linked below: 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci https://kde.org/applications/multimedia/org.kde.kaffeine 11062306a36Sopenharmony_ci KDE media player, focused on Digital TV support 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci https://www.linuxtv.org/vdrwiki/index.php/Main_Page 11362306a36Sopenharmony_ci Klaus Schmidinger's Video Disk Recorder 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci https://linuxtv.org/downloads and https://git.linuxtv.org/ 11662306a36Sopenharmony_ci Digital TV and other media-related applications and 11762306a36Sopenharmony_ci Kernel drivers. The ``v4l-utils`` package there contains 11862306a36Sopenharmony_ci several swiss knife tools for using with Digital TV. 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci http://sourceforge.net/projects/dvbtools/ 12162306a36Sopenharmony_ci Dave Chapman's dvbtools package, including 12262306a36Sopenharmony_ci dvbstream and dvbtune 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci http://www.dbox2.info/ 12562306a36Sopenharmony_ci LinuxDVB on the dBox2 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci http://www.tuxbox.org/ 12862306a36Sopenharmony_ci the TuxBox CVS many interesting DVB applications and the dBox2 12962306a36Sopenharmony_ci DVB source 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci http://www.nenie.org/misc/mpsys/ 13262306a36Sopenharmony_ci MPSYS: a MPEG2 system library and tools 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci https://www.videolan.org/vlc/index.pt.html 13562306a36Sopenharmony_ci Vlc 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci http://mplayerhq.hu/ 13862306a36Sopenharmony_ci MPlayer 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci http://xine.sourceforge.net/ and http://xinehq.de/ 14162306a36Sopenharmony_ci Xine 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci http://www.mythtv.org/ 14462306a36Sopenharmony_ci MythTV - analog TV and digital TV PVR 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci http://dvbsnoop.sourceforge.net/ 14762306a36Sopenharmony_ci DVB sniffer program to monitor, analyze, debug, dump 14862306a36Sopenharmony_ci or view dvb/mpeg/dsm-cc/mhp stream information (TS, 14962306a36Sopenharmony_ci PES, SECTION) 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci4. Can't get a signal tuned correctly 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci That could be due to a lot of problems. On my personal experience, 15462306a36Sopenharmony_ci usually TV cards need stronger signals than TV sets, and are more 15562306a36Sopenharmony_ci sensitive to noise. So, perhaps you just need a better antenna or 15662306a36Sopenharmony_ci cabling. Yet, it could also be some hardware or driver issue. 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ci For example, if you are using a Technotrend/Hauppauge DVB-C card 15962306a36Sopenharmony_ci *without* analog module, you might have to use module parameter 16062306a36Sopenharmony_ci adac=-1 (dvb-ttpci.o). 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci Please see the FAQ page at linuxtv.org, as it could contain some 16362306a36Sopenharmony_ci valuable information: 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci https://www.linuxtv.org/wiki/index.php/FAQ_%26_Troubleshooting 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci If that doesn't work, check at the linux-media ML archives, to 16862306a36Sopenharmony_ci see if someone else had a similar problem with your hardware 16962306a36Sopenharmony_ci and/or digital TV service provider: 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci https://lore.kernel.org/linux-media/ 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci If none of this works, you can try sending an e-mail to the 17462306a36Sopenharmony_ci linux-media ML and see if someone else could shed some light. 17562306a36Sopenharmony_ci The e-mail is linux-media AT vger.kernel.org. 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci5. The dvb_net device doesn't give me any packets at all 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci Run ``tcpdump`` on the ``dvb0_0`` interface. This sets the interface 18062306a36Sopenharmony_ci into promiscuous mode so it accepts any packets from the PID 18162306a36Sopenharmony_ci you have configured with the ``dvbnet`` utility. Check if there 18262306a36Sopenharmony_ci are any packets with the IP addr and MAC addr you have 18362306a36Sopenharmony_ci configured with ``ifconfig`` or with ``ip addr``. 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci If ``tcpdump`` doesn't give you any output, check the statistics 18662306a36Sopenharmony_ci which ``ifconfig`` or ``netstat -ni`` outputs. (Note: If the MAC 18762306a36Sopenharmony_ci address is wrong, ``dvb_net`` won't get any input; thus you have to 18862306a36Sopenharmony_ci run ``tcpdump`` before checking the statistics.) If there are no 18962306a36Sopenharmony_ci packets at all then maybe the PID is wrong. If there are error packets, 19062306a36Sopenharmony_ci then either the PID is wrong or the stream does not conform to 19162306a36Sopenharmony_ci the MPE standard (EN 301 192, http://www.etsi.org/). You can 19262306a36Sopenharmony_ci use e.g. ``dvbsnoop`` for debugging. 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci6. The ``dvb_net`` device doesn't give me any multicast packets 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci Check your routes if they include the multicast address range. 19762306a36Sopenharmony_ci Additionally make sure that "source validation by reversed path 19862306a36Sopenharmony_ci lookup" is disabled:: 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci $ "echo 0 > /proc/sys/net/ipv4/conf/dvb0/rp_filter" 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci7. What are all those modules that need to be loaded? 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci In order to make it more flexible and support different hardware 20562306a36Sopenharmony_ci combinations, the media subsystem is written on a modular way. 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ci So, besides the Digital TV hardware module for the main chipset, 20862306a36Sopenharmony_ci it also needs to load a frontend driver, plus the Digital TV 20962306a36Sopenharmony_ci core. If the board also has remote controller, it will also 21062306a36Sopenharmony_ci need the remote controller core and the remote controller tables. 21162306a36Sopenharmony_ci The same happens if the board has support for analog TV: the 21262306a36Sopenharmony_ci core support for video4linux need to be loaded. 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci The actual module names are Linux-kernel version specific, as, 21562306a36Sopenharmony_ci from time to time, things change, in order to make the media 21662306a36Sopenharmony_ci support more flexible. 217