Hello World模块调试心得

作者: yrgynot 2008-10-06 00:07:14
1. 编译

Makefile可写成

obj-m := helloword.o

执行编译

make -C /lib/modules/2.6.23.1-42.fc8/build/ M=$PWD modules

2. 运行

> insmod helloword.ko

得到如下错误:-1 invalid module format

错误原因:

当前内核 kernel-2.6.25.14-69.fc8



编译使用的内核源代码树的版本kernel-devel-2.6.23.1-42.fc8不一致导致。

执行yum update的原因,导致kernel升级,而没有相应的kernel-devel。所以处理方法是回到以前的版本,可以在linux启动时按TAB来触发kernel选择菜单。

另外发现,要安装以前版本的kernel,可以先安装yum install yum-allowdowngrade,然后执行

yum --allow-downgrade install kernel.i686 (至于安装模块可以通过yum list all来找到)

换了内核后遇到的另外一个问题是,Term没有输出,后来发现输出到

/var/log/messages

如果要在Term上看到打印,可以新开一个Terminal,输入

tail -f /var/log/messages

这样,messages文件的每一次变化都会在新的Term上显示

相关资讯