Yocto問題處理小結

2021-10-23 20:19:43 字數 4207 閱讀 5514

最近在搞imx-yocto-l5.4.24_2.1.0的編譯,也是第一次接觸這個東西真的是遇到各種問題,也做個小結。

按照文件使用的是ubuntu18.04,硬碟空間240g,記憶體空間3g。文件中建議的空間是120g,實際上在編譯過程中會出現硬碟空間不足的情況。

編譯時最好使用固態硬碟,機械硬碟的編譯速度簡直感人。

開啟編譯目錄下的local.conf檔案 (我使用的資料夾是imx-yocto-bsp )

vi imx-yocto-bsp/build-xwayland/conf/local.conf
新增下列兩條指令 8代表8個任務並行

machine ??= 'imx8qxpmek'

distro ?= 'fsl-imx-xwayland'

package_classes ?= 'package_rpm'

extra_image_features ?= "debug-tweaks"

user_classes ?= "buildstats image-mklibs image-prelink"

patchresolve = "noop"

bb_diskmon_dirs ??= "\

stoptasks,$,1g,100k \

stoptasks,$,1g,100k \

stoptasks,$,1g,100k \

stoptasks,/tmp,100m,100k \

abort,$,100m,1k \

abort,$,100m,1k \

abort,$,100m,1k \

abort,/tmp,10m,1k"

conf_version = "1"

dl_dir ?= "$/downloads/"

accept_fsl_eula = "1"

//以下兩條指令

bb_number_threads = '8'

parallel_make = '-j 8'

# switch to debian packaging and include package-management in the image

package_classes = "package_deb"

extra_image_features += "package-management"

bitbake imx-image-full --runall=fetch
用是可以用,不過增加並行任務的語句就不生效了。

同樣也是修改imx-yocto-bsp/build-xwayland/conf/local.conf檔案

inherit += "rm_wo
基本上是記憶體不足造成的,有實際記憶體的可以加大虛擬機器記憶體,如果沒有可以增加ubuntu的swap空間

參考這個

注意每次開啟乙個shell視窗時,需要重新啟用swap檔案。

簡單點可以使用

bitbake -c cleansstate  《軟體包名》
這會清除所有編譯生成的檔案

如果不行嘗試

bitbake -c clean 《軟體包名》
這會清除所有的配置檔案,編譯生成的檔案

如果依然不行嘗試

bitbake -c cleanall 《軟體包名》
清除之後可以使用

bitbake  《軟體包名》
進行單獨編譯

一般來說這種問題基本上是缺什麼裝什麼就行了

使用

sudo apt-get install 《對應軟體包》
然後命令列執行測試一下即可。

不過我就比較悲催,我遇到的問題就是裝上之後依然不行。

我遇到問題是這個樣子的

program sed found: yes (/home/cyk/imx-yocto-bsp/build-xwayland/tmp/hosttools/sed)

program awk found: yes (/home/cyk/imx-yocto-bsp/build-xwayland/tmp/hosttools/awk)

program m4 found: yes (/home/cyk/imx-yocto-bsp/build-xwayland/tmp/work/aarch64-poky-linux/systemd/1_243.2-r0/recipe-sysroot-native/usr/bin/m4)

program stat found: yes (/home/cyk/imx-yocto-bsp/build-xwayland/tmp/hosttools/stat)

program git found: yes (/home/cyk/imx-yocto-bsp/build-xwayland/tmp/hosttools/git)

program env found: yes (/home/cyk/imx-yocto-bsp/build-xwayland/tmp/hosttools/env)

program perl found: yes (/home/cyk/imx-yocto-bsp/build-xwayland/tmp/work/aarch64-poky-linux/systemd/1_243.2-r0/recipe-sysroot-native/usr/bin/perl-native/perl)

program test/test-efi-create-disk.sh found: yes (/home/cyk/imx-yocto-bsp/build-xwayland/tmp/work/aarch64-poky-linux/systemd/1_243.2-r0/git/test/test-efi-create-disk.sh)

message: using /usr/sbin/quotaon for quotaon

message: using /usr/sbin/quotacheck for quotacheck

message: using /bin/kmod for kmod

message: using /usr/sbin/kexec for kexec

message: using /sbin/sulogin for sulogin

message: using /bin/mount for mount

message: using /bin/umount for umount

program loadkeys found: no

program /usr/sbin/loadkeys found: no

program /sbin/loadkeys found: no

program setfont found: no

program /usr/sbin/setfont found: no

program /sbin/setfont found: no

message: using /sbin/nologin for nologin

program gperf found: no

meson.build:584:0: error: program(s) ['gperf'] not found or not executable

提示缺少gperf工具,使用apt-get進行安裝,清除後重新編譯還是不行。這個問題搞了好幾天,在網上各種搜都沒有找到同樣問題的,nxp論壇也去了,得到的解決方案還是不行。最後檢視日誌的時候發現很多任務具都是存放在這個目錄下。

/home/cyk/imx-yocto-bsp/build-xwayland/tmp/hosttools
於是就嘗試了一下,將/usr/bin目錄下的gperf工具拷貝到yocto工具目錄下

sudo cp /usr/bin/gperf /home/cyk/imx-yocto-bsp/build-xwayland/tmp/hosttools
重新編譯後就可以了,估計到最後還是環境變數的問題,對於yocto在編譯過程中的環境變數是什麼樣的也沒去研究。

另外還有一些yocto使用的**,可以看看

還有**配置介紹的**

不過這些做下來作用都有限,對於我最有用的還是下面這條指令,在git使用http協議下速度能得到明顯提公升。

export all_proxy=socks5:

yocto依賴關係小結

首先說明,yocto中的依賴本質上是任務之間的依賴,即使是使用depends或者rdepends定義的兩個recipe之間的依賴關係,但實際上在yocto執行時依賴關係還是會體現在這兩個recipe中的task之間,即在執行時,yocto會將recipe之間的依賴解析成task之間的依賴。task之...

yocto 串列埠列印異常問題排查

在移植yocto imx6q時,u boot出現過列印訊息正常,但console無法輸入,一直從serial驅動到console初始化一步步排查,都正常,鬱悶至極,無意想到是不是串列埠輸入腳搞錯了,一對照,果然是pin腳錯了乙個序號,更正後輸入正常。今天做到kernel這一步了,在menuconfi...

檔案處理小結

1.5 開啟檔案file後,file的方法 開啟檔案 open 讀寫檔案 read write 關閉檔案 close copywith open 檔名,開啟模式,編碼格式 as f f.操作命令1.r唯讀 預設 2.w清空只寫 3.a追加寫入 copywith open 檔案一 open 檔案二 o...