Re: cubox-i does not boot after upgrade to bullseye
Am Montag, 27. Dezember 2021, 19:34:36 CET schrieb Rainer Dorsch:
> Thanks for your quick reply Vagrant.
>
> Am Montag, 27. Dezember 2021, 18:22:43 CET schrieb Vagrant Cascadian:
> > On 2021-12-27, Rainer Dorsch wrote:
> > > I upgraded a cubox-i from buster to bullseye. The upgrade went through
> > > without any issues. But after the upgrade the system does not boot
> > > anymore. The output of the serial console is below. The boot process
> > > hangs at
> > >
> > > [ 3.816424] Waiting for root device /dev/mmcblk1p2...
> > >
> > > Did the device enumeration change?
> >
> > Very likely; it is not promised to remain constant even between boots
> > with the same kernel, unfortunately!
>
> Wow. I installed bullseye on a second cubox-i and there I get
>
> > You really want to use root=UUID=abcde-12345... or partition labels, or
> > anything that isn't going to have surprise changes...
>
> Makes perfect sense.
>
> > > How would I find out the new device name and how would I change the boot
> > > parameters (which apparently specifies /dev/mmcblk1p2 according to the
> > > output below)?
> >
> > If you can insert the microSD into another Debian machine, you can get
> > the UUID by looking in /dev/disk/by-uuid/ to find the matching device
> >
> > or:
> > lsblk --fs /dev/DEVICE
> >
> > It might be possible to discover from u-boot as well, but I forget off
> > the top of my head.
>
> I realized that ext4ls uses dev 0 for the root filesystem
>
> CuBox-i U-Boot > ext4ls mmc 0:2 /
> <DIR> 4096 .
> <DIR> 4096 ..
> <DIR> 16384 lost+found
> <DIR> 4096 boot
> <DIR> 12288 etc
> <DIR> 4096 media
> <DIR> 4096 var
> <DIR> 4096 usr
> <DIR> 4096 bin
> <DIR> 4096 lib
> <DIR> 176128 tmp
> <DIR> 4096 sys
> <DIR> 12288 sbin
> <DIR> 4096 run
> <DIR> 4096 root
> <DIR> 4096 proc
> <DIR> 4096 home
> <DIR> 4096 dev
> <DIR> 4096 mnt
> <DIR> 4096 srv
> <DIR> 4096 opt
> CuBox-i U-Boot >
>
> also mmcroot implies dev 0
>
> mmcroot=/dev/mmcblk0p2 rootwait rw
>
> but u-env tries to mount device 1:
>
> Waiting for root device /dev/mmcblk1p2
>
>
> But figuring out the uuid should also be not problem.
>
> > Once you have the UUID, try passing root=UUID=$uuid in bootparams
> > instead of root=/dev/mmcblk...
>
> Here I am stuck:
> - I do not find any reference to bootparam in udev or boot.scr
> - In boot.scr I see an unconditional assignment
>
> setenv bootargs " ${bootargs} enable_wait_mode=off root=/dev/mmcblk1p2
> rootfstype=ext4 ro rootwait console=ttymxc0,115200 console=tty1"
>
> (for reference https://paste.debian.net/1224931/ )
>
> i.e. I see no way to overwrite root there.
>
> Is there a way to modify boot.scr itself?
>
Is it safe to use the boot.scr from a second device with
rd@h370:~$ diff -u /tmp/boot.cmd ~/tmp.nobackup/boot.cmd
--- /tmp/boot.cmd 2021-12-27 19:43:58.174529197 +0100
+++ /home/rd/tmp.nobackup/boot.cmd 2021-12-27 19:57:22.144927257 +0100
@@ -72,7 +72,7 @@
setenv bootargs "${bootargs} console=${console}"
fi
-setenv bootargs " ${bootargs} enable_wait_mode=off root=/dev/mmcblk1p2
rootfstype=ext4 ro rootwait console=ttymxc0,115200 console=tty1"
+setenv bootargs " ${bootargs} quiet"
if test -z "${fk_kvers}"; then
rd@h370:~$
Where boot.cmd was generated by
dd if=/boot/boot.scr bs=72 skip=1 of=/tmp/boot.cmd
?
Or are there some device specific addresses encoded in the first 72 bytes?
Thanks
Rainer
--
Rainer Dorsch
http://bokomoko.de/
Reply to: