EBC Exercise 22 Recovering
Embedded Linux Class by Mark A. Yoder
What do you do if you've been working on the kernel or u-boot and now your BeagleBone Black won't boot? Here's what works if you've saved the .orig files as suggested. If you didn't save the files, goto EBC_Exercise_03_Installing_a_Beagle_OS and reflash the whole thing, see you in 45 minutes.
If you did make backups, follow along, this is much faster.
Contents
Getting the SD card image
The first step is to set up an SD that you can boot off. Before, you created an SD card that would copy an image to the on board eMMC. This is different, now you will be booting off the SD card. No need for the 45 minute wait.
Go to the latest images and download the first link (Angstrom Distribution (BeagleBone, BeagleBone Black - 4GB SD) 2013-06-20). Copy it to your SD card like you did for the eMMC image.
Boot off the SD card
Once your SD card is ready,
- power off the Bone
- put SD card in the reader on the Bone
- hold down the S2 button. It's the one near pin 45 of P8
- power up the bone, while still holding S2
- wait for all the LEDs to light and the release S2.
You are now booting off the SD card. Once booted, login and mount the eMMC partition.
Mounting the FAT partition
If you are recovering from changing u-boot you need to mount the first (FAT) partition.
beagle$ mkdir /media/BONE beagle$ mount /dev/mmcblk1p1 /media/BONE/ beagle$ cd /media/BONE/ beagle$ ls App Drivers LICENSE.txt README.md autorun.inf u-boot.img.new uEnv.txt Docs ID.txt MLO START.htm u-boot.img u-boot.img.orig
You can now move the original u-boot image back
beagle$ rm u-boot.img beagle$ cp u-boot.img.orig u-boot.img beagle$ cd .. beagle$ umount BONE
Mounting the ext4 partition
If it's the kernel you need to recover, you need to mount the second (ext4) partition. It's like before, but you change one digit.
beagle$ mkdir /media/BONE beagle$ mount /dev/mmcblk1p2 /media/BONE/ beagle$ cd /media/BONE/ beagle$ ls bin dev home lost+found mnt run sys usr boot etc lib media proc sbin tmp var beagle$ cd boot beagle$ ls am335x-bone.dtb omap3-evm.dtb uEnv.txt am335x-boneblack.dtb omap3-tobi.dtb uImage am335x-evm.dtb omap4-panda-a4.dtb uImage-3.8.13 am335x-evmsk.dtb omap4-panda-es.dtb uImage-3.8.13-bone26.1 am335x-tester.dtb omap4-panda.dtb uImage-3.8.13-bone27 omap2420-h4.dtb omap4-sdp.dtb uImage_bak omap3-beagle-xm.dtb omap4-var-som.dtb omap3-beagle.dtb omap5-evm.dtb beagle$ rm uImage beagle$ ln -s uImage-3.8.13 uImage
And then clean up
beagle$ cd ../.. beagle$ umount BONE
Rebooting
You can't just run the reboot command at this point. You need to power off the Bone, remove the SD card and then reboot.
beagle$ halt
One the lights are off, eject the SD card and power up. You should be recovered.
Embedded Linux Class by Mark A. Yoder