linux kernel kbuild详解 之一

        内核编译过程中会生成以下类型的文件 参见Documentation/kbuild/kbuild.txt


modules.order:这个文件记录了Makefile中模块出现的顺序。modprobe通过它来确定解决多个模块匹配的别名(指定模块的绝对路径)。

                               如:kernel//home/cjz/Desktop/test/driver/input/vms.ko

 

modules.builtin:这个文件列出了所有编译到内核的模块,通过这个当modprobe加载一些内核模块时就不会失败。

                              

环境变量

KCPPFLAGS:预处理传递的附加选项,预处理选项用在kbuild预处理包含编译C文件和汇编文件。

KAFLAGS:汇编(内核和模块)的附加选项

AFLAGS_MODULE:$(AS)的附加模块指定选项

AFLAGS_KERNEL:$(AS)用汇编代码编译为内建的附加选项

KCFLAGS:C编译的附加选项

CFLAGS_KERNEL:$(CC)编译为内部的选项

CFLAGS_MODULE:$(CC)的附加指定选项

LDFLAGS_MODULE:$(LD)链接时的附加选项

KBUILD_VERBOSE:

KBUILD_EXTMOD:当编译外部模块时设置内核源码查找路径,目录可以用以下几种方式指定

                                     1、在命令行用M=...

                                     2、环境变量KBUILD_EXTMOD

                                     3、环境变量SUBDIRS

                                      用M=。。。会覆盖其它两种情况

KBUILD_OUTPUT:编译内核时描写输出目录。输出目录也可以通过 O=... 来指定, O=。。。优先级要高于KBUILD_OUTPUT

KBUILD_DEBARCH:编译Debian 体系的

ARCH:设置要被编译的体系结构,大多数情况体系结构的名称和arch/下的名称是一样的,但是也有例外,如X86和sparc有别名x86: i386 for 32 bit, x86_64 for 64 bit 

               sparc: sparc for 32 bit, sparc64 for 64 bit

CROSS_COMPILE:指定一个binutiles文件名的可选固定部分,如arm-none-linux-gnueabi-  ,可以是文件名的一部分,或者是完整路径。

CF: sparc的附加选项,经常在命令行下这样使用make CF=-Wbitwise C=2

INSTALL_PATH:指定把要升级的内核和system.map的镜像放在哪个目录,默认是/boot,但你可以指定为别的路径。

INSTALLKERNEL:当使用make  install 时安装脚本被调用,默认名字为installkernel  这个脚本可以有以下参数

                                    1、$1 - kernel version

                                    2、$2 - kernel image file

                                    3、$3 - kernel map file

                                    4、$4 - default install path (use root directory if blank)

MODLIB:指定安装模块的路径,默认是$(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)

INSTALL_MOD_PATH:指定一个预安装的模块库

INSTALL_MOD_STRIP:

INSTALL_FW_PATH:指定安装固件的路径,默认值是$(INSTALL_MOD_PATH)/lib/firmware

INSTALL_HDR_PATH:当执行make headers_*时,指定安装用户空间头文件的路径,默认$(objtree)/usr, objtree是输出文件的路径

KBUILD_MODPOST_WARN:未定义符号在最后模块链接阶段避免错误,把错误改成警告

KBUILD_MODPOST_NOFINAL:设置后可以跳过最后链接模块,这个在加快测试编译时很有用

KBUILD_EXTRA_SYMBOLS:模块中使用的符号信赖于别的模块

ALLSOURCE_ARCHS:使用tags/TAGS/cscope这些时,可以指定多于一种体系结构,如make ALLSOURCE_ARCHS="x86 mips arm" tags

KBUILD_ENABLE_EXTRA_GCC_CHECKS:打开gcc的-w。。。选项

KBUILD_BUILD_TIMESTAMP:

KBUILD_BUILD_USER, KBUILD_BUILD_HOST:这两个变量允许覆盖在启动和/proc/version 中 的字符串user@host

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值