如何在编译内核时添加缺少的固件(随着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 ...
随机推荐
- Java八个并发学习——线程同步工具CyclicBarrier
本文是一篇文章对网络的研究摘要,感谢您的无私分享. CyclicBarrier 类有一个整数初始值,此值表示将在同一点同步的线程数量.当当中一个线程到达确定点,它会调用await() 方法来等待其它线 ...
- AVL旋转树
执行插入操作可能出现不平衡的情况,当平衡二叉树.AVL这树是一种自平衡二叉树,使二叉树又一次保持平衡.而且查找.插入和删除操作在平均和最坏情况下时间复杂度都是O(log n) AVL树的旋转一共同拥有 ...
- VCS仿真 Dump Memory
VCS仿真 Dump Memory 两种方法 vcs联合verdi生成fsdb文件 vcs生成vpd文件 VCS联合verdi生成fsdb文件 1.testbench中加入如下语句: initial ...
- Django初学笔记1.
1,安装python 和 Django , 参考网上教程(安装python,配置path, 安装django,配置path..) 2,查看django安装版本:cmd-->python--> ...
- JAVA采用JDBC连接操作数据库详解
JDBC连接数据库概述 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供 ...
- C++深层复制解决指针悬挂
代码: #include <iostream> #include <cstring> using namespace std; class mystring{ public: ...
- 在windows中搭建php开发环境
一.wampserver wampserver是一个安装集成包,包含了开发所需的apache,mysql,php,简单方便. 下载地址 http://www.xiazaiba.com/html/279 ...
- Javascript个人理解
一. 生成对象的原始模式 假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性. var Cat = { name : '', color : '' } 现 ...
- Scala学习笔记--正则表达式基础知识、如何在scala内使用
正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...
- MyEclipse8.5自动生成注册码
package com; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe ...