Unable to Flash eMMC from SD Card BeagleBone Black
Did you remember to remove the "#" at the beginning of the line cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh ?
To make this edit, which will cause the SD card to automatically flash any bbb you turn on with the SD card in it, you just need to follow these steps.
1. Connect your bbb to a power source (USB or DC work equally well)
2. Power off the bbb by pressing the power button.
3. Insert your SD card.
4. Power the bbb on.
5. Log in to SSH (I like putty for this) with port 22 and IP 192.168.7.2
6. execute: cd .. sudo nano boot/uEnv.txt
7.navigate to the line #cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh at the bottom of the txt file.
8. Delete the "#" at the beginning of the line.
9. control+x then "y" then "Enter key" to save your change and exit the txt file.
10. Reboot the BBB and the SD card should automatically flash to your BBB which will be indicated by the LED's following this pattern for (in my experience) about 10 minutes. LED pattern: 1-2-3-4-3-2-1-2-3-4-3-2-1-2-3-4-3-2-1... etc..
Hope this helps :)
Some beagle bones are not flashing with this method (pressing down the boot/user button, plug in the 5V connector, etc..), also described in various documents (linux.org).
So, if this method also doesn't let you flash the eMMC, you could try the following:
in /boot/uEnv.txt, the content is: ...
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v2.sh
Uncomment the last line and with the next boot, it should flash the eMMC according to the method described in the documentation (press the boot-button and then plug in the 5V connector)
login to the beaglebone (this is only an example, the real devices are shown in your system and you have to find out the real device-names)
find out, where the root device is, for example:
df /dev/mmcblk1p2 1855016 635552 1123568 37% /
If you have booted from the SD Card, then this (/dev/mmcblk1p2) is the SD- Card partition, which is recognized by the OS.
find the eMMC device:
find /dev/disk/by-path/ -ls
which is showing the connected devices on your system and the paths If there is a device which differs in the name from the device, where your Root (/) is mounted, then this is the eMMC device, we are searching for, for example:
/dev/disk/by-path/platform-mmc.5 -> ../../mmcblk0
So IF your mounted root device is: /dev/mmcblk1p2 AND your SD Card Device is: /dev/mmcblk0 then, alls you have to do is to "copy" the SD-Card content to the eMMC device:
dd if=/dev/mmcblk0 of=/dev/mmcblk1
In short words: copy the SD-Card to the eMMC with the dd-command.