我不知道你在笔记本使用 Linux 在内核编译无线wifi 不能用。我的书“关联 Y450”一个足够的旧书,随着无线网卡:

$ lspci | grep Wireless

06:00.0 Network controller: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection

眼下使用的系统为 Linux Mint 17 Qiana
(Cinnamon桌面版的。毕竟cinnamon是基于Gnome3 的,与Mate 桌面相比还是更喜欢Cinnamon 。Mint 用户定制比較多,还是比較好玩的Linux 发型版)

之前在使用Debian 时我记得好像是编译使用了一个比較新的内核后就支持了无线,可是不知道如今为什么不能解决。于是仅仅能老老实实安装上系统提示的缺失固件。

方法可行,希望对你实用。

1. 无线必备的内核选项

在编译内核时我们肯定须要选择上与 WIFI 相关的内核选项:

long@Jarvis ~ $ lsmod | grep wifi

iwlwifi               147953  1 iwldvm

cfg80211              409394  3
iwlwifi,mac80211,iwldvm

非常轻松的就能选上这些:

首先选择相应的 WIFI 网卡模块(iwlwifi)及其 DVM 固件支持(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)

再选择上网络的无线协议802.11 API(CFG80211):

-> Networking support

  -> Wireless

    -> cfg80211 - wireless configuration API (CFG80211)

以及通用的IEEE的802.11 网络协议栈(mac80211):

-> Networking support

  -> Wireless

    -> Generic IEEE 802.11 Networking Stack (mac80211)

2. 错误情况及其处理办法

理论上。这几项编译上之后此内核应该就支持了 无线功能,可是开机后无线无法使用,在内核报告中。我们能够清晰的看到:

$ 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!

红色标出来的部分我们能够看到在系统启动时查询载入固件出问题了,找不到'iwlwifi-5000-5.ucode'
固件,转而内核查找“'iwlwifi-5000-4.ucode'
”,"'iwlwifi-5000-3.ucode'
","'iwlwifi-5000-2.ucode'
","'iwlwifi-5000-1.ucode'
",都载入失败后内核放弃治疗,打印了个没有合适固件,然后就无论无线网卡了。

所以我们须要在内核中加入无线网卡的固件支持,在网上寻找良方,找到

n=downloadshttp://">解决的方法

1. 首先下载网卡相应的固件文件,并且之前的内核日志也告诉我们该下载哪个:内核想查找'iwlwifi-5000-5.ucode'
,再找不到的情况下才转而查找其它的,所以我们下载'iwlwifi-5000-5.ucode'
足矣。

注: 我使用 git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git 克隆了全部内核眼下可能须要的固件的仓库。以备后患,并且非常轻松就能够在里面找到我须要的'iwlwifi-5000-5.ucode'
固件。

2. 使用 $ sudo cp iwlwifi-5000-5.ucode /lib/firmware/
将固件复制到“/lib/firmware/” 文件夹下

3. 编译内核时,依照我以下的改动:

-> 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     # 指定须要载入的固件

     (/lib/firmware) Firmware blobs root directory      # 指定固件所在的(根)文件夹。与上面选项搭配指定详细固件

其它内核选项照旧,编译后内核就支持无线功能咯。还是非常方便的。

此方法对于其它内核须要的固件应该也是有效的。

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

此外。在安装Debian 时。缺失这种固件系统会检測而且通知用于是否插入有固件的可移动盘。在那个时候直接加入上固件应该也是有效的。尽管我还未尝试

本文资源以及方法參考: http://wireless.kernel.org/en/users/Drivers/iwlwifi/?

n=downloads

版权声明:本文博主原创文章,博客,未经同意不得转载。

如何在编译内核时添加缺少的固件(随着intel wireless 5100 AGN的 iwlwifi 案例)的更多相关文章

  1. 编译内核时出现drivers/mfd/mxc-hdmi-core.c:36:24: fatal error: mach/clock.h: No such file or directory

    在学习恩智浦IMX6D开发板时,编译内核出现 drivers/mfd/mxc-hdmi-core.c::: fatal error: mach/clock.h: No such file or dir ...

  2. 编译内核时出现__bad_udelay错误

    今天编译内核时候遇到了__bad_udelay错误,然后编不过去了,仔细一看发现是udelay函数的参数太大,内核不允许延时这么多.于是换成了mdelay函数,以毫秒为单位延时,问题解决.

  3. 编译内核时覆盖KBUILD_BUILD_USER和KBUILD_BUILD_HOST

    默认情况下make kernel.img编译出来的内核在/proc/version中显示的内容是: Linux version 3.0.36+ (xxx@yyyy) (gcc version 4.6. ...

  4. 编译内核时出错:/bin/sh: 1: lzop: not found

    http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/71477.aspx 在上面链接中,发现时缺少了 lzop 工 ...

  5. itop4412编译内核时出现“recipe for target 'arch/arm/mach-exynos/cpu-exynos4.o' failed”的解决方法

    依次执行如下命令 #su root 输入root用户密码 #cd #vim .bashrc 到达最底行,确保环境变量如下图所示 保存退出后,执行如下指令 #source .bashrc 重启Termi ...

  6. 编译 Linux 内核 时出现 Restart config 问题

    scripts/kconfig/conf --silentoldconfig Kconfig * * Restart config... * * * Enable the block layer * ...

  7. Linux下编译内核配置选项简介

    Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完 ...

  8. linux编译内核make menuconfig报错Unable to find the ncurses libraries解决办法

    在 linux 编译内核时 make menuconfig 报了下面的错误. *** Unable to find the ncurses libraries or the *** required ...

  9. 在Linux内核中添加系统调用,并编译内核

    1 环境准备 运行系统:vmware下安装的ubuntu10.10 32bit桌面版. 编译内核版本: linux-2.6.32.63 内核目录: /home/wanchouchou/linuxKer ...

随机推荐

  1. JavaScript split()

    http://www.w3school.com.cn/jsref/jsref_split.asp

  2. 网页搜索功能 多表搜索sql

    SELECT ID, Title, FromTableFROM (SELECT ID, ArticleName AS Title, 'Article' AS FromTable        FROM ...

  3. ORacle 复制表

    create table r_register_company as select companyid,companyname,from grdata.r_register_company inser ...

  4. 转载 Silverlight实用窍门系列:1.Silverlight读取外部XML加载配置---(使用WebClient读取XAP包同目录下的XML文件))

    转载:程兴亮文章,地址;http://www.cnblogs.com/chengxingliang/archive/2011/02/07/1949579.html 使用WebClient读取XAP包同 ...

  5. C++访问声明

    代码: #include <iostream> #include <string> using namespace std; struct B{ private: int s; ...

  6. Max Min

    def main(): n = int(raw_input()) k = int(raw_input()) k_arr = [] min_dif = 9999999999 # 根据input要求,规定 ...

  7. Project Euler #80: Square root digital expansion

    from decimal import getcontext, Decimal def main(): n = int(raw_input()) p = int(raw_input()) getcon ...

  8. VMware网络配置 实现与物理机互访

    虚拟机和物理主机互访,两台机器可以互访并可以被局域网内其他机器访问,可以ping通并可以访问网站. 这几天正好有空搞个虚拟机,并装了不同系统,以备不同部署环境需要.明明是搞编程的,却不得不学各种知识, ...

  9. java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

    java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils Caused by: java.lang.ClassNotFou ...

  10. The JRE could not be found.Edit the server and change the JRE location.

    之前更改了了一个较低的jdk的版本看了看一个项目的代码,不知所云,然后再改回来, 混乱之中只要启动Tomcat就出现这种错误,还是无法找到JRE,最后如此解决: 在Windows->Prefer ...