SKY_MASTER 发表于 2009-08-08 13:34

交叉编译 Makefile!!!

我是刚接触嵌入式,想在板上加个驱动就是不成功,我不会写Makefile,下了个只能生成.o.ko文件,不能生成.bin。
我看有的人直接使用insmod加载.o.ko就行,我的为什么不行?好像必须用没后缀的可执行文件

希望谁能给我发个好用的Makefile,我用的是Linux2.6.13的内核,内核在虚拟机的/opt/EmbedSky/kernel-2.6.13下。


是不是在make前需要在虚拟机上编译一边内核?我在编译时出现过一些warning,不知道有没影响

一般的makefile我还懂,但这个驱动的一堆参数,我有的不知道什么意思。谢谢啦,希望谁能帮我一下!

dreamice 发表于 2009-08-08 13:39

回复 #1 SKY_MASTER 的帖子

.ko就是内核模块啊

SKY_MASTER 发表于 2009-08-08 14:53

回复 #2 dreamice 的帖子

但为什么我insmod *.ko时出现错误?
我创建了一个节点mknod /dev/beep c 254 0
然后insmod就不行

有的例子是insmod的可执行文件,就是没后缀那个。这个怎么整?

yikaikai 发表于 2009-08-08 15:18

出现什么错误? 一般是内核版本不一样。2.6的是.ko, 2.4以前的是.o

SKY_MASTER 发表于 2009-08-08 15:57

回复 #4 yikaikai 的帖子

我又试了试,编译的hello.ko可以insmod
但使用同样的Makefile编译出来的DS18B20.ko文件就不行
这是为什么?
出现如下错误:
DS18B20:Register major failed.
insmod:cannot insert 'DS18B20.ko' : Operation not permitted (-1):Operation not permitted
这是什么错误?

下的驱动程序在压缩包中,是驱动程序的问题吗?这个驱动程序是2.6的,我的板上的也是2.6的

[ 本帖最后由 SKY_MASTER 于 2009-8-8 15:59 编辑 ]

dreamice 发表于 2009-08-08 15:58

回复 #3 SKY_MASTER 的帖子

你先跑个hello world玩玩,不要急着去搞一个字符设备之类的。
看一下你交叉编译的对不对。

SKY_MASTER 发表于 2009-08-08 16:00

回复 #6 dreamice 的帖子

刚跑了,好用
能输出hello

dreamice 发表于 2009-08-08 16:07

回复 #5 SKY_MASTER 的帖子

你下的驱动程序包是否重新编译过了?

SKY_MASTER 发表于 2009-08-08 16:17

回复 #8 dreamice 的帖子

什么意思?驱动程序不就是一个.c文件吗?
用make就编译了。
你的意思我不是很明白。
我是在做一个项目,还是学软件的学生,对Linux这个才刚接触不到一个月,很多不了解。
你能不能再所清楚些
若是觉得这个麻烦,我的QQ是254133327

SKY_MASTER 发表于 2009-08-08 16:30

回复 #8 dreamice 的帖子

不用啦!
我换了个驱动程序就好使了!
谢谢啦!
页: [1] 2
查看完整版本: 交叉编译 Makefile!!!