The mSD cards were loaded via the traditional dd method. eg; sudo dd if=ipfire-2.27.2gb-ext4.aarch64-full-core162.img of=/dev/sdg status=progress bs=1M oflag=sync
I’m reasonably confident that the RPi4 and the mSD cards work correctly, as I’ve been able to use the cards to successfully install Raspberry PI OS (32 and 64 bit) and Ubuntu server (64 bit) on the RPi4. And the same cards have been used to install IPFire successfully on a RPi3B.
Following this post, I decompiled bcm2711-rpi-4-b.dtb, edited, and recompiled the file. The error remained unchanged, however.
Is the looping error another manifestation of the known issue with IPFire booting on the Rpi4 1.4 firmware?
Any ideas re workarounds/experiments/speculations gratefully accepted.
Updated the RPi4 eeprom as per this James Chambers page (The flashing of an update of the eeprom firmware requires a recent RaspberryOS image.) Depending on your RPi4 version, you may find that this step is unnecessary in your case.
dd’d the 163 image to a µSD as before.
Installed the µSD in a USB adapter, and slotted the adapter into one of the RPi4 USB sockets. (And made sure there was no µSD card in the RPi4 µSD slot.)
Booted the RPi4.
Watched IPFire boot and install without a hitch.
IPFire has subsequently booted from the USB port without problems. (It still doesn’t boot from the µSD slot.)
One caveat (of course): The flashing of an update of the eeprom firmware requires that the RPi4 be rebooted into RaspberryOS to complete the process. In my case, I had to move the µSD to the USB port in order for the reboot to work. The RPi4 booted RaspberryOS from the µSD slot after that.
I have a brand new Pi 4B 4GB. I tried to load the latest IPFire and got the same “error -22 whilst initialising SD Card invalid bus width” other got. After trying a few versions I tried a standard Raspberry Pi OS that I previously used (not the latest), and it worked. Booting to the desktop without any issues.
I have not tried boot in IPFire from USB, but plan to shortly.
What this suggests to me is that this is not a hardware for firmware issue but rather a Software OS issue, but all threads talk about flashing to the latest firmware or trying different memory cards or switching to USB boot as a workaround.
So I would just like to try understand what the cause is. Does anyone know yet what the causes is? Why does Raspberry Pi OS boot just fine but not IPFire?
Other links of interest I found that could be related.
Im not sure. I have retested my 8GB RPi4 and it boot without problems from a 32GB Samsung EVO µSD Card. (at my knowledge all 8GB boards are rev 1.4)
Raspberry Pi OS use a configured and patched kernel for RPi only. IPFire use a nearly stock kernel that is configured for many boards (KVM, Cavium, RockChip …) and depend on u-boot (native or uEFI).
Also the images ships a part of the RPi firmware on the disks and Raspberry Pi OS has of course the newest. This is the only part that i have changed between core161 and 162 to get the USB boot working.