
.ko文件是kernel object文件(内核模块),该文件的意义就是把内核的一些功能移动到内核外边, 需要的时候插入内核,不需要时卸载。
二、优点
(1)这样可以缩小内核体积;
(2)使用方便。
三、.ko文件一般的用处
(1)作为一个功能模块,需要使用时,直接插入运行就行。如在imx6上连接模拟摄像头,先运行模拟摄像头对应的驱动模块 camera.ko文件,然后对应的工程执行文件运行就行。
四、使用.ko 文件
1、加载驱动模块test.ko
(1)方法一
进入test.ko驱动模块文件所在的目录,然后直接 insmod test.ko
(2)方法二
将test.ko文件拷贝到/lib/module/#uname-r#/目录下,这里,#uname -r#意思是,在终端中输入
uname -r后显示的内核版本及名称,例如mini2440中#uname-r#就是2.6.32.2-FriendlyARM。
然后 depmod(会在/lib/modules/#uname -r#/目录下生成modules.dep和modules.dep.bb文件,表明模块的依赖关系)
最后 modprobe test(注意这里无需输入.ko后缀) 即可
注:两种方法的区别
modprobe和insmod类似,都是用来动态加载驱动模块的,区别在于modprobe可以解决load module时的依赖关系,它是通过/lib/modules/#uname -r/modules.dep(.bb)文件来查找依赖关系的;而insmod不能解决依赖问题。也就是说,如果你确定你要加载的驱动模块不依赖其他驱动模块的话,既可以insmod也可以modprobe,当然insmod可以在任何目录下执行,更方便一些。而如果你要加载的驱动模块还依赖其他ko驱动模块的话,就只能将模块拷贝到上述的特定目录,depmod后再modprobe。
驱动各种各样,一般直接在硬件商官网下载安装包的都是tar.gz或者tar..bz2之类的tar的压缩包。如果是系统自己安装的,那一般安装包都是不同的,比如debian,ubuntu这样的发行版用的deb,
而centos,和fedora这样的发行版用的是rpm。
如果是安装好的驱动,后缀都是.c
linux系统如何安装网卡驱动
很多初学者都觉得能够在自己的笔记本上安装linux系统是一件很酷的事情,结果两个小时安装好linux系统,却发现缺少各种驱动, 为了让各位少走一些弯路,我在这里把linux如何安装有线网卡驱动的方法整理了下,方便大家学习。
场景:联想笔记本电脑安装的centos系统,安装完成后发现缺少网卡驱动
1. 检查是否安装网卡驱动
执行命令:lspci | grep -i eth
终端显示的结果为:02:00.0 Ethernet controller: Qualcomm Atheros AR8161 Gigabit Ethernet (rev 08)
接着再执行一下命令:ifconfg
终端显示的连接中没有eth0的相关信息,只有一个lo 和virbr0
很明显,网卡驱动没有装好。我是这样来解决的.。
注意:我电脑是联想Y400 网卡是上面的Atheros AR8161这个,网卡驱动下载链接 http://pan.baidu.com/s/1gd3hNvd
下载后解压得到: alx-linux-v2.0.0.6 目录
2. 检查自己的系统环境
gcc
kernel-headers 和 kernel-devel 是否已经安装,我安装系统时候就安装了开发组件和桌面,所以这里没必要再安装。
如果没有安装开发组件,可以进行如下 *** 作(用yum前需要提前配好yum源)
yum install gcc
yum install kernel-headers
yum install kernel-devel
3. 编译:
进入 alx-linux-v2.0.6的目录
执行make
此时在src文件件夹中产生了一个alx.ko文件
4. 配置文件的修改:
mkdir /lib/modules/2.6.32-358.6.2.el6.x86_64/kernel/net/wired //创建文件夹wired
在vi /lib/modules/2.6.32-358.6.2.el6.x86_64/modules.networking 文件里添加 alx.ko
执行命令:vi /etc/sysconfig/modules/alx.modules
在alx.modules中添加如下脚本内容:
#!/bin/sh
if [ ! -c /dev/input/alx.ko ] then
exec /sbin/modprobe alx >/dev/null 2>&1
fi
5.最后执行其他命令:
首先执行命令:depmod -a
接着执行命令:modprobe alx
此时用ifconfig 就可以找到eth0 了
6.如果还是找不到
执行ifconfig -a //这样就可以发现eth0了(eth0是第一个,如果你有其他网卡,就会有eth1,2,3...)
ifconfig eth0 up //启动eth0
好了。到此为止,网卡驱动已经安装好了,接下来开始配置网络文件,开始愉快的玩耍吧!
不过我还是要强烈呼吁初学者,不要安装双系统,不要在笔记本安装linux系统。用windows+虚拟机的模式来学习是最快的学习方式。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)