Прошивка RPi Compute Module
Введение
В качестве бортового компьютера на аппаратах MiddleAUV и MiddleUSV применяется Raspberry Pi Compute Module. Этот модуль, внешне похожий на планку оперативной памяти, имеет встроенную Flash-память, куда и будет записывать образ прошивки.
Слева на картинке - отладочная плата. Справа - сам RPi Compute Module.
Ссылки на образы и необходимое ПО
- Образ для MiddleAUV (
mur-auv-software
) - Образ для MiddleUSV (
usv-server
) usbboot
- исходный код, готовая сборка под GNU/Linux
Инструкция
В качестве альтернативы, можно обратиться к официальной инструкции Raspberry Pi. Ниже описана инструкция для окружения GNU/Linux.
-
Установить модуль в отладочную плату.
-
Можно использовать любой компьютер с GNU/Linux, где имеется нужный софт.
Рассмотрим пример с Intel NUC. Нужно запустить Intel NUC, также можно и подключить его к локальной сети для управления по ssh:
ssh nuc@nuc.local
, логин -nuc
, пароль -nuc
. Альтернатива - подключить к NUC дисплей, клавиатуру и мышь, после чего использовать как десктоп. -
Подключить MicroUSB кабель к разъёму передачи данных (USB Slave), но не подключать питание.
-
Проверим, какие дисковые разделы у нас имеются на данный момент:
nuc@nuc:~/Raspberry/usbboot$ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sda5
-
Запускаем
rpiboot
от имениroot
:nuc@nuc:~/Raspberry/usbboot$ sudo ./rpiboot Waiting for BCM2835/6/7/2711...
-
После появления надписи
Waiting for BCM2835/6/7/2711...
можно подавать питание: -
В нормальной ситуации должен быть следующий вывод в консоли:
Waiting for BCM2835/6/7/2711... Sending bootcode.bin Successful read 4 bytes Waiting for BCM2835/6/7/2711... Second stage boot server File read: start.elf Second stage boot server done
-
Проверим, что флеш-память модуля видна в
/etc/dev/
:nuc@nuc:~/Raspberry/usbboot$ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb
Видно, что появилось новое устройство
/dev/sdb
. -
Теперь можно загружать прошивку.
Необходимо ввести команду
sudo dd if=образ.img of=/dev/sdX status=progres
, гдеобраз.img
- путь к образу прошивки, а/dev/sdX
- устройство, которое ранее появилось после загрузки модуля.Пример:
nuc@nuc:~/Raspberry/usbboot$ sudo dd if=mur_emmc.img of=/dev/sdb status=progress 3277496832 bytes (3.3 GB, 3.1 GiB) copied, 1644 s, 2.0 MB/s 6403209+0 records in 6403209+0 records out 3278443008 bytes (3.3 GB, 3.1 GiB) copied, 1646.21 s, 2.0 MB/s
Это займёт некоторое время. В конце, если всё нормально, должны быть видны разделы
/dev/sdb1
и/dev/sdb2
. На скриншоте приведена вся последовательность команд для успешной прошивки: -
После успешной прошивки не помешает провести тестовый запуск платы.
Отключаем все USB-кабели. Втыкаем HDMI-кабель от монитора и USB-клавиатуру, а затем подключаем питание (без USB Slave, его не надо подключать).
Первый запуск скорее всего будет долгим (из-за расширения файловой системы), возможна перезагрузка - это нормально. Также является нормальным сообщение об ошибке запуска сервиса
MUR service
.Если удалось выполнить вход в систему (логин -
pi
, пароль -raspberry
), то всё нормально.