Flashing BeagleBone Black image

beaglebone blackflash

I have a BeagleBone Black:

$ cat /etc/dogtag 
BeagleBoard.org Debian Image 2015-03-01
$ uname -a
Linux beaglebone 3.8.13-bone70 #1 SMP Fri Jan 23 02:15:42 UTC 2015 armv7l GNU/Linux

There's an updated image available BeagleBoard.org Latest Firmware Images. The updated image is for Debian 8.2, and its dated 2015-11-12 (sha256sum 4714268365500e4c…).

According to eLinux's BeagleBoneBlack | Debian, I simply need to uncomment the following line. I verified I have init-eMMC-flasher-v3.sh in that location.

##enable BBB: eMMC Flasher:
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

I'm running into trouble because I'm not sure what else is needed. I don't see a treatment in the wiki, the Debian docs are a mess (and don't really apply), and the script lacks head notes, comments and usage.

# cat /opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh | grep "\.xz"
#
# cat /opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh | grep "\.img"
    cp -v /boot/uboot/u-boot.img /tmp/boot/u-boot.img || write_failure
    rsync -aAx ${rsync_progress} /boot/uboot/ /tmp/boot/ --exclude={MLO,u-boot.img,uEnv.txt} || write_failure

And:

# /opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh --help
Starting eMMC Flasher
-----------------------------
Checking for Valid BBB EEPROM header
Valid BBB EEPROM header found
-----------------------------
copying: [] -> []
lsblk:
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk1boot0 179:16   0     1M  1 disk 
mmcblk1boot1 179:24   0     1M  1 disk 
mmcblk1      179:8    0   3.7G  0 disk 
├─mmcblk1p1  179:9    0    96M  0 part /media/BEAGLEBONE
└─mmcblk1p2  179:10   0   3.6G  0 part /
-----------------------------
df -h | grep rootfs:
rootfs                                                  3.5G  1.9G  1.4G  58% /
-----------------------------
Error: [] does not exist
writing to [] failed...

Image name

Do I unpack the *.xz archive so that its filename is bone​-​debian​-​8​.​2​-​tester​-​2gb​-​armhf​-​2015​-​11​-​12​-​2gb​.​img (that's the filename in the *.xz archive)? Or does it need to be named something else? Or should I do nothing and just reboot?

fstab

Also, do I need to add an fstab or mtab entry for mmc0 before rebooting? Or should I do nothing and just reboot?

Here's what I see when I install and remove the microSD card:

# dmesg
...

[ 9493.952565] mmc0: new high speed SD card at address e624
[ 9493.956686] mmcblk0: mmc0:e624 SU02G 1.84 GiB 
[ 9493.973345]  mmcblk0: p1
[ 9504.049054] mmc0: card e624 removed
[ 9504.243331] mmc0: host does not support reading read-only switch. assuming write-enable.
[ 9504.246933] mmc0: new high speed SD card at address e624
[ 9504.249514] mmcblk0: mmc0:e624 SU02G 1.84 GiB 

Best Answer

Judging by the file name, you have downloaded a filesystem image. To use it, you need to take an empty SD card, at least 2 GB large, and extract your image on it:

xz -cd *.img.xz | dd of=/dev/sd_card_dev_name bs=8MB

Then you will need to remount the SD card you have extracted the image to, and edit /boot/uEnv.txt on it to enable flashing. Then put the SD in your BeagleBone and boot from it to actually flash the eMMC.

Note that I don't actually own a BeagleBone, so take is as advice, not as 100% working solution. And please comment back if you have anything to add.