imx8独立编译
一.編譯 uboot
| git clone https://source.codeaurora.org/external/imx/uboot-imx cd uboot-imx |
2.選擇編譯版本?
git tag |grep rel_imx_4.14.
git checkout rel_imx_4.14.98_2.0.0_ga
git status
3. 設置編譯環境
source /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux
前面安裝的編譯器路徑
ls configs |grep imx8qm
make imx8qm_mek_defconfig
make
4.編譯結束后的輸出鏡像
u-boot.bin
arch/arm/dts/fsl-imx8qm-mek.dtb
二、編譯 kernel
1.獲取源碼
git clone https://source.codeaurora.org/external/imx/linux-imx cd linux-imx 2.選擇版本下載 git tag |grep rel_imx_4.14git checkout rel_imx_4.14.98_2.0.0_ga
git status
3.配置編譯環境
source /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux
make defconfig
make
make dtbs clean make dtbs //生成dtb文件 4.編譯結束后的輸出鏡像 arch/arm64/boot/dts/freescale/imx8qxp-mek.dtb, i.mx8dx-mek.dtb arch/arm64/boot/Image三、編譯 SCfirmware
| wget https://cache.nxp.com/lgfiles/bsps/imx-scfw-porting-kit-1.2.tar.gz |
2.將下載的文件拷貝到當前目錄解壓
| tar xzvf imx-scfw-porting-kit-1.2.tar.gz cd ./packages chmod a+x ./imx-scfw-porting-kit-1.2.bin sh ./imx-scfw-porting-kit-1.2.bin cd imx-scfw-porting-kit-1.2/src tar xzvf scfw_export_mx8qm_b0.tar.gz |
3.下載編譯工具鏈
| wget -P ./gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 https://developer.arm.com/-/media/Files/downloads/gnu-rm/6-2017q2/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2?revision=2cc92fb5-3e0e-402d-9197-bdfc8224d8a5?product=GNU%20Arm%20Embedded%20Toolchain,64-bit,,Linux,6-2017-q2-update |
(E.g. Linux 64-bit File:gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 (95.90 MB) )
注意最新驗證過的工具鏈版本是 2017-q2,不建議使用最新的工具鏈。
4.拷貝前面下載的工具鏈到 toolchain 目錄下
| mv gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 toolchain/ cd toolchain tar jxvf gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 cd ../src/scfw_export_mx8qm_b0 export TOOLS=../../toolchain/ make qm B=mek R=B0 |
?(如果需要看串口調試信息就增加 M=1 參數,U=2 表示使用 SCU 本身串口,注意重新編譯之前要 make clean-qm 一下)
5.生成的 scfw 鏡像在 imx-scfw-porting-kit-1.2/src/scfw_export_mx8qm_b0/build_mx8qm_b0/
四、編譯 ATF
| git clone https://source.codeaurora.org/external/imx/imx-atf cd imx-atf git checkout rel_imx_4.14.98_2.0.0_ga git status source /home/host/imx8qm/linux/build_wayland/sdk/environment-setup-aarch64-poky-linux LDFLAGS="" make PLAT=imx8qm |
2.編譯結束后的輸出鏡像
./build/imx8qm/release/bl31.bin
五、運行 imx-mkimage 腳本生成 flash.bin
另打開一個終端,不要與編譯 uboot&kernel 同用一個終端
| git clone https://source.codeaurora.org/external/imx/imx-mkimage cd imx-mkimage git tag git checkout rel_imx_4.14.98_2.0.0_ga git status |
?imx-mkimage 需要調用 host PC 的 GCC 工具,所以需要退出之前的 terminal。重新進入,從而退出之前 source 的交叉編譯變量。
2.使用 wget 命令獲得 mx8qm-ahab-container.img
| wget http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.1.bin chmod +x firmware-imx-8.1.bin && ./firmware-imx-8.1.bin --auto-accept |
?mx8qm-ahab-container.img 位于 firmware-imx-8.1/firmware/seco/mx8qm-ahab-container.img
3.將 mx8qm-ahab-container.img, sc firmware bin, atf 和 uboot 拷貝至對應 iMX8QM 目錄
| cp firmware-imx-8.1/firmware/seco/mx8qm-ahab-container.img ./iMX8QM/ cp ../packages/imx-scfw-porting-kit-1.2/src/scfw_export_mx8qm_b0/build_mx8qm_b0/scfw_tcm.bin ./iMX8QM/ cp ../imx-atf/build/imx8qm/release/bl31.bin ./iMX8QM/ cp ../uboot-imx/u-boot.bin ./iMX8QM/ ls ./iMX8QM/ |
| make SOC=iMX8QM flash_b0 |
./iMX8QM/flash.bin
總結
- 上一篇: QT右键点击添加库不响应的解决办法
- 下一篇: Java IO学习--(五)字节和字符数