Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: docs: update Digital TV faq.rst

This file contains lots of obsoleted information. Update it
to reflect the current status and tools used by Digital TV
users and add pointers to the current locations and to
LinuxTV wiki pages.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

+143 -96
+143 -96
Documentation/admin-guide/media/faq.rst
··· 5 5 6 6 .. note:: 7 7 8 - This documentation is outdated. Please check at the DVB wiki 9 - at https://linuxtv.org/wiki for more updated info. 8 + 1. With Digital TV, a single physical channel may have different 9 + contents inside it. The specs call each one as a *service*. 10 + This is what a TV user would call "channel". So, in order to 11 + avoid confusion, we're calling *transponders* as the physical 12 + channel on this FAQ, and *services* for the logical channel. 13 + 2. The LinuxTV community maintains some Wiki pages with contain 14 + a lot of information related to the media subsystem. If you 15 + don't find an answer for your needs here, it is likely that 16 + you'll be able to get something useful there. It is hosted 17 + at: 10 18 11 - Some very frequently asked questions about linuxtv-dvb 19 + https://www.linuxtv.org/wiki/ 20 + 21 + Some very frequently asked questions about Linux Digital TV support 12 22 13 23 1. The signal seems to die a few seconds after tuning. 14 24 15 25 It's not a bug, it's a feature. Because the frontends have 16 26 significant power requirements (and hence get very hot), they 17 27 are powered down if they are unused (i.e. if the frontend device 18 - is closed). The dvb-core.o module parameter "dvb_shutdown_timeout" 28 + is closed). The ``dvb-core`` module parameter ``dvb_shutdown_timeout`` 19 29 allow you to change the timeout (default 5 seconds). Setting the 20 30 timeout to 0 disables the timeout feature. 21 31 22 32 2. How can I watch TV? 23 33 24 - The driver distribution includes some simple utilities which 25 - are mainly intended for testing and to demonstrate how the 26 - DVB API works. 34 + Together with the Linux Kernel, the Digital TV developers support 35 + some simple utilities which are mainly intended for testing 36 + and to demonstrate how the DVB API works. This is called DVB v5 37 + tools and are grouped together with the ``v4l-utils`` git repository: 27 38 28 - Depending on whether you have a DVB-S, DVB-C or DVB-T card, use 29 - apps/szap/szap, czap or tzap. You must supply a channel list 30 - in ~/.[sct]zap/channels.conf. If you are lucky you can just copy 31 - one of the supplied channel lists, or you can create a new one 32 - by running apps/scan/scan. If you run scan on an unknown network 33 - you might have to supply some start data in apps/scan/initial.h. 39 + https://git.linuxtv.org/v4l-utils.git/ 34 40 35 - If you have a card with a built-in hardware MPEG-decoder the 36 - drivers create a video4linux device (/dev/v4l/video0) which 37 - you can use to watch TV with any v4l application. xawtv is known 38 - to work. Note that you cannot change channels with xawtv, you 39 - have to zap using [sct]zap. If you want a nice application for 40 - TV watching and record/playback, have a look at VDR. 41 + You can find more information at the LinuxTV wiki: 41 42 42 - If your card does not have a hardware MPEG decoder you need 43 - a software MPEG decoder. Mplayer or xine are known to work. 44 - Newsflash: MythTV also has DVB support now. 45 - Note: Only very recent versions of Mplayer and xine can decode. 46 - MPEG2 transport streams (TS) directly. Then, run 47 - '[sct]zap channelname -r' in one xterm, and keep it running, 48 - and start 'mplayer - < /dev/dvb/adapter0/dvr0' or 49 - 'xine stdin://mpeg2 < /dev/dvb/adapter0/dvr0' in a second xterm. 50 - That's all far from perfect, but it seems no one has written 51 - a nice DVB application which includes a builtin software MPEG 52 - decoder yet. 43 + https://www.linuxtv.org/wiki/index.php/DVBv5_Tools 53 44 54 - Newsflash: Newest xine directly supports DVB. Just copy your 55 - channels.conf to ~/.xine and start 'xine dvb://', or select 56 - the DVB button in the xine GUI. Channel switching works using the 57 - numpad pgup/pgdown (NP9 / NP3) keys to scroll through the channel osd 58 - menu and pressing numpad-enter to switch to the selected channel. 45 + The first step is to get a list of services that are transmitted. 59 46 60 - Note: Older versions of xine and mplayer understand MPEG program 61 - streams (PS) only, and can be used in conjunction with the 62 - ts2ps tool from the Metzler Brother's dvb-mpegtools package. 47 + This is done by using several existing tools. You can use 48 + for example the ``dvbv5-scan`` tool. You can find more information 49 + about it at: 63 50 64 - 3. Which other DVB applications exist? 51 + https://www.linuxtv.org/wiki/index.php/Dvbv5-scan 65 52 66 - http://www.cadsoft.de/people/kls/vdr/ 53 + There are some other applications like ``w_scan`` [#]_ that do a 54 + blind scan, trying hard to find all possible channels, but 55 + those consumes a large amount of time to run. 56 + 57 + .. [#] https://www.linuxtv.org/wiki/index.php/W_scan 58 + 59 + Also, some applications like ``kaffeine`` have their own code 60 + to scan for services. So, you don't need to use an external 61 + application to obtain such list. 62 + 63 + Most of such tools need a file containing a list of channel 64 + transponders available on your area. So, LinuxTV developers 65 + maintain tables of Digital TV channel transponders, receiving 66 + patches from the community to keep them updated. 67 + 68 + This list is hosted at: 69 + 70 + https://git.linuxtv.org/dtv-scan-tables.git 71 + 72 + And packaged on several distributions. 73 + 74 + Kaffeine has some blind scan support for some terrestrial standards. 75 + It also relies on DTV scan tables, although it contains a copy 76 + of it internally (and, if requested by the user, it will download 77 + newer versions of it). 78 + 79 + If you are lucky you can just use one of the supplied channel 80 + transponders. If not, you may need to seek for such info at 81 + the Internet and create a new file. There are several sites with 82 + contains physical channel lists. For cable and satellite, usually 83 + knowing how to tune into a single channel is enough for the 84 + scanning tool to identify the other channels. On some places, 85 + this could also work for terrestrial transmissions. 86 + 87 + Once you have a transponders list, you need to generate a services 88 + list with a tool like ``dvbv5-scan``. 89 + 90 + Almost all modern Digital TV cards don't have built-in hardware 91 + MPEG-decoders. So, it is up to the application to get a MPEG-TS 92 + stream provided by the board, split it into audio, video and other 93 + data and decode. 94 + 95 + 3. Which Digital TV applications exist? 96 + 97 + Several media player applications are capable of tuning into 98 + digital TV channels, including Kaffeine, Vlc, mplayer and MythTV. 99 + 100 + Kaffeine aims to be very user-friendly, and it is maintained 101 + by one of the Kernel driver developers. 102 + 103 + A comprehensive list of those and other apps can be found at: 104 + 105 + https://www.linuxtv.org/wiki/index.php/TV_Related_Software 106 + 107 + Some of the most popular ones are linked below: 108 + 109 + https://kde.org/applications/multimedia/org.kde.kaffeine 110 + KDE media player, focused on Digital TV support 111 + 112 + https://www.linuxtv.org/vdrwiki/index.php/Main_Page 67 113 Klaus Schmidinger's Video Disk Recorder 68 114 69 - http://www.metzlerbros.org/dvb/ 70 - Metzler Bros. DVB development; alternate drivers and 71 - DVB utilities, include dvb-mpegtools and tuxzap. 115 + https://linuxtv.org/downloads and https://git.linuxtv.org/ 116 + Digital TV and other media-related applications and 117 + Kernel drivers. The ``v4l-utils`` package there contains 118 + several swiss knife tools for using with Digital TV. 72 119 73 120 http://sourceforge.net/projects/dvbtools/ 74 121 Dave Chapman's dvbtools package, including 75 122 dvbstream and dvbtune 76 123 77 - http://www.linuxdvb.tv/ 78 - Henning Holtschneider's site with many interesting 79 - links and docs 80 - 81 124 http://www.dbox2.info/ 82 125 LinuxDVB on the dBox2 83 126 84 - http://www.tuxbox.org/ and http://cvs.tuxbox.org/ 127 + http://www.tuxbox.org/ 85 128 the TuxBox CVS many interesting DVB applications and the dBox2 86 129 DVB source 87 - 88 - https://linuxtv.org/downloads 89 - DVB Swiss Army Knife library and utilities 90 130 91 131 http://www.nenie.org/misc/mpsys/ 92 132 MPSYS: a MPEG2 system library and tools 93 133 134 + https://www.videolan.org/vlc/index.pt.html 135 + Vlc 136 + 94 137 http://mplayerhq.hu/ 95 - mplayer 138 + MPlayer 96 139 97 140 http://xine.sourceforge.net/ and http://xinehq.de/ 98 - xine 141 + Xine 99 142 100 143 http://www.mythtv.org/ 101 - MythTV - analog TV PVR, but now with DVB support, too 102 - (with software MPEG decode) 144 + MythTV - analog TV and digital TV PVR 103 145 104 146 http://dvbsnoop.sourceforge.net/ 105 147 DVB sniffer program to monitor, analyze, debug, dump ··· 150 108 151 109 4. Can't get a signal tuned correctly 152 110 153 - If you are using a Technotrend/Hauppauge DVB-C card *without* analog 154 - module, you might have to use module parameter adac=-1 (dvb-ttpci.o). 111 + That could be due to a lot of problems. On my personal experience, 112 + usually TV cards need stronger signals than TV sets, and are more 113 + sensitive to noise. So, perhaps you just need a better antenna or 114 + cabling. Yet, it could also be some hardware or driver issue. 115 + 116 + For example, if you are using a Technotrend/Hauppauge DVB-C card 117 + *without* analog module, you might have to use module parameter 118 + adac=-1 (dvb-ttpci.o). 119 + 120 + Please see the FAQ page at linuxtv.org, as it could contain some 121 + valuable information: 122 + 123 + https://www.linuxtv.org/wiki/index.php/FAQ_%26_Troubleshooting 124 + 125 + If that doesn't work, check at the linux-media ML archives, to 126 + see if someone else had a similar problem with your hardware 127 + and/or digital TV service provider: 128 + 129 + https://lore.kernel.org/linux-media/ 130 + 131 + If none of this works, you can try sending an e-mail to the 132 + linux-media ML and see if someone else could shed some light. 133 + The e-mail is linux-media AT vger.kernel.org. 155 134 156 135 5. The dvb_net device doesn't give me any packets at all 157 136 158 - Run tcpdump on the dvb0_0 interface. This sets the interface 137 + Run ``tcpdump`` on the ``dvb0_0`` interface. This sets the interface 159 138 into promiscuous mode so it accepts any packets from the PID 160 - you have configured with the dvbnet utility. Check if there 139 + you have configured with the ``dvbnet`` utility. Check if there 161 140 are any packets with the IP addr and MAC addr you have 162 - configured with ifconfig. 141 + configured with ``ifconfig`` or with ``ip addr``. 163 142 164 - If tcpdump doesn't give you any output, check the statistics 165 - which ifconfig outputs. (Note: If the MAC address is wrong, 166 - dvb_net won't get any input; thus you have to run tcpdump 167 - before checking the statistics.) If there are no packets at 168 - all then maybe the PID is wrong. If there are error packets, 143 + If ``tcpdump`` doesn't give you any output, check the statistics 144 + which ``ifconfig`` or ``netstat -ni`` outputs. (Note: If the MAC 145 + address is wrong, ``dvb_net`` won't get any input; thus you have to 146 + run ``tcpdump`` before checking the statistics.) If there are no 147 + packets at all then maybe the PID is wrong. If there are error packets, 169 148 then either the PID is wrong or the stream does not conform to 170 149 the MPE standard (EN 301 192, http://www.etsi.org/). You can 171 - use e.g. dvbsnoop for debugging. 150 + use e.g. ``dvbsnoop`` for debugging. 172 151 173 - 6. The dvb_net device doesn't give me any multicast packets 152 + 6. The ``dvb_net`` device doesn't give me any multicast packets 174 153 175 154 Check your routes if they include the multicast address range. 176 155 Additionally make sure that "source validation by reversed path 177 - lookup" is disabled: 178 - 179 - .. code-block:: none 156 + lookup" is disabled:: 180 157 181 158 $ "echo 0 > /proc/sys/net/ipv4/conf/dvb0/rp_filter" 182 159 183 - 7. What the hell are all those modules that need to be loaded? 160 + 7. What are all those modules that need to be loaded? 184 161 185 - For a dvb-ttpci av7110 based full-featured card the following 186 - modules are loaded: 162 + In order to make it more flexible and support different hardware 163 + combinations, the media subsystem is written on a modular way. 187 164 188 - - videodev: Video4Linux core module. This is the base module that 189 - gives you access to the "analog" tv picture of the av7110 mpeg2 190 - decoder. 165 + So, besides the Digital TV hardware module for the main chipset, 166 + it also needs to load a frontend driver, plus the Digital TV 167 + core. If the board also has remote controller, it will also 168 + need the remote controller core and the remote controller tables. 169 + The same happens if the board has support for analog TV: the 170 + core support for video4linux need to be loaded. 191 171 192 - - v4l2-common: common functions for Video4Linux-2 drivers 193 - 194 - - v4l1-compat: backward compatibility layer for Video4Linux-1 legacy 195 - applications 196 - 197 - - dvb-core: DVB core module. This provides you with the 198 - /dev/dvb/adapter entries 199 - 200 - - saa7146: SAA7146 core driver. This is need to access any SAA7146 201 - based card in your system. 202 - 203 - - saa7146_vv: SAA7146 video and vbi functions. These are only needed 204 - for full-featured cards. 205 - 206 - - videobuf-dma-sg: capture helper module for the saa7146_vv driver. This 207 - one is responsible to handle capture buffers. 208 - 209 - - dvb-ttpci: The main driver for AV7110 based, full-featured 210 - DVB-S/C/T cards 211 - 172 + The actual module names are Linux-kernel version specific, as, 173 + from time to time, things change, in order to make the media 174 + support more flexible.