标签:Kconfig make 编译 arm64 linux config menuconfig 内核
内核配置过程说明
export ARCH=arm64
make ARCH=arm64 hw_defconfig 就会根据arch/arm64/configs/hw_defconfig文件为hw开发板选择对应的内核配置,执行完后会在kernel/linux/下生成一个基础的.config文件。生成过程就是以Kconfig构建,
make menuconfig 打开图形配置界面,选择好要加载的模块后,保存配置会把改动保存到.config文件(记录哪些被编译进内核,哪些被编译进模块)中,我们可以cp .config arch/arm64/configs/hw_v1_defconfig 作为hw下一次配置的基准(在拷贝之前我们先diff一下.config 和 def_config 的区别,看下区别是不是符合我们在menuconfig里的改动)
make menuconfig的工作原理:运行make menuconfig时,首先根据ARCH变量,到对应的目录下分析Kconfig文件,如arch/arm64/Kconfig, Kconfig会通过source 引入新的Kconfig, 就这么一级一级下去,组织起来整个配置过程, 所以如果新增加了模块,一定要make menuconfig去选中它,这样才会生成包含对应模块的.config文件
顶层Makefile会使用这个.config文件来构建内核
如何将自己写的驱动代码添加到内核编译
linux/drivers目录下新增一个目录,比如叫做sample_driver/, 里面添加我们写的sample.c 文件.
然后为这个驱动添加一个配置文件Kconfig, 内容大致如下:
# # Your Sample Driver's description # menu "Hello Driver" comment "do nothing" config YOUR_SAMPLE tristate "xx debug support" help Turn on xx functions endmenu
再为这个驱动添加一个Makefile文件,内容如下:
obj-$(CONFIG_YOUR_SAMPLE) += sample.o
其中YOUR-SAMPLE要和Kconfig中的对应上。然后再到drivers/Makefile文件中,添加一行
obj-$(CONFIG_YOUR_SAMPLE) += gpu_debugger/
在drivers/Kconfig中添加
source "drivers/zyx_module/Kconfig"
编译内核与模块
make ARCH=arm64 CROSS_COMPILE=~/your_toolchain Image -j4 # 注意这里Image 首字母大写
make ARCH=arm64 CROSS_COMPILE=~/your_toolchain modules -j4
标签:Kconfig,make,编译,arm64,linux,config,menuconfig,内核 来源: https://www.cnblogs.com/Arnold-Zhang/p/16228567.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。