学习ldd3时按照书上的路径很多文件都找不到,谢谢
我用的是FC6   2.6.18   ,ldd3中的是2.6.10的内核,我想应该没多大区别吧,可是很多文件都找不到,例:①   usb.c都没找到,看USB时,发现usb文件夹里只有makefile,kconfig,至于makefile里面的文件用的locate命令,都没找到;②/proc/devices   应该有很多内容,打开看时是空白      ③Documentation/devices.txt也没有.... 
 很多问题,不知道怎么解决,是版本的原因吗?   
 谢谢!
------解决方案--------------------1.usb.c在linux内核源代码目录drivers\usb\core目录下,内核的makefile文件里面不会出现locate命令 
 2.我的/proc/devices里面是有很多内容,我的内核版本是2.6.17,请检查是否具有查看该文件的权限(该文件默认的访问权限是444)。 
 3.devices.txt这个文件是有的。最好从www.kernel.org上下载源代码包。
------解决方案--------------------用find也可以找啊。 
 find . -name  "usb.c "
------解决方案--------------------关于ldd3编译环境的建立   
 uname -r 
 2.6.xx   
 cd /lib/modules/2.6.xx 
 ls -all 
 看看build和source两个链接指在哪里 
 如果该两个链接所指地方没有内容,那么就必须从光碟或者网上下载uname -r显示 
 完全一样的内核版本,才可编译成功,也就是说运行的内核并且要有和她完全样的 
 内核源码存在,上两个链接的路径是可以改变的 
 例如我的环境: 
 build ->  /home/leno/linux-2.6.21.5 
 ... 
 source ->  /home/leno/linux-2.6.21.5 
 因为在编译的时候Makefile会用到上面点链接   
 如果都对了还有问题 
 就把Linux-Libc-Headers装到你电脑里,给个网页参考 
 http://lamp.linux.gov.cn/Linux/LFS-6.2/chapter06/linux-libc-headers.html#contents-linux-libc-headers     
------解决方案--------------------上面的说法似乎有些勉强。   
 如果该两个链接所指地方没有内容,那么就必须从光碟或者网上下载uname -r显示 
 完全一样的内核版本,才可编译成功 
 这个未必的吧,我写的驱动用不同内核版本的内核树可以编译成功并insmod通过。   
 只不过不能用$(MAKE) -C $(MODULES_SRC) M=$(PWD) modules这种编译方式而已   
 事实上大工程的Makefile通常也不会这样写,上述写法只用于小工程测试。   
 通常是 
 DFLAGS = -DMODULE -D.....   
 %.o: %.c 
         $(CC) $(CFLAGS) $(DFLAGS) -c -o $@ $ <
------解决方案--------------------另外,to lz:   
 写驱动一定要用root用户,无论是insmod还是rmmod都是非root不可的。   
 内核树的/drivers/ust/core下是有很多源文件的,lz应该是内核树文件缺失,建议重装内核树