阅读:3203回复:12
关于Linux设备驱动第三版中的hello模块的编写
我安装的是FC7,内核的版本好像是2.6.21-1的,用uname -r 显示的版本是
2.6.21-1.3194.fc 所以我在我的系统里面安装了2.6.21-1版本的内核源码。并且编译和安装了模块。 将书上的程序运行了一下。其中将makefile文件里面的路径改成了我刚才安装的路将 编译也能够产生源代码,但是有很多的警告,说是不匹配。 具体的显示是: WARING: vmLinux -Section mismatch :refrence to .init.text: _ alloc_bootmen from .text between 'init_gdt' (at offset 0xc100a8a9) and 'CPU_init' …… 这样的警告还有很多。但是能够生成文件hello.ko 安装时的时候用 insmod ./hello.ko 显示的是安装错误, insmod : error inserting 'hello.ko' :-l Invlid module format |
|
沙发#
发布于:2007-08-23 19:46
这边也没有人回答吗
|
|
板凳#
发布于:2007-08-23 22:30
|
|
地板#
发布于:2007-08-24 22:19
是你的makefile 没有写对
需要指定你的内核路径 |
|
|
地下室#
发布于:2007-09-03 09:40
这个我已经指定了
但是我指定的内核的路径的话只是指定了一个自己下载过来安装了模块的路径,不是现在在运行的那个内核。指定的内核的话我也没有进行安装。这样会有影响吗 |
|
5楼#
发布于:2007-09-04 20:40
insmod -f *.ko试试呢
|
|
|
6楼#
发布于:2007-09-17 16:17
makefile:http://code.sh/c2511
|
|
|
7楼#
发布于:2007-09-24 12:48
呵呵,初学者在弄这个hello模块时总是会遇到很多问题,我当时也是遇到了这种那种的怪问题,主要是内核没有编译好。
|
|
|
8楼#
发布于:2007-10-22 12:14
内核没有编译好,安装源码数的时候,有没有make modules; make modules-install?
|
|
9楼#
发布于:2007-12-24 12:03
同意,就是内核没有编译好.重新编译就好啦.
|
|
10楼#
发布于:2008-01-02 12:59
引用第8楼caorr于2007-10-22 12:14发表的 : 编译好kernel代码就可以,不需要安装。模块出错的原因在于如果没有执行配置内核配置,会缺少部分文件,导致你编译外部模块时出错。 另外,建议使用modprobe module.ko的方式,我遇到过复杂模块,直接insmod的方式也会出类似错误。 |
|
11楼#
发布于:2008-01-02 13:04
引用第8楼caorr于2007-10-22 12:14发表的 : 编译好kernel代码就可以,不需要安装。模块出错的原因在于如果没有执行配置内核配置,会缺少部分文件,导致你编译外部模块时出错。 另外,建议使用modprobe module.ko的方式,我遇到过复杂模块,直接insmod的方式也会出类似错误。 |
|
12楼#
发布于:2008-03-30 09:46
没通过
|
|