红联Linux门户
Linux帮助

Hello World模块调试心得

发布时间:2008-10-06 00:07:14来源:红联作者:yrgynot
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上显示
文章评论

共有 1 条评论

  1. chris078426 于 2008-10-06 15:02:06发表:

    还有一个办法是不是用dmesg,也可以看到messages的文件呀。不过我又知道了tail的基本用法。