[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Booting a Raspberry Pi
From: |
Stefan |
Subject: |
Booting a Raspberry Pi |
Date: |
Sat, 28 Oct 2023 12:01:16 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 |
Hi Gabriel!
I boot my Raspberry from NFS, but it isn’t in use since some time. I
experienced a problem ending in the GRUB rescue shell a year ago¹.
At that point my system switched from u-boot 2020.10 to 2022.4. Although I was
net-booting, I still used a microSD card with only a bootcode.bin on it to work
around known ROM code issues.
Using u-boot 2020.10, GRUB was working. Switching to u-boot 2022.4, GRUB had a
similar problem:
Error: variable `root' isn't set.
Entering rescue mode...
grub rescue>
By just removing the microSD card, GRUB had no issues any more being loaded by
u-boot 2022.4. I never figured out the root cause of this problem. Anyway, your
problem seems to be different. There is no error message and no rescue shell.
It seems that GRUB boots into its shell by intention.
Inspect the environment variables in GRUB with the ‘set’ command, to figure out
why GRUB doesn’t seem to load a grub.cfg file. The variables ‘root’ and
'prefix' are of special interest.
There should be a file efi/boot/grub.cfg on your microSD card. Check its
content. It should contain two lines. Either
search --file --set /gnu/store/…-grub.cfg
configfile /gnu/store/…-grub.cfg
or (actually expected)
search --fs-uuid --set …
configfile /gnu/store/…-grub.cfg
In the latter case, the UUID has to match the one of the Guix file-system on
your microSD card. If this is not the case, then correct the UUID. Or change
the first line containing ‘search --fs-uuid …’ with the other one containing
‘search --file …’.
The installation function uses ‘grub-probe --target=fs_uuid
/gnu/store/…-grub.cfg’ to query this UUID. I could imagine that the installer
gets the path to a grub configuration in the host’s store, rather than the
store inside the image, leading to the wrong UUID of the host’s file-system.
Also check the presence and the content of that /gnu/store/…-grub.cfg file.
The installation function has only been tested by me with ‘guix system init’
and ‘guix system reconfigure’. I didn’t check an image creation, I think it
wasn’t even possible at that time.
Bye
Stefan
¹ https://issues.guix.gnu.org/issue/48314