Ports/aarch64/RaspberryPi4bootEEPROM: различия между версиями

Материал из ALT Linux Wiki
< Ports‎ | aarch64
Нет описания правки
Нет описания правки
Строка 79: Строка 79:


Возможны и другие варианты загрузки.
Возможны и другие варианты загрузки.
Посмотреть установленные в данный момент параметры загрузки можно командой
rpi-eeprom-config
Результат выполнения этой команды можно записать в файл для редактирования, например, boot.conf, внести в этот файл требуемые изменения и применить их командой
rpi-eeprom-config --apply boot.conf
Можно обойтись без промежуточного файла. Для этого установить переменную окружения EDITOR, например так:
export EDITOR=mcedit
затем подать команду
rpi-eeprom-config --edit
Будет автоматически создан временный файл boot.conf и открыт в заданном редакторе. После записи файла и выхода из редактора изменения будут применены.
Следует понимать, что скрипт rpi-eeprom-config не выполняет перепрошивку флеш-памяти. Он формирует временный файл прошивки, содержащий загрузчик и изменённые параметры загрузки и вызывает скрипт rpi-eeprom-update.
Этот скрипт, в свою очередь, планирует обновление - формирует файлы на загрузочном разделе, которые выполнят перепрошивку при следующей перезагрузке RPi4.

Версия от 11:28, 17 июня 2021

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Обновление и конфигурирование загрузчика Raspberry Pi 4

На Raspberry Pi 4 установлена флеш-память объёмом 512 кб, подключенная по интерфейсу SPI. Записанное в неё ПО используется при загрузке системы и заменяет собой файл bootcode.bin, который находился на загрузочном разделе SD карты предыдущих моделей Raspberry Pi. Это ПО позволяет загружать Raspberry Pi 4 не только с SD карты, но и с USB флешки и по сети. Периодически выпускаются новые версии загрузчика Raspberry Pi 4 и требуется его обновление.

Кроме ПО для загрузки в той же флеш-памяти записаны параметры конфигурации, управляющие режимом загрузки системы. В частности, изменяя эти параметры можно менять последовательность поиска загрузочного усиройства, например, сначала SD затем USB, или сначала SD затем сеть.

Как обновление ПО загрузчика так и изменение параметров загрузки требуют перепрошивки встроенной флеш-памяти.

Внимание! Перепрошивка встроенной флеш-памяти является потенциально опасной операцией.

В случае сбоя перепрошивки RPi4 может перестать загружаться.

Для восстановления загрузчика после сбоя можно использовать программу Raspberry Pi Imager. Подробности ниже.


Также на Raspberry Pi 4 установлена микросхема USB контроллера VL805, прошивка которой может быть обновлена.

Обновление или восстановление загрузчика с помощью Raspberry Pi Imager

Программа Raspberry Pi Imager существует под популярные ОС и архитектуры. Она позволяет просто и удобно выбрать и записать на флешку образ ОС для RPi, а также создать специальную загрузочную SD карту для перепрошивки встроенной флеш-памяти RPi4.

Пользователи Альт могут установить пакет rpi-imager из репозитория Альт. Пользователи Ubuntu, Windows и macOS могут загрузить программу по ссылке: https://www.raspberrypi.org/software/

  1. Понадобиться SD карта. Внимание! Всё содержимое SD карты будет перезаписано.
  2. Установите и запустите Raspberry Pi Imager.
  3. Нажмите "CHOOSE OS" и выберите "Misc utility images", затем "Bootloader".
  4. Выберите режим загрузки: "SD" (рекомендуется), "USB" или "Network".
  5. Подключите SD карту.
  6. Нажмите "CHOOSE STORAGE" и выберите SD карту.
  7. Нажмите "WRITE"
  8. Вставьте записанную SD карту в RPi4, загрузитесь с неё и подождите не менее 10 сек.
  9. Зеленый светодиод будет непрерывно мигать, а дисплей HDMI станет зеленым в случае успешной перепрошивки.
  10. Отключите питание RPi4 и выньте SD карту.

Обновление загрузчика с помощью скрипта rpi-eeprom-update

Можно обновить загрузчик RPi4 из ОС Альт без использования дополнительного компьютера и SD карты. Для этого установите пакет rpi-eeprom. Вместе с ним должны быть установлены пакеты firmware-bootloader-rpi4, содержащий прошивку, и rpi-vcgencmd, содержащий утилиту vcgencmd.

Если пакет rpi-eeprom уже был установлен, то обновите его перед обновлением загрузчика.

Все указанные ниже команды следует подавать от root.

Для проверки наличия обновлений подайте команду

rpi-eeprom-update

Для планирования обновления при следующей перезагрузке подайте команду

rpi-eeprom-update -a

По этой команде на загрузочном разделе будут созданы файлы, нужные для обновления, и при следующей перезагрузке RPi4 обновление будет выполнено.

Для отмены запланированного обновления подайте команду

rpi-eeprom-update -r

По этой команде файлы для обновления будут удалены.

Изменение параметров конфигурации загрузчика с помощью скрипта rpi-eeprom-config

Описание всех параметров параметров конфигурации загрузчика можно посмотреть по ссылке: https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md

В частности, последовательность поиска загрузочного усиройства задаётся в параметре BOOT_ORDER:

Значение BOOT_ORDER Описание
0xf41 Сначала SD, затем USB флешка, затем повторить сначала (значение по умолчанию, если BOOT_ORDER не задан)
0xf14 Сначала USB флешка, затем SD, затем повторить сначала
0xf21 Сначала SD, затем сеть, затем повторить сначала

Возможны и другие варианты загрузки.

Посмотреть установленные в данный момент параметры загрузки можно командой

rpi-eeprom-config

Результат выполнения этой команды можно записать в файл для редактирования, например, boot.conf, внести в этот файл требуемые изменения и применить их командой

rpi-eeprom-config --apply boot.conf

Можно обойтись без промежуточного файла. Для этого установить переменную окружения EDITOR, например так:

export EDITOR=mcedit

затем подать команду

rpi-eeprom-config --edit

Будет автоматически создан временный файл boot.conf и открыт в заданном редакторе. После записи файла и выхода из редактора изменения будут применены.

Следует понимать, что скрипт rpi-eeprom-config не выполняет перепрошивку флеш-памяти. Он формирует временный файл прошивки, содержащий загрузчик и изменённые параметры загрузки и вызывает скрипт rpi-eeprom-update. Этот скрипт, в свою очередь, планирует обновление - формирует файлы на загрузочном разделе, которые выполнят перепрошивку при следующей перезагрузке RPi4.