我昨天和前天,自己编译了一下Linux 的kernel,编译完之后,发现系统性能确有提高,很高兴。
有一些驱动被编译成了模块,而有一些则被我直接编译进了kernel,所以就面临着一个驱动的模块加载的问题。
而且,我将ipw2200的无线网卡编译成模块后,本来是应该开机自动加载的(用lsmod命令可以看到已经加载的模块,开机后表面上显示已经是加载了的),可是在gonme 的无线配置文件里并没有无线网卡。
原因何在?上网查了查,用dmesg看到了相关信息,原来是ipw2200的firmware读取错误,这又是什么问题?
问题在/lib/firmware文件夹下面,没有新内核相对应的firmware文件夹,也就是没有firmware,导致许多硬件没法工作。得,我把默认的内核的firmware拷贝一份,改名成新内核的名字,重启,ok。
从上可以了解以下知识点:
lsmod 命令是用来查看现在已经加载的模块的;
dmesg命令可以查看模块的加载问题;
/lib/firmware 中保存的是系统硬件的firmware;
那如果模块没有开机自动加载,如何设置成开机自动加载呢?
看下面这篇文章:
(转载节选,版权属于原作者)http://forum.Ubuntu.org.cn/viewtopic.php?p=103992
加载模块
在加载模块之前不要忘记 “sudo depmod -a”,如果没有错误,请继续。
加载模块的命令是 “sudo modprobe ndiswrapper”,如没出错,则说明驱动已经被加载了。
使用 dmesg命令,如果加载成功,显示 “ndiswrapper version <version> loaded”。请确认version <version>和你下载安装的ndiswrapper包匹配一致,如不一样,那就是你可能以前安装过ndiswrapper的旧版本,那么请卸载旧版本,然后再安装新版本。卸载旧版本,请看 http://ndiswrapper.sourceforge.net/mediawiki/index.php/Uninstall。
此时,网卡的灯应该亮了,至少是闪了,如果闪了,证明驱动加载上,网卡可以工作了。如果网卡已经可以工作,那么dmesg命令可以看到”wlan0: ndiswrapper ethernet device xx:xx:xx:xx:xx:xx”的信息。
………………….
若想在boot时自动运行ndiswrapper,请在 /etc/modules 文件内添加一行 ndiswrapper。
特别注意:ubuntu系统默认是加载prism54模块的,所以要禁止它在启动的时候加载,只让ndiswrapper加载。具体作法是在/etc/modprobe.d/blacklist最后加上一行blacklist prism54。
本文来自耶林的BLOGhttp://blog.sina.com.cn/Linuxblog