linux驱动程序安装

来源:互联网 发布:java web工程师面试题 编辑:程序博客网 时间:2024/04/29 17:04

linux下的驱动程序安装有模块方式与直接编译进内核。

1.模块方式

linux内核包含的组件很多,把所有的组件都编译进内核文件(zImage或者bzImage)会导致内核过大。使用内核模块可以让内核文件(zImage或者bzImage)本身并不包含某组

件,而是在该组件需要被使用的时候,动态的添加到正在运行的内核。

1.1内核模块的程序结构:

模块加载函数(必需):安装模块时被系统自动调用的函数,通过module_init宏来指定。

模块卸载函数(必需):卸载模块时被系统自动调用的函数,通过module_exit宏来指定。

1.2模块的编译:

通常使用makefile,编译后生成.ko文件。

1.3安装与卸载

加载模块:insmod(insmod *.ko)

卸载模块:rmmod(rmmod *)

查看模块:lsmod

加载模块:modprobe(modprobe *)——可以根据/lib/modules/<$version>/modules.dep文件查看依赖项,并把它们加载到内核。


2.直接编译进内核

2.1修改Kconfig文件

例如加入helloworld模块:


在配置菜单中会出现helloworld选项:


如果选中helloworld,则在.config文件中会出现如下字符串:


2.2修改Makefile文件


obj-$()中的内容要与.config中的字符串对应!