USB Gadget Mass Storage¶
The usbg-ms deployment method exposes the download disk image to the DUT as a
USB mass storage device using the
Linux USB Mass Storage Gadget.
USB mass storage emulation support is required on the LAVA worker, e.g.,
using the LAA USB OTG port.
For the DUT, the emulated virtual device functions as a regular block device,
similar to a USB stick.
Note that the usbg_ms_commands device configuration is required for using the deployment method.
yaml
- deploy:
to: usbg-ms
image:
url: https://raspi.debian.net/tested/20231109_raspi_4_bookworm.img.xz
compression: xz
timeout:
minutes: 5
image¶
url¶
See url.
compression¶
See compression.
If the image is compressed, the compression method must be specified.
overlays¶
For applying overlays to the image, see Overlays.
The LAVA overlay is required when the job definition contains tests.
timeout¶
See timeout
Life cycle¶
By default, the gadget is removed at the end of the job. You can use the built-in
usbg_ms_commands_disable command to remove it earlier.
yaml
- command:
name: usbg_ms_commands_disable
See RPi4b secondary media deployment example for how it is used in a pipeline.
Sample job¶
This sample job demonstrates a highly efficient way to boot and test a disk image via USB boot, as emulating a USB device is much faster than flashing a physical USB disk.
```yaml job_name: RPi4B USBG MS sample job device_type: bcm2711-rpi-4-b
visibility: public priority: medium
timeouts: job: minutes: 15 connection: minutes: 2
actions: - deploy: to: usbg-ms image: url: https://raspi.debian.net/tested/20231109_raspi_4_bookworm.img.xz compression: xz format: ext4 partition: 1 overlays: lava: true timeout: minutes: 5
-
boot: method: minimal auto_login: login_prompt: 'login:' username: root prompts:
- 'root@rpi4-20231108:' timeout: minutes: 5
-
test: definitions:
- from: inline
repository:
metadata:
format: Lava-Test Test Definition 1.0
name: test-definition-example
run:
steps:
- lava-test-case run-uname-a --shell uname -a
- lava-test-case check-os-id --shell 'cat /etc/os-release | grep "ID=debian"' path: inline/test-definition-example.yaml name: test-suite-example timeout: minutes: 5 ```
- from: inline
repository:
metadata:
format: Lava-Test Test Definition 1.0
name: test-definition-example
run:
steps: