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 <ezequiel@vanguardiasur.com.ar>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Ezequiel García 2016-04-12 02:29:22 -03:00 committed by Peter Korsgaard
parent 6c59e8d1f6
commit e88c82f30d
4 changed files with 68 additions and 27 deletions

View File

@ -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
}
}

View File

@ -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}"

View File

@ -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 Add any additional packages required and build:
used to store the bootloader and the kernel image. Type must
be EF00 (EFI partition).
b) Second partition of any size, which will be used to store the $ make
root filesystem. Type must be 8300 (Linux filesystem)
2. Prepare the boot partition 2. Write the SD card
We will format it, mount it, copy the EFI data generated by The build process will create a SD card image in output/images.
Buildroot, and the kernel image. 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 $ dd if=output/images/sdcard.img of=/dev/mmcblk0; sync
sudo mount /dev/mmcblk0p1 /mnt
sudo cp -a output/images/efi-part/* /mnt/
sudo cp output/images/bzImage /mnt/
sudo umount /mnt
3. Prepare the root partition 3. Enjoy
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
Additional information about this board can be found at Additional information about this board can be found at
http://www.minnowboard.org/ or http://wiki.minnowboard.org/MinnowBoard_MAX http://www.minnowboard.org/ or http://wiki.minnowboard.org/MinnowBoard_MAX

View File

@ -5,9 +5,13 @@ BR2_x86_atom=y
# Misc # Misc
BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard-max/post-build.sh" 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 # Linux headers same as kernel, a 4.4 series
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y 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 # Needed for ethernet
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
@ -23,3 +27,8 @@ BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard-max/linux.config"
# Bootloader # Bootloader
BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2=y
BR2_TARGET_GRUB2_X86_64_EFI=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