- 论坛徽章:
- 0
|
我的目的是在s3c2440上开发 linux 驱动程序,具体做法如下:
1,我先把开发包中自带的linux镜像装到s3c2440上,并且能实现一个简单的应用程序。
2,编译简单的hello驱动模块,s3c2440的内核是2.6.31,主机上用的是ubuntu10.04,交叉编译器是 arm-linux4.1.2 我先把开发包中的内核源码包linux-2.6.31_TX2440A20100612.tar.bz2和它的补丁linux-2.6.31_TX2440A201000612.patch下载到我的一个目录下,解压linux-2.6.31_TX2440A20100612.tar.bz2,然后进入到解压后的linux-2.6.31_TX2440A目录,打上补丁
patch -p1 < /home/cao/tx2440a/linux-2.6.31_TX2440A201000612.patch,出现了下面的一些东西
Reversed (or previously applied) patch detected! Assume -R? [n]我直接按enter键,然后输入
make oldconfig 和make preare
3.我进入hello目录编译hello.c,生成了如下文件:hello.ko hello.mod.c hello.mod.o hello.o Module.symvers modules.order
4,编译好的hello.ko下载到开发板上,用insmod命令安装hello.ko时出现如下错误:
[root@TX2440A cao]# insmod hello.ko hello: version magic '2.6.31 modversions ARMv5 ' should be '2.6.31 mod_unload ARMv4 '
insmod: can't insert 'hello.ko': invalid module format
我不清楚什么原因,试着把它的内核linux-2.6.31_TX2440A编译一下,结果出现了上面的错误
/tmp/ccQV3TVk.s: Assembler messages:
/tmp/ccQV3TVk.s:4317: Error: .err encountered
make[1]: *** [mm/page_alloc.o] Error 1 |
|