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

Integrate Raspberry Pi 4 EEPROM updates into the netboot procedure #3

Open
paxswill opened this issue Feb 23, 2021 · 1 comment
Open

Comments

@paxswill
Copy link
Owner

There's some sort of mechanism for the RPi4 to update it's firmware the same say it netboots.

@paxswill
Copy link
Owner Author

Turns out this is easier than I thought:

On startup, the Pi checks for the signature file during startup. If the timestamp in the signature is newer than the timestamp in the current firmware, the Pi loads the actual update file, writes it, and continues on it's merry way (I think that last part is true. The Pi might to a reboot, then boot.).

The hard part of this is that the scripts from raspberrypi/rpi-eeprom assumer in a number of ways that they're running on Raspbian:

  • They assume a Raspberry Pi Foundation device tree has been used (they attempt to load the current config from /sys/firmware/devicetree/base/aliases/blconfig).
  • vcgencmd is used as a fallback for accessing the current bootloader config.

Solving all of this is outside of the scope of this project, and could probably be coordinated with Debian/Ubuntu better:

  • Ubuntu has packaged raspberrypi/userland (which provides the libraspberrypi0 and libraspberrypi-bin packages, which provide vcgencmd).
  • Debian isn't packaging the RPi 4 firmware yet. I should really write up that proposal to split raspi-firmware into the firmware files and that install scripts, and then propose adding a new package for the RPi4/RPi400/CM4 firmware, and another package that provides the update scripts for them.
  • Check to see if flash-kernel can update firmware too.

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

1 participant