How to add missing firmware when compiling the kernel (with the Iwlwifi case of the Intel Wireless 5100 AGN)

Source: Internet
Author: User
Tags linux mint

I don't know if you use Linux in notebooks to compile wireless WiFi in the kernel is not available. My book "Associated Y450" is a sufficient old books, along with the wireless card:

$ LSPCI | grep Wireless
06:00.0 Network Controller:intel Corporation Pro/Wireless 5100 AGN [Shiloh] Network Connection

The system currently in use is Linux Mint qiana(cinnamon Desktop version. After all, cinnamon is based on Gnome3, and is more like cinnamon than mate desktop. Mint user customization is more, or more fun version of the Linux hairstyle)

Prior to using Debian I remember that it was like compiling a newer kernel to support wireless, but I don't know why I can't solve it today. So you can simply install the missing firmware on the system prompt.

The method is feasible, hope to be practical to you.


1. Core options for Wireless essentials

When compiling the kernel, we definitely need to select the kernel option on the WIFI connection:
[Email protected] ~ $ lsmod | grep wifi
Iwlwifi 147953 1 IWLDVM
cfg80211 409394 3 iwlwifi,mac80211,IWLDVM


It's very easy to pick these up:

First select the appropriate WIFI NIC module (iwlwifi) and its DVM firmware support (IWLDVM):

Device Drivers
Network Device Support
-Wireless LAN
Intel Wireless WiFi Next Gen agn-wireless-n/advanced-n/ultimate-n (iwlwifi)
Intel Wireless WiFi DVM Firmware Support (IWLDVM)


Then select the Wireless Protocol 802.11 API(CFG80211)on the network:

-Networking Support
Wireless
-cfg80211-wireless Configuration API (CFG80211)


And the general IEEE 802.11 network protocol stack (mac80211):

-Networking Support
Wireless
-Generic IEEE 802.11 Networking Stack (mac80211)


2. Error situations and how to deal with them

Theory. This kernel should support the wireless function after the compilation, but the wireless is not available after the boot, in the kernel report. We are able to see clearly:

$ DMESG | grep wifi

[    4.577225] iwlwifi 0000:06:00.0: Request for firmware file ' Iwlwifi-5000-5.ucode ' failed.
[    4.577313] Iwlwifi 0000:06:00.0:direct firmware load failed with error-2
[    4.577318] Iwlwifi 0000:06:00.0:falling back to user helper
[    4.592958] Iwlwifi 0000:06:00.0: request for firmware file ' Iwlwifi-5000-4.ucode ' failed.
[    4.593079] Iwlwifi 0000:06:00.0:direct firmware load failed with error-2
[    4.593084] Iwlwifi 0000:06:00.0:falling back to user helper
...
[    4.594753] iwlwifi 0000:06:00.0: request for firmware file ' Iwlwifi-5000-1.ucode ' failed.


[4.594782] Iwlwifi 0000:06:00.0: no suitable firmware found!
Red marked the part we can see when the system startup query loading firmware problems, unable to find the ' Iwlwifi-5000-5.ucode ' firmware, instead of the kernel to find "' Iwlwifi-5000-4.ucode '", " ' Iwlwifi-5000-3.ucode '","' Iwlwifi-5000-2.ucode '","' Iwlwifi-5000-1.ucode '", All load failed after the kernel abandoned the treatment, printed a no suitable firmware, and then regardless of the wireless card.


So we need to add the firmware support of the wireless network card in the kernel, find the prescription online

n=downloadshttp://"> How to Solve it:

1. First download the corresponding firmware file for the NIC, and the previous kernel log tells us which one to download: The kernel wants to find ' Iwlwifi-5000-5.ucode ', and then find the other one, so we download ' Iwlwifi-5000-5.ucode ' is sufficient.

Note: I use git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git A repository that clones all the firmware that the kernel may need right now. For the future, and it's very easy to find the ' iwlwifi-5000-5.ucode ' firmware I need.

2. Use the sudo cp iwlwifi-5000-5.ucode/lib/firmware/ to copy the firmware to the "/lib/firmware/" folder

3. When compiling the kernel, follow my changes below:

Device Drivers
Generic Driver Options--->
-*-Userspace firmware loading support
[*] Include In-kernel firmware blobs in kernel binary
(iwlwifi-5000-5.ucode) External firmware blobs to build into the kernel binary # Specify the firmware that needs to be loaded
(/lib/firmware) Firmware BLOBs root Directory # Specifies the (root) folder where the firmware resides. Specify detailed firmware with the above options


Other kernel options are the same, and the kernel supports wireless functionality after compilation. It's very convenient.

This method should also be valid for the firmware required for other cores.


=====================

In addition When installing Debian. Missing this firmware system will detect and notify the removable disk for insertion of the firmware. It should also be valid to add the firmware directly at that time. Though I haven't tried yet .


This article resources and methods for reference: http://wireless.kernel.org/en/users/Drivers/iwlwifi/?

N=downloads


Copyright notice: This article Bo Master original articles, blogs, without consent may not be reproduced.

How to add missing firmware when compiling the kernel (with the Iwlwifi case of the Intel Wireless 5100 AGN)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.