请教: S3CEB2410开发板的模块装载问题,急!
时间:2005-09-01
来源:互联网
使用insmod hello.o来执行,得到下面的输出结果:
# insmod hello.o
hello.o: couldn't find the kernel version the module was compiled for
#
我是初学者,请大家指点,谢谢先!
作者: gefy 发布时间: 2005-09-01
TEMPPARM=-D__KERNEL__
TEMPPARM+=-DMODULE
TEMPPARM+=-I/usr/src/kernel/include
TEMPPARM+=-I./
TEMPPARM+=-Wall
TEMPPARM+=-I/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/include
TEMPPARM+= -O2
hello.o:hello.c
arm-linux-gcc $(TEMPPARM) -c -o hello.o hello.c
开发板上的Linux版本是:linux-2.4.18-rmk7-pxa1,解压在/usr/src/kernel里面
我的hello.c文件内容是:
#include <linux/kernel.h>
#include <linux/module.h>
#ifndef __KERNEL__
#define __KERNEL__
#endif
#ifndef MODULE
#define MODULE
#endif
int init_module(void)
{
printk("<1>Hello,world\n");
return 0;
}
void cleanup_module(void)
{
printk("<1>goodbye cruel world\n");
}
执行make命令后出错了,输出结果为:
arm-linux-gcc -D__KERNEL__ -DMODULE -I/usr/src/kernel/include -I./ -Wall -I/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/include -O2 -c -o hello.o hello.c
In file included from hello.c:2:
/usr/src/kernel/include/linux/module.h:297: linux/version.h: ?????????
make: *** [hello.o] Error 1
这是什么原因呢 ?
作者: gefy 发布时间: 2005-09-01
arm-linux-gcc -D__KERNEL__ -DMODULE -I/usr/src/kernel/include -I./ -Wall -I/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/include -O2 -c -o hello.o hello.c
In file included from hello.c:2:
/usr/src/kernel/include/linux/module.h:297: linux/version.h: ?????????
make: *** [hello.o] Error 1
这是什么原因呢 ?[/QUOTE]1.在确认进入s<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com3c</st1:chmetcnv>2410_kernel<st1:chsdate w:st=" /><st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="C">3c</st1:chmetcnv>2410_kernel<st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899">2.4.18</st1:chsdate>_r1.1源码目录中,make menuconfig
选择'Load on Alternate Configuration File'一项
输入'arch/arm/def-configs/smdk2410'
选择Exit,Yes保存
2.直接把s<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="C">3c</st1:chmetcnv>2410_kernel<st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899">2.4.18</st1:chsdate>_r1.1/include/linux 直接在图形界面中复制到 /usr/local/arm/2.95.3/arm-linux/include/linux
把s<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="C">3c</st1:chmetcnv>2410_kernel<st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899">2.4.18</st1:chsdate>_r1.1/include/asm-arm 直接在图形界面中复制到 /usr/local/arm/2.95.3/arm-linux/include/asm
3.编译就ok了
我当初也是为了这个问题搞了好久.你现在不必浪费时间再走弯路了
作者: JAMESBONE 发布时间: 2005-09-01
我后来把源文件看了一下,里面没有version.h这个文件,我就把内核源文件重新解压缩装在原来的位置,然后重新编译通过了,下载到板子上通过了.
第一条中你提到的内核编译我不太明白,编译内核中的那个操作是什么意思,还请你再指点一下,谢谢!
还有个问题,请问你用的是S3CEB2410这块板子吗?我的LCD显示不正常,不知道是不是没有驱动的原因,我在内核启动的过程中没有发现任何关于LCD的信息,是不是内核中没有包含LCD驱动呢?
谢谢!
作者: gefy 发布时间: 2005-09-02
第一条中你提到的内核编译我不太明白,编译内核中的那个操作是什么意思,还请你再指点一下,谢谢!
[/QUOTE]这就是为了产生version.h文件.我的内核源文件原来是没有这个文件的,只有通过这样产生.(不敢肯定是否还有其他新的文件产生)
我用的这快板子是没有lcd的,为了省钱.因此你的问题我只能猜测一下:可能应该烧入的kernel映象应该是光盘中Linux(QT)下的zImage
这个公司的产品的文档内容很少很少,技术支持更是水货.开发难度会很大.有问题大家再切磋下
作者: JAMESBONE 发布时间: 2005-09-02
我可以参考的资料很少,源代码来源于MIZI公司的SMDK2410的光盘,里面的英文相关文档很少,韩文的很多,太郁闷了....
以后还要多请教你了,谢谢!
能告诉我你现在在做哪一方面的开发吗?
作者: gefy 发布时间: 2005-09-02
作者: JAMESBONE 发布时间: 2005-09-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28