A blog by Devendra Tewari
Yocto Project, and OpenEmbedded, have been making news lately as the toolchain to build custom embedded Linux systems. I decided to try and get a working Linux system up and running on a Raspberry Pi 1 Model B+.
The procedure that follows uses the meta-raspberrypi BSP in tandem with Yocto Project poky, on a Ubuntu 20.04 host.
Download the required layers using git
git clone http://git.yoctoproject.org/git/poky
git clone http://git.yoctoproject.org/git/meta-raspberrypi
git clone https://github.com/dv1/meta-gstreamer1.0.git
Initialize the build environment by executing
source poky/oe-init-build-env build
You can run the same command again if you ever need to setup the environment again in the future.
Append meta-raspberrypi
and any other layers to BBLAYERS
in conf/bblayers.conf
vi conf/bblayers.conf
After you’re done, conf/bblayers.conf
should look like
BBLAYERS ?= " \
/home/pi/poky/meta \
/home/pi/poky/meta-poky \
/home/pi/poky/meta-yocto-bsp \
/home/pi/meta-gstreamer1.0 \
/home/pi/meta-raspberrypi \
"
Set MACHINE to raspberrypi
in conf/local.conf
vi conf/local.conf
After you’re done, the relevant portion of conf/local.conf
should look like
#MACHINE ?= "genericx86-64"
#MACHINE ?= "edgerouter"
#
# This sets the default machine to be qemux86-64 if no other machine is selected:
MACHINE ??= "raspberrypi"
#
# Where to place downloads
This will build an image suitable to be installed on a Raspberry 1 Model B+. Other available alternatives can be seen under /home/pi/meta-raspberrypi/conf/machine/
raspberrypi-cm.conf
raspberrypi-cm3.conf
raspberrypi.conf
raspberrypi0-wifi.conf
raspberrypi0.conf
raspberrypi2.conf
raspberrypi3-64.conf
raspberrypi3.conf
raspberrypi4-64.conf
raspberrypi4.conf
Complete the build by executing
bitbake core-image-base
That should take a while.
After the build is complete, create an SD card using the following commands
sudo apt install bmap-tools
sudo bmaptool copy --bmap tmp/deploy/images/raspberrypi/core-image-base-raspberrypi-20210115193541.rootfs.wic.bmap tmp/deploy/images/raspberrypi/core-image-base-raspberrypi-20210115193541.rootfs.wic.bz2 /dev/sda
Change /dev/sda
to the appropriate device on your system.
Boot your Raspberry Pi using the SD card. Command line appears on the HDMI display, or, if configured, over the serial port on the expansion header. You can login as root
with an empty password.