本文來源電子發燒友社區,作者:羈傲不馴, 帖子地址:https://bbs.elecfans.com/jishu_2304968_1_1.html
LinuxSDK,Rockchip提供了兩種SDK,Firefly也提供了兩種,分別是Buildroot和yocto。由于buildroot系統構建比較簡單,同時Firefly社區支持也比價給力,本文就說說yocto吧(視頻上有先說buildroot
yocto SDK目錄如下:
├── build // 用戶配置文件和工程構建輸出目錄
├── conf
├── meta-browser // Web瀏覽器配方
├── meta-clang // 用來構架編譯器的LLVM框架系統
├── meta-openembedded // 用來交叉編譯,安裝和打包的元數據
├── meta-poky -> poky/meta-poky // Poky發行版本的配置數據
├── meta-python2 // Python2配方
├── meta-qt5 // Qt5官方推出的Qt5配方
├── meta-rockchip // Rockchip層,包含Rockchip芯片BSP相關配方
├── meta-rust // Rust與Cargo的OpenEmbedded/Yocto層
└── poky // 用來構建Linux的構建系統
Yocto的工程就是這么簡單,僅僅只由這幾個文件夾構成。了解過yacto的都知道,yacto由許許多多的配方構成,它通過配方獲取軟件源碼編譯下載構建并解決依賴,正因為如此,也造就了yacto不如buildroot容易入門的現狀,工程雖小,但是編譯的過程中需要消耗比較大的空間。
buid目錄下存放著,當前SDK存在的所有構建方案,如下:
bblayers.conf rk3328 rockchip-px30-evb.conf rockchip-rk3288w-evb.conf rockchip-rk3326-evb.conf rockchip-rk3566-evb.conf templateconf.cfg
include rk3399 rockchip-px3se-evb.conf rockchip-rk3308-evb-aarch32.conf rockchip-rk3328-evb.conf rockchip-rk3568-evb.conf
local.conf rk3399pro rockchip-rk3288-evb-act8846.conf rockchip-rk3308-evb.conf rockchip-rk3399-sapphire-excavator.conf rockchip-rk3588-evb.conf
rk3288 rk356x rockchip-rk3288-evb.conf rockchip-rk3326-evb-32.conf rockchip-rk3399pro-evb.conf sanity.conf
可以看到在rockchip平臺,該SDK當前支持的構建平臺,其中,所有的方案均以local.conf文件所設置的信息為準。
如果存在多個方案,可以在當前文件夾下多個方案文件夾,每個文件夾下均還有自己的方案對應的conf/local.conf信息文件。
在當前SDK平臺中,沒有這樣做,所以選擇方案需要使用ln -sf **** local.conf文件來進行方案的選擇。
選擇好方案之后,目前我選擇的方案是這樣的:
lrwxrwxrwx 1 jie jie 23 Aug 24 20:46 local.conf -> rk356x/roc-rk3568-pc.mk
選擇好之后,開始構建
source oe-init-build-env
bitbake core-image-minimal
我的構建開始信息:
使用上述構建參數構建出來的yacto系統僅僅只是一個能讓設備啟動的小鏡像,沒有啟動界面。他的配置文件放在:meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb
可以查看:meta-rockchip/README.md 可以看到rockchip對自己命令的支持。
簡單列舉一下支持的其他命令:
core-image-minimal : 一個能夠讓設備啟動的小鏡像,它無界面
core-image-sato : 一個支持Sato的鏡像,它支持帶有Sato主題和Pimlico應用程序的X11,還包含終端、編輯器和文件管理器,它是一個基于GNOME Mobile的用戶界面環境,使用matchbox作為窗口管理器
meta-toolchain:一個可編譯出gcc交叉工具鏈安裝程序的選項,生成的文件位于目錄/to/yocto>/build/tmp/deploy/sdk,主要輸出文件為.sh安裝文件
meta-ide-support:一個用于確保目錄/to/yocto>/build包含有IDE工具鏈包的選項,生成的文件為environment-setup-xxxxxx-neon-poky-linux-gnueabi,位于目錄to/yocto>/build/tmp,直接用soucre命令運行即可
更詳細的可以查看yocto的配置文檔:
https://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-images
yocto中編譯出來的文件:
在build中:
├── abi_version
├── buildstats
├── cache
├── deploy //生成的鏡像文件
├── hosttools //構建工具,當然還沒有生成
├── log //過程的log
├── pkgdata
├── qa.log
├── saved_tmpdir
├── sstate-control
├── stamps
├── sysroots //生成的產品根文件系統
├── sysroots-components
├── sysroots-uninative
├── uboot_img_prefix.tmp
├── work //編譯過程中生成的文件 第三方軟件包就放在這里
└── work-shared //編譯過程中的源文件依賴 kernel 就放在這里
在build文件夾中可以使用如下命令快捷編譯相關的工具:
編譯ubot
bitbake virtual/bootloader
編譯kernel
bitbake virtual/kernel
編譯工具或者軟件包
bitbake xxxxxx // xxxxx為配方 bb 文件之前的部分
具體可以使用
bitbake s 查看當前系統中都支持構建哪些包
如果沒有自己想要的軟件包,可以在yacto官網上下載自己需要的配方,添加進yacto中,再次查看是否添加進來。
下載軟件包的連接:OpenEmbedded Layer Index - recipes
-
RK3568
+關注
關注
4文章
523瀏覽量
5166 -
開發板試用
+關注
關注
3文章
301瀏覽量
2124
發布評論請先 登錄
相關推薦
評論