如何在编译内核时添加缺少的固件(随着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 ...
随机推荐
- SDK命令行操作
* 使用前需要先在path中添加Android SDK的环境变量,跟Java JDK的配置相同 我当前目录如下:F:\Program\Android SDK\tools:F:\Program\Andr ...
- SVG 路径(path)
本文转自:https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Paths <path>元素是SVG基本形状中最强大的一个,它 ...
- 你使用PetaPoco必须知道的事情
之前没有用PetaPoco调用过存储过程,今天发现问题 Sql sql = ); var list = sqlserverDB.GetInstance().Fetch<AdminGroup> ...
- js改变div宽度
document.getElementById('Content_Right_id').style.width = document.documentElement.clientWidth - 250 ...
- UIAlertController的创建以及添加
个人还是更喜欢以前的UIAlertView的创建方法,更新后的UIAlertController虽然说将UIAlertView和UIActionSheet的功能和作用以一种模块化替换的方式来代替,但是 ...
- nyoj 最少步数
算法:搜索(深度优先搜索) 描述 这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1, ...
- 最短路径floy算法———模板
#include<cstdio>int n,i[1000][1000];int main(){ scanf("%d",&n); for (int a=1;a&l ...
- Oracle11g R2学习系列 之三教程选择
工欲善其事必先利其器,选择一本入门教程也是很重要的,本人使用的也是这位同事推荐的电子工业出版社的<<Oracle 实用教程(第3版)>>郑阿奇主编,可以至这里购买到,我个人还是 ...
- Python爬虫学习:一、相关概念与基础知识
爬虫: 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽 ...
- 机器学习之K近邻算法(KNN)
机器学习之K近邻算法(KNN) 标签: python 算法 KNN 机械学习 苛求真理的欲望让我想要了解算法的本质,于是我开始了机械学习的算法之旅 from numpy import * import ...