kumquat-buildroot/configs/mender_x86_64_efi_defconfig
Adam Duskett 71cc399259 board/mender: add a mender board example configuration.
Buildroot currently has all of the needed packages to use Mender as the primary
update system. However, there isn't any documentation or examples now that
provide a starting point for users. This lack of documentation makes setting up
a Mender based update system difficult and time-consuming.

Provided in this patch series is a mender_x86_64_efi_defconfig of which sets up
an x86_64 EFI based build that is ready to flash to a USB pen drive or use in a
QEMU environment. The system partition schema comprises of two equally sized
root partitions and a data partition that mounts to /var/lib/mender as a
persistent data store partition.

There is a board/mender/readme.txt provided, which gives users documentation on
how to flash the built image or boot the image using QEMU as well.

The post-build and post-image-efi scripts also have four options:
-a --artifact-name:
  - The name of the artifact, this is added to /etc/mender/artifact_info
-o --data-part-size:
  - The data partition size.
-d --device-type
  - The device-type used by mender to catagorize registered devices.

Signed-off-by: Adam Duskett <Aduskett@gmail.com>
Signed-off-by: Mikael Bourhis-Cloarec <mikael.bourhis@smile.fr>
[Romain: rebase on master (01.2022)
  - update genimage-efi.cfg to use GPT partition table and genimage-15 syntax
  - bump the kernel to 5.15.13
  - Add host-libelf kernel dependency
  - Use BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI after commit 82d1e8c628
    (boot/grub2: use none platform when building for host)
  - Add regexp grub mandatory module for mender-grubenv
  - remove startup.nsh from genimage-efi.cfg after commit 3efb5e31fc
    (board, boot, package: remove usage of startup.nsh in EFI partition)]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
[Arnout:
  - abbreviate sizes and partition uuids, remove implicit ones in genimage.cfg
  - change data partition uuid to Linux (instead of x86_64 rootfs)
  - fix whitespace and shellcheck errors in scripts
  - remove --generate-mender-image option, always create it
  - remove empty directory and -O ^64bit when creating data fs
  - remove redundant e2fsck
  - add -serial stdio option to qemu call
  - update kernel to current stable 5.18.14
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-24 21:04:38 +02:00

84 lines
2.7 KiB
Plaintext

# Architecture
BR2_x86_64=y
# Toolchain
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y
# Required for eudev (to autoload drivers)
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
# Required for sysvinit
BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y
# System
BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
# Required as vda4 doesn't mount on first boot with busybox
BR2_INIT_SYSV=y
# Required tools to create bootable media
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_MTOOLS=y
# Bootloader
BR2_TARGET_GRUB2=y
BR2_TARGET_GRUB2_X86_64_EFI=y
# Add mandatory modules from MENDER_GRUBENV_MANDATORY_MODULES
BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop loadenv hashsum echo halt gcry_sha256 test regexp"
BR2_TARGET_GRUB2_INSTALL_TOOLS=y
# Required tools to create a mender image
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MENDER_ARTIFACT=y
# Filesystem / image
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="128M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_ROOTFS_OVERLAY="board/mender/x86_64/overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/mender/x86_64/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/mender/x86_64/post-image-efi.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="--data-part-size=32M --device-type=buildroot-x86_64 --artifact-name=1.0"
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.18.14"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/mender/x86_64/linux.config"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
# Firmware
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
# Packages
#
# Use connman so that networking setup is simpler, via connmanctl tool
# acpid is for seamless power button support
BR2_PACKAGE_ACPID=y
BR2_PACKAGE_CONNMAN=y
BR2_PACKAGE_CONNMAN_CLIENT=y
BR2_PACKAGE_CONNMAN_WIFI=y
BR2_PACKAGE_MENDER=y
BR2_PACKAGE_MENDER_GRUBENV=y
BR2_PACKAGE_MENDER_GRUBENV_DEFINES="board/mender/x86_64/mender_grubenv_defines"