查看: 1510|回復: 0
打印 上一主題 下一主題

LS1028A QorIQ LS系列的編譯環(huán)境 FlexBuild使用

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2021-3-22 15:48:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: 飛凌嵌入式
FlexBuild使用請不要跳過(guò)這段話(huà):
開(kāi)發(fā)環(huán)境是開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程當中,所需的軟硬件平臺。開(kāi)發(fā)環(huán)境并不是一個(gè)固定的樣式,在這里,我們詳細講解一個(gè)嵌入式Linux開(kāi)發(fā)環(huán)境搭建的方法。您已經(jīng)對嵌入式開(kāi)發(fā)非常了解的話(huà),可以按照自己的需求來(lái)搭建環(huán)境。如果和本手冊環(huán)境不一樣而產(chǎn)生報錯,您可以從國內一些大Linux論壇和網(wǎng)站搜索相關(guān)的信息來(lái)解決。本冊介紹的環(huán)境經(jīng)過(guò)飛凌的測試,如果對嵌入式開(kāi)發(fā)不是非常熟悉的朋友,希望您按照飛凌提供的方法來(lái)搭建環(huán)境。
一、 版本說(shuō)明及硬件平臺操作系統Ubuntu18.04 64位版
交叉工具鏈:aarch64-linux-gnu-gcc
SDK版本:LSDK-20.04-V5.4.3
硬件平臺:OK1028A-C開(kāi)發(fā)板 ( 基于NXP Layerscape  LS1028A CPU  )
https://www.forlinx.com/product/127.html

二、  編譯環(huán)境搭建1、編譯環(huán)境說(shuō)明flexbuild是NXP官方提供的QorIQ LS系列的編譯環(huán)境,飛凌在NXP官方版本的flexbuild的基礎上針對OK1028A-C平臺進(jìn)行了定制修改,更適合用戶(hù)快速開(kāi)發(fā)。flexbuild中提供了整個(gè)系統編譯需要的所有源碼,比如linux內核、uboot、firmware、app程序以及一個(gè)完整的文件系統。對于文件系統,用戶(hù)可直接使用,當然您也可以選擇從零編譯一個(gè)文件系統,但是相比飛凌提供的文件系統會(huì )缺少一部分配置,不建議您這樣做。
Flexbuild默認只支持ubuntu18,當然它也支持docker,由于大多數用戶(hù)對docker并不熟悉,因此強烈建議您使用飛凌提供的ubuntu18虛擬機進(jìn)行編譯開(kāi)發(fā)。注意:虛擬機用戶(hù)名為forlinx,密碼為forlinx。
LS1028系列 OK1028A-C開(kāi)發(fā)板軟件鏡像編譯整體分為兩部分,第一部分為啟動(dòng)第一階段相關(guān)內容,主要包含了rcw、u-boot、網(wǎng)絡(luò )相關(guān)固件、安全相關(guān)固件,整體被編譯為一個(gè)16M的firmware鏡像。第二部分是ubuntu文件系統。
2、編譯環(huán)境搭建2.1、下載flexbuild包并解壓 路徑:OK1028-C(Linux)用戶(hù)資料\Linux\源碼\OK1028-linux-fs.tar.bz2
注意:編譯過(guò)程中請全程使用root用戶(hù)操作

root@ubuntu:~$ sudo -s (此時(shí)要求密碼,密碼為1)
將OK1028-linux-fs.tar.bz2放到虛擬機/home/forlinx/work目錄
root@ubuntu:~$ mdkir -p /home/forlinx/work
root@ubuntu:~$ tar xvf OK1028-linux-fs.tar.bz2 -C /home/forlinx/work
root@ubuntu:~$ cd /home/forlinx/work/OK1028-linux-fs/flexbuild
2.2、主要目錄/文件簡(jiǎn)介
packages
源碼目錄,含有linux firmware apps ramdisk的源碼
build
編譯目錄,用于編譯過(guò)程產(chǎn)生的臨時(shí)文件,編譯結果位于build/images目錄
configs
編譯配置,flexbuild適用于多個(gè)平臺,針對不同平臺的配置信息
tools
編譯工具,flex-builder flex-installer等
setup.env
用于配置編譯環(huán)境變量
2.3、設置環(huán)境變量root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ source setup.env
注意:整個(gè)flexbuild環(huán)境以該操作為基礎,如果您重啟了虛擬機或者Shell終端都需要重新執行該操作。
三、 全部編譯第一次進(jìn)行編譯時(shí),建議您使用全部編譯命令進(jìn)行編譯,好處是操作簡(jiǎn)單,只需要一條命令就可以編譯出所有需要的文件。
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -m ls1028ardb -r ubuntu:main
生成的文件位于build/images目錄:

四、  打包燒寫(xiě)鏡像root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ ./sdfuseIMG.sh

將在OK1028-linux-fs目錄生成images.tar.bz2,后續可以直接解壓到燒寫(xiě)U盤(pán)中。
五、  單獨編譯FirmwareLs系列的芯片在啟動(dòng)時(shí)需要加載一些固件,例如rcw(復位控制字),uboot等,在開(kāi)發(fā)過(guò)程中如果您對上述文件進(jìn)行了修改,就需要重新編譯并將這些文件制打包成一個(gè)firmware鏡像文件,燒寫(xiě)到啟動(dòng)設備中,編譯firmware的命令為:
清除之前編譯的文件:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i clean-firmware
編譯Firmware:
EMMC啟動(dòng):
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 \
-m ls1028ardb -b emmc
TF卡啟動(dòng):
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 \
-m ls1028ardb -b sd
XSPI啟動(dòng):
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 \
-m ls1028ardb -b xspi
OK1028支持EMMC、TF卡、XSPI啟動(dòng),需要將特定的Firmware燒寫(xiě)到對應的介質(zhì)中。

六、  單獨編譯內核及模塊 LS1028A平臺默認的配置文件為:packages/linux/linux/arch/arm64/configs/ok1028_defconfig
清除之前編譯文件:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i clean-linux
編譯內核:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c linux -a arm64 -m ls1028ardb

將編譯好的內核、設備樹(shù)文件更新到build/images目錄:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkboot -m ls1028ardb
注意:?jiǎn)为毦幾g內核及模塊時(shí),務(wù)必執行mkboot操作,以便后續打包燒寫(xiě)鏡像。

配置內核(如果使用默認配置可略過(guò))
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c linux:custom -m ls1028ardb -a arm64

生成的配置文件為:build/linux/linux/arm64/LS/output/.config
可以將改動(dòng)過(guò)后的文件覆蓋:packages/linux/linux/arch/arm64/configs/ok1028_defconfig
七、  單獨編譯app程序packages/apps包含了飛凌LS1028A平臺相關(guān)的上層應用層工具例如OpenSSL如果您對這部分的源碼有所改動(dòng),需要使用以下命令單獨編譯:
編譯命令如下:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c apps -m ls1028ardb
注意:為了加快編譯速度,默認飛凌已經(jīng)將默認編譯好的二進(jìn)制程序集成到文件系統基礎包中,默認編譯文件系統時(shí)不再編譯此類(lèi)app程序,如果您對packages/apps/目錄的代碼有修改,可修改configs/build_lsdk.cfg開(kāi)啟對應軟件的編譯選項,例如CONFIG_APP_DPDK=y。

更新app到文件系統中:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder
-i merge-component -a arm64 -m ls1028ardb

重新生成ubuntu鏡像:root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder
-i packRFs -r ubuntu:main -m ls1028ardb


此外,飛凌提供的命令行和Qt測試程序位于packages/rfs/ls1028_ubuntu_main_overlay/forlinx/apps目錄,該目錄的測試程序將在編譯文件系統的過(guò)程中自動(dòng)構建,您可以使用如下方式進(jìn)行構建:
以qt can測試程序為例:
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ mount -o bind /dev build/rfs/rootfs_lsdk2004_ubuntu_main_arm64/dev
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ chroot build/rfs/rootfs_lsdk2004_ubuntu_main_arm64 /bin/bash
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ cd /forlinx/apps/forlinx-qt/can/
root@ubuntu:/forlinx/apps/forlinx-qt/can# qmake

root@ubuntu:/forlinx/apps/forlinx-qt/can# make

root@ubuntu:/forlinx/apps/forlinx-qt/can# make install

退出編譯環(huán)境:
root@ubuntu:/forlinx/apps/forlinx-qt/can# exit
root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ umount build/rfs/rootfs_lsdk2004_ubuntu_main_arm64/dev



原文鏈接:https://www.forlinx.com/article_view_572.html
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页