阅读:1947回复:7
insmod hello.o结果显示内核不匹配,怎么办?
#define MODULE
#include <linux/module.h> int init_module(void) {printk("<1>Hello,worldn"); return 0;} void cleanup_module(void) {printk("<1>Goodbye cruel worldn");} insmod hello.o结果显示内核不匹配,怎么办? 我的内核为2.4.20-8 hello.o支持的内核为2.4.20 |
|
沙发#
发布于:2004-08-03 19:38
编译条件的问题:
gcc -c hello.c -I/usr/src/... |
|
|
板凳#
发布于:2004-08-03 20:02
我在本论坛的请教linux设备驱动开发问题的贴子上找到了答案
我用的是gcc -I/usr/src/linux-2.4.20-8/include -c hello.c 已经解决了这个问题,又出现了新的问题 Warning: loading ./hello.o will taint the kernel: no license See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module hello loaded, with warnings 请问怎么解决? [编辑 - 8/3/04 by baaniaw] [编辑 - 8/3/04 by baaniaw] |
|
地板#
发布于:2004-08-03 20:32
int init_module(void) {
MODULE_LISENCE("GPL"); printk("<1>Hello,worldn"); return 0; } 加入MODULE_LISENCE("GPL");后no license的问题已经解决,但是用 insmod hello.o之后什么都没显示,应该显示Hello,worldn 这是为什么? |
|
地下室#
发布于:2004-08-04 20:19
应该是日志优先级问题,试一下用printk("<0>Hello,worldn");
|
|
5楼#
发布于:2004-08-05 14:02
这是我犯的一个小错误,我在xwindows下什么结果也看不到,
回到纯文本下就可以看到结果了。 |
|
6楼#
发布于:2004-08-13 13:08
其实不用那么麻烦的我用的是redhat8 kernel 2.4.18
gcc -c hello.c insmod -f(重要) ./hello.o 即便在xwindow下也可以看到printk,不过要用dmesg命令,因为printk 把信息输出到log文件里了 |
|
|
7楼#
发布于:2004-08-20 15:56
用-f选项
|
|