截至目前yocto最新的版本是Styhead(5.1.2),内核版本是6.10。然而最新的LTS是Scarthgap(5.0.7), 因此使用该版本,内核版本是6.6。
拉取该分支的poky
git clone git://git.yoctoproject.org/poky -b scarthgap
拉取树莓派的bsp
git clone git://git.yoctoproject.org/meta-raspberrypi -b scarthgap
创建build目录并将bsp layer合入poky
source oe-init-build-env build
bitbake-layers add-layer ../meta-raspberrypi
修改local.conf文件,将machine的值改为raspberrypi5,并加入LICSENCE变量
MACHINE ??= "raspberrypi5"
LICENSE_FLAGS_ACCEPTED="synaptics-killswitch"
编译
bitbake core-image-sato
遇到的问题
raspberrypi-firmware-9f24f4b一直拉取失败。浏览器下载该包并放入编译环境,并修改rpi-bootfiles.bb中RPIFW_SRC_URI的值,指向存放该包的目录。
e.g
file:///$YOUR_PATH/poky/build/downloads/raspberrypi-firmware-9f24f4b.tar.gz.tar.gz
烧录
将编译出的名为的Image文件放入boot分区,并修改config.txt中kernel的值指向该文件
将文件系统导入root分区
sudo dd if=core-image-sato-raspberrypi5.rootfs-timestamp.ext3 of=/dev/sdb2
如果使用的串口是GPIO14/15这个,编译前要修改raspberrypi5.conf,以及配置文件cmdline.txt。
修改raspberrypi5.conf
SERIAL_CONSOLES ?= "115200;ttyAMA0"