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

原創(chuàng) 2020-12-07 16:44:00 ls1028 LA1028A

FlexBuild使用

請不要跳過這段話:

開發(fā)環(huán)境是開發(fā)人員在開發(fā)過程當(dāng)中,所需的軟硬件平臺。開發(fā)環(huán)境并不是一個固定的樣式,在這里,我們詳細(xì)講解一個嵌入式Linux開發(fā)環(huán)境搭建的方法。您已經(jīng)對嵌入式開發(fā)非常了解的話,可以按照自己的需求來搭建環(huán)境。如果和本手冊環(huán)境不一樣而產(chǎn)生報錯,您可以從國內(nèi)一些大Linux論壇和網(wǎng)站搜索相關(guān)的信息來解決。本冊介紹的環(huán)境經(jīng)過飛凌的測試,如果對嵌入式開發(fā)不是非常熟悉的朋友,希望您按照飛凌提供的方法來搭建環(huán)境。

一、 版本說明及硬件平臺

操作系統(tǒng):Ubuntu18.04 64位版

交叉工具鏈:aarch64-linux-gnu-gcc

SDK版本:LSDK-20.04-V5.4.3

硬件平臺:OK1028A-C開發(fā)板基于NXP Layerscape  LS1028A CPU  )


二、  編譯環(huán)境搭建

1、編譯環(huán)境說明

flexbuild是NXP官方提供的QorIQ LS系列的編譯環(huán)境,飛凌在NXP官方版本的flexbuild的基礎(chǔ)上針對OK1028A-C平臺進(jìn)行了定制修改,更適合用戶快速開發(fā)。flexbuild中提供了整個系統(tǒng)編譯需要的所有源碼,比如linux內(nèi)核、uboot、firmware、app程序以及一個完整的文件系統(tǒng)。對于文件系統(tǒng),用戶可直接使用,當(dāng)然您也可以選擇從零編譯一個文件系統(tǒng),但是相比飛凌提供的文件系統(tǒng)會缺少一部分配置,不建議您這樣做。

Flexbuild默認(rèn)只支持ubuntu18,當(dāng)然它也支持docker,由于大多數(shù)用戶對docker并不熟悉,因此強(qiáng)烈建議您使用飛凌提供的ubuntu18虛擬機(jī)進(jìn)行編譯開發(fā)。注意:虛擬機(jī)用戶名為forlinx,密碼為forlinx。

LS1028系列 OK1028A-C開發(fā)板軟件鏡像編譯整體分為兩部分,第一部分為啟動第一階段相關(guān)內(nèi)容,主要包含了rcw、u-boot、網(wǎng)絡(luò)相關(guān)固件、安全相關(guān)固件,整體被編譯為一個16M的firmware鏡像。第二部分是ubuntu文件系統(tǒng)。

2、編譯環(huán)境搭建

2.1、下載flexbuild包并解壓

 路徑:OK1028-C(Linux)用戶資料\Linux\源碼\OK1028-linux-fs.tar.bz2

注意:編譯過程中請全程使用root用戶操作


root@ubuntu:~$ sudo -s (此時要求密碼,密碼為1)

將OK1028-linux-fs.tar.bz2放到虛擬機(jī)/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、主要目錄/文件簡介

packages

源碼目錄,含有l(wèi)inux firmware apps ramdisk的源碼

build

編譯目錄,用于編譯過程產(chǎn)生的臨時文件,編譯結(jié)果位于build/images目錄

configs

編譯配置,flexbuild適用于多個平臺,針對不同平臺的配置信息

tools

編譯工具,flex-builder flex-installer等

setup.env

用于配置編譯環(huán)境變量

2.3、設(shè)置環(huán)境變量

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ source setup.env

注意:整個flexbuild環(huán)境以該操作為基礎(chǔ),如果您重啟了虛擬機(jī)或者Shell終端都需要重新執(zhí)行該操作。

三、 全部編譯

第一次進(jìn)行編譯時,建議您使用全部編譯命令進(jìn)行編譯,好處是操作簡單,只需要一條命令就可以編譯出所有需要的文件。

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -m ls1028ardb -r ubuntu:main

生成的文件位于build/images目錄:

 

四、  打包燒寫鏡像

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ ./sdfuseIMG.sh

 

將在OK1028-linux-fs目錄生成images.tar.bz2,后續(xù)可以直接解壓到燒寫U盤中。

五、  單獨(dú)編譯Firmware

Ls系列的芯片在啟動時需要加載一些固件,例如rcw(復(fù)位控制字),uboot等,在開發(fā)過程中如果您對上述文件進(jìn)行了修改,就需要重新編譯并將這些文件制打包成一個firmware鏡像文件,燒寫到啟動設(shè)備中,編譯firmware的命令為:

清除之前編譯的文件:

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i clean-firmware

編譯Firmware:

EMMC啟動:

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 \

-m ls1028ardb -b emmc

TF卡啟動:

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 \

-m ls1028ardb -b sd

XSPI啟動:

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 \

-m ls1028ardb -b xspi

OK1028支持EMMC、TF卡、XSPI啟動,需要將特定的Firmware燒寫到對應(yīng)的介質(zhì)中。

 

六、  單獨(dú)編譯內(nèi)核及模塊 

LS1028A平臺默認(rèn)的配置文件為:packages/linux/linux/arch/arm64/configs/ok1028_defconfig

清除之前編譯文件:

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i clean-linux

編譯內(nèi)核:

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c linux -a arm64 -m ls1028ardb

將編譯好的內(nèi)核、設(shè)備樹文件更新到build/images目錄:

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkboot -m ls1028ardb

注意:單獨(dú)編譯內(nèi)核及模塊時,務(wù)必執(zhí)行mkboot操作,以便后續(xù)打包燒寫鏡像。

 

配置內(nèi)核(如果使用默認(rèn)配置可略過)

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c linux:custom -m ls1028ardb -a arm64

 

生成的配置文件為:build/linux/linux/arm64/LS/output/.config

可以將改動過后的文件覆蓋:packages/linux/linux/arch/arm64/configs/ok1028_defconfig

七、  單獨(dú)編譯app程序

packages/apps包含了飛凌LS1028A平臺相關(guān)的上層應(yīng)用層工具例如OpenSSL如果您對這部分的源碼有所改動,需要使用以下命令單獨(dú)編譯:

編譯命令如下:

root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c apps -m ls1028ardb

注意:為了加快編譯速度,默認(rèn)飛凌已經(jīng)將默認(rèn)編譯好的二進(jìn)制程序集成到文件系統(tǒng)基礎(chǔ)包中,默認(rèn)編譯文件系統(tǒng)時不再編譯此類app程序,如果您對packages/apps/目錄的代碼有修改,可修改configs/build_lsdk.cfg開啟對應(yīng)軟件的編譯選項,例如CONFIG_APP_DPDK=y。

更新app到文件系統(tǒng)中:

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目錄,該目錄的測試程序?qū)⒃诰幾g文件系統(tǒng)的過程中自動構(gòu)建,您可以使用如下方式進(jìn)行構(gòu)建:

以qt can測試程序?yàn)槔?/span>

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

相關(guān)產(chǎn)品 >

  • OK1028A-C開發(fā)板

    LS028A 系列-LS1028開發(fā)板 雙核Cortex-A72 設(shè)計 TSN網(wǎng)絡(luò)支持 ,工業(yè)級 LS1028A開發(fā)板 提供了一個用于設(shè)計和評估LS1028A處理器設(shè)計核心板的平臺。支持TSN的以太網(wǎng)交換機(jī)和以太網(wǎng)控制器,可支持融合的IT和OT網(wǎng)絡(luò);支持CANFD、UART 、USB3.0、PCIe3.0、SATA3.0、IIS、IIC、SPI 等常用總線接口,并支持一個最大分辨率4K的DP接口。ls1028a 適用于工業(yè)路由器、TSN、SD-WAN、 5G CPE 、邊緣計算網(wǎng)關(guān) 、IP-PBX等產(chǎn)品,以及工業(yè)互聯(lián)、智慧工廠、工業(yè)安全、信息安全、智慧交通、能源物聯(lián)網(wǎng) 等應(yīng)用領(lǐng)域。 了解詳情
    OK1028A-C開發(fā)板
  • FET1028A-C核心板

    LS1028A-C核心板基于NXP LS1028A處理器設(shè)計,雙核ARM Cortex - A72,主頻最高1.6GHz,板載2GB DDR4 RAM,8GB ROM;原生支持6個Gbit Ethernet,支持TSN的以太網(wǎng)交換機(jī)和以太網(wǎng)控制器,可支持融合的IT和OT網(wǎng)絡(luò);支持CAN FD、UART、USB3.0、PCIe3.0、SATA3.0、IIS、IIC、SPI等常用總線接口,并支持一個最大分辨率4K的DP接口。適用于工業(yè)路由器、TSN、SD-WAN、5G CPE、邊緣計算網(wǎng)關(guān)、IP-PBX等產(chǎn)品,以及工業(yè)互聯(lián)網(wǎng)、智慧工廠、工業(yè)安全、信息安全、智慧交通、能源物聯(lián)網(wǎng)等應(yīng)用領(lǐng)域。 了解詳情
    FET1028A-C核心板

推薦閱讀 換一批 換一批