Долгое вступление
Медленно продвигаюсь со своей идеей мониторинга жилплощади. Первая статья - "Чем прошить Zigbee-контроллер на Mac OS". Приехала ко мне от Алика Banana PI M5. Хотел купить Raspberry PI 4. Но за нормальную цену ее не взять. При цене у производителя за модель 4 ГБ в районе 4 тыс., ни в России, ни на Алике дешевле 10-11 тыс ее не найти. Поэтому решил рискнуть и взять китайский аналог. Если интересно, брал тут. Приехало в плотной картонной коробке, в которой уже лежала родная упаковка. Кроме самой платы ничего в комплекте не приходит. Сравнение с Raspberry можно посмотреть тут.
Какие особенности надо иметь в виду:
- Она китайская
- Сообщество меньше, чем у Raspberry
- Есть встроенный накопитель на 16 ГБ (удобно, но из-за него танцы с бубном
- Нет Wi-Fi
- Объем оперативной памяти - 4 ГБ
- Есть технологические кнопки и есть кнопка Reset (удобно)
Что потребуется для запуска:
- Сама плата
- Компьютер, желательно с Linux или Mac OS
- MicroSD на 8-16 ГБ
- Флешка USB на 4 ГБ и более
- Блок питания с кабелем USB-C
- Монитор с кабелем HDMI
- DHCP-сервер с доступом к его списку выданных IP-адресов. Это может быть, например, домашний роутер
- Немного терпения
- Знание английского, если моей статьи будет недостаточно
- Пиво
У проекта есть неплохая Вики. В целом ее и базовых знаний Linux достаточно.
Но, как мне показалось, аппаратная часть в ней описана заметно подробнее программной:)
- Заглавная страница
- Руководство, как поставить ОС
- Характеристики платы и, важно, внизу ссыли на образы ОС Репозиторий с образами и утилитами
В поисках образа
Немного об особенностях. Так как плата имеет внутренний накопитель, то он имеет приоритет надо USB и microSD. Как я понял, плата приходит с неким загрузиком, записанным на внутренний накопитель, причем, этот загрузчик для Андроида. Если он не находит ОС на внутреннем накопителе, то он ищет на внешних (microSD). Но он не умеет грузить флешки, прошитые стандартными образами ОС. Я пробовал флешки с RaspberryOS и Ubuntu. Поэтому для первого запуска подходят только "родные" образы.
С их закачкой я промучился долго. Заказчка постоянно обрывалась. Интернет у меня хороший, дело в чем-то другом: в настройке сервере, в большой нагрузке, не знаю... Пробовал я с разных компьютеров, разными браузерами. Safari вообще отказался открывать страницу репозитория. В виде жеста отчаяния я решил попробовать wget. И о чудо, это сработало. При каждом обрыве связи ему удавалось начать заказчку с места обрыва. Иногда он писал, что начал качать с нуля, но потом перескакивал на нужное место. И так за 15 обрывов он файл с ОС выкачал. Поэтому не теряйте время с браузерами, сразу качайте через wget. Точнее не совсем так. Вам нужна ссылка на файл (если приведенная ниже "сломается"). Поэтому пытаемся один раз скачать браузером.
Из меню закачек копируем настоящую ссылку на файл. подставляем ее во wget:wget -v https://download.banana-pi.dev/seafhttp/files/129e07cc-8452-40da-8ac3-36b55dbbd506/2021-06-21-ubuntu-20.04-server-bpi-m5-m2pro-aarch64-sd-emmc.img.zip
Рекомендую проверить контрольную сумму скаченного файла. Контрольная сумма в выводе команды должна сойтись с той, что написана в файле с расширением ".md5", лежащем в репозитории рядом с архивом, например, 2021-06-21-ubuntu-20.04-server-bpi-m5-m2pro-aarch64-sd-emmc.img.zip.md5
- Mac OS
md5 2021-06-21-ubuntu-20.04-server-bpi-m5-m2pro-aarch64-sd-emmc.img.zip - Linux
md5sum 2021-06-21-ubuntu-20.04-server-bpi-m5-m2pro-aarch64-sd-emmc.img.zip
Теперь разворачиваем образ на microSD. Я использовал программу balenaEtcher.
А еще архив образа ОС копируем USB-флешку. Она понадобится позже.Ставим ОС
Всё, теперь вставляем microSD в плату, подключаем монитор, проводную сеть и питание платы. Должна загореться красная лампочка, а синяя начать мигать с частотой раз в секунду. Если обе лампочки горят постоянно, и ничего не происходит на экране, значит система не может загрузиться microSD. У меня так было с неродными образами ОС.
Если этот этап пройден успешно, ждем, когда система загрузится У меня загрузка надолго останавливалась на пункте Amlogic A/V streaming port init.
Учетная запись на Ubuntu: pi/bananapi. На DHCP-сервере надо найти, какой IP-адрес был выдан нашей плате.
Следующим этапом надо прошить образ ОС на внутренний накопитель. Я использовал SSH для настройки ОС. Но можно пользоватья и локальной клавиатурой.
- На сервере запущена служба unattended-upgrades. Ее надо остановить и удалить, так как она будет блокировать менеджер пакетов apt,
и не даст установить нужные утилиты:
pi@ubuntu:~$ systemctl status unattended-upgrades.service ● unattended-upgrades.service - Unattended Upgrades Shutdown Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-12-12 11:01:31 UTC; 1 years 1 months ago Docs: man:unattended-upgrade(8) Main PID: 2433 (unattended-upgr) Tasks: 2 (limit: 3839) Memory: 10.1M CGroup: /system.slice/unattended-upgrades.service └─2433 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal Dec 12 11:01:31 ubuntu systemd[1]: Started Unattended Upgrades Shutdown. pi@ubuntu:~$ sudo systemctl stop unattended-upgrades.service pi@ubuntu:~$ sudo apt purge unattended-upgrades
- Вставляем USB-флешку с образом ОС. Смотрим подключенные устройства:
pi@ubuntu:~$ lsblk -a NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 48.5M 1 loop /snap/core18/1883 loop1 7:8 0 63.6M 1 loop /snap/lxd/16103 loop2 7:16 0 26M 1 loop /snap/snapd/8543 loop3 7:24 0 37.6M 1 loop /snap/snapd/14553 loop4 7:32 0 49M 1 loop /snap/core18/2289 loop5 7:40 0 57.5M 1 loop /snap/core20/1332 loop6 7:48 0 60.7M 1 loop /snap/lxd/21843 loop7 7:56 0 0 loop sda 8:0 1 7.5G 0 disk <- USB-флешка └─sda1 8:1 1 7.5G 0 part mmcblk0 179:0 0 14.6G 0 disk <- встроенный накопитель mmcblk0boot0 179:32 0 4M 0 disk mmcblk0boot1 179:64 0 4M 0 disk mmcblk0rpmb 179:96 0 4M 0 disk mmcblk1 179:128 0 29.7G 0 disk <- microSD ├─mmcblk1p1 179:129 0 256M 0 part /boot/firmware └─mmcblk1p2 179:130 0 29.4G 0 part /
Создаем точку монтирования (каталог):pi@ubuntu:~$ ls /media/ pi@ubuntu:~$ sudo mkdir /media/usb-flash
Монтируем USB-флешку. Проверяем, что архив образа ОС на месте.pi@ubuntu:~$ sudo mount /dev/sda1 /media/usb-flash/ pi@ubuntu:~$ ls /media/usb-flash/ 2021-06-21-ubuntu-20.04-server-bpi-m5-m2pro-aarch64-sd-emmc.img.zip
- Ставим нужные приложения
pi@ubuntu:~$ sudo apt install unzip pv - Переходим в root'a. Конвейером распаковываем архив и записываем его содержимое на внутренний накопитель:
pi@ubuntu:/media/usb-flash$ sudo su root@ubuntu:/media/usb-flash# unzip -p ./2021-06-21-ubuntu-20.04-server-bpi-m5-m2pro-aarch64-sd-emmc.img.zip | pv |dd of=/dev/mmcblk0 bs=10M status=noxfer ^[[C6.55GiB 0:02:27 [53.6MiB/s] [ <=> 7.12GiB 0:02:37 [46.2MiB/s] [ <=> ] 0+112926 records in 0+112926 records out
- Гасим плату, вынимаем из нее USB-флешку и microSD.
root@ubuntu:/media/usb-flash# shutdown -h now - Включаем плату. Должна пойти загрузка с внутреннего накопителя с долгой остановкой на Amlogic A/V streaming port init. Красная лампочка горит постоянно, а синяя мигает с частотой 1 Гц.
- После входа в систему, удаляем unattended-upgrades (см. выше) и обновляем ОС.
pi@ubuntu:~$ sudo apt update
pi@ubuntu:~$ sudo apt dist-upgrade
Готово!
Комментариев нет:
Отправить комментарий