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上显示
chris078426 于 2008-10-06 15:02:06发表:
还有一个办法是不是用dmesg,也可以看到messages的文件呀。不过我又知道了tail的基本用法。