From: Ezequiel García Date: Tue, 12 Apr 2016 05:29:22 +0000 (-0300) Subject: board/minnowboard-max: Rework to generate SD card image X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e88c82f30d13ac915a0d51742b68a11c6d4d591e;p=buildroot.git board/minnowboard-max: Rework to generate SD card image Let's rework the board and config files to use genimage to generate the SD card image directly. [Peter: add host-mtools for genimage vfat handling] Signed-off-by: Ezequiel García Reviewed-by: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Peter Korsgaard --- diff --git a/board/minnowboard-max/genimage.cfg b/board/minnowboard-max/genimage.cfg new file mode 100644 index 0000000000..6cf7874307 --- /dev/null +++ b/board/minnowboard-max/genimage.cfg @@ -0,0 +1,34 @@ +# Create an image of the efi partition +image efi-part.vfat { + vfat { + file startup.nsh { + image = "efi-part/startup.nsh" + } + file EFI { + image = "efi-part/EFI" + } + file bzImage { + image = "bzImage" + } + } + size=10M +} + +# Create the sdcard image, pulling in +# * the image created by buildroot +# * the efi-partition created above +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xEF + image = "efi-part.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/board/minnowboard-max/post-image.sh b/board/minnowboard-max/post-image.sh new file mode 100755 index 0000000000..e90dd6b8cf --- /dev/null +++ b/board/minnowboard-max/post-image.sh @@ -0,0 +1,13 @@ +#!/bin/sh -e + +GENIMAGE_CFG="board/minnowboard-max/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/board/minnowboard-max/readme.txt b/board/minnowboard-max/readme.txt index 5f52369b97..dfad2aba21 100644 --- a/board/minnowboard-max/readme.txt +++ b/board/minnowboard-max/readme.txt @@ -1,40 +1,25 @@ -Prepare the SD card for the Minnow Board MAX +How to get started with the Minnow Board MAX ============================================ - 1. Partition the SD card with a GPT partition table +1. Build - sudo cgdisk /dev/mmcblk0 + Apply the defconfig: - Create two partitions: + $ make minnowboard_max_defconfig - a) First partition of a few dozens of megabytes, which will be - used to store the bootloader and the kernel image. Type must - be EF00 (EFI partition). + Add any additional packages required and build: - b) Second partition of any size, which will be used to store the - root filesystem. Type must be 8300 (Linux filesystem) + $ make - 2. Prepare the boot partition +2. Write the SD card - We will format it, mount it, copy the EFI data generated by - Buildroot, and the kernel image. + The build process will create a SD card image in output/images. + Write the image to an mSD card, insert into the Minnowboard MAX + and power the board on. - sudo mkfs.vfat -F 32 -n boot /dev/mmcblk0p1 - sudo mount /dev/mmcblk0p1 /mnt - sudo cp -a output/images/efi-part/* /mnt/ - sudo cp output/images/bzImage /mnt/ - sudo umount /mnt + $ dd if=output/images/sdcard.img of=/dev/mmcblk0; sync - 3. Prepare the root partition - - We will format it, mount it, and extract the root filesystem. - - sudo mkfs.ext4 -L root /dev/mmcblk0p2 - sudo mount /dev/mmcblk0p2 /mnt - sudo tar -C /mnt -xf output/images/rootfs.tar - sudo umount /mnt - - 4. Enjoy +3. Enjoy Additional information about this board can be found at http://www.minnowboard.org/ or http://wiki.minnowboard.org/MinnowBoard_MAX diff --git a/configs/minnowboard_max_defconfig b/configs/minnowboard_max_defconfig index 98996db958..05df9878cc 100644 --- a/configs/minnowboard_max_defconfig +++ b/configs/minnowboard_max_defconfig @@ -5,9 +5,13 @@ BR2_x86_atom=y # Misc BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard-max/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/minnowboard-max/post-image.sh" # Linux headers same as kernel, a 4.4 series BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y # Needed for ethernet BR2_PACKAGE_LINUX_FIRMWARE=y @@ -23,3 +27,8 @@ BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard-max/linux.config" # Bootloader BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_X86_64_EFI=y + +# Filesystem image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set