Ubuntu驱动程序开发4-内核移植和配置
1 编译
在kernel文件夹下新建一个mx6ull_mk_emmc.sh文件,输入以下内容:
#!/bin/sh make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig #使用默认配置文件配置Linux make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig #启动图形化配置界面 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16 #编译Linux
1.1 命令输出
make -s: 静默输出
make V=1: 默认编译V=0输出短命令,设置变量V=1来实现完整命令输出
1.2 设置编译结果输出目录
make O=outdir: 将编译出来的目标文件输出到单独的outdir目录中,一般不指定
1.3 代码检查
make C=1: 使能代码检查
make C=2: 检查所有源码文件
1.4 模块编译
make M=dir: 允许单独编译某个模块
老语法
make SUBDIRS=dir
举例:
make -s ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16 #-s,静默输出 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all V=1 -j16 #默认编译V=0是不会在终端显示完整的命令,设置变量V=1来实现完整命令输出
Linux内核编译完成后会在arch/arm/boot目录下生成zImage镜像文件,如果使用设备树,会在arch/arm/boot/dts目录下开发板对应的.dtb文件