Прошивка 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), то всё нормально.