How to boot Beaglebone Black from microSD card

Beaglebone Black board have eMMC and support microSD card, it boot from emmc by default. For LSK test, press boot button (S2) to boot from microSD card doesn't work. With the following steps, you can boot Beaglebone Black from microSD card.

1. Download hwpack and rootfs.

hwpack http://snapshots.linaro.org/kernel-hwpack/linux-linaro-stable-lsk-v3.14-rt-beaglebone/

rootfs http://snapshots.linaro.org/openembedded/images/lamp-armv7a-gcc-4.9/

I will use build #19 for example here.

wget http://snapshots.linaro.org/kernel-hwpack/linux-linaro-stable-lsk-v3.14-rt-beaglebone/19/hwpack_linaro-beaglebone_20141006-19_armhf_supported.tar.gz
wget http://snapshots.linaro.org/openembedded/images/lamp-armv7a-gcc-4.9/298/linaro-image-lamp-genericarmv7a-20141002-298.rootfs.tar.gz

2. Creating image with linaro-media-create tool

linaro-media-create --hwpack-force-yes --dev beaglebone --image-file bbb19.img --binary [PATH to rootfs]/linaro-image-lamp-genericarmv7a-20141002-298.rootfs.tar.gz --hwpack [PATH to hwpack]/hwpack_linaro-beaglebone_20141006-19_armhf_supported.tar.gz --image-size 3G --bootloader u_boot --rootfs ext4

3. Insert SD card, execute:

dmesg | less

Look for a line that looks like the following at the end of the log

[288582.790722] sdc: sdc1 sdc2 sdc3 sdc4

Or, if your machine uses ‘dev/mmcblkX’, you may see a line line this:

[10770.938042] mmcblk0: p1 p2 p3 p4 < p5 p6 >

WARNING: In the next step, make sure you use /dev/“whatever you see above”. You can erase your hard drive with the wrong parameter.

4. Copying the img file to the microSD card

sudo dd if=[PATH to img file]/bbb19.img of=/dev/sdX bs=4M

5. When finished, remove the microSD card from the reader. Insert the newly created microSD card into the board.

6. Apply the power to the board by plugging in the cable. Board should boot. Hit any key to stop autoboot. “U-Boot#” should appear.

7. Setup the U-Boot with the below boot_cmds. (Refer to the boot.txt file in the boot partition of the microSD card for boot_cmds)

setenv initrd_high "0xffffffff"
setenv fdt_high "0xffffffff"
setenv bootcmd "fatload mmc 0:1 0x80200000 uImage; fatload mmc 0:1 0x815f0000 board.dtb; bootm 0x80200000 - 0x815f0000"
setenv bootargs "console=ttyO0,115200n8  root=/dev/mmcblk0p2 rootwait ro"

8. Type "boot" and hit enter key, system should boot. The prompt "root@genericarmv7a:~#" should appear after the boot finished.

9. After boot finished, execute "uname -a" to check the kernel version to make sure that you are booting from microSD card, not eMMC.

Platform/QA/BBBmicroSDboot (last modified 2014-10-13 10:25:56)