Firmware: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
m (some edits)
m (some reworking)
Line 6: Line 6:


==Firmware Auto-loading==
==Firmware Auto-loading==
Most people would like their system to load their DVB firmware at boot time/when the module is loaded. This can be done easily using [http://linux-hotplug.sourceforge.net hotplug].
For those devices that do require a firmware, most people would like their system to load it at boot time or when the applicable driver module is loaded. This can be done easily using [http://linux-hotplug.sourceforge.net hotplug]. By placing a copy of the firmware file in <code>/lib/firmware</code> or <code>/usr/lib/hotplug/firmware/</code> (the location will depend of your distro / hotplug version), when the appropriate driver module is loaded, the firmware file should be automatically loaded as well.


{{Note|''Gentoo users'': A fresh minimal install of Gentoo installs the <code>sys-apps/hotplug-base</code> package. However to actually get the firmware loading, you will need to install <code>sys-apps/hotplug</code>, as well.}}
First, do the following, where xxxxx is one of sp8870/sp887x/tda10045/tda10046/av7110/dec2000t/dec2540t/dec3000s/vp7041/dibusb etc etc supported by the get_dvb_firmware script (which is distributed along with kernel source):


''' ''it would be nice to have some words explaining the linux firmware loader stuff. contributors?'' '''
:<code>perl /usr/src/linux/Documentation/dvb/get_dvb_firmware xxxxx</code>


==Acquiring the Firmware==
That will download to current directory a file and then extract the desired firmware. Copy the generated firmware file to <code>/lib/firmware</code> or <code>/usr/lib/hotplug/firmware/</code> (the location will depend of your distro / hotplug version).
In order for the automagic firmware loading, described in the above section, to occur, it should be obvious that one first needs to be in possession of the desired firmware.


The get_dvb_firmware script (which is distributed along with kernel source) supports the downloading and extraction of several popular firmware. One need just run:
Now, when the appropriate driver module is loaded, the firmware file should be automatically loaded as well.
:<code># perl /usr/src/linux/Documentation/dvb/get_dvb_firmware xxxxx</code>

where xxxxx is one of script supported ICs such as sp8870/sp887x/tda10045/tda10046/av7110/dec2000t/dec2540t/dec3000s/vp7041/dibusb etc etc. Note that above command will place the downloaded file and extracted firmware in the current directory. Copy the firmware (as describe in the section above) to the correct location expected by your disto's hotplug system.
''Gentoo users'': A fresh minimal install of Gentoo installs the <code>sys-apps/hotplug-base</code> package. However to actually get the firmware loading, you will need to install <code>sys-apps/hotplug</code>, as well.

''' ''it would be nice to have some words explaining the linux firmware loader stuff. contributors?'' '''


In addition to that, the following sites host various device firmware files:
==Some Firmware Repositories==
The following sites host various device firmware files:
* http://linuxtv.org/downloads/firmware/
* http://linuxtv.org/downloads/firmware/
* http://thadathil.net:8000/dvb/fw/ ... link is likely dead; see next link instead
* http://thadathil.net:8000/dvb/fw/ ... link is likely dead; see next link instead
Line 27: Line 25:
* http://www.chandlerfamily.org.uk/files/firmware/
* http://www.chandlerfamily.org.uk/files/firmware/


In other cases, where you can't find a raw firmware file for your device, you may have to resort to manual extraction from a Windows driver file; see "[[Development: How to extract a firmware|How to extract a firmware]]".
==Also See==
* [[Development: How to extract a firmware|How to extract a firmware]]


[[Category:Technology]]
[[Category:Technology]]

Revision as of 15:21, 4 February 2008

Modern chipsets move more and more functionality from fixed-function implementations in silicon to firmware or software. The chip becomes a more generic microcontroller or DSP that executes the Firmware and does the same jobs.

Drawbacks are that this solution may consume more power than an optimized fixed-function design and that different firmware revisions can cause completely different behaviour of the chips.

The fact that the firmware can 'fix' bugs later has, in the case of some vendors, the effect that early firmware revisions are rarely usable. In contrast, fixed-function hardware is usually more carefully designed.

Firmware Auto-loading

For those devices that do require a firmware, most people would like their system to load it at boot time or when the applicable driver module is loaded. This can be done easily using hotplug. By placing a copy of the firmware file in /lib/firmware or /usr/lib/hotplug/firmware/ (the location will depend of your distro / hotplug version), when the appropriate driver module is loaded, the firmware file should be automatically loaded as well.

Note: Gentoo users: A fresh minimal install of Gentoo installs the sys-apps/hotplug-base package. However to actually get the firmware loading, you will need to install sys-apps/hotplug, as well.

it would be nice to have some words explaining the linux firmware loader stuff. contributors?

Acquiring the Firmware

In order for the automagic firmware loading, described in the above section, to occur, it should be obvious that one first needs to be in possession of the desired firmware.

The get_dvb_firmware script (which is distributed along with kernel source) supports the downloading and extraction of several popular firmware. One need just run:

# perl /usr/src/linux/Documentation/dvb/get_dvb_firmware xxxxx

where xxxxx is one of script supported ICs such as sp8870/sp887x/tda10045/tda10046/av7110/dec2000t/dec2540t/dec3000s/vp7041/dibusb etc etc. Note that above command will place the downloaded file and extracted firmware in the current directory. Copy the firmware (as describe in the section above) to the correct location expected by your disto's hotplug system.

In addition to that, the following sites host various device firmware files:

In other cases, where you can't find a raw firmware file for your device, you may have to resort to manual extraction from a Windows driver file; see "How to extract a firmware".