I have recently made the switch from Angström to Debian, by installing the following image on an SD card and customizing it further from there:
bone-debian-7.6-lxde-4gb-armhf-2014-09-03-4gb.img.xz
Things work well and I now would like to flash this to the eMMC. I have tried to do so by using the beaglebone-black-copy-microSD-to-eMMC.sh script:
$ sudo ./beaglebone-black-copy-microSD-to-eMMC.sh
Error: script halting, system unrecognized…
It seems that the script is unable to determine the boot drive, which it tries to extract from the output of LC_ALL=C lsblk -l by looking for ‘/boot/uboot’
Executing this by hand, I get:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk1boot0 179:16 0 1M 1 disk
mmcblk1boot1 179:24 0 1M 1 disk
mmcblk0 179:0 0 14.7G 0 disk
mmcblk0p1 179:1 0 96M 0 part /media/BEAGLEBONE_
mmcblk0p2 179:2 0 3.5G 0 part /
mmcblk1 179:8 0 1.8G 0 disk
mmcblk1p1 179:9 0 70.6M 0 part /media/BEAGLEBONE
mmcblk1p2 179:10 0 1.7G 0 part /media/Angstrom
So there’s no boot entry to be seen anywhere.
Is my system in a weird state, or does the script need updating to work with the new Debian images?
So I’ve followed these instructions and it seems that I the eMMC got flashed. But when I boot now, the system hangs at the stage where the penguin is displayed on a connected screen.
Using a TTL serial cable, I observed this output during startup:
Begin: Loading essential drivers … done.
Begin: Running /scripts/init-premount … done.
Begin: Mounting root file system … Begin: Running /scripts/local-top … done.
Begin: Waiting for root file system … done.
Gave up waiting for root device. Common problems:
Boot args (cat /proc/cmdline)
Check rootdelay= (did the system wait long enough?)
Check root= (did the system wait for the right device?)
Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mmcblk1p2 does not exist. Dropping to a shell!
I guess the device names are set up wrong now, and /dev/mmcblk1p2 should really be /dev/mmcblk0p2?
I couldn’t find any instructions as to how to set up the debian distribution properly before flashing in order to avoid this problem. Is this something that init-eMMC-flasher-v3.sh is supposed to handle, but didn’t?
So I followed these instructions and think I managed to flash the eMMC. But when booting, the system hangs at the stage where a connected screen would display the penguin while loading.
So I connected a TTL serial cable to see what's going on, and got this output here:
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Waiting for root file system ... done.
Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mmcblk1p2 does not exist. Dropping to a shell!
The system appears to look for the root partition in under the wrong dev name. I couldn't find any instructions as to how to set this up correctly. But shouldn't init-eMMC-flasher-v3.sh handle this correctly, since I'm using the stock Debian distribution?