设备驱动程序缺少config.h

设备驱动程序缺少config.h,c,driver,device,C,Driver,Device,所以我开始读这本书来编写设备驱动程序 问题是当我使用2.6.35.X(在Ubuntu上)时,书中使用了2.6.10,而“config.h”不见了。我用谷歌搜索了这个问题,结果发现config.h被删除了 建议3种解决方案,前2种对我不起作用(我没有autoconf.h)。第三个解决方案是我无法接受的。如果有人能解释第三个问题或有其他解决方案,我将不胜感激 谢谢 所有-imacros文件和-include 文件选项在所有-D和-U选项之后处理 (三个选项中的)每个选项都是将GCC指向一个文本文件的

所以我开始读这本书来编写设备驱动程序

问题是当我使用2.6.35.X(在Ubuntu上)时,书中使用了2.6.10,而“config.h”不见了。我用谷歌搜索了这个问题,结果发现config.h被删除了

建议3种解决方案,前2种对我不起作用(我没有autoconf.h)。第三个解决方案是我无法接受的。如果有人能解释第三个问题或有其他解决方案,我将不胜感激

谢谢

所有-imacros文件和-include 文件选项在所有-D和-U选项之后处理

(三个选项中的)每个选项都是将GCC指向一个文本文件的一种方式,其中包含一个预处理器定义列表。 要使用选项3,-imacrosa_文件,仍然需要文件a_文件,(即:autoconf.h),即带有宏或配置定义的文件。在这个系统上是/usr/src/linux/include/generated/autoconf.h

如您所见,该文件可能出现在2.6.35中。看起来可能是内核配置了这个文件;因为这个文件的内容看起来是根据当前内核定制的。这看起来像一个文件,声明编译哪些驱动程序(与编译为模块类似)

因此:

  • 首先检查文件
    find/usr/src/linux/-名称autoconf.h
    如果不存在,则配置内核(然后再次检查)
  • 将设备驱动程序生成文件中的CFLAGS更改为include-imacros/usr/src/linux/include/generated/autoconf.h
    CFLAGS+=-imacros/usr/src/linux/include/generated/autoconf.h
  • 注释掉驱动程序源中的
    #包括
    
    
“3.11控制预处理器的选项”,GCC参考

l /usr/src/linux
lrwxrwxrwx 1 root conman 23 Nov 29 19:37 /usr/src/linux -> linux-2.6.35-gentoo-r12