Yocto 構建主機
- 目前為 5.1.999 版。
- 資源受限主機可以添加並行工作限制:
# 1.執行任務數限制: export BB_NUMBER_THREADS=10 # 2. 分析任務數限制: #export BB_NUMBER_PARSE_THREADS=16
1 系統要求
歡迎使用 Yocto 專案參考手冊。本手冊提供了 Yocto 專案當前版本的參考信息,在您了解 Yocto 專案的基礎知識後可以最有效地使用。本手冊並非作為 Yocto 計畫的起點來閱讀,也並非從頭到尾閱讀。相反,在使用 Yocto 項目的過程中,根據需要使用本手冊尋找變數定義、類別描述等。
有關 Yocto 專案的介紹信息,請參閱 Yocto 專案網站和Yocto 專案概述和概念手冊中的“ Yocto 專案開發環境”章節。
如果您想使用 Yocto 專案快速建立圖像而不必理解概念,請閱讀 Yocto 專案快速建立文件。您可以在Yocto 專案開發任務手冊中找到「如何操作」的資訊。您可以在 Yocto 專案概述和概念手冊中找到Yocto 專案概述和概念資訊。
筆記
有關 Yocto 項目文件集的更多信息,請參閱連結和相關文件部分。
1.1 最小可用磁碟空間
core-image-sato要為機器建立映像qemux86-64,您需要一個至少具有 90 GB 可用磁碟空間的系統。但是,建立更複雜的映像、運行多個建置和快取建置工件將需要更多的磁碟空間,從而提高建置效率。
如果磁碟空間不足,請參閱開發任務手冊的「節省磁碟空間」部分。
1.2 最小系統 RAM
core-image-sato您將設法在具有 4 個 CPU 核心的舊系統上為具有少至 8 GB RAM 的機器 構建映像qemux86-64,但是在具有盡可能多的 RAM 和盡可能多的 CPU 核心的系統上,您的構建速度將會快得多。
1.3 支援的 Linux 發行版
目前,Yocto 專案的 5.1.999 版本(「Styhead」)支援以下發行版:
- Ubuntu 20.04 (LTS)
- Ubuntu 22.04(LTS)
- Ubuntu 24.04(LTS)
- Fedora 38
- Fedora 39
- Fedora 40
- CentOS Stream 8
- Debian GNU/Linux 11(靶心)
- Debian GNU/Linux 12(書蟲)
- OpenSUSE Leap 15.4
- OpenSUSE Leap 15.5
- OpenSUSE Leap 15.6
- AlmaLinux 8
- AlmaLinux 9
- 洛奇9
以下發行版本仍在測試中,儘管發布這些版本的組織不再公開提供更新:
- Ubuntu 18.04 (LTS)
- Ubuntu 23.04
請注意,Yocto 項目無法存取某些版本可能具有的私人更新。因此,如果您有權訪問此類更新,我們的測試價值就有限。
最後,以下是先前在「Styhead」的早期修訂版上測試過但不再測試的發行版本:
[此列表目前為空]
筆記
儘管 Yocto 專案團隊試圖確保所有 Yocto 專案版本與每個官方支援的 Linux 發行版百分之百相容,但您仍然可能會遇到僅在特定發行版中發生的問題。
Yocto 專案版本針對上述清單中的穩定 Linux 發行版進行了測試。 Yocto 專案應該可以在其他發行版上運行,但尚未對它們進行驗證。
特別是,Yocto 專案不支援滾動發布或開發發行版,目前也沒有計劃支援它們,因為它們具有不斷變化的性質。我們歡迎補丁和錯誤報告,但請記住,我們的優先考慮的是上面列出的支援平台。
如果您的 Linux 發行版不在上述清單中,我們建議您取得包含 Yocto 專案版本所需主機工具的buildtools或buildtools-extended 壓縮包,通常
scripts/install-buildtools依照「所需的 Git、tar、Python、make 和 gcc 版本」部分中的說明運行。您可以使用 Windows Subsystem For Linux v2 使用 Windows 10 或更高版本或 Windows Server 2019 或更高版本設定建置主機,但不會對使用 WSL 2 的建置主機進行驗證。
如需更多信息,請參閱 Yocto 專案開發任務手冊中的設定以使用 Windows Subsystem For Linux (WSL 2)部分。
如果遇到問題,請前往Yocto Project Bugzilla並提交 Bug。我們有興趣聽聽您的經驗。有關如何提交錯誤的信息,請參閱 Yocto 專案 Bugzilla wiki 頁面和 Yocto 專案和 OpenEmbedded 貢獻者指南中的 「報告針對 Yocto 專案和 OpenEmbedded 的缺陷」部分。
1.4 建構主機所需的軟體包
當使用 Yocto 專案涵蓋所有建置場景時,主機開發系統上所需的軟體包清單可能很大。本節根據 Linux 發行版和功能描述所需的軟體包。
1.4.1 Ubuntu 和 Debian
以下是在受支援的 Ubuntu 或 Debian Linux 發行版的無頭系統上建立映像所需的軟體包:
sudo apt install build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3-jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xz-utils zstd
您還需要確保已en_US.UTF-8啟用區域設定:
locale --all-locales | grep en_US.utf8
如果不是這種情況,您可以重新配置locales套件以新增它(需要互動式 shell):
sudo dpkg-reconfigure locales
筆記
如果您不在互動式 shell 中,
dpkg-reconfigure將無法如預期般運作。要新增語言環境,您需要編輯/etc/locale.gen文件以新增/取消註釋en_US.UTF-8語言環境。以 root 身分執行此操作的簡單方法是:echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen locale-gen如果您的建置系統已
oss4-dev安裝該軟體包,您可能會遇到 QEMU 建置失敗,因為該軟體包/usr/include/linux/soundcard.h在 Debian 系統上安裝了自己的自訂軟體包。如果遇到這種情況,請嘗試以下任一解決方案:sudo apt build-dep qemu sudo apt remove oss4-dev
以下是建立專案文件手冊所需的軟體包:
sudo apt install git librsvg2-bin locales make python3-saneyaml python3-sphinx-rtd-theme sphinx
除了前面提到的軟體包之外,以下是建立 PDF 格式文件所需的軟體包:
sudo apt install fonts-freefont-otf latexmk tex-gyre texlive-fonts-extra texlive-fonts-recommended texlive-lang-all texlive-latex-extra texlive-latex-recommended texlive-xetex
1.4.2 Fedora 軟體包
以下是在受支援的 Fedora Linux 發行版的無頭系統上建立映像所需的軟體包:
sudo dnf install bzip2 ccache chrpath cpio cpp diffstat diffutils file findutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip hostname libacl lz4 make patch perl perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin perl-Text-ParseWords perl-Thread-Queue perl-bignum perl-locale python python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd
以下是建立專案文件手冊所需的軟體包:
sudo dnf install git glibc-locale-source librsvg2-tools make python3-pip which
sudo pip3 install sphinx sphinx_rtd_theme pyyaml
除了前面提到的軟體包之外,以下是建立 PDF 格式文件所需的軟體包:
sudo dnf install 'texlive-collection-lang*' latexmk texlive-collection-fontsextra texlive-collection-fontsrecommended texlive-collection-latex texlive-collection-latexextra texlive-collection-latexrecommended texlive-collection-xetex texlive-fncychap texlive-gnu-freefont texlive-tex-gyre texlive-xetex
1.4.3 openSUSE 軟體包
以下是使用受支援的 openSUSE 發行版在無頭系統上建立映像所需的軟體包:
sudo zypper install bzip2 chrpath diffstat gcc gcc-c++ git gzip hostname libacl1 lz4 make makeinfo patch python python-curses python-xml python3 python3-Jinja2 python3-curses python3-pexpect python3-pip rpcgen socat tar wget which xz zstd
sudo pip3 install GitPython
以下是建立專案文件手冊所需的軟體包:
sudo zypper install git glibc-i18ndata make python3-pip rsvg-convert which
sudo pip3 install sphinx sphinx_rtd_theme pyyaml
除了前面提到的軟體包之外,以下是建立 PDF 格式文件所需的軟體包:
sudo zypper install 'texlive-collection-lang*' texlive-collection-fontsextra texlive-collection-fontsrecommended texlive-collection-latex texlive-collection-latexextra texlive-collection-latexrecommended texlive-collection-xetex texlive-fncychap texlive-gnu-freefont texlive-latexmk texlive-tex-gyre texlive-xetex
1.4.4 AlmaLinux 軟體包
以下是使用受支援的 AlmaLinux 發行版在無頭系統上建立映像所需的軟體包:
sudo dnf install -y epel-release
sudo yum install dnf-plugins-core
sudo dnf config-manager --set-enabled crb
sudo dnf makecache
sudo dnf install bzip2 ccache chrpath cpio cpp diffstat diffutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip libacl lz4 make patch perl perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd
筆記
- 企業 Linux 的額外軟體包(即
epel-release)是 Fedora 在 RHEL/CentOS 上建構的軟體包集合,用於輕鬆安裝企業 Linux 中預設未包含的軟體包。您需要單獨安裝這些套件。- 該
PowerTools/CRBrepo 提供了附加軟體包,例如rpcgen和texinfo。- 該
makecache命令使用來自的額外元資料epel-release。
以下是建立專案文件手冊所需的軟體包:
sudo dnf install git glibc-locale-source librsvg2-tools make python3-pip which
sudo pip3 install sphinx sphinx_rtd_theme pyyaml
除了前面提到的軟體包之外,以下是建立 PDF 格式文件所需的軟體包:
sudo dnf install latexmk texlive-collection-fontsrecommended texlive-collection-latex texlive-collection-latexrecommended texlive-collection-xetex texlive-fncychap texlive-gnu-freefont texlive-tex-gyre texlive-xetex
警告
與 Fedora 或 OpenSUSE 不同,AlmaLinux 不提供軟體包
texlive-collection-fontsextra、texlive-collection-lang*和texlive-collection-latexextra,因此您可能會遇到問題。這些可以使用tlmgr安裝。
1.5 所需的 Git、tar、Python、make 和 gcc 版本
為了使用建置系統,您的主機開發系統必須滿足 Git、tar 和 Python 的以下版本需求:
- Git 1.8.3.1 或更高版本
- tar 1.28 或更高版本
- Python 3.8.0 或更高版本
- GNU make 4.0 或更高版本
如果您的主機開發系統不符合所有這些要求,您可以透過安裝包含這些工具的buildtools 壓縮包 來解決此問題。您可以下載預先建置的 壓縮包 或使用 BitBake 來建置一個。
此外,您的主機開發系統必須符合以下 gcc 版本需求:
- gcc 8.0 或更高版本
如果您的主機開發系統不符合此要求,您可以透過安裝包含附加工具的buildtools-extended 壓縮包(相當於 Debian/Ubuntubuild-essential 軟體包)來解決此問題。
對於 make 版本損壞的系統(例如,沒有補丁的 make 4.2.1),但其餘主機工具可用的系統,您可以改用buildtools-make 壓縮包。
在接下來的部分中,將描述安裝buildtools、buildtools-extended或buildtools-make 工具集的三種不同方法。
1.5.1 使用install-buildtools腳本安裝預先建置的buildtools 壓縮包
腳本install-buildtools是獲取這些工具的三種方法中最簡單的一種。它會下載預先建置的buildtools 安裝程式並自動為您安裝工具:
-
執行
install-buildtools腳本。以下是一個例子:cd poky scripts/install-buildtools \ --without-extended-buildtools \ --base-url https://downloads.yoctoproject.org/releases/yocto \ --release yocto-5.1.999 \ --installer-version 5.1.999在執行期間,將下載buildtools 壓縮包,驗證下載的校驗和,為您執行安裝程序,並執行一些基本檢查以確保安裝正常運作。
為了避免需要
sudo權限,install-buildtools腳本將預設告訴安裝程式安裝在:/path/to/poky/buildtools如果您的主機開發系統需要buildtools-extended 壓縮包 中提供的附加工具,則您可以
install-buildtools使用預設參數執行腳本:cd poky scripts/install-buildtools或者,如果您的主機開發系統有一個損壞的
make版本,而您只需要一個已知的良好版本make,則可以使用以下--make-only選項:cd poky scripts/install-buildtools --make-only -
使用以下命令取得工具環境設定腳本:
source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux在您取得安裝腳本後,將新增工具
PATH並初始化執行工具所需的任何其他環境變數。結果是 Git、tar、Python 和 的工作版本chrpath。對於 buildtools-extended 壓縮包,包含的附加工作版本工具gcc以及make包含在內 的其他工具packagegroup-core-buildessential。
1.5.2 下載預先建置的buildtools壓縮包
如果您不想使用該腳本,您可以按照以下步驟自行install-buildtools下載並執行預先建置的buildtools安裝程式:
-
前往https://downloads.yoctoproject.org/releases/yocto/yocto-5.1.999/buildtools/,找到並下載
.sh與您的主機架構相對應的檔案以及buildtools、buildtools-extended或buildtools-make。 -
執行安裝腳本。以下是傳統安裝程式的範例:
sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-5.1.999.sh以下是擴充安裝程式的一個範例:
sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-5.1.999.sh僅 make 安裝程式的範例:
sh ~/Downloads/x86_64-buildtools-make-nativesdk-standalone-5.1.999.sh執行過程中,會出現提示讓您選擇安裝目錄。例如,您可以選擇以下內容:
/home/your-username/buildtools -
根據安裝程式腳本的指示,您必須取得工具環境設定腳本:
source /home/your_username/buildtools/environment-setup-x86_64-pokysdk-linux在您取得安裝腳本後,將新增工具
PATH並初始化執行工具所需的任何其他環境變數。結果是 Git、tar、Python 和 的工作版本chrpath。對於 buildtools-extended 壓縮包,包含的附加工作版本工具gcc以及make包含在內 的其他工具packagegroup-core-buildessential。
1.5.3 建構你自己的buildtools壓縮包
只有當您擁有可以執行 BitBake 的建置主機時,才適用於建置和執行您自己的buildtools安裝程式。在這種情況下,您使用該機器來建立.sh文件,然後採取措施將其傳輸到不滿足最低 Git、tar 和 Python(或 gcc)要求的機器上並運行它。
以下是建置和執行您自己的buildtools安裝程式的步驟 :
-
在能夠執行 BitBake 的機器上,請確保您已使用安裝腳本 ( oe-init-build-env ) 設定了建置環境。
-
運行 BitBake 命令來建構 壓縮包:
bitbake buildtools-tarball或建構擴展的 壓縮包:
bitbake buildtools-extended-tarball或建構 make-only 壓縮包:
bitbake buildtools-make-tarball筆記
檔案中的SDKMACHINE變數
local.conf決定您是為 32 位元還是 64 位元系統建置工具。建置完成後,您可以在建置目錄的子目錄
.sh中找到安裝工具的檔案。安裝程式檔案的名稱中包含字串「buildtools」或「buildtools-extended」。tmp/deploy/sdk -
將檔案從建置主機傳輸
.sh到不滿足 Git、tar 或 Python(或 gcc)要求的機器。 -
在此機器上,執行該
.sh檔案來安裝工具。以下是傳統安裝程式的範例:sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-5.1.999.sh對於擴充安裝程式:
sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-5.1.999.sh對於僅 make 安裝程式:
sh ~/Downloads/x86_64-buildtools-make-nativesdk-standalone-5.1.999.sh執行過程中,會出現提示讓您選擇安裝目錄。例如,您可以選擇以下內容:
/home/your_username/buildtools -
使用以下命令取得工具環境設定腳本:
source /home/your_username/buildtools/environment-setup-x86_64-poky-linux在您取得安裝腳本後,將新增工具
PATH並初始化執行工具所需的任何其他環境變數。結果是 Git、tar、Python 和 的工作版本chrpath。對於 buildtools-extended 壓縮包,包含的附加工作版本工具gcc以及make包含在內 的其他工具packagegroup-core-buildessential。
Linux 基金會合作專案。
版權所有。 Linux Foundation® 和 Yocto Project® 是 Linux 基金會的註冊商標。
Linux® 是 Linus Torvalds 的註冊商標。
© 版權所有 2010-2025,Linux 基金會,CC-BY-SA-2.0-UK 許可證,
最後更新於 2025 年 3 月 11 日,來自yocto-docs git 儲存庫。
留言