编译
三个步骤:
- uboot编译
- linux内核编译
- 根文件系统编译
通用:
col1 | col2 |
---|---|
ARCH | 架构 |
CROSS_COMPILE | 交叉编译器前缀 |
distclean | 清空编译文件 |
*defconfig | 使用官方默认配置文件 |
menuconfig | ui配置界面,影响kconfig和生成编译的配置 |
uboot编译
- 编译产出文件:
u-boot.bin - 编译配置:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12 - 烧录方式:
使用工具imxdownload烧录到sd卡
linux内核编译
- 编译产出文件:
zImage,
*.dtb(设备树文件) - 编译配置:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16 - 烧录方式
使用tftp网络,uboot启动后自动烧录
地址-80800000对应zImage
地址-83000000对应*.dtb设备树文件
根文件系统编译
编译产出文件:
生成出了一些linux对应的文件夹,需要补充交叉编译的一些库文件:- /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-
gnueabihf/libc/lib - /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib
- /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-
编译配置:
使用busybox配置
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-烧录方式
uboot的bootargs配置启动根文件系统,使用nfs挂载- setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.1.250:/home/zuozhongkai/linux/nfs/rootfs,proto=tcp rw …