Commit 16fc95d5 authored by Peter Korsgaard's avatar Peter Korsgaard
Browse files

pandabord: use genimage to generate sdcard image



And drop the manual sdcard generation description from the readme.

Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent 55fad2b5
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
image boot.vfat {
	vfat {
		files = {
			"MLO",
			"u-boot.img"
		}
	}
	size = 8M
}

image sdcard.img {
	hdimage {
	}

	partition boot {
		partition-type = 0xC
		bootable = "true"
		image = "boot.vfat"
	}

	partition rootfs {
		partition-type = 0x83
		image = "rootfs.ext4"
		size = 512M
	}
}
+16 −0
Original line number Diff line number Diff line
#!/bin/sh

BOARD_DIR="$(dirname $0)"
GENIMAGE_CFG="${BOARD_DIR}/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}"

exit $?
+9 −39
Original line number Diff line number Diff line
@@ -28,49 +28,19 @@ The result of the build with the default settings should be these files:
  ├── omap4-panda.dtb
  ├── omap4-panda-es.dtb
  ├── rootfs.ext4
  ├── sdcard.img
  ├── u-boot.img
  └── zImage

Setting up your SD card
-----------------------
How to write the SD card
------------------------

*Important*: pay attention which partition you are modifying so you don't
accidentally erase the wrong file system, e.g your host computer or your
external storage!
Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.

In the default setup you need to create two partitions on your SD card:
a boot partition and a rootfs partition.
Copy the bootable "sdcard.img" onto an SD card with "dd":

The ROM code from OMAP processors need the SD card to be formatted with
a special geometry in the partition table. To do that, you can use the
shell script below (this script was extracted from
http://elinux.org/Panda_How_to_MLO_%26_u-boot).
  $ sudo dd if=output/images/sdcard.img of=/dev/sdX

#!/bin/sh
DRIVE=$1
if [ -b "$DRIVE" ] ; then
	dd if=/dev/zero of=$DRIVE bs=1024 count=1024
	SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`
	echo DISK SIZE - $SIZE bytes
	CYLINDERS=`echo $SIZE/255/63/512 | bc`
	echo CYLINDERS - $CYLINDERS
	{
	echo ,9,0x0C,*
	echo ,,,-
	} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE
	mkfs.vfat -F 32 -n "boot" ${DRIVE}1
	mke2fs -j -L "rootfs" ${DRIVE}2
fi

The next step is to mount the sdcard's first partition and copy MLO
and u-boot.img to it.

  $ sudo mkdir -p /mnt/sdcard
  $ sudo mount /dev/sdX1 /mnt/sdcard
  $ sudo cp MLO u-boot.img /mnt/sdcard
  $ sudo umount /mnt/sdcard

The last step is to copy the rootfs image to the sdcard's second
partition using 'dd':

  $ sudo dd if=rootfs.ext4 of=/dev/sdX2 bs=1M conv=fsync
Where /dev/sdX is the device node of your SD card (may be /dev/mmcblkX
instead depending on setup).
+3 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ BR2_ARM_ENABLE_NEON=y
BR2_ARM_ENABLE_VFP=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y
BR2_TARGET_GENERIC_GETTY_PORT="ttyO2"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pandaboard/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.3"
@@ -23,3 +24,5 @@ BR2_TARGET_UBOOT_BOARD_DEFCONFIG="omap4_panda"
BR2_TARGET_UBOOT_FORMAT_IMG=y
BR2_TARGET_UBOOT_SPL=y
BR2_TARGET_UBOOT_SPL_NAME="MLO"
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y