Jason,

shouldn't this info go up on the elinux.org wiki?

Dave

On 09/26/2013 12:16 PM, Jason Kridner wrote:
There are lots of ways to extract the contents of the eMMC to save off and
reuse. I'm proposing a method using Buildroot and an initramfs such that
you can simply drop a few files from a .zip onto a normal, FAT-formatted SD
card to perform the extraction. There are several things really handy here,
such as the ability to edit autorun.sh to be whatever script you want to
run on your board at boot. In the archive, I only have the necessary
autorun.sh for *saving* your eMMC content. The flip-side is provided here
in the text such that you need to go through a couple of steps before you
trash your eMMC.

The steps for saving off your eMMC contents to a file:
* Get a 4GB or larger uSD card that is FAT formatted.
* Download https://s3.amazonaws.com/beagle/beagleboneblack-save-emmc.zipand
extract the contents onto your uSD card.
* Eject uSD card from your computer, insert into powered-off BeagleBone
Black and apply power to your board.
* You'll notice USR0 (the LED closest to the S1 button in the corner) will
(after about 20 seconds) start to blink steadily, rather than the
double-pulse "heartbeat" pattern that is typical when your BeagleBone Black
is running the typical Linux kernel configuration.
* It'll run for a bit under 10 minutes and then USR0 will stay ON steady.
That's your cue to remove power, remove the uSD card and put it back into
your computer.
* You should see a file called BeagleBoneBlack-eMMC-image-XXXXX.img, where
XXXXX is a set of random numbers. Save off this file to use for restoring
your image later.

Because the date won't be set on your board, you might want to adjust the
date on the file to remember when you made it. Delete the file if you want
to make room for a new backup image. For storage on your computer, these
images will typically compress very well, so use your favorite compression
tool.

To restore the file, make sure there is a valid
BeagleBoneBlack-eMMC-image-XXXX.img file on the uSD card and edit
autorun.sh with your favorite text editor to contain the following:
#!/bin/sh
echo timer > /sys/class/leds/beaglebone\:green\:usr0/trigger
dd if=/mnt/BeagleBoneBlack-eMMC-image-XXXXX.img of=/dev/mmcblk1 bs=10M
sync
echo default-on > /sys/class/leds/beaglebone\:green\:usr0/trigger

*NOTE*: Be certain to replace the 'XXXXX' above with the proper name of
your image file.

This image was built using Buildroot. The sources are at
https://github.com/jadonk/buildroot with tag save-emmc-0.0.1. Download via
https://github.com/jadonk/buildroot/releases/tag/save-emmc-0.0.1 or clone
the git repo. It is a small fork from
git://git.buildroot.net/buildroottag
e9f6011617528646768e69203e85fe64364b7efd.

To build, 'make beagleboneblack_defconfig; make; ./mkuimage.sh'.  Output
files (am335x-boneblack.dtb, MLO, u-boot.img and uImage) will be in the
output/images subdirectory. The following files were created manually.

uEnv.txt:
bootpart=0:1
bootdir=
fdtaddr=0x81FF0000
optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN
uenvcmd=load mmc 0 ${loadaddr} uImage;run loadfdt;setenv bootargs
console=${console} ${optargs};bootm ${loadaddr} - ${fdtaddr}

autorun.sh:
#!/bin/sh
echo timer > /sys/class/leds/beaglebone\:green\:usr0/trigger
dd if=/dev/mmcblk1 of=/mnt/BeagleBoneBlack-eMMC-image-$RANDOM.img bs=10M
sync
echo default-on > /sys/class/leds/beaglebone\:green\:usr0/trigger

The kernel is based on
https://github.com/beagleboard/kernel/commit/9fdb452245a58158a4bea787cdc663c17681bcfe,
but I applied the patches, added firmware and uploaded it to
https://github.com/beagleboard/linux/commit/ddd36e546e53d3c493075bbebd6188ee843208f9to
pull down in the Buildroot makefile. The link to the source for the
firmware is in the commit.

I've applied to join the Buildroot mailing list to send these patches
upstream. The power management firmware is not yet loading properly, but
that is something I can look into.

Happy hacking!


--
For more options, visit http://beagleboard.org/discuss
--- You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to