一、 S32V Yocto BSP19 環境架設
1. 工具下載
$ sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core git gettext libssl-dev chrpath texinfo git curl repo cmake
2. JAVA 環境設定
sudo mkdir /usr/java
下載 JAVA JDK
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
sudo tar xf jdk-8u191-linux-x64.tar.gz -C /usr/java
sudo vim /etc/profile
新增設定如下兩行:
export JAVA_HOME=/usr/java/jdk1.8.0_191
export PATH=/usr/java/jdk1.8.0_191/bin:$PATH
source /etc/profile
echo $PATH
echo $JAVA_HOME
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_191/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_191/bin/javac 300
sudo update-alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.8.0_191/bin/javaws 300
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
確認 JAVA 設定
Java -version
3. git 環境設定
$ git config --global user.name "user name"
$ git config --global user.email user.name@wpi-group.com
4. repo 環境設定
$ cd ~
$ mkdir ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ PATH=${PATH}:~/bin
$ mkdir
$ cd
$ repo init -u https://source.codeaurora.org/external/autobsps32/auto_yocto_bsp -b release/bsp19.0
$ repo sync
下方是 repo sync 完成的畫面:
5. BSP 環境設定
$ sudo ./sources/meta-alb/scripts/host-prepare.sh
$ source nxp-setup-alb.sh -m s32v234evb
請閱讀 “NXP SOFTWARE LICENSE AGREEMENT”
確認後,輸入 “y”,然後 Enther
6. BSP 編譯
a. Uboot Menuconfig
$ bitbake u-boot
$ bitbake u-boot -c devshell
$ cd ../build/s32v234evb_config
$ make menuconfig
$ exit
b. Kernel Menuconfig
$ bitbake virtual/kernel -c menuconfig
1. 工具下載
$ sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core git gettext libssl-dev chrpath texinfo git curl repo cmake
2. JAVA 環境設定
sudo mkdir /usr/java
下載 JAVA JDK
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
sudo tar xf jdk-8u191-linux-x64.tar.gz -C /usr/java
sudo vim /etc/profile
新增設定如下兩行:
export JAVA_HOME=/usr/java/jdk1.8.0_191
export PATH=/usr/java/jdk1.8.0_191/bin:$PATH
source /etc/profile
echo $PATH
echo $JAVA_HOME
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_191/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_191/bin/javac 300
sudo update-alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.8.0_191/bin/javaws 300
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
確認 JAVA 設定
Java -version
3. git 環境設定
$ git config --global user.name "user name"
$ git config --global user.email user.name@wpi-group.com
4. repo 環境設定
$ cd ~
$ mkdir ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ PATH=${PATH}:~/bin
$ mkdir
$ cd
$ repo init -u https://source.codeaurora.org/external/autobsps32/auto_yocto_bsp -b release/bsp19.0
$ repo sync
下方是 repo sync 完成的畫面:
5. BSP 環境設定
$ sudo ./sources/meta-alb/scripts/host-prepare.sh
$ source nxp-setup-alb.sh -m s32v234evb
請閱讀 “NXP SOFTWARE LICENSE AGREEMENT”
確認後,輸入 “y”,然後 Enther
6. BSP 編譯
a. Uboot Menuconfig
$ bitbake u-boot
$ bitbake u-boot -c devshell
$ cd ../build/s32v234evb_config
$ make menuconfig
$ exit
b. Kernel Menuconfig
$ bitbake virtual/kernel -c menuconfig
修改 CMA_SIZE_MBYTES = 32,接著存檔離開
c. BSP 編譯
$ bitbake fsl-image-auto
編譯會出現問題,請參考下一章節說明
Image Path:/build_s32v234evb/tmp/deploy/images/s32v234evb/
U-boot Image:u-boot.s32
Kernel Image:Image
Filesystem:fsl-image-auto-s32v234evb.tar.gz
燒錄 SD Card:
請參考 “Auto_Linux_BSP_19.0_User_Manual.pdf”
7. BSP常見問題
a. ERROR: linux-s32-4.14-r0 do_fetch
Error Message:
執行清除狀態指令,再重新編譯,例如:
$ bitbake virtual/kernel -c do_cleansstate
$ bitbake virtual/kernel -c menuconfig
b. ERROR: ramsmp-3.5.0-r0 do_fetch
Error Message:
查詢 yocto recipe .bb 設定檔,如下:
$ find ../sources/ | grep “ramsmp_3.5.0”
修改 recipe .bb 設定檔,如下:
$ vim ../sources/meta-alb/recipes-benchmark/ramsmp/ramsmp_3.5.0.bb
修改 ramsmp_3.5.0.bb SRC_URI 參數內容,如下:
SRC_URI = "http://sources.buildroot.net/ramsmp-${PV}.tar.gz \
file://Makefile.patch;pnum=1 \
"
接著重新編譯即可
c. OAL: ERROR, Initialization failed. Please check the OAL kernel module.
Error Message:
s32v234.dtsi 打上 patch 0001-s32v234-dts-Add-VSDK-specific-configuration.patch:
$ cp /s32v234_sdk/os/linux/0001-s32v234-dts-Add-VSDK-specific-configuration.patch
/build_s32v234evb/tmp/work-shared/s32v234evb/kernel-source/arch/arm64/boot/dts/freescale/
$ patch -p0 s32v234.dtsi 0001-s32v234-dts-Add-VSDK-specific-configuration.patch
8. Yocto BSP 編譯常用指令
a. List all tasks for package
顯示 u-boot (package) 的 task list:
$ bitbake u-boot -c listtasks
顯示 linux-s32 (package) 的 task list:
$ bitbake linux-s32 -c listtasks
b. Find u-boot / kernel folder path
尋找 u-boot folder path
$ bitbake -e u-boot | grep "^S="
尋找 kernel folder path
$ bitbake -e linux-s32 | grep "^S="
c. Build / Clean State / Deploy kernel and u-boot
清除編譯狀態:
$ bitbake u-boot -f -c do_cleansstate
$ bitbake linux-s32 -f -c do_cleansstate
編譯:
$ bitbake u-boot -f -c do_compile
$ bitbake linux-s32 -f -c do_compile
將編譯好的 Image 存入 deploy folder:
Image path:~/fsl-auto-yocto-bsp18/build_s32v234evb/tmp/deploy/images/s32v234evb/
$ bitbake u-boot -f -c deploy
$ bitbake linux-s32 -f -c deploy
P.S. -f 代表強制執行,-c 代表 command
d. Show recipes information / version
Example:
顯示全部 recipes
bitbake-layers show-recipes
顯示特定字串 recipes
bitbake-layers show-recipes | grep -A10 opencv
評論
廖經理
2019年6月3日