Прошивка Raspberry Pi: полное руководство по обновлению загрузчика и EEPROM

Зелёный светодиод Raspberry Pi 4 мигает четырьмя короткими вспышками, экран остаётся чёрным, а плата отказывается грузиться с нового SSD — типичный признак того, что загрузчик в EEPROM устарел или повреждён. Именно прошивка загрузчика (bootloader), а не операционная система на SD-карте, определяет, с каких носителей стартует плата и какие функции ей доступны.

Под «прошивкой» у Raspberry Pi понимают два разных уровня: низкоуровневый bootloader, записанный во флеш-память EEPROM на самой плате, и файлы прошивки GPU (start.elf, fixup.dat), которые лежат в загрузочном разделе SD-карты и обновляются вместе с системой. В этой статье разберём оба уровня, покажем безопасный порядок обновления и объясним, что делать, если плата перестала загружаться.

Что такое EEPROM и зачем обновлять загрузчик

На платах Raspberry Pi 4 и Raspberry Pi 5 загрузчик хранится в отдельной микросхеме флеш-памяти. Это отличает их от ранних моделей (Pi 3 и старше), где весь стартовый код размещался на SD-карте. Обновление EEPROM открывает новые возможности: загрузку с USB-накопителей, NVMe-дисков, сетевую загрузку по PXE, а также исправления ошибок и снижение энергопотребления.

Отдельно стоит понимать, что обновление операционной системы через apt upgrade и обновление загрузчика — разные процедуры. Пакетный менеджер обновляет файлы прошивки GPU в разделе /boot, но содержимое EEPROM меняется только специальной утилитой.

Подготовка: что проверить перед прошивкой

Перед любыми манипуляциями с EEPROM убедитесь, что система загружается стабильно и у вас есть доступ к терминалу — локальный или по SSH. Прерывание записи загрузчика может привести к тому, что плата перестанет стартовать, и потребуется восстановление через SD-карту.

  • 🔋 Используйте качественный блок питания с достаточным током — просадки напряжения во время записи недопустимы.
  • 💾 Сделайте резервную копию важных данных с SD-карты или SSD.
  • 🌐 Проверьте доступ в интернет: утилита загружает образы прошивки из репозитория.
  • 📋 Узнайте текущую версию загрузчика командой vcgencmd bootloader_version.
⚠️ Внимание: не обновляйте EEPROM по нестабильному питанию или от аккумулятора с низким зарядом. Если запись прервётся, плата не сможет загрузиться, пока загрузчик не будет восстановлен через специальную SD-карту.

Обновление EEPROM через rpi-eeprom-update

В Raspberry Pi OS обновление загрузчика выполняется штатной утилитой rpi-eeprom-update. Сначала обновите списки пакетов и саму систему, затем проверьте наличие новой версии прошивки:

sudo apt update

sudo apt full-upgrade

sudo rpi-eeprom-update

Если утилита сообщает, что доступно обновление, установите его и перезагрузите плату:

sudo rpi-eeprom-update -a

sudo reboot

После перезагрузки новая прошивка записывается в EEPROM автоматически на раннем этапе старта. Проверить результат можно повторным запуском vcgencmd bootloader_version — дата версии должна измениться.

☑️ Обновление EEPROM за 5 шагов

Выполнено: 0 / 5
⚠️ Внимание: команда rpi-eeprom-update -a применяет версию из канала, заданного в конфигурации. По умолчанию используется стабильный канал — не переключайтесь на beta без явной необходимости, тестовые прошивки могут работать нестабильно.

Каналы обновлений и выбор версии прошивки

Прошивки загрузчика распространяются по каналам: stable (стабильный) и beta (тестовый). Канал задаётся в файле конфигурации /etc/default/rpi-eeprom-update. Для большинства задач менять его не нужно — стабильный канал покрывает загрузку с USB, NVMe и актуальные исправления.

Если требуется конкретная версия прошивки, её можно установить вручную, указав файл образа:

sudo rpi-eeprom-update -d -f /путь/к/pieeprom.bin

Такой способ используют, когда нужно откатиться на предыдущую версию или установить прошивку, ещё не попавшую в репозиторий. Файлы образов публикуются в официальном репозитории rpi-eeprom на GitHub.

Настройка порядка загрузки: USB, NVMe и сеть

Обновлённый загрузчик позволяет менять порядок опроса носителей через параметр BOOT_ORDER. Проще всего сделать это через графическую утилиту raspi-config или её консольный вариант:

sudo raspi-config

В меню найдите раздел Advanced OptionsBoot Order и выберите нужный вариант: сначала SD, сначала USB, либо NVMe/сеть, если ваша модель это поддерживает. Утилита сформирует новую конфигурацию загрузчика и запишет её в EEPROM после подтверждения.

Для тонкой настройки конфигурацию извлекают из текущего образа, редактируют и записывают обратно. Это уже продвинутый сценарий: ошибка в параметрах может сделать плату незагружаемой, поэтому новичкам достаточно raspi-config.

📊 С какого носителя загружается ваша Raspberry Pi?
Только SD-карта
USB-флешка или USB-SSD
NVMe-диск
Сетевая загрузка

Восстановление загрузчика при сбое

Если плата не стартует — чёрный экран, светодиод не мигает или повторяет циклический код ошибки — загрузчик можно восстановить. Для этого используется официальный инструмент Raspberry Pi Imager: в нём предусмотрен пункт Misc utility imagesBootloader, который записывает на SD-карту восстановительный образ для вашей модели.

Порядок действий простой: запишите образ на заведомо исправную SD-карту, вставьте её в обесточенную плату, подайте питание и подождите. Успешное восстановление обычно сигнализируется характерным миганием светодиода и зелёным экраном, если подключён монитор. После этого выключите плату, извлеките карту и загрузитесь в обычном режиме.

Точные коды мигания светодиода и их расшифровку сверяйте с официальной документацией для вашей модели — они отличаются между поколениями плат.

Почему старые Pi (1/2/3) не имеют EEPROM

У моделей до Pi 4 загрузчик целиком находится на SD-карте в файле bootcode.bin, отдельной флеш-памяти на плате нет. Поэтому «прошивка» таких плат сводится к обновлению файлов в загрузочном разделе, а восстановление — к простой перезаписи SD-карты.

Обновление прошивки GPU и ядра

Второй уровень «прошивки» — файлы start.elf, fixup.dat и ядро Linux в разделе /boot. Они обновляются штатно, через пакетный менеджер, вместе с системой:

sudo apt update

sudo apt full-upgrade

sudo reboot

Исторически существовала утилита rpi-update, устанавливающая тестовые версии ядра и прошивки GPU. Использовать её в повседневной работе не следует: она предназначена для разработчиков и может нарушить стабильность системы. Для рабочих сценариев достаточно обновлений из стандартного репозитория.

КомпонентГде хранитсяЧем обновляется
BootloaderEEPROM на платеrpi-eeprom-update
Конфигурация загрузкиEEPROM на платеraspi-config
Прошивка GPUРаздел /bootapt full-upgrade
Ядро LinuxРаздел /bootapt full-upgrade

Частые вопросы

Нужно ли обновлять прошивку, если всё работает?

Если плата загружается стабильно и новые функции (USB/NVMe-загрузка) не требуются, обновление EEPROM не обязательно. А вот системные обновления через apt устанавливать стоит регулярно — они включают исправления безопасности.

Чем отличается rpi-update от rpi-eeprom-update?

Первая утилита ставит тестовые ядро и прошивку GPU в раздел /boot, вторая — обновляет загрузчик в EEPROM. Это разные компоненты, и обе утилиты не заменяют друг друга.

Плата не грузится после обновления EEPROM. Что делать?

Запишите восстановительный образ загрузчика через Raspberry Pi Imager на SD-карту, загрузитесь с неё и дождитесь сигнала об успешной записи. Затем вернитесь к обычному носителю.

Можно ли прошить Raspberry Pi 3 через rpi-eeprom-update?

Нет. У Pi 3 и более ранних моделей нет микросхемы EEPROM — весь загрузочный код находится на SD-карте. Обновление таких плат выполняется только через пакетный менеджер системы.

Как узнать текущую версию загрузчика?

Выполните в терминале команду vcgencmd bootloader_version — она покажет дату и версию прошивки, записанной в EEPROM. Там же можно сверить конфигурацию загрузки командой vcgencmd bootloader_config.