Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Download new firmware from GitHub. #43

Open
knightofcarnage opened this issue Feb 19, 2024 · 12 comments
Open

Download new firmware from GitHub. #43

knightofcarnage opened this issue Feb 19, 2024 · 12 comments

Comments

@knightofcarnage
Copy link

knightofcarnage commented Feb 19, 2024

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

@ric-osorio
Copy link

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

@ric-osorio
Copy link

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

@patrickgroothuizen
Copy link

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

@ric-osorio
Copy link

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

@patrickgroothuizen
Copy link

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

Screenshot 2024-03-06 124613

@ric-osorio
Copy link

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

@patrickgroothuizen
Copy link

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!

@djr-spectrummfg
Copy link

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"

@DaveMabri
Copy link

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.

@timg236
Copy link

timg236 commented Sep 16, 2024

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: raspberrypi/usbboot@e7aefe3

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

@DaveMabri
Copy link

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.

@timg236
Copy link

timg236 commented Sep 16, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants