Skip to content

NBD (Network Block Device)

The nbd deployment method is used to support NBD root deployments. Files are downloaded to a temporary directory on the worker. The rootfs is shared through xnbd-server and the filenames are substituted into the bootloader commands specified in the device configuration or overridden in the job definition.

- deploy:
    to: nbd
    kernel:
      url: http://example.com/vmlinuz
      type: zimage
    initrd:
      url: http://example.com/initramfs.ext4.gz.u-boot
    nbdroot:
      url: http://example.com/rootfs.ext4.xz
      compression: xz
    dtb:
      url: http://example.com/dtb.dtb

kernel

Required. The kernel to boot on the device.

type

Specifies the type of kernel being downloaded. Supported types:

  • image
  • uimage
  • zimage

initrd

The initrd contains all necessary files, daemons and scripts to bring-up the nbd-client and pivot_root to the final rootfs.

Note

The nbdroot filesystem will not be modified prior to the boot. Since the filesystems are using security labels and the modification would alternate the FS. So the LAVA overlay needs to be transferred after the boot with transfer_overlay.

nbdroot

The root filesystem image shared over xnbd-server.

url

See url

compression

The NBD filesystem image is unpacked into a temporary directory on the LAVA worker in a location supported by the NBD server.

The compression method must be specified if the file is compressed. See compression.

dtb

Optional Device Tree Blob.

modules

Modules are not supported in the NBD deployment method. Modules must be part of the filesystem already.

Example job

# NBD root deployment
job_name: standard Debian ARMMP nbd test on bbb
device_type: beaglebone-black

priority: medium
visibility: public

timeouts:
  job:
    minutes: 10
  action:
    minutes: 5
  connection:
    minutes: 2

actions:
# NBD_DEPLOY_BLOCK
- deploy:
    timeout:
      minutes: 5
    to: nbd
    kernel:
      url: http://example.com/vmlinuz
      type: zimage
    initrd:
      url: http://example.com/initramfs.ext4.gz.u-boot
    nbdroot:
      url: http://example.com/rootfs.ext4.xz
      compression: xz
    dtb:
      url: http://example.com/dtb.dtb

# NBD_BOOT_BLOCK
- boot:
    method: u-boot
    commands: nbd
    auto_login:
      login_prompt: 'login:'
      username: root
    prompts:
    - 'root@jessie:'
    timeout:
      minutes: 5

- test:
    definitions:
    - repository: https://github.com/Linaro/test-definitions
      from: git
      path: automated/linux/smoke/smoke.yaml
      name: smoke-tests
    timeout:
      minutes: 5