最近在搞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...