Supported Hardware: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
m (add gathering info section, minor re-arranging)
m (→‎Determining the Device's Identity: update bttv-gallery remark)
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
This page is intened to help the user determine whether the device they own, or one that they are considering purchasing, is supported or not under Linux.
This page is intended to help the "end user" determine whether or not the V4L-DVB device they own, or one that they are considering acquiring, is supported under Linux.
{{Note|Just because your device happens to have a chip on it that corresponds to some existing driver does NOT mean your product is supported. The driver has to be aware that it's related to some hardware (typically through the [[Supported_Hardware#Determining_the_Device's_Identity|subsystem ID from the USB ID or PCI ID]]). If the driver doesn't recognize/bind to your particular hardware, then the module will probably load but then proceed to not do anything. In other words, support for your device would have to be added to the driver.}}


== Check For Hardware Compatibility ==


== Determining the Device's Identity==
Before purchasing a DVB device, you should check whether it is listed as supported within the appropriate section of the wiki:
Normally the device name and model are written somewhere on either the device itself, its box/packaging or, at the very least, listed in its manual. That may seem obvious enough, but a surprising number of devices are available with no, or next to little in the way of, model identification. Ordinarily, that would make for a rather problematic exercise of trying to find support information, however, there are a couple of steps you can do to help give you a starting point for your search (and these steps are just as relevant in the case where you know the device's identity, and you know that it is unsupported, but are seeking to see if it is possible to add support for it):
* [[ATSC Devices|ATSC devices]]
* [[DVB-C Devices|DVB-C devices]] (Digital Cable TV)
* [[DVB-S Devices|DVB-S devices]] (Digital Satellite TV)
* [[DVB-T Devices|DVB-T devices]] (Digital Terrestrial TV)
* [[DVB receiver vendors|Devices sorted by Vendor]]
* [[DVB Conditional Access Modules]] (Pay TV)


'''A. With the device NOT installed within or attached to the system:'''<br>
If the device you're considering is not cited as being supported, then there is a good chance that it will not work under Linux. However, as the information in the wiki is not always current, you should also consider inquiring about the device's status on the mailing list (but please search the archives first!).
Take note of any visual clues that will help identify the device. For PCI/PCIe based devices, see if there are any written text/numerical markings printed directly on the board or on IC components. With USB based devices, as they tend to be completely encased, it is difficult, if not impossible, to make any visual identifications of components used in the device's design without resorting to physically prying it open. The degree of difficulty of undertaking such a task can vary greatly, but in most cases the user can, with patience and care, find a way to non-destructively disassemble the device. (Nonetheless, anyone attempting such a venture should be prepared to fully accept the consequences of their own actions in the event of an unsuccessful attempt). If you are not willing to do so, proceed to step "B".


Also note that, for older devices, the former bttv-gallery was a good resource for helping to identify a device; see [[Development:_How_to_add_support_for_a_device#bttv-gallery|here for more details]].
If you have already purchased your DVB device but can not find mention of it in the wiki's supported device sections, it might be a good idea to search this wiki for the device's name or the manufacturer name -- Reason being: while there are indeed many DVB devices available on the market, the actual selection of hardware components that a manufacturer has to choose from when designing their device is limited. As a consequence of this fact, many DVB devices have a similar component constitution, and hence some information can usually be ascertained about any given unsupported device. Furthermore, sometimes you can even adopt the support provided for another device for your own currently unsupported device.


'''B. With the device installed within or attached to the system:'''<br>
===Gathering Information About Your Unidentified/Unsupported Device===
If your device is PCI based, then the output from the following commands (which likely require you to run them with root privileges) should be your first starting point:
For PCI/PCIe based devices, the output of the following command may be able to aide you in making a determination
# lspci -v
:<code>$ /sbin/lspci -vnn</code>
In the output from those commands, look for lines with "Multimedia video controller", "Multimedia controller", "Multimedia adapters" or something similar. The item of particular interest is the '''Subsystem ID''' for that entry.
# lspci -vn
Look for output lines with
Multimedia video controller: ...
Multimedia controller: ...
Also read the manufacturer's details from the tin box of the card. If there are any textual/numerical markings printed on the board itself, they would be useful too - basically anything to help others identify a card visually. Send this information to the Linuxtv DVB mailing list along with the above output.


Similarly, if your device is USB based, look at the output generated from the commands
Similarily, for USB devices, look at the output generated from the command
# lsusb -v
:<code>$ /sbin/lsusb -v</code>
# lsusb -vn
As these devices tend to be completely encased, it is difficult, if not impossible, to make any visual identifications of components used in the device's design without resorting to physically prying it open. The degree of difficulty of undertaking such a task can vary greatly, but in most cases the user can, with patience and care, find a way to non-destructively disassemble the device. Nonetheless, anyone attempting such a venture should be prepared to fully accept the consequences of their own actions in the event of an unsuccessful attempt.


'''Note:''' Subsystem ID's are usually unique, but in some cases they are not. Meaning that sometimes two different devices have, unfortunately, been given the same ID. This in turn makes obtaining as many as possible identifiable aspects about a device (such as described in point "A" above) an important factor in making a precise device identification.
{{Note|'''Please be nice to the community and add your insights about your device to the appropriate area in this wiki !'''}}


== Support Information Resources==
As a final thought in your preliminary steps to find support information for your device, you might also search with google and add "Linux" and/or "how to" to your keywords.
Armed with the information you obtained above (such as model name, subsystem ID, etc) try searching:

===The V4L-DVB Wiki===
A good first step is to check whether the device is listed as supported within the appropriate section of the wiki (see the "[[Hardware Device Information]]" section, as also linked to from the Main Pag,e for a starting point for your search. Though, it might be a good idea to also search this wiki using the device's name or the manufacturer name). If the device is not cited anywhere as being supported, then there is a good chance that it will not work under Linux. However, as the information in the wiki is not always current, and far from exhaustive, there are also other sources from which you can check.

{{Note|'''Please be nice to the community and add your insights about your device to the appropriate area in this wiki if there currently is none !!! '''}}

===The V4L-DVB source code===
Navigate through the Linux media driver files (e.g. on your system try /usr/src/linux/drivers/media/, or check the corresponding directories on the git or hg repos you are interested in) and search for the relevant "xxxx-cards.c" file, as it will list devices supported by the "xxxx" driver. Example, within the file [http://git.linuxtv.org/media_tree.git/blob/HEAD:/drivers/media/video/saa7134/saa7134-cards.c saa7134-cards.c] is a listing of all the saa713x media controller IC based devices supported by the saa7134 driver. Similarly for exm28xx-cards.c, cx88-cards.c, etc. etc. ...

===The Mailing Lists===
You should also consider consulting the mailing list archives to see if there is any mention of the device.
* The [mailto:majordomo@vger.kernel.org?body=subscribe%20linux-media Linux-Media Mailing List]. [http://vger.kernel.org/vger-lists.html#linux-media Subscription to the mailing list] is recommended, though it is not required.

Older mailing list archives: Make sure you check both the V4L and DVB mailing lists, as topical misplacement/mis-posting often occurs (as many users are unaware of the distinction between the two different, but in many ways intertwined, subsystems).
* MARC provides a comprehensive [http://marc.info/?l=linux-video searchable V4L archive] ... the actual m/l is archived [https://www.redhat.com/mailman/private/video4linux-list/ here] but requires authentication to access, nor is it as easily searched through
* MARC also provides a [http://marc.info/?l=linux-dvb&r=1&w=2 searchable DVB archive], but its records are not comprehensive (and, as well as, contain a large gap). Therefore, for inquiries relevant to older equipment you will have to sift through either the [http://www.linuxtv.org/pipermail/linux-dvb/ new DVB mailing list] (which began Feb 2005) or use the likes of either a [http://www.google.ca/search?hs=NtR&hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&q=site%3Alinuxtv.org&btnG=Search&meta= google site search] or [http://www.spinics.net/lists/linux-dvb/ spinics] to find even older (as well as present) DVB m/l postings...some further resources are also [http://www.linuxtv.org/lists.php mentioned here].

If that search step also proves unsuccessful, then you may wish to consider directly inquiring about the device's status on the relevant mailing list (but please search the archives first!) or #irc channel. Send the information obtained from steps "A" and "B" to the mailing list, along with other important information (such as what type of device it is, a link to a product page if you can find one etc etc). '''''But please first do a search through the archives<sup>*</sup> to make sure that this hasn't been submitted previously''''' --- a simple way to check if this has been the case is to search the archives for your device's subsystem ID (as determined in step "B").<br>

===Elsewhere on the Internet ===
It is worth mentioning that there may be support for your device under Linux offered outside of that provided by LinuxTV, so a google search, using the appropriate combinations of terms, is also recommended. In addition, there are likely a number of websites (outside of the V4L-DVB wiki) that track hardware support -- For example, you can take a look at http://hardware4linux.info/type/87/ to see the note for the different devices.
[[Category:Hardware]]

Revision as of 17:40, 8 October 2012

This page is intended to help the "end user" determine whether or not the V4L-DVB device they own, or one that they are considering acquiring, is supported under Linux.

Note: Just because your device happens to have a chip on it that corresponds to some existing driver does NOT mean your product is supported. The driver has to be aware that it's related to some hardware (typically through the subsystem ID from the USB ID or PCI ID). If the driver doesn't recognize/bind to your particular hardware, then the module will probably load but then proceed to not do anything. In other words, support for your device would have to be added to the driver.


Determining the Device's Identity

Normally the device name and model are written somewhere on either the device itself, its box/packaging or, at the very least, listed in its manual. That may seem obvious enough, but a surprising number of devices are available with no, or next to little in the way of, model identification. Ordinarily, that would make for a rather problematic exercise of trying to find support information, however, there are a couple of steps you can do to help give you a starting point for your search (and these steps are just as relevant in the case where you know the device's identity, and you know that it is unsupported, but are seeking to see if it is possible to add support for it):

A. With the device NOT installed within or attached to the system:
Take note of any visual clues that will help identify the device. For PCI/PCIe based devices, see if there are any written text/numerical markings printed directly on the board or on IC components. With USB based devices, as they tend to be completely encased, it is difficult, if not impossible, to make any visual identifications of components used in the device's design without resorting to physically prying it open. The degree of difficulty of undertaking such a task can vary greatly, but in most cases the user can, with patience and care, find a way to non-destructively disassemble the device. (Nonetheless, anyone attempting such a venture should be prepared to fully accept the consequences of their own actions in the event of an unsuccessful attempt). If you are not willing to do so, proceed to step "B".

Also note that, for older devices, the former bttv-gallery was a good resource for helping to identify a device; see here for more details.

B. With the device installed within or attached to the system:
For PCI/PCIe based devices, the output of the following command may be able to aide you in making a determination

$ /sbin/lspci -vnn

In the output from those commands, look for lines with "Multimedia video controller", "Multimedia controller", "Multimedia adapters" or something similar. The item of particular interest is the Subsystem ID for that entry.

Similarily, for USB devices, look at the output generated from the command

$ /sbin/lsusb -v

Note: Subsystem ID's are usually unique, but in some cases they are not. Meaning that sometimes two different devices have, unfortunately, been given the same ID. This in turn makes obtaining as many as possible identifiable aspects about a device (such as described in point "A" above) an important factor in making a precise device identification.

Support Information Resources

Armed with the information you obtained above (such as model name, subsystem ID, etc) try searching:

The V4L-DVB Wiki

A good first step is to check whether the device is listed as supported within the appropriate section of the wiki (see the "Hardware Device Information" section, as also linked to from the Main Pag,e for a starting point for your search. Though, it might be a good idea to also search this wiki using the device's name or the manufacturer name). If the device is not cited anywhere as being supported, then there is a good chance that it will not work under Linux. However, as the information in the wiki is not always current, and far from exhaustive, there are also other sources from which you can check.

Note: Please be nice to the community and add your insights about your device to the appropriate area in this wiki if there currently is none !!!

The V4L-DVB source code

Navigate through the Linux media driver files (e.g. on your system try /usr/src/linux/drivers/media/, or check the corresponding directories on the git or hg repos you are interested in) and search for the relevant "xxxx-cards.c" file, as it will list devices supported by the "xxxx" driver. Example, within the file saa7134-cards.c is a listing of all the saa713x media controller IC based devices supported by the saa7134 driver. Similarly for exm28xx-cards.c, cx88-cards.c, etc. etc. ...

The Mailing Lists

You should also consider consulting the mailing list archives to see if there is any mention of the device.

Older mailing list archives: Make sure you check both the V4L and DVB mailing lists, as topical misplacement/mis-posting often occurs (as many users are unaware of the distinction between the two different, but in many ways intertwined, subsystems).

  • MARC provides a comprehensive searchable V4L archive ... the actual m/l is archived here but requires authentication to access, nor is it as easily searched through
  • MARC also provides a searchable DVB archive, but its records are not comprehensive (and, as well as, contain a large gap). Therefore, for inquiries relevant to older equipment you will have to sift through either the new DVB mailing list (which began Feb 2005) or use the likes of either a google site search or spinics to find even older (as well as present) DVB m/l postings...some further resources are also mentioned here.

If that search step also proves unsuccessful, then you may wish to consider directly inquiring about the device's status on the relevant mailing list (but please search the archives first!) or #irc channel. Send the information obtained from steps "A" and "B" to the mailing list, along with other important information (such as what type of device it is, a link to a product page if you can find one etc etc). But please first do a search through the archives* to make sure that this hasn't been submitted previously --- a simple way to check if this has been the case is to search the archives for your device's subsystem ID (as determined in step "B").

Elsewhere on the Internet

It is worth mentioning that there may be support for your device under Linux offered outside of that provided by LinuxTV, so a google search, using the appropriate combinations of terms, is also recommended. In addition, there are likely a number of websites (outside of the V4L-DVB wiki) that track hardware support -- For example, you can take a look at http://hardware4linux.info/type/87/ to see the note for the different devices.