Deploying a Raspberry Pi4B as a LAVA worker¶
Due to the distributed nature of LAVA architecture, worker part of the software does not require latest and most expensive hardware. LAVA lab is already using it in it's own setup for particular instances.
Here we will provide a reference and how-to for deploying one such RPi4 as a LAVA worker.
Get the hardware¶
What you will need for a worker is:
- RPi4 with power supply
- SD card with min 8GB (only temporarily)
- SSD / Flash drive
- SATA(M.2, etc) to USB adapter
- FTDI USB to serial UART cable
There is a list of know working and also problematic USB adapters along with the more extensive setup instructions which we will cover here.
Prepare the Pi¶
Download the Raspberry Pi OS and flash it onto an SD card.
Once you get to login prompt the user is
pi and password is
then perform the following steps:
sudo rpi-eeprom-update -d -a
After that launch the raspi-config:
In the menu, find the
Boot ROM Version (it defers where it is depending on
the version of raspi-config, either under
Boot options or
Select Latest version of boot ROM software. In the next menu, for a question "Reset boot ROM to defaults?", select NO.
Then in the same submenu select "Boot Order" and choose "USB Boot". That's it.
Prepare the SSD¶
Currently we only support a Debian images for LAVA installation (unless you'd like to use docker).
Get the latest Debian image from Tested images - download the one for the RPi 4 family. This is a good stock image for a number of reasons, not least of which is that it already has enable-uart set to 1 in the boot config.txt, which enables serial output. The user for this image is root and there is no password.
Unpack it and “dd” it onto the SSD. If everything is OK, you should be able to remove the SD card from th Pi and boot the system from the SSD over USB.
We're now ready to install the LAVA worker.
Installing LAVA worker¶
- Start with upgrading the system and installing the packages:
apt update && apt dist-upgrade
apt install net-tools wget gnupg curl ca-certificates
- Edit the /etc/hostname and /etc/hosts files with appropriate hostname / IP address.
- Add the LAVA repo to apt:
echo "deb https://apt.lavasoftware.org/release bullseye main" > /etc/apt/sources.list.d/lava.list
- Add LAVA archive signing keys to apt:
curl -fsSL https://apt.lavasoftware.org/lavasoftware.key.asc | apt-key add -
- Install the lava-dispatcher package
apt install lava-dispatcher
apt dist-upgrade -t bullseye
Auto-registration of worker (or token)¶
We need to tell LAVA master to
trust this worker and there's two ways to
do this. You can either add the following line to
/etc/lava-server/settings.d/01-autoregister.yaml on the LAVA master (remember to change the netmask for
the subnet where the Pi is):
Or, alternatively you can add a token of your choice in the LAVA worker (Pi 4)
/etc/lava-dispatcher/lava-worker settings and paste the same token in the
LAVA admin UI on the master in the worker section for this particular worker.
Disable master/worker version mismatch checking¶
LAVA master rejects workers which do not run strictly the same version.
You can disable this in eg.
Setting up the server url¶
Once you have lava-worker running you need to point it to the LAVA server it
will connect to. Do this in
/etc/lava-dispatcher/lava-worker on the Pi.
After that RPi4 worker should be visible in the LAVA server UI and marked as Online.