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

Материал из ALT Linux Wiki
< Ports‎ | aarch64
 
(не показана 1 промежуточная версия этого же участника)
Строка 93: Строка 93:
1. Получаем прошивки для вычислительного модуля и переходим к ним одной командой:
1. Получаем прошивки для вычислительного модуля и переходим к ним одной командой:


<source lang="bash">wget https://github.com/raspberrypi/usbboot/archive/master.tar.gz &&
<source lang="bash">git clone --depth 1 https://github.com/raspberrypi/usbboot &&
tar -xvf master.tar.gz usbboot-master/recovery &&
cd usbboot/recovery</source>
rm -f master.tar.gz &&
cd usbboot-master/recovery</source>


2. В каталоге будет несколько стабильных прошивок:
2. В каталоге будет прошивка pieeprom.bin
 
<source lang="bash">pieeprom-2021-02-16.bin
pieeprom-2021-06-14.bin
pieeprom.original.bin</source>
 
Записывается из них только pieeprom.original.bin.
Так что при необходимости переименовываем нужную в pieeprom.original.bin


3. При необходимости изменяем порядок загрузки в файле boot.conf <ref>https://www.raspberrypi.com/documentation/computers/compute-module.html#cm4bootloader</ref>.
3. При необходимости изменяем порядок загрузки в файле boot.conf <ref>https://www.raspberrypi.com/documentation/computers/compute-module.html#cm4bootloader</ref>.
Строка 114: Строка 105:
<source lang="text">BOOT_ORDER=0xf1</source>
<source lang="text">BOOT_ORDER=0xf1</source>
* Для загрузки сначала с USB, а в случае неудачи через eMMC:
* Для загрузки сначала с USB, а в случае неудачи через eMMC:
<source lang="text">BOOT_ORDER=0xf15</source>
<source lang="text">BOOT_ORDER=0xf51</source>


4. Готовим прошивку, если производили какие-то изменения на предыдущих шагах:
4. Готовим прошивку, если производили какие-то изменения на предыдущих шагах:

Текущая версия от 07:59, 7 ноября 2022


Raspberry Pi Compute Module 4 — вычислительный модуль, представляющий собой собой портативный вариант модели Raspberry Pi 4, размером всего 55 × 40 мм [1]. Статья содержит инструкции по прошивке модуля (EEPROM и eMMC), установленного в плату ввода-вывода Raspberry Pi Compute Module 4 and IO Board [2].

Подготовка

Установить пакет raspberrypi-usbboot на компьютер, с которого будет производиться прошивка модуля.

Обновление загрузчика в EEPROM

0. Подготовить прошивку

1. Установить перемычки на плате ввода-вывода: J2 "disable eMMC Boot" и "disable writing to EEPROM"

2. Подключить к компьютеру при помощи кабеля micro-USB (USB slave на плате)

3. Подать питание на плату ввода-вывода

4. Запустить на компьютере следующую команду от root:

# rpiboot -d путь/до/recovery
Loading: путь/до/recovery/bootcode4.bin
Waiting for BCM2835/6/7/2711...
Loading: путь/до/recovery/bootcode4.bin
Sending bootcode.bin
Successful read 4 bytes 
Waiting for BCM2835/6/7/2711...
Loading: путь/до/recovery/bootcode4.bin
Second stage boot server
Loading: путь/до/recovery/config.txt
File read: config.txt
Loading: путь/до/recovery/pieeprom.bin
Loading: путь/до/recovery/pieeprom.bin
Loading: путь/до/recovery/pieeprom.sig
File read: pieeprom.sig
Loading: путь/до/recovery/pieeprom.bin
File read: pieeprom.bin
Second stage boot server done

5. Дождаться завершения прошивки (около 10 секунд, на дисплее загорится зелёная картинка, если успешно)

6. Отключить питание

7. Удалить перемычки, отключить usb-кабель от компьютера

8. Подать питание и пробовать загружаться

Запись на eMMC

1. Установить перемычку на плате ввода-вывода: J2 "disable eMMC Boot"

2. Подключить к компьютеру при помощи кабеля micro-USB (USB slave на плате)

3. Подать питание на плату ввода-вывода

4. Запустить на компьютере:

# rpiboot
Waiting for BCM2835/6/7/2711...
Loading embedded: bootcode4.bin
Sending bootcode.bin
Successful read 4 bytes 
Waiting for BCM2835/6/7/2711...
Loading embedded: bootcode4.bin
Second stage boot server
Loading embedded: start4.elf
File read: start4.elf
Second stage boot server done

5. На компьютере появится новое устройство /dev/sdX

6. Записать образ на /dev/sdX или самостоятельно развернуть rootfs

7. Смонтировать FAT32 раздел, добавить в config.txt строку:

dtoverlay=dwc2,dr_mode=host

Если этого не сделать, не будут работать порты USB 2.0. Тем не менее при загрузке с USB, а не eMMC, этого не требуется делать.

8. Отмонтировать разделы и отключить питание платы ввода-вывода

9. Удалить перемычку, отключить usb-кабель от компьютера

10. Подать питание и пробовать загружаться

Модификация прошивки загрузчика EEPROM

1. Получаем прошивки для вычислительного модуля и переходим к ним одной командой:

git clone --depth 1 https://github.com/raspberrypi/usbboot &&
cd usbboot/recovery

2. В каталоге будет прошивка pieeprom.bin

3. При необходимости изменяем порядок загрузки в файле boot.conf [3].

  • Для сетевой загрузки прописываем:
BOOT_ORDER=0xf2
  • Для загрузки с SD/EMMC:
BOOT_ORDER=0xf1
  • Для загрузки сначала с USB, а в случае неудачи через eMMC:
BOOT_ORDER=0xf51

4. Готовим прошивку, если производили какие-то изменения на предыдущих шагах:

./update-pieeprom.sh

5. Выполняем Обновление загрузчика в EEPROM

FAQ

В: Не работает usb 2.0 при загрузке с eMMC

О: Убедитесь, что отключили кабель micro-USB от платы ввода-вывода и прописали в config.txt строку:

dtoverlay=dwc2,dr_mode=host

В: Не работает загрузка с usb 2.0

О: Убедитесь, что отключили кабель micro-USB от платы ввода-вывода. Если не помогло, то следует изменить порядок загрузки (см. Модификация прошивки загрузчика EEPROM)

Ссылки