kernel 编译与配置和uboot编译与配置

本文详细介绍了在TI AM437x平台上进行内核、u-boot及第三方驱动模块的编译流程,包括配置、编译、清理等关键步骤,适用于嵌入式Linux系统的开发者。

 

内核编译:
例如:TI AM437x 为例
tisdk_am437x-evm_defconfig: arch/arm/configs

1.配置
    make ARCH=ARM CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am437x-evm_defconfig
2.修改配置(可选)
    make ARCH=ARM CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am437x-evm_defconfig menuconfig
3.编译内核格式为zImage
    make ARCH=ARM CROSS_COMPILE=arm-linux-gnueabihf- zImage
4.编译模块
    make ARCH=ARM CROSS_COMPILE=arm-linux-gnueabihf- modules
5.模块安装位置指定及是否strip
    make ARCH=ARM CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MODE_PATH=(自已指定) INSTALL_MODE_STRIP=(1 or 0) modules_install
6.编译设备树
    make ARCH=ARM CROSS_COMPILE=arm-linux-gnueabihf- am437x-gp-evm.dtb
    或者使用dtc工具也可以.
7.删除编译内核时产生的文件
    (1)删除配置及生成的文件
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mrproper
    (2)删除生成的文件配置保留
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- clean
    
uboot编译:
am43xx_evm_defconfig: configs
LINUXKERNEL_INSTALL_DIR:内核位置,找到dtc工具的位置
1.配置
    make CROSS_COMPILE=arm-linux-gnueabihf- am43xx_evm_defconfig
2.修改配置(可选)
    make CROSS_COMPILE=arm-linux-gnueabihf- am43xx_evm_defconfig menuconfig
3.编译
    make CROSS_COMPILE=arm-linux-gnueabihf- DTC=$(LINUXKERNEL_INSTALL_DIR)/scripts/dtc/dtc
4.清除配置及生成的文件
    make CROSS_COMPILE=arm-linux-gnueabihf- distclean
    
第三方驱动模块编译:
例如:hello.c
Makefile编写:
obj-m+=hello.o or obj-y+=hello.o
KERN_DIR= 内核编译后源码目录,因为模块需要使用内核配置,头文件和内核编译后的符号表
#如果在PC上,则
KERN_DIR=/lib/modules/$(uname -r)/build/
#M=指的是驱动源码目录
all:
    make -C $(KERN_DIR) M=`pwd` modules

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值