奇怪!请教这个驱动在redhat9可以insmod,在armlinux为什么却不能
时间:2005-07-04
来源:互联网
一个简单的驱动hello.c: (<Linux设备驱动程序>第二版P25)
#define MODULE
#include <linux/module.h>
init init_module(void){
printk ("<1>Hello");
return 0;
}
void cleanup_module(void){
printk("<1>Bye");
}
在RedHat9用gcc编译后可以 insmod,rmmod
上面的程序用arm-linux-gcc编译时,出现了几个问题:
(1)直接编译通不过 arm-linux-gcc -c hello.c 错误信息是parse error before "UTS_RELEASE"
(2)于是修改程序 先写#include ,再写#define MODULE
arm-linux-gcc -c hello.c 无错误信息出现了 (如果用arm-linux-gcc -c -D__KERNEL__ hello.c
编译还是会出现parse error before "UTS_RELEASE")
然后把hello.o下载到S3ceb2410的板上/tmp目录,执行insmod ./hello.o
错误信息为couldn"t find the kernel version the module was complier for
(3)按照网上的文章修改了version相关的一切,都不行.就是insmod不了
请问一下这究竟是什么回事啊?
我现在猜测是不是文件系统的原因,板上的linux内核是用make zImage做出来的(也不知道是什么文件系统)
是不是只有某种文件才能对模块 insmod rmmod?
各位的任何意见我都感谢啊)
#define MODULE
#include
init init_module(void){
printk ("<1>Hello");
return 0;
}
void cleanup_module(void){
printk("<1>Bye");
}
在RedHat9用gcc编译后可以 insmod,rmmod
上面的程序用arm-linux-gcc编译时,出现了几个问题:
(1)直接编译通不过 arm-linux-gcc -c hello.c 错误信息是parse error before "UTS_RELEASE"
(2)于是修改程序 先写#include ,再写#define MODULE
arm-linux-gcc -c hello.c 无错误信息出现了 (如果用arm-linux-gcc -c -D__KERNEL__ hello.c
编译还是会出现parse error before "UTS_RELEASE")
然后把hello.o下载到S3C2410的板上/tmp目录,执行insmod ./hello.o
错误信息为couldn"t find the kernel version the module was complier for
(3)按照网上的文章修改了version相关的一切,都不行.就是insmod不了
请问一下这究竟是什么回事啊?
我现在猜测是不是文件系统的原因,板上的linux内核是用make zImage做出来的(也不知道是什么文件系统)
是不是只有某种文件才能对模块 insmod rmmod?
各位的任何意见我都感谢啊
#define MODULE
#include <linux/module.h>
init init_module(void){
printk ("<1>Hello");
return 0;
}
void cleanup_module(void){
printk("<1>Bye");
}
在RedHat9用gcc编译后可以 insmod,rmmod
上面的程序用arm-linux-gcc编译时,出现了几个问题:
(1)直接编译通不过 arm-linux-gcc -c hello.c 错误信息是parse error before "UTS_RELEASE"
(2)于是修改程序 先写#include ,再写#define MODULE
arm-linux-gcc -c hello.c 无错误信息出现了 (如果用arm-linux-gcc -c -D__KERNEL__ hello.c
编译还是会出现parse error before "UTS_RELEASE")
然后把hello.o下载到S3ceb2410的板上/tmp目录,执行insmod ./hello.o
错误信息为couldn"t find the kernel version the module was complier for
(3)按照网上的文章修改了version相关的一切,都不行.就是insmod不了
请问一下这究竟是什么回事啊?
我现在猜测是不是文件系统的原因,板上的linux内核是用make zImage做出来的(也不知道是什么文件系统)
是不是只有某种文件才能对模块 insmod rmmod?
各位的任何意见我都感谢啊)
#define MODULE
#include
init init_module(void){
printk ("<1>Hello");
return 0;
}
void cleanup_module(void){
printk("<1>Bye");
}
在RedHat9用gcc编译后可以 insmod,rmmod
上面的程序用arm-linux-gcc编译时,出现了几个问题:
(1)直接编译通不过 arm-linux-gcc -c hello.c 错误信息是parse error before "UTS_RELEASE"
(2)于是修改程序 先写#include ,再写#define MODULE
arm-linux-gcc -c hello.c 无错误信息出现了 (如果用arm-linux-gcc -c -D__KERNEL__ hello.c
编译还是会出现parse error before "UTS_RELEASE")
然后把hello.o下载到S3C2410的板上/tmp目录,执行insmod ./hello.o
错误信息为couldn"t find the kernel version the module was complier for
(3)按照网上的文章修改了version相关的一切,都不行.就是insmod不了
请问一下这究竟是什么回事啊?
我现在猜测是不是文件系统的原因,板上的linux内核是用make zImage做出来的(也不知道是什么文件系统)
是不是只有某种文件才能对模块 insmod rmmod?
各位的任何意见我都感谢啊
作者: JAMESBONE 发布时间: 2005-07-04
编译kernel模块好象是最好写Makefile,调用kernel自己的编译系统来编译,直接gcc -D__kernel__ 好象是会遗漏很多操作
作者: AIKO_sex 发布时间: 2005-07-04
AIKO_sex您好!
我写了Makefile:
TEMPPARM = -D__KERNEL__
#TEMPPARM += -DMODULE (如果把原程序的#define MODULE去掉而在这里加上的话,就会出现parse error before `UTS_RELEASE'....)
TEMPPARM += -Wall
TEMPPARM += -O2
hello2-arm.o: hello2.c
arm-linux-gcc $(TEMPPARM) -c hello2.c -o hello2-arm.o
clean:
rm -rf hello2-arm.o
make了之后
但是还是在arm linux下insmod不了啊
怎么办?
我写了Makefile:
TEMPPARM = -D__KERNEL__
#TEMPPARM += -DMODULE (如果把原程序的#define MODULE去掉而在这里加上的话,就会出现parse error before `UTS_RELEASE'....)
TEMPPARM += -Wall
TEMPPARM += -O2
hello2-arm.o: hello2.c
arm-linux-gcc $(TEMPPARM) -c hello2.c -o hello2-arm.o
clean:
rm -rf hello2-arm.o
make了之后
但是还是在arm linux下insmod不了啊
怎么办?
作者: JAMESBONE 发布时间: 2005-07-04
你用的头文件是和你运行的内核版本一致么?至少有linux/modversion.h这个文件
作者: AIKO_sex 发布时间: 2005-07-05
归根到底是由于库的问题.
交叉编译工具中的库.../2.95.3/arm-linux/include/linux和.../2.95.3/arm-linux/include/asm的问题
现在解决了
谢谢AIKO_sex啊!
交叉编译工具中的库.../2.95.3/arm-linux/include/linux和.../2.95.3/arm-linux/include/asm的问题
现在解决了
谢谢AIKO_sex啊!
作者: JAMESBONE 发布时间: 2005-07-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28