阅读:1394回复:0
菜鸟编译linux下的驱动程序(入门级,请高手指教)
我个人觉得,linux下的驱动程序没有windows下的驱动好写,windows下的编译工具和调试工具,应有尽有,但linux下,我指想编译一个非常简单的ex,都好了我礼拜日没有休息;很多高手有不屑于指导,好像回答这些问题有失高手的尊严吧!现在我把我的一点粗暴的经验分享给大家;
我用的RedHat9,内核等都没有升级,初装的OS, 在网上轻而易举的能找到一些有关linux driver编程的例子, 由于2.4.xxx以后的内核源码都在/usr/src下面的linux-2.x.xxx中,而绝大多数的例子代码都用<linux/xxx.h>,如果觉得在每隔GCC 后面加编译条件 -I ...(很多地方有这样的介绍,自己找)麻烦的话,就按照我的方法做吧! *现在我用rh9来作为例子,kernel :linux-2.4.20-8 1,要gcc找到编译内核的正确路径,在/usr/src路径下 [root@linux /usr/src]# ls -s linux-2.4.20-8 linux 2,在/usr/include 路径下: [root@linux /usr/src]# mv linux linux.bak [root@linux /usr/src]# mv asm asm.bak [root@linux /usr/include]# ln -s /usr/src/linux/include/linux/ linux [root@linux /usr/include]# ln -s /usr/src/linux/include/asm/ asm 3.暴力修改:(自己摸索的),当包含<linux/malloc.h>编译时出现的 #error:linux/malloc.h is deprecated, use linux/slab.h instead 在/usr/src/linux-2.4.20-8/include/linux中, 将malloc.h所在的#error:linux/malloc.h is deprecated, use linux/slab.h instead 改为 #warning linux/malloc.h is deprecated, use linux/slab.h instead 编译成功了!!!! 4.暴力修改(自己摸索的)编译成功后 在insmod xxx.o 时版本错误,修改/usr/src/linux-2.4.20-8/include/linux/version.h #define UTS_RELEASE \"2.4.20\" 改为#define UTS_RELEASE \"2.4.20-8\" 5.insmod xxx.o时 出 |
|
|