sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm python3-subunit mesa-common-dev zstd liblz4-tool

首先下載 kirkstone 分支的 Poky 源碼:
git clone -b kirkstone https://gitlab.com/yoctoproject/poky.git poky-kirkstone

然后進入 poky-kirkstone 文件夾 ,下載 kirkstone 分支的 meta-raspberrypi:
cd poky-kirkstone
git clone -b kirkstone https://github.com/agherzan/meta-raspberrypi.git meta-raspberrypi
source poky-kirkstone/oe-init-build-env rpi-build

將下載的 meta-raspberrypi 層加入編譯:
cd rpi-build/conf
vi bblayers.conf

在文件中添加以下內容:
BBLAYERS ?= " \
/home/linux/yocto/poky-kirkstone/meta \
/home/linux/yocto/poky-kirkstone/meta-poky \
/home/linux/yocto/poky-kirkstone/meta-yocto-bsp \
/home/linux/yocto/poky-kirkstone/meta-raspberrypi \
"

修改 MACHINE 為 raspberrypi4-64:
vi local.conf

找到并修改以下行:
MACHINE ??= "raspberrypi4-64"

在文件末尾添加自定義配置項:
############# Add by tao #######################################
IMAGE_FSTYPES = "ext4.xz rpi-sdimg"
SDIMG_ROOTFS_TYPE = "ext4.xz"
## enable uart
ENABLE_UART = "1"
## packages
IMAGE_INSTALL:append = " openssh-sftp-server sudo python3 python3-pip rpi-gpio raspi-gpio"
IMAGE_FEATURES:append = " ssh-server-openssh"
## systemd settings
DISTRO_FEATURES:append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit"
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
############# End by tao ########################################
在 local.conf 末尾添加以下內容:
============================
國內網絡專屬:下載加速配置
============================
1. 優先使用清華大學 TUNA 鏡像站 (涵蓋了 Git 和常規壓縮包)
PREMIRRORS:prepend = "\
git://.*/.* https://mirrors.tuna.tsinghua.edu.cn/git/ \n \
https?://.*/.* https://mirrors.tuna.tsinghua.edu.cn/yocto/ \n \
git://github.com/ https://ghproxy.com/https://github.com/ \n \
"
2. 如果清華鏡像偶爾抽風,備用北京外國語大學 BFSU 鏡像
PREMIRRORS:append = "\
git://.*/.* https://mirrors.bfsu.edu.cn/git/ \n \
https?://.*/.* https://mirrors.bfsu.edu.cn/yocto/ \n \
"
3. 針對 wget 下載的調優(增加重試次數,忽略證書校驗)
FETCHCMD_wget = "/usr/bin/wget -t 10 --passive-ftp --no-check-certificate"
4. 針對 Git 的調優(增加深度限制和超時)
GIT_CLONE_PARAMS = "--depth 1 --no-single-branch"
FETCHCMD_git = "/usr/bin/git -c core.fsyncobjectfiles=0 -c gc.autoDetach=false -c core.pager=cat"
配置完成后,使用 bitbake 命令開始編譯:
bitbake core-image-base

編譯成功后,鏡像文件位于以下目錄:
~/yocto/rpi-build/tmp/deploy/images/raspberrypi4-64/

通過串口工具(如 PuTTY)登錄樹莓派,登錄信息如下:
raspberrypi4-64 login: root
root@raspberrypi4-64:~#

end
一口Linux
關注,回復【1024】海量Linux資料贈送
精彩文章合集
文章推薦