如何在编译内核时添加缺少的固件(随着intel wireless 5100 AGN的 iwlwifi 案例)
我不知道你在笔记本使用 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 案例)的更多相关文章
- 编译内核时出现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 ...
- 编译内核时出现__bad_udelay错误
今天编译内核时候遇到了__bad_udelay错误,然后编不过去了,仔细一看发现是udelay函数的参数太大,内核不允许延时这么多.于是换成了mdelay函数,以毫秒为单位延时,问题解决.
- 编译内核时覆盖KBUILD_BUILD_USER和KBUILD_BUILD_HOST
默认情况下make kernel.img编译出来的内核在/proc/version中显示的内容是: Linux version 3.0.36+ (xxx@yyyy) (gcc version 4.6. ...
- 编译内核时出错:/bin/sh: 1: lzop: not found
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/71477.aspx 在上面链接中,发现时缺少了 lzop 工 ...
- itop4412编译内核时出现“recipe for target 'arch/arm/mach-exynos/cpu-exynos4.o' failed”的解决方法
依次执行如下命令 #su root 输入root用户密码 #cd #vim .bashrc 到达最底行,确保环境变量如下图所示 保存退出后,执行如下指令 #source .bashrc 重启Termi ...
- 编译 Linux 内核 时出现 Restart config 问题
scripts/kconfig/conf --silentoldconfig Kconfig * * Restart config... * * * Enable the block layer * ...
- Linux下编译内核配置选项简介
Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完 ...
- linux编译内核make menuconfig报错Unable to find the ncurses libraries解决办法
在 linux 编译内核时 make menuconfig 报了下面的错误. *** Unable to find the ncurses libraries or the *** required ...
- 在Linux内核中添加系统调用,并编译内核
1 环境准备 运行系统:vmware下安装的ubuntu10.10 32bit桌面版. 编译内核版本: linux-2.6.32.63 内核目录: /home/wanchouchou/linuxKer ...
随机推荐
- 初识QML学习机制
在QML中,一个用户界面被指定为具有属性的对象树,这使得Qt更加便于很少或没有编程经验的人使用,JavaScript在QML中作为一种脚本语言,对QML进行逻辑方面的编程. AD:WOT2015 互联 ...
- QT正则表达式---针对IP地址
判断合法IP的QT正则表达式: bool IsIPaddress(QString ip) { QRegExp rx2("(//d+)(//.)(//d+)(//.)(//d+)(//.)(/ ...
- 转载: Javah生成JNI头文件出现找不到类的错误
错误: 找不到 'com.chnic.jni.SayHellotoCPP' 的类文件. 上图可以看到错误和解决办法. 不要忘记那个点 javah -classpath . -jni com.chnic ...
- SearchFlight_Joker
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C#中子窗体获取父窗体中控件的内容
今天在做一个联系人管理的C#设计时,遇到了这个问题,我需要将父窗体中的textBox中的值传到子窗体并进行数据库查询操作,我用了new 父窗体().textBox.text;来进行值传递,然而并无卵用 ...
- vs UNICODE 零散的笔记
string--->CString #ifdef UNICODE#define Tstring wstring#else#define Tstring string#endif 可以这样转换CS ...
- destoon实现资讯信息前面调用它所属分类的方法
有时候我们需要在一些信息前面添加他所属的分类,让他显示出来,本文介绍的方法虽然有些不具有通用性,但是可以实现这一效果,代码如下,供大家参考: <!--{php null=tag("mo ...
- Python网络编程踩的坑
错误:socket.error: [Errno 10013] 原因:端口号被占用 解决:换其他的端口号或者将其他应用的端口号关闭 错误:File "D:/pyworkspace/homewo ...
- AFNetworking 使用方法(2.0)
AFNetworking 使用方法(2.0) 分类: IOS2014-11-12 09:17 2018人阅读 评论(0) 收藏 举报 目录(?)[+] 本文介绍的是AFNetworking-2 ...
- 【ROC曲线】关于ROC曲线、PR曲线对于不平衡样本的不敏感性分析说引发的思考
ROC曲线 在网上有很多地方都有说ROC曲线对于正负样本比例不敏感,即正负样本比例的变化不会改变ROC曲线.但是对于PR曲线就不一样了.PR曲线会随着正负样本比例的变化而变化.但是没有一个有十分具体和 ...