主题 : 该如何建立LDD3里提的内核树?弄了3天了可是还是没弄好,大家多帮忙啊!!! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 7430
精华: 0
发帖: 26
金钱: 175 两
威望: 72 点
综合积分: 52 分
注册时间: 2009-07-15
最后登录: 2011-07-03
楼主  发表于: 2009-12-03 21:53

 该如何建立LDD3里提的内核树?弄了3天了可是还是没弄好,大家多帮忙啊!!!

如题
我的环境是 FC9的虚拟机,uname -r 后显示2.6.25-14.fc9.i686
    下了个linux-2.6.25.tar.bz 到/usr/src目录下
大概的过程如下:
   1、tar jxvf linux-2.6.25.tar.bz
      2、cd linux-2.6.25
      3、修改Makefile  
                            KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
                           -fno-strict-aliasing -fno-common \
                           -Werror-implicit-function-declaration \
                           -fno-tree-scev-cprop
             添加的最后一行,由于我的GCC是4.3的,在网上搜的这样能解决编译不通过的问题,事实上也如此

      4、make oldconfig
      5、make bzImage
      6、make modules
      7、make modules_install
之后就是编译加载ldd3上那个hello的例子,可是insmod后提示  Invalid module format   这样的错误,
不知道是怎么回事,在网搜了试弄了3天了还没弄好,都快晕了,请大家帮忙指点一下,不胜感激!!!!

      
级别: 侠客
UID: 4684
精华: 0
发帖: 67
金钱: 430 两
威望: 233 点
综合积分: 134 分
注册时间: 2009-03-25
最后登录: 2012-02-13
1楼  发表于: 2009-12-09 01:02
你可以这样写你的Makefile:

KERNELDIR=/lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c

         注意这里这个KERNELDIR变量,它是决定你驱动能否insmod成功的关键因素。你可以沿着这个目录去找一下有没有这个路径存在,我觉得Linux发行版里面的内核是用这个内核代码树来编译成的,另外自己下载的源码包作为内核代码树有可能有内核版本不一致问题。
       不知道我说的对不对,有错请各路大侠指正。希望能帮助到你!
级别: 新手上路
UID: 7430
精华: 0
发帖: 26
金钱: 175 两
威望: 72 点
综合积分: 52 分
注册时间: 2009-07-15
最后登录: 2011-07-03
2楼  发表于: 2009-12-10 09:27
你说的那个KERNELDIR路径倒是有,可是那个build是个连接文件,沿着它的链接路径找下去那就是空的了
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2009-12-10 09:34

 回 2楼(lsw9934003) 的帖子

你需要安装FC9上的内核源代码(至少是头文件)package. 版本应该是2.6.25-14.fc9.i686
参考http://www.mjmwired.net/resources/mjm-fedora-f9.html#kernelsrc
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."