HONGLIN
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2010-03-17
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望12点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1394回复:0

菜鸟编译linux下的驱动程序(入门级,请高手指教)

楼主#
更多 发布于:2004-04-14 09:53
我个人觉得,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时 出
不再困惑
游客

返回顶部