Linux Image Requirements

Petitboot has a few requirements for the linux image it is built in to. For an in-practice example of how to build a Petitboot image see op-build.

For build-time dependencies see configure.ac.

Core dependencies

  • pb-discover expects to be run as root, or at least have permission for device management, executing kexec, etc.
  • udev: pb-discover discovers devices via libudev enumeration so a udev implementation must be present. Following this any udev rules required for certain device types must also be present. Eg. op-build’s inclusions.
  • network utilities: pb-discover expects to have udhcpc available for DHCP, or a call-equivalent version. Similarly it expects tftp and wget binaries in order to download boot resources.
  • kexec: A kexec binary must be available. This is commonly kexec-lite however kexec-tools should also work.
  • LVM: Petitboot depends on libdevmapper, and also requires vgscan and vgchange to be available if order to setup logical volumes.

Optional dependencies

  • mdadm for software RAID handling.
  • libflash: On OPAL platforms Petitboot will use libflash to load firmware version information.
  • ipmi: If /dev/ipmi is available Petitboot will use it to source information from the BMC.
  • console setup: unless you have other requirements you probably want to be starting the UI through pb-console in which case it is useful to have this called by udev. For example: petitboot-console-ui.rules, or depending on if you’re using agetty -l to log in a user, shell_profile.