如何在编译内核时添加缺少的固件(随着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 ...
随机推荐
- io系统
一.浅谈io系统 io系统的结构化思想是:输入-转换流-装饰器-输出. 对于字节流来说,常见的结构类为: package com.handchina.yunmart.middleware.servic ...
- string之substring的用法
package com.j1; public class StringTest1 { public static void main(String[] args) { String s =" ...
- 只包含schema的dll生成和引用方法
工作中,所有的tools里有一个project是只包含若干个schema的工程,研究了一下,发现创建这种只包含schema的dll其实非常简单. 首先,在visual studio-new proje ...
- WebApi2官网学习记录--HTTP Message Handlers
Message Handlers是一个接收HTTP Request返回HTTP Response的类,继承自HttpMessageHandler 通常,一些列的message handler被链接到一 ...
- 3、HelloKhala示例说明
最简单的dome程序只需3行代码 int main() { //设置端口号 InetAddress listenAddr(USER_PORT); //将端口号绑定到Server NodeServer ...
- UVa 679 小球下落 简单模拟题,树
题目大意:给你一个完全二叉树,并且给他们编号,编号规则为左子树为2*k,右子树为2*k+1,每一个节点 上都有一个开关,初始时开关都处于关闭状态,小球碰到节点就会改变该点的开关的状态.然后给你I个小球 ...
- Qt将表格table保存为excel(odbc方式)
首先是保存excel的方法,可参照: http://dzmlmszp.blog.163.com/blog/static/179271962014819111812531/ ok,进入正题. 现在我有一 ...
- IE attachEvent事件处理程序(事件绑定的函数)的this指向的是window不是执行当前事件的dom元素
IE attachEvent事件处理程序(事件绑定的函数)的this指向的是window不是执行当前事件的dom元素. attachEvent(type,listener); listener函数中的 ...
- php的一些小笔记--时间函数
strtotime 返回UNIX时间戳 .这个函数可以用来计算前天,昨天,后天,明天 例如明天:date('Y-m-d H:is',strtotime('+1 day')) day>1是复数 ...
- 关于HTML在手机端自适应的一个问题
在写页面的时候 一直以为是自己调节的大小,结果页面跳出来的效果完全不适应手机的尺寸和宽度 其实主要是因为head头中没有放自适应标签导致:下面就让我们来认识一下这款神器吧! 其实主要就是改掉HTML页 ...