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

View File

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