读书人

ubuntu 编译内核模块历程

发布时间: 2013-01-26 13:47:02 作者: rapoo

ubuntu 编译内核模块过程

1、下载内核源文件

?sudo apt-cache search linux-source

?可以看到和当前操作系统统一版本的源码,例linux-source-2.6.32

?安装源码sudo apt-get install linux-source-2.6.32

?然后解压压缩包

?cd /usr/src,可以看到linux-source-2.6.32.tar.bz2

?解压内核源码文件,sudo tar jxf linux-source-2.6.32.tar.bz2 -C .

?解压完成,在/usr/src/目录下,产生linux-source-2.6.32文件夹

?

2、初始化内核文件部分脚本

?

?

?2.1 sudo make prepare (防止错误 类似include/linux/mmzone.h:18:26: error: linux/bounds.h: 没有该文件或目录)

??

?如果碰到 ?make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'.? Stop.

?sudo make localmodconfig 或者 sudo make menuconfig 或 sudo make oldconfig

?

?2.2 sudo make scripts?? (防止错误? /bin/sh: scripts/mod/modpost: not found )

?

?

?

3、添加模块源文件

?3.1 添加.c文件

??

?

3.2 添加Makefile

???

obj-m := hello.o

?

4、进行编译

?? make -C /usr/src/linux-source-2.6.32/ M=$(pwd) modules

?

5、加载内核模块

?? sudo insmod hello.ko

?

如果发生错误:?? insmod: error inserting 'hello.ko': -1 Invalid module format??

说明使用的版本是不正确的

?

不妨试试 make -C /lib/modules/`uname -r`/build M=$(pwd) modules

?

?

?

??

?

?

?

?

读书人网 >操作系统

热点推荐