linux的编译

发布于:2024-06-22 ⋅ 阅读:(18) ⋅ 点赞:(0)

编译

三个步骤:

  1. uboot编译
  2. linux内核编译
  3. 根文件系统编译

通用:

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对应的文件夹,需要补充交叉编译的一些库文件:

    1. /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-
      gnueabihf/libc/lib
    2. /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib
  • 编译配置:
    使用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 …