文章目錄
下文所使用到的一些工具下載,提取碼: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 $ARCH
和echo $CROSS_COMPILE
,查看返回結果是否和設置一致。
1.3.2、測試交叉編譯器
arm-linux-gnueabihf-gcc -v
二、編譯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
等文件,編譯前和編譯後文件對比如下,
編譯前:
編譯後:
三、編譯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