如何在树外内核模块中为make headers_install指定头文件?

时间:2015-08-06 22:33:00

标签: linux-kernel kernel-module

我在kbuild modules文档中找不到有关此内容的任何信息,并且在headers_install文档中只提供了一个倾斜的引用(建议可行)。

  

“make headers_install”命令可以在。的顶级目录中运行   内核源代码(或使用标准的树外构建)。

我有一个带有关联头文件的树外内核模块(我有一个IOCTL的#defines),我想提供该头文件作为模块安装的一部分。看起来内核模块提供头文件(用于用户空间)的树内方式是将它们放在include / linux /中。我需要做些什么才能在树外工作?

1 个答案:

答案 0 :(得分:0)

好的,这似乎是另一个我没有阅读所有手册的案例......需要的手册是kbuild的makefiles文档......

  

内核包含一组导出到用户空间的标头。   许多标题可以按原样导出,但其他标题需要   在为用户空间做好准备之前进行最少的预处理。   预处理确实:

     
      
  • 删除内核特定的注释
  •   
  • drop included of compiler.h
  •   
  • 删除内核内部的所有部分(由ifdef KERNEL 保护)
  •   
     

每个相关目录都包含一个文件名" Kbuild"它指定了   要导出的标头。   有关Kbuild文件的语法,请参阅后续章节。

     

--- 7.1 header-y

     

header-y指定要导出的头文件。

  Example:
        #include/linux/Kbuild
        header-y += usb/
        header-y += aio_abi.h