cmprovision icon indicating copy to clipboard operation
cmprovision copied to clipboard

Download new firmware from GitHub.

Open knightofcarnage opened this issue 1 year ago • 12 comments

Downloading new firmware from GitHub is not working. It returns firmware updated; the newest in the list is pieeprom-2023-01-11.bin. But there are 3 newer images available:

pieeprom-2023-05-11.bin pieeprom-2024-01-18.bin pieeprom-2024-01-22.bin

Is there a procedure to add the new images by hand? Thanks -Mar

knightofcarnage avatar Feb 19 '24 23:02 knightofcarnage

I also have this issue. Is it permissions? Should we upload manually to a folder?

ric-osorio avatar Mar 04 '24 15:03 ric-osorio

Fixed: chmod -R 777 /usr/lib/firmware/raspberrypi/bootloader-2711

ric-osorio avatar Mar 04 '24 15:03 ric-osorio

I'm facing the same issue. After downloading new firmware files from the web interface, I can find them all in the folder /usr/lib/firmware/raspberrypi/bootloader-2711/stable. Unfortunately, the web interface does not show them. Even not after a reboot of the Pi or cleaning the webbrowsers cache.

Screenshot 2024-03-06 121232

patrickgroothuizen avatar Mar 06 '24 11:03 patrickgroothuizen

Try to add to /var/lib/cmprovision/storage/app/firmware/stable

ric-osorio avatar Mar 06 '24 11:03 ric-osorio

Thanks! Here the newly downloaded FW files are indeed not present.

Screenshot 2024-03-06 124613

patrickgroothuizen avatar Mar 06 '24 11:03 patrickgroothuizen

What I did was to do a wget directly to this folder and it shows back in the project:

cd /var/lib/cmprovision/storage/app/firmware/stable wget https://github.com/raspberrypi/rpi-eeprom/raw/master/firmware-2711/latest/pieeprom-2024-01-22.bin

ric-osorio avatar Mar 06 '24 11:03 ric-osorio

This works indeed 👍.

As an alternative, you can also copy the downloaded files manually to the right folder.

sudo cp /usr/lib/firmware/raspberrypi/bootloader-2711/stable/pieeprom* /var/lib/cmprovision/storage/app/firmware/stable

Thanks again!

patrickgroothuizen avatar Mar 06 '24 12:03 patrickgroothuizen

The code in /app/Http/Livewire/Firmwares.php is looking for a directory in the downloaded zip file called "firmware", but this has since been changed to "firmware-2711" and "firmware-2712"

djr-spectrummfg avatar Apr 04 '24 16:04 djr-spectrummfg

Please be aware that at least one version of the manually copied eeprom-firmware updates does not work properly on CM4 16GB & 32GB eMMC version: pieeprom-2024-07-30.bin Once written, the bootloader still booted the eMMC-located OS, but DID NOT run through the network boot provisioning server search procedure. It somehow skipped that step every time and went right to eMMC boot, although the boot order was set correctly for EEPROM settings with

[all] BOOT_UART=0 WAKE_ON_GPIO=1 POWER_OFF_ON_HALT=0 BOOT_ORDER=0xf56412 ENABLE_SELF_UPDATE=1

I did not further investigate, why that firmware update behaves this way, but reverted manually back to version pieeprom-2023-01-11, following the instructions from how-update-raspberry-pi-compute-module-4-bootloader-eeprom This is especially frustrating if you already set up your device to only image flash from network, but then have to re-place the CM4 unto the CM4IO-Board, in order to get access to the microUSB-port. Maybe there is another way to fix a broken bootloader version via ethernet. I cannot confirm nor deny whether the other manually added bootloader firmware versions do function properly, as I did not try flashing those. I can only recommend the last official version firmware-2711/latest/pieeprom-2023-01-11.bin.

DaveMabri avatar Sep 16 '24 12:09 DaveMabri

pieeprom-2024-07-30.bin is the generic firmware and will not contain the CM4 specific BOOT_ORDER.

You need to run update-pieeprom.sh in the recovery/ directory to apply the boot configuration.

See: https://github.com/raspberrypi/usbboot/commit/e7aefe3062f6c362afb4a78c6545c5b608ebcc22

We used to store output of update-pieeprom.sh but that was removed because it's unnecesary duplication of firmware files which can get out of sync

timg236 avatar Sep 16 '24 13:09 timg236

From my understanding of the CM Provisioning system, the EEPROM settings provided inside of the GUI for a project are applied after bootloader firmware update, I wrote those settings correctly, but they have not been applied after a complete image provisioning. Therefore, I was not able to re-network-boot the CM4 afterwards. I actually modified the instructions, too, when I tried the manual bootloader modifiication process. It succeeded with cd recovery nano boot.conf // & modify boot order ./update-pieeprom-sh sudo ../rpiboot -d . -v | tee log This process was not the problem. The problem, I encountered, was that the normal provisioning procedure using only a provisioning server and CM4-to-provide connected via Ethernet with correctly modified EEPROM-settings DID NOT leave me with a flashed CM4 which scans for provisioning server and network booting if image is provided at startup. Instead, I ended up with a CM4 which somehow skips that step or has not successfully modifed its boot order using the CM provisioning system. If it helps I could take a screenshot of the booting sequence log with a regularly functioning network-booting CM4 and the broken one with pieeprom-2024-07-30.bin.

Maybe I did not understand your response, but I expected that the boot order would still be modifiable right during provisioning process with a newer bootloader firmware version as well. On the other hand, I did not read any commit messages about that stable version, so that it was maybe already mentioned, although I expected downwards compatibility.

DaveMabri avatar Sep 16 '24 13:09 DaveMabri

The best thing would be to change the config to BOOT_UART=1 and capture the UART log to see whether the DHCP / TFTP is succeeding. For reference this is the log from the CM4 on my desk

  0.07 RPi: BOOTSYS release VERSION:5f18ffb6 DATE: 2024/07/30 TIME: 14:02:35
  0.11 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1722344555 serial f0560721 boardrev c03141 stc 511954
  0.27 PM_RSTS: 0x00001000
  0.27 part 00000000 reset_info 00000000
  0.31 uSD voltage 3.3V
  0.56 Initialising SDRAM 'Samsung' 16Gb x2 total-size: 32 Gbit 3200
  0.59 DDR 3200 1 0 32 152
  2.28 OTP boardrev c03141 bootrom 48b0 48b0
  2.29 Customer key hash 0000000000000000000000000000000000000000000000000000000000000000
  2.37 VC-JTAG unlocked
  2.12 RPi: BOOTLOADER release VERSION:5f18ffb6 DATE: 2024/07/30 TIME: 14:02:35
  2.17 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1722344555 serial f0560721 boardrev c03141 stc 2417058
  2.52 Boot mode: NETWORK (02) order f5641
  2.53 GENET: RESET_PHY 1
  2.56 CTL 1140 PHY ID 600d 84a2
  2.58 MII_CONTROL 1140
  2.61 MII APD 0021 SCTL3 0021 IDDQ 0000

  2.40 NETWORK: d8:3a:dd:05:fd:51 wait for link TFTP: 0.0.0.0
  5.21 LINK STATUS: speed: 1000 full duplex
  5.22 Link ready
  5.24 GENET START: 64 16 32
  5.38 GENET: UMAC_START 0xd83add05 0xfd510000
  5.39 RX: 0 IP: 0 IPV4: 0 MAC: 0 UDP: 0 UDP RECV: 0 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
  7.84 HDMI0 edid block 0 offset 0
  7.84 00ffffffffffff0010accfa142493530
  7.88 0e210103803c2278ea5095a8544ea526
  7.92 0f5054a54b00714f8180a9c0a940d1c0
  7.95 e1000101010108e80030f2705a80b058
  7.99 8a0055502100001e000000ff00393636
  7.02 344d44330a2020202020000000fc0044
  7.06 454c4c20533237323251430a000000fd
  7.09 00184c0a893c000a2020202020200143
  7.25 HDMI0 edid block 1 offset 128
  7.26 020346f1556101020304050607101112
  7.29 131415161f20215d5e5f230907078301
  7.33 00006d030c0020003844200060030201
  7.36 67d85dc401788001e40f010000681a00
  7.40 000101283ce6565e00a0a0a029503020
  7.44 350055502100001a0000000000000000
  7.47 00000000000000000000000000000000
  7.51 00000000000000000000000000000009
  7.54 HDMI0: best-mode 1 (limit 1) 1280x720 60 Hz CEA modes fe007f8003000000000000e002000000 extensions 1
 13.40 DHCP src: 86:98:d3:31:8e:ac 10.3.31.1
 13.41 YI_ADDR 10.3.31.35
 13.43 SI_ADDR 10.3.31.1
 13.46 OPTIONS:-
        op: 53 len:   1 DHCP recv OFFER (2) expect OFFER 13.51
        op: 54 len:   4 10.3.31.1 13.54
        op: 51 len:   4  13.57
        op: 58 len:   4  13.59
        op: 59 len:   4  13.61
        op:  1 len:   4 255.255.255.0 13.65
        op: 28 len:   4 10.3.31.255 13.68
        op:  3 len:   4 10.3.31.1 13.71
 13.86 DHCP src: 52:54:00:ae:0d:66 10.3.31.18
 13.87 OPTIONS:-
        op: 53 len:   1 DHCP recv OFFER (2) expect OFFER 13.93
        op: 54 len:   4 10.3.31.18 13.96
        op: 60 len:   9  13.98
        op: 97 len:  17  13.01
        op: 43 len:  32
                PXE op:  6 len:   1
                PXE op: 10 len:   4
                PXE op:  9 len:  20
00000000  52 61 73 70 62 65 72 72  79 20 50 69 20 42 6f 6f |Raspberry Pi Boo 13.16 |
00000010  74 ff ff 74                                      |t..t             13.23 |


 13.24
 13.25 NET 10.3.31.35 255.255.255.0 gw 0.0.0.0 tftp 10.3.31.18
 13.31 ARP 10.3.31.18 52:54:00:ae:0d:66
 13.34 NET 10.3.31.35 255.255.255.0 gw 0.0.0.0 tftp 10.3.31.18
 13.40 RX: 120 IP: 0 IPV4: 68 MAC: 22 UDP: 22 UDP RECV: 2 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.48 TFTP_GET: 52:54:00:ae:0d:66 10.3.31.18 f0560721/start4.elf

 13.54 DHCP src: 86:98:d3:31:8e:ac 10.3.31.1
 13.58 YI_ADDR 10.3.31.35
 13.60 SI_ADDR 10.3.31.1
 13.62 OPTIONS:-
        op: 53 len:   1 DHCP recv ACK (5) expect ACK 13.68
        op: 54 len:   4 10.3.31.1 13.71
        op: 51 len:   4  13.73
        op: 58 len:   4  13.75
        op: 59 len:   4  13.78
        op:  1 len:   4 255.255.255.0 13.81
        op: 28 len:   4 10.3.31.255 13.84
        op:  3 len:   4 10.3.31.1 13.87
        op:  6 len:   4 10.3.31.1 13.90
        op: 15 len:  12  13.92
 13.93 RX: 121 IP: 0 IPV4: 69 MAC: 23 UDP: 23 UDP RECV: 3 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.02 RX: 122 IP: 0 IPV4: 70 MAC: 24 UDP: 24 UDP RECV: 4 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.10 TFTP_GET: 52:54:00:ae:0d:66 10.3.31.18 f0560721/config.txt

 13.15 RX: 122 IP: 0 IPV4: 70 MAC: 24 UDP: 24 UDP RECV: 4 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.24 TFTP: complete 1247
 13.25 RX: 124 IP: 0 IPV4: 72 MAC: 26 UDP: 26 UDP RECV: 6 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.33 Read f0560721/config.txt bytes     1247 hnd 0x0
 13.38 TFTP_GET: 52:54:00:ae:0d:66 10.3.31.18 f0560721/pieeprom.sig

 13.44 RX: 125 IP: 0 IPV4: 72 MAC: 26 UDP: 26 UDP RECV: 6 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.52 TFTP 1: file /tftpboot/f0560721/pieeprom.sig not found for 10.3.31.35
 13.58 RX: 126 IP: 0 IPV4: 73 MAC: 27 UDP: 27 UDP RECV: 7 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.66 Read f0560721/pieeprom.upd failed
 13.70 TFTP_GET: 52:54:00:ae:0d:66 10.3.31.18 f0560721/recover4.elf

 13.98 RX: 130 IP: 0 IPV4: 77 MAC: 27 UDP: 27 UDP RECV: 7 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.04 TFTP 1: file /tftpboot/f0560721/recover4.elf not found for 10.3.31.35
 13.10 RX: 135 IP: 0 IPV4: 78 MAC: 28 UDP: 28 UDP RECV: 8 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.18 Read f0560721/recover4.elf failed
 13.21 TFTP_GET: 52:54:00:ae:0d:66 10.3.31.18 f0560721/recovery.elf

 13.27 RX: 135 IP: 0 IPV4: 78 MAC: 28 UDP: 28 UDP RECV: 8 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.36 TFTP 1: file /tftpboot/f0560721/recovery.elf not found for 10.3.31.35
 13.42 RX: 137 IP: 0 IPV4: 80 MAC: 29 UDP: 29 UDP RECV: 9 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 13.50 Read f0560721/recovery.elf failed
 13.54 TFTP_GET: 52:54:00:ae:0d:66 10.3.31.18 f0560721/start4.elf

 13.59 RX: 137 IP: 0 IPV4: 80 MAC: 29 UDP: 29 UDP RECV: 9 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 14.43 TFTP: complete 2257216
 14.43 RX: 142 IP: 0 IPV4: 83 MAC: 32 UDP: 32 UDP RECV: 12 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 14.51 Read f0560721/start4.elf bytes  2257216 hnd 0x0
 14.80 TFTP_GET: 52:54:00:ae:0d:66 10.3.31.18 f0560721/fixup4.dat

 14.83 RX: 142 IP: 0 IPV4: 83 MAC: 32 UDP: 32 UDP RECV: 12 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
 14.94 TFTP: complete 5436
 14.94 RX: 147 IP: 0 IPV4: 88 MAC: 37 UDP: 37 UDP RECV: 17 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0

timg236 avatar Sep 16 '24 13:09 timg236