CINXE.COM
Firmware - Debian Wiki
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="/htdocs/favicon.ico"> <script type="text/javascript" src="/htdocs/bugstatus.js"></script> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <meta name="robots" content="index,nofollow"> <title>Firmware - Debian Wiki</title> <script type="text/javascript" src="/htdocs/common/js/common.js"></script> <script type="text/javascript"> <!-- var search_hint = "Search"; //--> </script> <link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/htdocs/debwiki/css/common.css"> <link rel="stylesheet" type="text/css" charset="utf-8" media="screen" href="/htdocs/debwiki/css/screen.css"> <link rel="stylesheet" type="text/css" charset="utf-8" media="print" href="/htdocs/debwiki/css/print.css"> <link rel="stylesheet" type="text/css" charset="utf-8" media="projection" href="/htdocs/debwiki/css/projection.css"> <link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/htdocs/debian-wiki-1.0.css"> <!-- css only for MS IE6/IE7 browsers --> <!--[if lt IE 8]> <link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/htdocs/debwiki/css/msie.css"> <![endif]--> <link rel="alternate" title="Debian Wiki: Firmware" href="/Firmware?diffs=1&show_att=1&action=rss_rc&unique=0&page=Firmware&ddiffs=1" type="application/rss+xml"> <link rel="Start" href="/FrontPage"> <link rel="Alternate" title="Wiki Markup" href="/Firmware?action=raw"> <link rel="Alternate" media="print" title="Print View" href="/Firmware?action=print"> <link rel="Search" href="/FindPage"> <link rel="Index" href="/TitleIndex"> <link rel="Glossary" href="/WordIndex"> <link rel="Help" href="/HelpOnFormatting"> </head> <body lang="en" dir="ltr"> <div id="logo"><a href="https://www.debian.org" title="Debian Homepage"><img src="https://www.debian.org/Pics/openlogo-50.png" alt="Debian" width="50" height="61"></a></div> <div id="header"> <div id="wikisection"> <p class="section"><a href="/FrontPage" title="Debian Wiki Homepage">Wiki</a></p> <div id="username"><a href="/Firmware?action=login" id="login" rel="nofollow">Login</a></div> </div> <div id="navbar"> <ul id="navibar"> <li class="wikilink"><a href="/FrontPage">FrontPage</a></li><li class="wikilink"><a href="/RecentChanges">RecentChanges</a></li><li class="wikilink"><a href="/FindPage">FindPage</a></li><li class="wikilink"><a href="/HelpContents">HelpContents</a></li><li class="current"><a href="/Firmware">Firmware</a></li> </ul> </div> <form id="searchform" method="get" action="/Firmware"> <div> <input type="hidden" name="action" value="fullsearch"> <input type="hidden" name="context" value="180"> <label for="searchinput">Search:</label> <input id="searchinput" type="text" name="value" value="" size="20" onfocus="searchFocus(this)" onblur="searchBlur(this)" onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search"> <input id="titlesearch" name="titlesearch" type="submit" value="Titles" alt="Search Titles"> <input id="fullsearch" name="fullsearch" type="submit" value="Text" alt="Search Full Text"> </div> </form> <script type="text/javascript"> <!--// Initialize search form var f = document.getElementById('searchform'); f.getElementsByTagName('label')[0].style.display = 'none'; var e = document.getElementById('searchinput'); searchChange(e); searchBlur(e); //--> </script> <div id="logo"><a href="https://www.debian.org" title="Debian Homepage"><img src="https://www.debian.org/Pics/openlogo-50.png" alt="Debian" width="50" height="61"></a></div> <div id="breadcrumbs"><a href="/FrontPage" title="Debian Wiki Homepage">Wiki</a><span class="sep">/</span> </div> <ul class="editbar"><li><a href="/Firmware?action=login" id="login-1" rel="nofollow">Login</a></li><li class="toggleCommentsButton" style="display:none;"><a href="#" class="nbcomment" onClick="toggleComments();return false;">Comments</a></li><li><a class="nbinfo" href="/Firmware?action=info" rel="nofollow">Info</a></li><li><a class="nbattachments" href="/Firmware?action=AttachFile" rel="nofollow">Attachments</a></li><li> <form class="actionsmenu" method="GET" action="/Firmware"> <div> <label>More Actions:</label> <select name="action" onchange="if ((this.selectedIndex != 0) && (this.options[this.selectedIndex].disabled == false)) { this.form.submit(); } this.selectedIndex = 0;"> <option value="raw">Raw Text</option> <option value="print">Print View</option> <option value="RenderAsDocbook">Render as Docbook</option> <option value="refresh">Delete Cache</option> <option value="show" disabled class="disabled">------------------------</option> <option value="SpellCheck">Check Spelling</option> <option value="LikePages">Like Pages</option> <option value="LocalSiteMap">Local Site Map</option> <option value="show" disabled class="disabled">------------------------</option> <option value="RenamePage" disabled class="disabled">Rename Page</option> <option value="DeletePage" disabled class="disabled">Delete Page</option> <option value="show" disabled class="disabled">------------------------</option> <option value="show" disabled class="disabled">Subscribe User</option> <option value="show" disabled class="disabled">------------------------</option> <option value="show" disabled class="disabled">Remove Spam</option> <option value="show" disabled class="disabled">Revert to this revision</option> <option value="PackagePages">Package Pages</option> <option value="show" disabled class="disabled">------------------------</option> <option value="Load">Load</option> <option value="Save">Save</option> <option value="SlideShow">SlideShow</option> </select> <input type="submit" value="Do"> </div> <script type="text/javascript"> <!--// Init menu actionsMenuInit('More Actions:'); //--> </script> </form> </li></ul> <h1 id="locationline"> <ul id="pagelocation"> <li><a href="/Firmware">Firmware</a></li> </ul> </h1> </div> <div id="page" lang="en" dir="ltr"> <div dir="ltr" id="content" lang="en"><span class="anchor" id="top"></span> <span class="anchor" id="line-1"></span><span class="anchor" id="line-2"></span><span class="anchor" id="line-3"></span><span class="anchor" id="line-4"></span><span class="anchor" id="line-5"></span><p class="line867"><small><a href="/DebianWiki/EditorGuide#translation">Translation(s)</a>: <a href="/Firmware">English</a> - <a href="/es/Firmware">Espa帽ol</a> - <a href="/fr/firmware">Fran莽ais</a> - <a href="/it/Firmware">Italiano</a> - <a href="/pt_BR/Firmware">Portugu锚s (Brasil)</a></small> <span class="anchor" id="line-6"></span><span class="anchor" id="line-7"></span><span class="anchor" id="line-8"></span><p class="line867"><hr /><p class="line874"> <span class="anchor" id="line-9"></span><span class="anchor" id="line-10"></span><p class="line867"><span class="anchor" id="line-11"></span><span class="anchor" id="line-12"></span><span class="anchor" id="line-13"></span><span class="anchor" id="line-14"></span><span class="anchor" id="line-15"></span><div class="important"><span class="anchor" id="line-1-1"></span><p class="line862">The Debian project <a class="https" href="https://lists.debian.org/debian-devel-announce/2022/10/msg00001.html">took the decision</a> in October 2022 <span class="anchor" id="line-2-1"></span>to create a new repository component <tt class="backtick">non-free-firmware</tt>, and include its content on installation media for the upcoming Debian 12 release (<em>bookworm</em>) to make things easier for our users. This change was implemented in time for the <strong>bookworm alpha 2</strong> release of debian-installer in February 2023, and all d-i releases and daily and weekly images since then all include firmware. <span class="anchor" id="line-3-1"></span><br> <span class="anchor" id="line-4-1"></span>For information for older releases, see <a href="/Firmware#older">"Older releases"</a> further down this page. </div><span class="anchor" id="line-16"></span><span class="anchor" id="line-17"></span><p class="line867"><div class="table-of-contents"><p class="table-of-contents-heading">Contents<ol><li> <a href="#What_is_firmware.3F">What is firmware?</a></li><li> <a href="#Using_non-free_firmware_on_a_Debian_system">Using non-free firmware on a Debian system</a><ol><li> <a href="#Debian_12_.28bookworm.29_and_later">Debian 12 (bookworm) and later</a><ol><li> <a href="#How_to_disable_detection_and_use_of_non-free_firmware">How to disable detection and use of non-free firmware</a></li></ol></li><li> <a href="#Older_releases">Older releases</a><ol><li> <a href="#Firmware_during_the_installation">Firmware during the installation</a></li><li> <a href="#Firmware_after_installation">Firmware after installation</a></li></ol></li></ol></li><li> <a href="#Firmware_missing_from_Debian">Firmware missing from Debian</a></li><li> <a href="#Location_of_firmware_files">Location of firmware files</a><ol><li> <a href="#Debian_8_.22Jessie.22_and_newer">Debian 8 "Jessie" and newer</a></li><li> <a href="#Debian_7_.22Wheezy.22.2C_Debian_6.0_.22Squeeze.22">Debian 7 "Wheezy", Debian 6.0 "Squeeze"</a></li></ol></li><li> <a href="#List_of_firmware_in_Debian">List of firmware in Debian</a></li><li> <a href="#Free_and_Open_Source_boot_firmware">Free and Open Source boot firmware</a></li><li> <a href="#Computer_Firmware">Computer Firmware</a></li><li> <a href="#Updating_firmware">Updating firmware</a></li></ol></div> <span class="anchor" id="line-18"></span><span class="anchor" id="line-19"></span><p class="line867"> <h1 id="What_is_firmware.3F">What is firmware?</h1> <span class="anchor" id="line-20"></span><span class="anchor" id="line-21"></span><p class="line867"><span class="anchor" id="line-22"></span><span class="anchor" id="line-23"></span><p class="line874">Firmware refers to embedded software which controls electronic <span class="anchor" id="line-24"></span>devices. Well-defined boundaries between firmware and software do not <span class="anchor" id="line-25"></span>exist, as both terms cover some of the same code. Typically, the term <span class="anchor" id="line-26"></span>firmware deals with low-level operations in a device, without which <span class="anchor" id="line-27"></span>the device would be completely non-functional <small>(read more on <span class="anchor" id="line-28"></span><a class="interwiki" href="https://en.wikipedia.org/wiki/Firmware" title="WikiPedia">Wikipedia</a>)</small>. <span class="anchor" id="line-29"></span><span class="anchor" id="line-30"></span><p class="line874">Many devices require firmware to operate. Historically, firmware would <span class="anchor" id="line-31"></span>be built into the device's ROM or Flash memory, but more and more <span class="anchor" id="line-32"></span>often, a firmware image has to be loaded into the device RAM by a <span class="anchor" id="line-33"></span>device driver during device initialisation. <span class="anchor" id="line-34"></span><span class="anchor" id="line-35"></span><p class="line867"><a href="/Firmware/Open">A few</a> firmware images are Free Software and Open Source but <span class="anchor" id="line-36"></span>unfortunately almost all of them are <span class="anchor" id="line-37"></span><a class="https" href="https://www.debian.org/doc/debian-policy/ch-archive#s-non-free">non-free</a>, <span class="anchor" id="line-38"></span>which means that Debian cannot include them as normal in the archive <span class="anchor" id="line-39"></span>under <strong>main</strong> or <strong>contrib</strong>. <span class="anchor" id="line-40"></span><span class="anchor" id="line-41"></span><p class="line867"> <h1 id="Using_non-free_firmware_on_a_Debian_system">Using non-free firmware on a Debian system</h1> <span class="anchor" id="line-42"></span><span class="anchor" id="line-43"></span><p class="line867"> <h2 id="Debian_12_.28bookworm.29_and_later">Debian 12 (bookworm) and later</h2> <span class="anchor" id="line-44"></span><span class="anchor" id="line-45"></span><p class="line874">For Debian 12 onwards, all the packaged non-free firmware binaries <span class="anchor" id="line-46"></span>that Debian can distribute have been moved to a new component in the <span class="anchor" id="line-47"></span>Debian archive, called <strong>non-free-firmware</strong>. If you're upgrading <span class="anchor" id="line-48"></span>from an older release of Debian and you need these firmware binaries, <span class="anchor" id="line-49"></span>you should update the apt <strong>sources.list</strong> on your system to use <span class="anchor" id="line-50"></span>this new component. If you only had the <strong>non-free</strong> component <span class="anchor" id="line-51"></span>enabled on your system to allow you to install firmware, you can <span class="anchor" id="line-52"></span>safely remove that now. <span class="anchor" id="line-53"></span><span class="anchor" id="line-54"></span><p class="line874">Debian's installation and live images now include all of those <span class="anchor" id="line-55"></span>firmware packages. The system should automatically detect, load and <span class="anchor" id="line-56"></span>install the firmware available for your devices, where possible. There <span class="anchor" id="line-57"></span>are a <em>small</em> number of cases where Debian can't do this, typically <span class="anchor" id="line-58"></span>because of not being allowed to distribute the needed firmware <span class="anchor" id="line-59"></span>binaries. <span class="anchor" id="line-60"></span><span class="anchor" id="line-61"></span><p class="line874">If you are booting the Debian installer over the network, that will <span class="anchor" id="line-62"></span><strong>not</strong> include all the firmware packages in the initramfs. This is <span class="anchor" id="line-63"></span>a deliberate choice due to the extra space needed for all the firmware <span class="anchor" id="line-64"></span>here. Many/most users will already need to modify the initramfs when <span class="anchor" id="line-65"></span>setting up netboot, so an extra step here is reasonable. Adding the <span class="anchor" id="line-66"></span>firmware blobs to your initramfs is easy: simply grab the appropriate <span class="anchor" id="line-67"></span>cpio archive for your target release from <span class="anchor" id="line-68"></span><a class="https" href="https://cdimage.debian.org/cdimage/firmware/">https://cdimage.debian.org/cdimage/firmware/</a> and append it <span class="anchor" id="line-69"></span>directly to the initramfs file. <span class="anchor" id="line-70"></span><span class="anchor" id="line-71"></span><p class="line867"> <h3 id="How_to_disable_detection_and_use_of_non-free_firmware">How to disable detection and use of non-free firmware</h3> <span class="anchor" id="line-72"></span><span class="anchor" id="line-73"></span><p class="line874">From Debian 12, the installer will automatically check for needed <span class="anchor" id="line-74"></span>firmware blobs and add them as required. If you would prefer it not <span class="anchor" id="line-75"></span>to, add <span class="anchor" id="line-76"></span><span class="anchor" id="line-77"></span><p class="line867"><span class="anchor" id="line-78"></span><span class="anchor" id="line-79"></span><pre><span class="anchor" id="line-1"></span>firmware=never</pre><span class="anchor" id="line-80"></span><span class="anchor" id="line-81"></span><p class="line862">to the installer boot parameters as described in the <a class="https" href="https://www.debian.org/releases/bookworm/amd64/ch02s02.en.html">installation guide</a>. <span class="anchor" id="line-82"></span><span class="anchor" id="line-83"></span><p class="line874">On a Debian Live ISO, add <span class="anchor" id="line-84"></span><span class="anchor" id="line-85"></span><p class="line867"><span class="anchor" id="line-86"></span><span class="anchor" id="line-87"></span><pre><span class="anchor" id="line-1-1"></span>firmware=never live-installer/enable=false</pre><span class="anchor" id="line-88"></span><span class="anchor" id="line-89"></span><p class="line862">to the installer boot parameters as described in the <a class="https" href="https://live-team.pages.debian.net/live-manual/html/live-manual/customizing-installer.en.html">Debian Installer Live Manual</a>. <span class="anchor" id="line-90"></span><span class="anchor" id="line-91"></span><p class="line874">Note: using firmware=never will also skip free firmware detection and installation, so you will have to do it manually in case it is needed. <span class="anchor" id="line-92"></span><span class="anchor" id="line-93"></span><p class="line867"><span class="anchor" id="older"></span> <span class="anchor" id="line-94"></span> <h2 id="Older_releases">Older releases</h2> <span class="anchor" id="line-95"></span><span class="anchor" id="line-96"></span><p class="line862">For <strong>Debian 11 (bullseye) and older</strong>, Debian did not include firmware <span class="anchor" id="line-97"></span>on official installation and live images. The following sections <span class="anchor" id="line-98"></span>should help you if you need firmware there. <span class="anchor" id="line-99"></span><span class="anchor" id="line-100"></span><p class="line867"> <h3 id="Firmware_during_the_installation">Firmware during the installation</h3> <span class="anchor" id="line-101"></span><span class="anchor" id="line-102"></span><p class="line874">In some cases the installer detects the need for non-free firmware and <span class="anchor" id="line-103"></span>prompts the user to make the firmware available to the installer to <span class="anchor" id="line-104"></span>complete the installation. This can happen, for example, with wireless <span class="anchor" id="line-105"></span>network cards which often require non-free firmware to function (see <span class="anchor" id="line-106"></span><a href="/ipw2200">ipw2200</a> for an example). <span class="anchor" id="line-107"></span><span class="anchor" id="line-108"></span><p class="line867"> <h4 id="Installation_images_with_firmware">Installation images with firmware</h4> <span class="anchor" id="line-109"></span><span class="anchor" id="line-110"></span><p class="line862">An easy method is to use an <strong>installer image</strong> that includes all <span class="anchor" id="line-111"></span>non-free firmware packages directly. See <span class="anchor" id="line-112"></span><a class="https" href="https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/">https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/</a> <span class="anchor" id="line-113"></span><span class="anchor" id="line-114"></span><p class="line867"> <h4 id="Firmware_on_removable_media">Firmware on removable media</h4> <span class="anchor" id="line-115"></span><span class="anchor" id="line-116"></span><p class="line862">You can also <strong>download the firmware archive</strong> for your platform and <span class="anchor" id="line-117"></span>unpack it into a directory named <tt class="backtick">firmware</tt> in the root of a removable <span class="anchor" id="line-118"></span>storage device (USB/CD drive). You can find firmware downloads for <span class="anchor" id="line-119"></span>your Debian version at <span class="anchor" id="line-120"></span><a class="https" href="https://cdimage.debian.org/cdimage/firmware/">https://cdimage.debian.org/cdimage/firmware/</a>. When the installer <span class="anchor" id="line-121"></span>starts, it will automatically find the firmware files in the directory <span class="anchor" id="line-122"></span>on the removable storage and, if needed, install the required <span class="anchor" id="line-123"></span>firmware. <span class="anchor" id="line-124"></span><span class="anchor" id="line-125"></span><p class="line874">In some cases, firmware supplied on removable media may not be <span class="anchor" id="line-126"></span>detected automatically (e.g. <a class="interwiki" href="https://bugs.debian.org/740503" title="DebianBug">740503</a>). In these situations, <span class="anchor" id="line-127"></span>drop to the console (<tt class="backtick">Ctrl+alt+F2</tt>) and manually <span class="anchor" id="line-128"></span><a class="interwiki" href="https://manpages.debian.org/man/8/mount" title="DebianMan">mount(8)</a> your removable storage on a temporary <span class="anchor" id="line-129"></span>directory (e.g. <tt class="backtick">/media</tt>). <span class="anchor" id="line-130"></span><span class="anchor" id="line-131"></span><p class="line867"> <h4 id="Firmware_on_removable_media_and_preseeding">Firmware on removable media and preseeding</h4> <span class="anchor" id="line-132"></span><span class="anchor" id="line-133"></span><p class="line874">It is also possible to bypass the installer's searching and <span class="anchor" id="line-134"></span>installation process by <a href="/DebianInstaller/Preseed">preseeding</a> and <span class="anchor" id="line-135"></span>providing the firmware files directly to the kernel: <span class="anchor" id="line-136"></span><span class="anchor" id="line-137"></span><ul><li><p class="line862">The needed firmware files are assumed to be in a directory named firmware on a FAT partition formatted with <a class="interwiki" href="https://packages.debian.org/dosfstools" title="DebianPkg">mkfs.vfat</a> and <a class="interwiki" href="https://packages.debian.org/dosfstools" title="DebianPkg">labelled</a> FIRMWARE. <span class="anchor" id="line-138"></span></li><li><p class="line862">The following addition is made to the installer's kernel command line. It is a single command but has been broken here for readability. Press TAB when the installation choice is highlighted to make the command line visible. A variation on this technique is presented <a href="/Installation+Archive+USBStick#firmware">elsewhere</a>. <span class="anchor" id="line-139"></span><span class="anchor" id="line-140"></span></li></ul><p class="line867"><span class="anchor" id="line-141"></span><span class="anchor" id="line-142"></span><span class="anchor" id="line-143"></span><span class="anchor" id="line-144"></span><span class="anchor" id="line-145"></span><pre><span class="anchor" id="line-1-2"></span>Installation+Archive+USBStick <span class="anchor" id="line-2"></span>preseed/early_command="modprobe vfat ; sleep 2 ; <span class="anchor" id="line-3"></span>mount /dev/disk/by-label/FIRMWARE /media ; <span class="anchor" id="line-4"></span>cp -a /media/firmware /lib"</pre><span class="anchor" id="line-146"></span><span class="anchor" id="line-147"></span><ul><li><p class="line891"><a href="/DebianInstaller/NetbootFirmware">NetbootFirmware</a> - Firmware for Netbooting. <span class="anchor" id="line-148"></span><span class="anchor" id="line-149"></span></li></ul><p class="line874">Once the network is configured, Debian-Installer can fetch firmware from Debian repositories. <span class="anchor" id="line-150"></span><span class="anchor" id="line-151"></span><p class="line867"> <h3 id="Firmware_after_installation">Firmware after installation</h3> <span class="anchor" id="line-152"></span><span class="anchor" id="line-153"></span><p class="line862">The <a class="interwiki" href="https://packages.debian.org/isenkram" title="DebianPackage">isenkram</a> and other tools can prompt to install the <span class="anchor" id="line-154"></span>appropriate firmware and other hardware support packages when the <span class="anchor" id="line-155"></span>hardware is plugged in. This mostly <a href="/USB/GadgetSetup">relies</a> on <span class="anchor" id="line-156"></span>packages declaring via <a href="/AppStream">AppStream</a> what hardware they support. This <span class="anchor" id="line-157"></span>might not work for all firmware, so read on for another solution. <span class="anchor" id="line-158"></span><span class="anchor" id="line-159"></span><p class="line874">If you still see missing firmware console messages when the initramfs <span class="anchor" id="line-160"></span>is updated (for example whenever a kernel update is applied): <span class="anchor" id="line-161"></span><span class="anchor" id="line-162"></span><p class="line867"><span class="anchor" id="line-163"></span><span class="anchor" id="line-164"></span><pre><span class="anchor" id="line-1-3"></span>W: Possible missing firmware /lib/firmware/i915/skl_guc_62.0.0.bin for module i915</pre><span class="anchor" id="line-165"></span><span class="anchor" id="line-166"></span><p class="line862">Then you can use <a href="/apt-file">apt-file</a> or the <a class="https" href="https://www.debian.org/distrib/packages#search_contents">Debian package contents search</a> to look for the package that contains the firmware files, install it and then update the initramfs: <span class="anchor" id="line-167"></span><span class="anchor" id="line-168"></span><p class="line867"><span class="anchor" id="line-169"></span><span class="anchor" id="line-170"></span><span class="anchor" id="line-171"></span><span class="anchor" id="line-172"></span><span class="anchor" id="line-173"></span><pre><span class="anchor" id="line-1-4"></span>$ apt-file search skl_guc_62.0.0.bin <span class="anchor" id="line-2-1"></span>firmware-misc-nonfree: /lib/firmware/i915/skl_guc_62.0.0.bin <span class="anchor" id="line-3-1"></span>$ sudo apt install firmware-misc-nonfree <span class="anchor" id="line-4-1"></span>$ sudo update-initramfs -c -k all</pre><span class="anchor" id="line-174"></span><span class="anchor" id="line-175"></span><p class="line867"> <h1 id="Firmware_missing_from_Debian">Firmware missing from Debian</h1> <span class="anchor" id="line-176"></span><span class="anchor" id="line-177"></span><p class="line874">If the missing firmware is not available in Debian or if you still <span class="anchor" id="line-178"></span>see missing firmware console messages even when you have the right <span class="anchor" id="line-179"></span>firmware-* package installed, you can download and install the <span class="anchor" id="line-180"></span>firmware from the <span class="anchor" id="line-181"></span><a class="https" href="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git">linux-firmware</a> <span class="anchor" id="line-182"></span>repository, e.g. for i915 firmware: <span class="anchor" id="line-183"></span><span class="anchor" id="line-184"></span><p class="line867"><span class="anchor" id="line-185"></span><span class="anchor" id="line-186"></span><span class="anchor" id="line-187"></span><span class="anchor" id="line-188"></span><span class="anchor" id="line-189"></span><span class="anchor" id="line-190"></span><pre><span class="anchor" id="line-1-5"></span>mkdir firmware <span class="anchor" id="line-2-2"></span>cd firmware <span class="anchor" id="line-3-2"></span>wget -r -nd -e robots=no -A '*.bin' --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915/ <span class="anchor" id="line-4-2"></span>sudo mv *.bin /lib/firmware/i915/ <span class="anchor" id="line-5"></span>sudo update-initramfs -c -k all</pre><span class="anchor" id="line-191"></span><span class="anchor" id="line-192"></span><p class="line867"> <h1 id="Location_of_firmware_files">Location of firmware files</h1> <span class="anchor" id="line-193"></span><span class="anchor" id="line-194"></span><p class="line867"> <h2 id="Debian_8_.22Jessie.22_and_newer">Debian 8 "Jessie" and newer</h2> <span class="anchor" id="line-195"></span><span class="anchor" id="line-196"></span><p class="line867"><a class="interwiki" href="https://packages.debian.org/udev" title="DebianPkg">udev</a> used in Debian Jessie and later, only checks one directory for firmware files: <tt>/lib/firmware</tt>. See <a class="interwiki" href="https://bugs.debian.org/729252" title="DebianBug">729252</a> for details. <span class="anchor" id="line-197"></span><span class="anchor" id="line-198"></span><p class="line867"> <h2 id="Debian_7_.22Wheezy.22.2C_Debian_6.0_.22Squeeze.22">Debian 7 "Wheezy", Debian 6.0 "Squeeze"</h2> <span class="anchor" id="line-199"></span><span class="anchor" id="line-200"></span><p class="line862">Firmware is sourced from the following places (see <a class="interwiki" href="https://packages.debian.org/udev" title="DebianPkg">udev</a>'s <tt>/lib/udev/hotplug.functions</tt> and <tt>/lib/udev/firmware.agent</tt>) <span class="anchor" id="line-201"></span><ol type="1"><li><p class="line891"><tt>/lib/firmware/$(uname -r)</tt> - Firmware provided by a package, specific for a kernel. <span class="anchor" id="line-202"></span></li><li><p class="line891"><tt>/lib/firmware/</tt> - Firmware provided by a package, valid for all kernels. <span class="anchor" id="line-203"></span></li><li><p class="line891"><tt>/usr/local/lib/firmware</tt> - Location for manually installed firmware. <span class="anchor" id="line-204"></span></li><li><p class="line891"><tt>/usr/lib/hotplug/firmware</tt> - Firmware provided by a package, valid for all kernels <span class="anchor" id="line-205"></span><span class="anchor" id="line-206"></span></li></ol><p class="line867"> <h1 id="List_of_firmware_in_Debian">List of firmware in Debian</h1> <span class="anchor" id="line-207"></span><span class="anchor" id="line-208"></span><p class="line867"><span class="anchor" id="line-209"></span><span class="anchor" id="line-210"></span><span class="anchor" id="line-211"></span><div class="note"><span class="anchor" id="line-1-2"></span><p class="line862">To find which package provides a given firmware file, you can use this search page:<br> <span class="anchor" id="line-2-2"></span><a class="https" href="https://www.debian.org/distrib/packages#search_contents">https://www.debian.org/distrib/packages#search_contents</a> </div><span class="anchor" id="line-212"></span><span class="anchor" id="line-213"></span><p class="line867"><a href="/Firmware/List">Firmware/List</a> lists firmware distributed by Debian. <span class="anchor" id="line-214"></span><span class="anchor" id="line-215"></span><p class="line867"> <h1 id="Free_and_Open_Source_boot_firmware">Free and Open Source boot firmware</h1> <span class="anchor" id="line-216"></span><span class="anchor" id="line-217"></span><p class="line874">Projects besides Debian can provide FOSS firmware for booting into your Debian system, projects such as coreboot. <span class="anchor" id="line-218"></span><span class="anchor" id="line-219"></span><p class="line862">We maintain a list on <a href="/Firmware/Open">Firmware/Open</a> - some (not all) of them are also packaged by Debian. <span class="anchor" id="line-220"></span><span class="anchor" id="line-221"></span><p class="line874">These projects offer an interesting alternative to many proprietary BIOS/UEFI firmware and other types of firmware. For example, they may provide certain advanced security features. <span class="anchor" id="line-222"></span><span class="anchor" id="line-223"></span><p class="line867"> <h1 id="Computer_Firmware">Computer Firmware</h1> <span class="anchor" id="line-224"></span><span class="anchor" id="line-225"></span><div><table><tbody><tr> <td><p class="line862"> EFI/<a href="/UEFI">UEFI</a> </td> <td><p class="line862"> Found on most modern x86 PCs and servers, along with some ARM boards - (<a class="interwiki" href="https://en.wikipedia.org/wiki/Extensible_Firmware_Interface" title="WikiPedia">wikipedia</a>) </td> </tr> <tr> <td><span class="anchor" id="line-226"></span><p class="line862"> <a href="/BIOS">BIOS</a> </td> <td><p class="line862"> Found on older "IBM-PC" machines, generally most regular PCs and servers that were manufactured before 2011 - (<a class="interwiki" href="https://en.wikipedia.org/wiki/BIOS" title="WikiPedia">wikipedia</a>) </td> </tr> <tr> <td><span class="anchor" id="line-227"></span><p class="line862"> <a href="/OpenFirmware">OpenFirmware</a> </td> <td><p class="line862"> also known as <a href="/OpenBoot">OpenBoot</a>, Found on Sun SPARC systems, IBM Power, PowerPC-based Apple Macintosh, IEEE 1275-1994... (<a class="interwiki" href="https://en.wikipedia.org/wiki/Open_Firmware" title="WikiPedia">wikipedia</a>) </td> </tr> <tr> <td><span class="anchor" id="line-228"></span><p class="line862"> Coreboot (LinuxBIOS) </td> <td><p class="line862"> Can be used on <a class="https" href="https://doc.coreboot.org/mainboard/">some boards</a> and <a class="https" href="https://doc.coreboot.org/mainboard/index.html#emulation">tested under emulators</a> - (<a class="interwiki" href="https://en.wikipedia.org/wiki/Coreboot" title="WikiPedia">wikipedia</a>) </td> </tr> <tr> <td><span class="anchor" id="line-229"></span><p class="line862"> PMON2000 </td> <td><p class="line862"> Found on the <a href="/DebianYeeloong">Lemote Yeeloong</a> and embedded devices </td> </tr> </tbody></table></div><span class="anchor" id="line-230"></span><span class="anchor" id="line-231"></span><p class="line867"> <h1 id="Updating_firmware">Updating firmware</h1> <span class="anchor" id="line-232"></span><span class="anchor" id="line-233"></span><p class="line862">Firmware can be <a href="/Firmware/Updates">updated</a> using various methods. <span class="anchor" id="line-234"></span><span class="anchor" id="line-235"></span><p class="line867"><hr /><p class="line874"> <span class="anchor" id="line-236"></span><span class="anchor" id="line-237"></span><p class="line867"><span class="anchor" id="line-238"></span><p class="line867"><span class="anchor" id="line-239"></span><p class="line867"><span class="anchor" id="line-240"></span><p class="line867"><span class="anchor" id="line-241"></span><p class="line867"><a href="/CategoryPermalink">CategoryPermalink</a> | <a href="/CategoryHardware">CategoryHardware</a> | <a href="/CategoryProprietarySoftware">CategoryProprietarySoftware</a> <span class="anchor" id="line-242"></span><span class="anchor" id="bottom"></span></div><div id="pagebottom"></div> </div> <div id="footer"> <p id="pageinfo" class="info" lang="en" dir="ltr">Firmware (<a class="nbinfo" href="/Firmware?action=info" rel="nofollow">last modified 2025-01-26 16:07:40</a>)</p> <ul id="credits"> <li>Debian <a href="https://www.debian.org/legal/privacy">privacy policy</a>, Wiki <a href="/Teams/DebianWiki">team</a>, <a href="https://bugs.debian.org/wiki.debian.org">bugs</a> and <a href="https://salsa.debian.org/debian/wiki.debian.org">config</a>.</li><li>Powered by <a href="https://moinmo.in/" title="This site uses the MoinMoin Wiki software.">MoinMoin</a> and <a href="https://moinmo.in/Python" title="MoinMoin is written in Python.">Python</a>, with hosting provided by <a href="https://www.man-da.de/">Metropolitan Area Network Darmstadt</a>.</li> </ul> </div> </body> </html>