Raspberry PI 5 pci boot with nvme, error with 'rpi-eeprom'

Hi,
I just bought the new “5”, the issue is with the ‘rpi-eeprom’, I tried many times to update it but every time it freezes at 20% or when it try to install any other packet and it runs “apt upgrade”:

Preparing to unpack .../0-rpi-eeprom_23.0-1_all.deb ...
Unpacking rpi-eeprom (23.0-1) over (23.0-1) ...
client_loop: send disconnect: Broken pipe

And then the red became red. A reboot fixes it until I try to install or upgrade the system, I put it on hold via apt-mark hold rpi-eeprom but it’s not a solution, just a workaround, it’s impossible to use the system in this way.

If I try to do update the eeprom I get this:

root@DietPi:~# rpi-eeprom-update
-bash: rpi-eeprom-update: command not found

any suggestion to better handle or resolve this issue?

Thanks!

Once the issue happen, can you check system log and kernel error messages?

journalctl
dmesg -l 0,1,2,3

Ehm no because the RPi freezes and the led became red, here are the last logs when I try to switch from Dropbear to OpenSSH, or when I try to do any other task that requires an apt update and it detects the new RPi-eeeprom package…

root@DietPi:~# dietpi-software
[  OK  ] DietPi-Software | Initialised database
[  OK  ] DietPi-Software | Reading database
[  OK  ] DietPi-Software | DietPi-Userdata validation: /mnt/dietpi_userdata

 DietPi-Software
─────────────────────────────────────────────────────
 Step: Checking for conflicts and missing inputs


 DietPi-Software
─────────────────────────────────────────────────────
 Step: Checking for prerequisite software

[ INFO ] DietPi-Software | OpenSSH Client will be installed
[  OK  ] DietPi-Software | mkdir -p /mnt/dietpi_userdata/Music /mnt/dietpi_userdata/Pictures /mnt/dietpi_userdata/Video /mnt/dietpi_userdata/downloads /var/www /opt /usr/local/bin
[  OK  ] DietPi-Software | chown dietpi:dietpi /mnt/dietpi_userdata/Music /mnt/dietpi_userdata/Pictures /mnt/dietpi_userdata/Video /mnt/dietpi_userdata/downloads
[  OK  ] DietPi-Software | chmod 0775 /mnt/dietpi_userdata/Music /mnt/dietpi_userdata/Pictures /mnt/dietpi_userdata/Video /mnt/dietpi_userdata/downloads
[ SUB1 ] DietPi-Services > stop 
[  OK  ] DietPi-Services | stop : cron
[ INFO ] DietPi-Software | APT update, please wait...
Hit:1 https://deb.debian.org/debian bookworm InRelease
Hit:2 https://deb.debian.org/debian bookworm-updates InRelease
Hit:3 https://deb.debian.org/debian-security bookworm-security InRelease
Hit:4 https://deb.debian.org/debian bookworm-backports InRelease
Hit:5 https://dietpi.com/apt bookworm InRelease
Hit:6 https://dietpi.com/apt all InRelease
Hit:7 https://archive.raspberrypi.com/debian bookworm InRelease
Reading package lists...
[  OK  ] DietPi-Software | APT update

 DietPi-Software
─────────────────────────────────────────────────────
 Step: Installing OpenSSH Client: Feature-rich SSH, SFTP and SCP client

[ INFO ] DietPi-Software | APT install openssh-client, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  libcbor0.8 libedit2 libfido2-1 rpi-eeprom
Suggested packages:
  keychain libpam-ssh monkeysphere ssh-askpass
Recommended packages:
  xauth flashrom
The following NEW packages will be installed:
  libcbor0.8 libedit2 libfido2-1 openssh-client
The following packages will be upgraded:
  rpi-eeprom
1 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 7426 kB of archives.
After this operation, 98.1 MB of additional disk space will be used.
Get:1 https://deb.debian.org/debian bookworm/main arm64 libedit2 arm64 3.1-20221030-2 [88.1 kB]
Get:2 https://deb.debian.org/debian bookworm/main arm64 libcbor0.8 arm64 0.8.0-2+b1 [26.0 kB]
Get:3 https://deb.debian.org/debian bookworm/main arm64 libfido2-1 arm64 1.12.0-2+b1 [72.6 kB]
Get:4 https://deb.debian.org/debian bookworm/main arm64 openssh-client arm64 1:9.2p1-2+deb12u2 [933 kB]
Get:5 https://archive.raspberrypi.com/debian bookworm/main arm64 rpi-eeprom all 23.0-1 [6306 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 7426 kB in 1s (9140 kB/s)
(Reading database ... 20332 files and directories currently installed.)
Preparing to unpack .../rpi-eeprom_23.0-1_all.deb ...
Unpacking rpi-eeprom (23.0-1) over (23.0-1) ...

Maybe I have to try to install another version but I don’t know if it’s safe and what other version works with the 5.

Or I can install it using curl and getting the latest eeprom from here? rpi-eeprom/firmware-2712/latest at master · raspberrypi/rpi-eeprom · GitHub

I tried to install raspbian Lite and it worked, so it’s an issue with DietPI or this eeprom release.

Damn, what a stupid, I can’t install the new eeprom also from local because there’s no rpi-eeprom command/executable… I tried:

root@DietPi:~# curl -LJO https://github.com/raspberrypi/rpi-eeprom/blob/2bfd7cb74e6bc16559e040d0f5d788a4411819e4/firmware-2712/latest/pieeprom-2024-04-20.bin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  145k    0  145k    0     0   251k      0 --:--:-- --:--:-- --:--:--  252k
root@DietPi:~# ls
pieeprom-2024-04-20.bin
root@DietPi:~# rpi-eeprom-update -f pieeprom-2024-04-20.bin 
-bash: rpi-eeprom-update: command not found

Update booting and using DietPI from microSD card works perfectly, so it’s an issue with the pci hat and rpi-eeprom package.

I also see that it doesn’t show the RPi EEPROM firmware booting from SSD

Investingating I’m reading in the boot options here: https://www.raspberrypi.com/documentation/computers/config_txt.html#boot-options

The Raspberry Pi 5 firmware is self-contained in the bootloader EEPROM

and from my list of installed packages when I boot from the nvme SSD:

root@DietPi:~# apt list --upgradable -a
Listing... Done
rpi-eeprom/stable 23.0-1 all [upgradable from: 23.0-1]
rpi-eeprom/now 23.0-1 all [installed,upgradable to: 23.0-1]

What is the difference between 23.0-1 all and 23.0-1 (without “all” :smiley: )? And why when I boot from the NVMe PCIe SSD DietPI tries to upgrade it?

This is the issue I think, and I have obliviously no idea why it fails to upgrade the eeprom to “23.0-1”…

Other useful infos:

root@DietPi:~# lspci
0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2712 (rev 21)
0000:01:00.0 Non-Volatile memory controller: Phison Electronics Corporation PS5013 E13 NVMe Controller (rev 01)
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2712 (rev 21)
0001:01:00.0 Ethernet controller: Device 1de4:0001

Update:

I “solved” the issue, not fixed but now the pi5 woks from the NVMe.

Basically I simply installed all the DietPI system (and first upgrade) from the microSD, then I used “RPi-clone” (the last version from the good Jeff) and I copied the microsd to the NVMe drive and now it works without the microsd and doesn’t ask for the rpi-eeprom update anymore!

But if you try to boot straight from the NVMe drive it won’t work at the moment! DietPI continues to search for the rpi-eeprom update and then fails/sticks to install it and the system crashes (red LED if the RPi i mean!)

rpi-eeprom should have been installed using SD card as well. Can be checked as follows

dpkg -l rpi-eeprom

Yes but if I install it using the microSD then I can’t boot from a new system from a NVMe drive.

This was the issue, because DietPI fails to install the new eeprom (the weird one: “23.0-1 all” over the “23.0-1”) if booted from the NVMe drive from scratch.

Anyway now the dpkg command says:

root@DietPi:~# dpkg -l rpi-eeprom
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-==================================
ii  rpi-eeprom     23.0-1       all          Raspberry Pi 4 boot EEPROM updater

This booted from the NVMe drive with the SSD drive cloned from the microsd. The only way to use DietPI with an NVMe drive, instead using Raspbian Lite works also the boot from scratch from the NVMe drive. So it’s a DietPI issue, this I wanted to say, try to check it for the other people in the future, just this! :slight_smile: and thanks for the support, I love DietPI, raspbian (also the lite) is full of pointless -for me- packages pre-installed… I can’t use it, ahaha.

Edit:

Oh I have to add the sometimes when I reboot the RPi 5 starts with the green LED, then after 5-6 seconds became red and it is freezed. If I remove and reinsert the power cable, sometimes I have to do it 3 or 4 times (!), it starts again fine. There are definitely some issue with the NVMe drives and DietPI, eeprom or whatever…

Another update: the issue with the random shutdowns was due to a bad power supply! Now, with the official Raspberry PI one, all is fine!

1 Like

We don’t maintain or manage rpi-eeprom. This package is the original on from RPI foundation.

What might be a difference could be settings within /boot/config.txt

Personally, I need to increase arm_freq_min to 1600, otherwise my eMMC module is not working. And without increasing this value my RPi5 is ending up on I/O errors on high I/O load situation (like package install).

1 Like