Обновление прошивки Raspberry Pi-4 (eeprom), по сравнению с UBUNTU 20.04

Я хотел бы знать, есть ли другой прямой способ обновить Raspberry pi-4 прямо из командной строки терминала UBUNTU 20.04.

1) Я прочитал статью ниже: Загрузчик Raspberry Pi 4

Примечания к последнему выпуску: Примечания к выпуску EEPROM загрузчика Pi4

2) И насколько я могу судить, нет прямого способа обновить прошивку "eeprom" напрямую? Я бы хотел ошибиться в этом ... Так что, пожалуйста, докажите, что я ошибаюсь в этом вопросе ...

3) Если я не ошибаюсь в пункте (2) .. какой самый быстрый / простой способ обновить прошивку ..? Чтобы использовать другую SD-карту с RPI OS?

Большое спасибо за помощь мне заранее ...

1
задан 23 June 2020 в 15:14

3 ответа

[Ответ ниже относится только к моделям Raspberry Pi 4B, т.е. 3B(+) не имеют встроенной флэш-памяти EEPROM.]

  • A «краткое» предупреждение: запуск обновлений EEPROM может включать в себя риски вплоть до блокировки вашего Raspberry Pi 4B, поэтому я должен подчеркнуть, что пробовать что-либо, упомянутое в этом ответе, ВЫ ДЕЛАЕТЕ ЭТО НА СВОЙ СОБСТВЕННЫЙ РИСК. ВСЕГДА ДЕЛАЙТЕ РЕЗЕРВНУЮ КОПию ВАШЕЙ СУЩЕСТВУЮЩЕЙ СИСТЕМЫ ПЕРЕД ПОПЫТКОЙ ОБНОВЛЕНИЯ FLASH EEPROM. Особенно копия загрузочного раздела, которую довольно легко (и небольшой по размеру файл) сделать резервной копией на другой компьютер, просто скопировав все файлы и каталоги, находящиеся внутри загрузочного раздела.

  • Более чем рекомендуется сделать резервную копию всей ОС, создав ее образ-клон, то есть со всеми разделами, их файлами и т. д.), а затем сохранить их на отдельном диске для безопасного хранения и возврата процесса. , если во время обновления что-то пойдет не так.

На данный момент (август 2020 г.) скрипт rpi-eeprom-update, который можно загрузить, например, с GitHub (см.: https://github.com/raspberrypi/rpi-eeprom ) более или менее не работает в других дистрибутивах, кроме Raspbian/Raspberry OS (где предполагается, что он либо предустановлен, либо может быть установлен с помощью sudo apt install rpi- eeprom-update без лишних хлопот). Это означает, что может быть рискованно пытаться запустить средство обновления EEPROM из любой другой ОС, кроме официальной ОС Raspbian/Raspberry Pi.

И это означает, что первоначальный ответ на ваш вопрос:

Да, вы должны запустить обновление EEPROM из операционной системы Raspberry / версии Raspbian, которая актуальна — и ни из какой другой ОС на данный момент в время.

Поскольку это обновление флэш-памяти EEPROM , вы сможете использовать любую установленную вами установку Raspbian на RPi4B — при условии, что она предварительно полностью обновлена! Или приобретите для этой цели отдельную карту MicroSD / загрузочную флешку USB.

  • Я бы порекомендовал MicroSD, а не любое USB-устройство, которое вы пока храните только для обновления прошивки, поскольку функциональность загрузки USB в целом все еще находится в стадии разработки, и временами все может немного шататься, особенно если вы устанавливаете передовые обновления на стороне прошивки.

Запуск процесса обновления EEPROM:

  • Загрузитесь в ОС Raspbian/Raspberry Pi и убедитесь, что она обновлена ​​(запустите sudo apt update , sudo apt upgrade , sudo reboot now .)

  • Затем, все еще находясь в Raspbian/RPiOS, запустите sudo rpi-eeprom-update со стороны Raspbian/RPiOS и перезагрузитесь обратно (в Raspbian /RPiOS).

  • Проверьте состояние и версию прошивки EEPROM, снова запустив sudo rpi-eeprom-update (без дополнительных команд). Если EEPROM кажется самой последней, это хорошо.

  • В любом случае прочитайте и выполните следующие действия (при необходимости).

  • Если теперь все работает как надо на стороне Raspbian/RPiOS, выполните отключение sudo сейчас, включите вашу установку Ubuntu, включите питание и загрузитесь в Ubuntu.

  • При загрузке в Ubuntu проверьте состояние прошивки с помощью sudo rpi-eeprom-update (без параметров командной строки после этого -- и, при условии, что она установлена ​​или доступна на стороне Ubuntu тем не менее, если нет, см. ниже.)

  • sudo rpi-eeprom-update (без добавленных команд) должен просто перечислить сведения о версии и уведомить, доступно ли обновление, которое может увидеть сценарий — посмотрите, есть ли вывод этой команды соответствует правильной версии микропрограммы EEPROM, которую вы пытаетесь установить.

Если версия микропрограммы не совпадает или если у вас вообще нет rpi-eeprom-update на вашей Ubuntu, что не будет неожиданностью, поскольку Ubuntu для RPi4B не поставляется с предустановленным rpi-eeprom-update, и его нельзя установить через apt или любой другой PPA, о котором я знаю на момент написания этой статьи.

Оставаясь в терминале Ubuntu:

  • Клонируйте репозиторий Github для rpi-eeprom с https://github.com/raspberrypi/rpi-eeprom с git:

  • Если у вас не установлен git, сначала выполните: sudo apt install git

  • Затем: git clone https://github.com/raspberrypi/rpi-eeprom

  • После клонирования репозитория Git cd rpi-eeprom в клонированный каталог репозитория git и скопируйте файлы из его stable/ -подкаталог в любой каталог файлов .bin вашей прошивки в соответствии с rpi-eeprom-update (см. ниже.)

Как вы можете видеть из sudo rpi-eeprom-update пример вывода ниже, в моем случае с Ubuntu 20.04LTS каталог был: /usr/bin/firmware/stable

Это сработало для меня, и теперь мой Ubuntu 20.04LTS 64-бит на RPi 4B показывает последнюю стабильную прошивку следующим образом:

BCM2711 detected
Dedicated VL805 EEPROM detected
BOOTLOADER: up-to-date
CURRENT: Fri 31 Jul 2020 01:43:39 PM UTC (1596203019)
 LATEST: Fri 31 Jul 2020 01:43:39 PM UTC (1596203019)
 FW DIR: /usr/bin/firmware/stable
VL805: up-to-date
CURRENT: 000138a1
 LATEST: 000138a1

Если вам кажется, что наличие отдельной карты Raspbian MicroSD — это просто дополнительные хлопоты, имейте в виду, что неисправное обновление EEPROM может — в худшем случае — испортить ваш компьютер. Raspberry Pi полностью.

Следовательно, поскольку инструмент rpi-eeprom-update является «таким, какой он есть», рекомендуется запускать обновления через него только в ОС Raspbian/Raspberry и нигде больше.

  • (Запуск sudo rpi-eeprom-update для отображения номера версии в других дистрибутивах не должен вызывать каких-либо беспорядков, но здесь абсолютно НИКАКИХ гарантий.)

  • **Не забудьте сохранить ваша ОС Raspbian/Raspberry обновлена, даже (или особенно), если вы используете ее только для прошивки EEPROM! Всегда запускайте sudo apt update + sudo apt upgrade и ПЕРЕЗАГРУЗИТЕ [!] ПЕРЕД попыткой запуска rpi-eeprom-update (в некоторых случаях sudo apt dist-upgrade / sudo apt full-upgrade может пригодиться

  • ВСЕГДА не забывайте перезагружаться после запуска вышеупомянутого набора обновлений apt + upgrades, иначе вы можете не получить правильную информацию на вашем текущем статусе прошивки или существующих конфигурациях и ожидающих обновлениях могут перекрываться и вызывать хаос.)

Если после выполнения всех вышеперечисленных шагов вы по-прежнему не видите более новую прошивку в Ubuntu, попробуйте (внутри Ubuntu):

  • Перейдите в каталог, где у вас есть rpi-eeprom-update на вашем Ubuntu.

  • Отредактируйте его с помощью, например, sudo nano rpi-eeprom-update (или sudo vim, если вы предпочитаете этот редактор.)

  • Найдите строку, в которой говорится:

  • FIRMWARE_RELEASE_STATUS=${FIRMWARE_RELEASE_STATUS:-critical}

  • Измените часть с надписью -critical на -stable, сохраните и выйдите. Убедитесь, что у вас есть EEPROM и файлы восстановления .bin в каталоге прошивки внутри вашей Ubuntu!

  • После этого повторно запустите скрипт sudo rpi-eeprom-update и посмотрите, что он говорит. Приведенный выше список должен соответствовать последней стабильной версии прошивки RPi4B EEPROM на момент написания этой статьи (18 августа 2020 г.) — в настоящее время также нет критической версии EEPROM на данный момент будет иметь прямую поддержку загрузки USB MSD.

  • Думайте о стабильной версии как о почти законченной, «поздней бета-версии» прошивки, которая еще не совсем готова с точки зрения общей надежности. Опять же, если у вас возникнут проблемы, попробуйте вернуться к, например, более старой версии или попробуйте переключиться между текущими версиями стабильной, бета и критической.

Я получил этот результат от моей 64-разрядной версии Ubuntu 20.04LTS сегодня на RPi4B после того, как какое-то время возился с программой обновления EEPROM и наконец завершил процесс.* Вау! *

Дополнительные примечания:

  • Строка выше, которую вы можете отредактировать в сценарии rpi-eeprom-update, заменив ie -critical на - стабильный, или другими словами; указать rpi-eeprom-update, какую версию прошивки искать.

  • Если вы хотите по-настоящему сходить с ума в будущем, эти инструкции применимы и к бета-версиям прошивки EEPROM — просто измените суффикс на -beta и скопируйте файлы репозитория git соответственно, как разъяснено в инструкции выше. Переключение на последние бета-версии выполняется путем выполнения всех необходимых шагов, как указано там, но с изменением каталога для двоичных файлов прошивки (.bin) на beta/ вместо stable/. или критический/ .

  • ПРИМЕЧАНИЕ. Бета-версии прошивки обычно НЕ рекомендуются для начинающих пользователей, а в некоторых случаях даже для опытных. На самом деле, только обновления встроенного ПО EEPROM, помеченные как «критические», считаются «готовыми к производству» (= безопасными и стабильными в использовании). Все эти предупреждения ни в коем случае не беспочвенны - - если вы посмотрите т.е. ветки на форумах Raspberry Pi, несколько пользователей запустили свои хорошо работающие дистрибутивы RPi сломя голову в канаву случайных сбоев и страданий ОС после прошивки [нестабильной] бета-версии прошивки EEPROM.

  • (См. sudo rpi-eeprom-update --help для получения списка всех функций командной строки.)

  • Всякий раз, когда вы запускаете sudo rpi-eeprom-update без параметров командной строки, и если он выводит: *** ОБНОВЛЕНИЕ ДОСТУПНО ***, вы всегда можете (в по крайней мере, попробуйте) применить доступное обновление, запустив: sudo rpi-eeprom-update -a (например, применить доступное обновление.) - однако, по крайней мере, в случае моего 20.Сборка 04LTS, которая не использовалась в Ubuntu.

  • Столь же безуспешной была моя попытка в Ubuntu выполнить прямую прошивку с помощью sudo rpi-eeprom-update -a -f после загрузки правильных двоичных файлов прошивки с Github. Этот тип прямой прошивки с определяемыми пользователем файлами .bin обычно предназначен для особых случаев (и, опять же, должен запускаться только внутри Raspbian/RPiOS) — эта функциональность полезна, т.е. если вам нужно вернуться вернуться к другой версии прошивки из-за проблем с нестабильностью, других ошибок и прочего.

  • Наилучших результатов я добился с rpi-eeprom-update, клонируя его с Github всякий раз, когда выходит новый выпуск, sudo копируяподкаталоги ( = stable / , critical/ , beta/ ) в каталоге моей прошивки (в данном случае /usr/bin/firmware/ ) – обязательно ЧРЕЗВЫЧАЙНО осторожны с этой процедурой. Я обычно тщательно проверяю каждый файл на наличие существующих, прежде чем копировать их в каталоги прошивки.

  • Сценарии rpi-eeprom-update и rpi-eeprom-config, которые я поместил в /bin/ в моей Ubuntu, чтобы я мог обновлять EEPROM из любого каталога , обычно просто для просмотра текущей ситуации с версией EEPROM.

  • Рекомендуемый URL-адрес для добавления в закладки: https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/release-notes.md — все последние изменения и новые версии EEPROM загрузчика указан там.

  • Если у вас возникнут проблемы с самой программой обновления EEPROM или возникнут проблемы с установленной новой прошивкой, рекомендуется (особенно при использовании бета-версий/стабильных предварительных версий микропрограммы) опубликовать сообщение о проблеме и обратиться за помощью на официальном сайте Raspberry Pi. Форумы по адресу https://www.raspberrypi.org/forums/ — обычно есть специальная ветка для поиска ошибок, касающихся бета-версий и предварительных версий, просто добавьте эту молитву в молитвенную мельницу.

Надеюсь, это хоть немного помогло — не стесняйтесь просить дополнительных пояснений и/или комментариев, если это необходимо.

Если какие-либо (RPi) разработчики/программисты заинтересуются этой темой, многие вещи в процессе обновления EEPROM RPi4B можно сделать чертовски проще... и заставить их работать правильно на других дистрибутивах, кроме собственного "Lada-Linux" Raspberry Foundation (= единственный инструмент, который вам нужен, это молоток, но они чертовски грубые и громоздкие. :-D ) Просто говорю! Ваше здоровье!

3
ответ дан 18 August 2020 в 17:36

Я сделал это простым способом.
Однако у меня есть Ubuntu 20.04 64 бит, и 2 пакета были для Ubuntu 20.10.
Используйте на свой страх и риск, хотя у меня он работал нормально.

curl -O http://ports.ubuntu.com/pool/universe/r/raspberrypi-userland/libraspberrypi0_0~20200520+git2fe4ca3-0ubuntu2_arm64.deb
sudo apt install ./libraspberrypi0_0~20200520+git2fe4ca3-0ubuntu2_arm64.deb 
curl -O http://ports.ubuntu.com/pool/universe/r/raspberrypi-
userland/libraspberrypi-bin_0~20200520+git2fe4ca3-0ubuntu2_arm64.deb 
sudo apt install ./libraspberrypi-bin_0~20200520+git2fe4ca3-0ubuntu2_arm64.deb 
sudo add-apt-repository ppa:waveform/eeprom
sudo apt update
sudo apt install rpi-eeprom -y

Вы можете проверить доступное обновление прошивки:

sudo rpi-eeprom-update

Вы можете обновить прошивку, используя:

sudo rpi-eeprom-update -a

Затем вам необходимо перезагрузить компьютер:

sudo reboot
5
ответ дан 31 October 2020 в 00:06

@ebaruk @joey_g216

Используя Ubuntu 20.04, можно установить пакеты rpi-eeprom в Ubuntu 20.10 (multiverse).

https://packages.ubuntu.com/groovy/rpi-eeprom

Проверьте зависимости для установки rpi-eeprom с помощью dpkg.

apt-cache policy binutils libraspberrypi-bin linux-firmware-raspi2 pciutils python3 flashrom

Если существуют пакеты «Установлено: (нет)», установите их с помощью apt. После версии 1.20190819 требуется только пакет linux-firmware-raspi2.

Загрузите пакет .deb rpi-eeprom в свой браузер (или curl/wget), загрузите ссылку на файл .deb с http://ports.ubuntu.com/pool/multiverse/r/rpi-eeprom/rpi-eeprom_9.0-1ubuntu1_arm64.deb (кейс arm64) или http://ports.ubuntu.com/pool/multiverse/r/rpi-eeprom/rpi-eeprom_9.0-1ubuntu1_armhf.deb (для armhf).

На вашем терминале выполните команду ниже, чтобы установить пакет .deb:

sudo dpkg -i ~/Downloads/DOWNLOADED_DEB_NAME
1
ответ дан 10 November 2020 в 05:04

Другие вопросы по тегам:

Похожие вопросы: