【正点原子I.MX6ULL驱动开发学习笔记】二、配置交叉编译工具链,编译U-boot和Linux内核源码

文章目录

  • 一、配置交叉编译工具链
    • 1.1、交叉编译器安装
    • 1.2、安装相关库
    • 1.3、交叉编译器验证
      • 1.3.1、测试环境变量
      • 1.3.2、测试交叉编译器
  • 二、编译U-boot源码,生成u-boot.bin文件
  • 三、编译Linux内核源码,生成zImage和dtb文件


下文所使用到的一些工具下载,提取码:rdw7

一、配置交叉编译工具链

1.1、交叉编译器安装

将下载好的交叉编译工具链放到Ubuntu中,然后输入以下命令进行解压:

sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

接着设置PATH, ARCH和CROSS_COMPILE三个环境变量并使其永久生效,执行如下指令配置文件.bashrc

vim ~/.bashrc

接着在行尾添加如下几行:

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin

修改之后,保存退出,并重启Ubuntu。

1.2、安装相关库

在使用交叉编译器之前还需要安装一下其它的库,命令如下:

sudo apt-get install lsb-core lib32stdc++6

1.3、交叉编译器验证

1.3.1、测试环境变量

分别输入echo $ARCHecho $CROSS_COMPILE,查看返回结果是否和设置一致。

在这里插入图片描述

1.3.2、测试交叉编译器

arm-linux-gnueabihf-gcc -v

【正点原子I.MX6ULL驱动开发学习笔记】二、配置交叉编译工具链,编译U-boot和Linux内核源码_第1张图片

二、编译U-boot源码,生成u-boot.bin文件

uboot-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2文件放置到/home/clay/linux/u-boot目录中,并进入该目录,然后依次输入以下命令:

注:板子配置文件在u-boot源码目录下的./configs文件夹下

tar -jxvf uboot-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2
cd uboot-imx-rel_imx_4.1.15_2.1.0_ga_alientek
make distclean
make mx6ull_alientek_emmc_defconfig
make

编译完成后,生成u-boot.bin等文件,编译前和编译后文件对比如下,

编译前:
【正点原子I.MX6ULL驱动开发学习笔记】二、配置交叉编译工具链,编译U-boot和Linux内核源码_第2张图片

编译后:
【正点原子I.MX6ULL驱动开发学习笔记】二、配置交叉编译工具链,编译U-boot和Linux内核源码_第3张图片

三、编译Linux内核源码,生成zImage和dtb文件

linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2文件放置到/home/clay/linux/linux_4.1.15目录中,并进入该目录,然后依次输入以下命令:

tar -jxvf linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2
cd linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek
make mrproper
make imx_alientek_emmc_defconfig
make zImage -j4
make dtbs

编译内核时可能会因为缺少lzop报错,安装lzop即可解决:sudo apt-get install lzop

编译并生成zImage和dtb文件后,将这两个文件拷贝到tftpboot目录,命令如下:

cp ./arch/arm/boot/zImage ~/tftpboot
cp ./arch/arm/boot/dts/imx6ull-alientek-emmc.dtb ~/tftpboot

你可能感兴趣的:(#)