I've tried updating a beagle bone black using bsd.rd, but couldn't
get it to boot. Is there a way of doing this? I ended up reinstalling
from scratch since the system was mostly using a stock config and
I had to jump over the time_t bump. But in the future I'd like to
have a mechanism to update to a newer snapshot without reinstalling.
After converting bsd.rd to bsd.umg, using the command
mkuboot -a arm -o linux -e 0x80300000 -l 0x80300000 bsd.rd bsd.umg
I tried booting via TFTP, which failed as follows:
[[[
TFTP from server 217.197.84.33; our IP address is 217.197.84.45
Filename 'bsd.umg'.
Load address: 0x80300000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
###################
822.3 KiB/s
done
Bytes transferred = 4084736 (3e5400 hex)
U-Boot# bootm 0x80300000
## Booting kernel from Legacy Image at 80300000 ...
Image Name: boot
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4084672 Bytes = 3.9 MiB
Load Address: 80300000
Entry Point: 80300000
Verifying Checksum ... OK
XIP Kernel Image ... OK
OK
Starting kernel ...
data abort
MAYBE you should read doc/README.arm-unaligned-accesses
]]]
I also tried booting the bsd.umg file from the MSDOS partition,
by copying it there as bsdrd.umg and tweaking the uenv.txt file
to load that kernel:
bootcmd=mmc rescan ; setenv loadaddr 0x82800000 ; setenv bootargs
sd0i:/bsdrd.um
g ; fatload mmc 0 ${loadaddr} bsdrd.umg ; bootm ${loadaddr} ;
uenvcmd=boot
In this case, the system would just hang after printing the text
below, and I had to power-cycle it.
[[[
SD/MMC found on device 0
reading uEnv.txt
155 bytes read in 3 ms (49.8 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...
Running uenvcmd ...
reading bsdrd.umg
4084736 bytes read in 472 ms (8.3 MiB/s)
## Booting kernel from Legacy Image at 82800000 ...
Image Name: boot
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4084672 Bytes = 3.9 MiB
Load Address: 80300000
Entry Point: 80300000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
]]]
Any hints?