Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 FAQ
0004 ===
0005 
0006 .. note::
0007 
0008      1. With Digital TV, a single physical channel may have different
0009         contents inside it. The specs call each one as a *service*.
0010         This is what a TV user would call "channel". So, in order to
0011         avoid confusion, we're calling *transponders* as the physical
0012         channel on this FAQ, and *services* for the logical channel.
0013      2. The LinuxTV community maintains some Wiki pages with contain
0014         a lot of information related to the media subsystem. If you
0015         don't find an answer for your needs here, it is likely that
0016         you'll be able to get something useful there. It is hosted
0017         at:
0018 
0019         https://www.linuxtv.org/wiki/
0020 
0021 Some very frequently asked questions about Linux Digital TV support
0022 
0023 1. The signal seems to die a few seconds after tuning.
0024 
0025         It's not a bug, it's a feature. Because the frontends have
0026         significant power requirements (and hence get very hot), they
0027         are powered down if they are unused (i.e. if the frontend device
0028         is closed). The ``dvb-core`` module parameter ``dvb_shutdown_timeout``
0029         allow you to change the timeout (default 5 seconds). Setting the
0030         timeout to 0 disables the timeout feature.
0031 
0032 2. How can I watch TV?
0033 
0034         Together with the Linux Kernel, the Digital TV developers support
0035         some simple utilities which are mainly intended for testing
0036         and to demonstrate how the DVB API works. This is called DVB v5
0037         tools and are grouped together with the ``v4l-utils`` git repository:
0038 
0039             https://git.linuxtv.org/v4l-utils.git/
0040 
0041         You can find more information at the LinuxTV wiki:
0042 
0043             https://www.linuxtv.org/wiki/index.php/DVBv5_Tools
0044 
0045         The first step is to get a list of services that are transmitted.
0046 
0047         This is done by using several existing tools. You can use
0048         for example the ``dvbv5-scan`` tool. You can find more information
0049         about it at:
0050 
0051             https://www.linuxtv.org/wiki/index.php/Dvbv5-scan
0052 
0053         There are some other applications like ``w_scan`` [#]_ that do a
0054         blind scan, trying hard to find all possible channels, but
0055         those consumes a large amount of time to run.
0056 
0057         .. [#] https://www.linuxtv.org/wiki/index.php/W_scan
0058 
0059         Also, some applications like ``kaffeine`` have their own code
0060         to scan for services. So, you don't need to use an external
0061         application to obtain such list.
0062 
0063         Most of such tools need a file containing a list of channel
0064         transponders available on your area. So, LinuxTV developers
0065         maintain tables of Digital TV channel transponders, receiving
0066         patches from the community to keep them updated.
0067 
0068         This list is hosted at:
0069 
0070             https://git.linuxtv.org/dtv-scan-tables.git
0071 
0072         And packaged on several distributions.
0073 
0074         Kaffeine has some blind scan support for some terrestrial standards.
0075         It also relies on DTV scan tables, although it contains a copy
0076         of it internally (and, if requested by the user, it will download
0077         newer versions of it).
0078 
0079         If you are lucky you can just use one of the supplied channel
0080         transponders. If not, you may need to seek for such info at
0081         the Internet and create a new file. There are several sites with
0082         contains physical channel lists. For cable and satellite, usually
0083         knowing how to tune into a single channel is enough for the
0084         scanning tool to identify the other channels. On some places,
0085         this could also work for terrestrial transmissions.
0086 
0087         Once you have a transponders list, you need to generate a services
0088         list with a tool like ``dvbv5-scan``.
0089 
0090         Almost all modern Digital TV cards don't have built-in hardware
0091         MPEG-decoders. So, it is up to the application to get a MPEG-TS
0092         stream provided by the board, split it into audio, video and other
0093         data and decode.
0094 
0095 3. Which Digital TV applications exist?
0096 
0097         Several media player applications are capable of tuning into
0098         digital TV channels, including Kaffeine, Vlc, mplayer and MythTV.
0099 
0100         Kaffeine aims to be very user-friendly, and it is maintained
0101         by one of the Kernel driver developers.
0102 
0103         A comprehensive list of those and other apps can be found at:
0104 
0105             https://www.linuxtv.org/wiki/index.php/TV_Related_Software
0106 
0107         Some of the most popular ones are linked below:
0108 
0109         https://kde.org/applications/multimedia/org.kde.kaffeine
0110                 KDE media player, focused on Digital TV support
0111 
0112         https://www.linuxtv.org/vdrwiki/index.php/Main_Page
0113                 Klaus Schmidinger's Video Disk Recorder
0114 
0115         https://linuxtv.org/downloads and https://git.linuxtv.org/
0116                 Digital TV and other media-related applications and
0117                 Kernel drivers. The ``v4l-utils`` package there contains
0118                 several swiss knife tools for using with Digital TV.
0119 
0120         http://sourceforge.net/projects/dvbtools/
0121                 Dave Chapman's dvbtools package, including
0122                 dvbstream and dvbtune
0123 
0124         http://www.dbox2.info/
0125                 LinuxDVB on the dBox2
0126 
0127         http://www.tuxbox.org/
0128                 the TuxBox CVS many interesting DVB applications and the dBox2
0129                 DVB source
0130 
0131         http://www.nenie.org/misc/mpsys/
0132                 MPSYS: a MPEG2 system library and tools
0133 
0134         https://www.videolan.org/vlc/index.pt.html
0135                 Vlc
0136 
0137         http://mplayerhq.hu/
0138                 MPlayer
0139 
0140         http://xine.sourceforge.net/ and http://xinehq.de/
0141                 Xine
0142 
0143         http://www.mythtv.org/
0144                 MythTV - analog TV and digital TV PVR
0145 
0146         http://dvbsnoop.sourceforge.net/
0147                 DVB sniffer program to monitor, analyze, debug, dump
0148                 or view dvb/mpeg/dsm-cc/mhp stream information (TS,
0149                 PES, SECTION)
0150 
0151 4. Can't get a signal tuned correctly
0152 
0153         That could be due to a lot of problems. On my personal experience,
0154         usually TV cards need stronger signals than TV sets, and are more
0155         sensitive to noise. So, perhaps you just need a better antenna or
0156         cabling. Yet, it could also be some hardware or driver issue.
0157 
0158         For example, if you are using a Technotrend/Hauppauge DVB-C card
0159         *without* analog module, you might have to use module parameter
0160         adac=-1 (dvb-ttpci.o).
0161 
0162         Please see the FAQ page at linuxtv.org, as it could contain some
0163         valuable information:
0164 
0165             https://www.linuxtv.org/wiki/index.php/FAQ_%26_Troubleshooting
0166 
0167         If that doesn't work, check at the linux-media ML archives, to
0168         see if someone else had a similar problem with your hardware
0169         and/or digital TV service provider:
0170 
0171             https://lore.kernel.org/linux-media/
0172 
0173         If none of this works, you can try sending an e-mail to the
0174         linux-media ML and see if someone else could shed some light.
0175         The e-mail is linux-media AT vger.kernel.org.
0176 
0177 5. The dvb_net device doesn't give me any packets at all
0178 
0179         Run ``tcpdump`` on the ``dvb0_0`` interface. This sets the interface
0180         into promiscuous mode so it accepts any packets from the PID
0181         you have configured with the ``dvbnet`` utility. Check if there
0182         are any packets with the IP addr and MAC addr you have
0183         configured with ``ifconfig`` or with ``ip addr``.
0184 
0185         If ``tcpdump`` doesn't give you any output, check the statistics
0186         which ``ifconfig`` or ``netstat -ni`` outputs. (Note: If the MAC
0187         address is wrong, ``dvb_net`` won't get any input; thus you have to
0188         run ``tcpdump`` before checking the statistics.) If there are no
0189         packets at all then maybe the PID is wrong. If there are error packets,
0190         then either the PID is wrong or the stream does not conform to
0191         the MPE standard (EN 301 192, http://www.etsi.org/). You can
0192         use e.g. ``dvbsnoop`` for debugging.
0193 
0194 6. The ``dvb_net`` device doesn't give me any multicast packets
0195 
0196         Check your routes if they include the multicast address range.
0197         Additionally make sure that "source validation by reversed path
0198         lookup" is disabled::
0199 
0200           $ "echo 0 > /proc/sys/net/ipv4/conf/dvb0/rp_filter"
0201 
0202 7. What are all those modules that need to be loaded?
0203 
0204         In order to make it more flexible and support different hardware
0205         combinations, the media subsystem is written on a modular way.
0206 
0207         So, besides the Digital TV hardware module for the main chipset,
0208         it also needs to load a frontend driver, plus the Digital TV
0209         core. If the board also has remote controller, it will also
0210         need the remote controller core and the remote controller tables.
0211         The same happens if the board has support for analog TV: the
0212         core support for video4linux need to be loaded.
0213 
0214         The actual module names are Linux-kernel version specific, as,
0215         from time to time, things change, in order to make the media
0216         support more flexible.