Зелёный светодиод 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 шагов
⚠️ Внимание: команда 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 Options → Boot Order и выберите нужный вариант: сначала SD, сначала USB, либо NVMe/сеть, если ваша модель это поддерживает. Утилита сформирует новую конфигурацию загрузчика и запишет её в EEPROM после подтверждения.
Для тонкой настройки конфигурацию извлекают из текущего образа, редактируют и записывают обратно. Это уже продвинутый сценарий: ошибка в параметрах может сделать плату незагружаемой, поэтому новичкам достаточно raspi-config.
Восстановление загрузчика при сбое
Если плата не стартует — чёрный экран, светодиод не мигает или повторяет циклический код ошибки — загрузчик можно восстановить. Для этого используется официальный инструмент Raspberry Pi Imager: в нём предусмотрен пункт Misc utility images → Bootloader, который записывает на 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. Использовать её в повседневной работе не следует: она предназначена для разработчиков и может нарушить стабильность системы. Для рабочих сценариев достаточно обновлений из стандартного репозитория.
| Компонент | Где хранится | Чем обновляется |
|---|---|---|
| Bootloader | EEPROM на плате | rpi-eeprom-update |
| Конфигурация загрузки | EEPROM на плате | raspi-config |
| Прошивка GPU | Раздел /boot | apt full-upgrade |
| Ядро Linux | Раздел /boot | apt 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.