Прикупил себе на днях парочку одноплатных компьютеров Orange pi zero 3 на 4 гига.
Последний раз я игрался с Raspberry pi 2 и 3, и технологии за эти годы значительно продвинулись. И памяти 4 гига вместо одного или 2х, и питание type-c, и сеть гигабитная

Установка операционной системы
Вам понадобится флешка microsd и кардридер, желательно прикупить microHDMI-HDMI проводок для наладки.
На официальном сайте качаем образ Ubuntu, для наших нужд нужна серверная версия без графического интерфейса

Форматируем флешку утилитой SD Memory Card Formatter
Далее распаковываем скаченный образ 7zip, внутри должен быть файл img
Качаем утилиту Win32 disk imager, указываем путь до img, указываем диск и жмем write

Дальше вставляем флешку контактами в сторону платы, и всё должно заработать, но это пока не всё.
При первом старте система сама делает ресайз, в результате чего раздел занимает всё место на диске
Вариант подключения через отладочный порт без монитора
Иногда достаточно неудобно отлаживать систему, подключаться к сети, надо клавиатуру переткнуть со своего компа и монитор и в процессе гугления туда обратно переключаться, но если у вас есть программатор или usb-ttl конвертер, такие модули на том же озоне можно купить за 150 рублей.

На плате апельсинки есть три пина RX, TX и GND, нужно подключить RX и TX крест-накрест, т.е. на программаторе RX подключаем к TX на одноплатнике, а TX наоборот к RX и GND соединяем.
Программатор | Одноплатник |
---|---|
RX | TX |
TX | RX |
GND | GND |

Далее, смотрим в диспетчере устройств номер com-порта

Открываем программу Putty, выбираем serial, прописываем наш COM6, скорость 115200

Теперь можем видеть процесс загрузки, настроить сеть. работать в консоли как по ssh, но при этом имея полный доступ к локальному терминалу как с монитором и клавиатурой


Первые настройки
Wifi
Пароль root = orangepi
Воспользуемся нетворк-манагером и его консольным интерфейсом
Первый вариант - более графический
Первый вариант - вводим в терминале команду nmtui
и видим вот такой псевдографический интерфейс, тут можно найти сеть, подколючиться к ней, отредактировать соединение, например, задать статический айпи, всё это будет само подключаться при перезагрузке.

Таким же методом можно и проводное подключение настроить, быстро и удобно...
Вариант 2 - через консольный интерфейс
Второй вариант больше для сервисных вещей, допустим, роутер отвалился и вам нужно восстановить соединение, или в качестве резервного канала есть другой роутер с мобильной сетью...
Подробное описание есть на хабре и еще тут документация с параметрами тонкой настройки в тонкой настройке можно задать время ожидания интерфейса, количество попыток переподключения и вроде как точный bsid вайфая, когда у вас бесшовная сеть или 5ггц+2.4ггц с одним именем, то тут можно явно потвикать качество соединения.
sudo nmcli device wifi connect 'WiFINetworkName' ifname wlan0
sudo nmcli device wifi list
nmcli connection show

nmcli connection edit Pavlik-wifi

Ну и если по какой-то причине соединение вдруг отвалилось, то есть команда подключения
nmcli connection up Pavlik-wifi
Иногда у меня такое возникало, когда выключал питание одноплатника простым выдергиванием питания, то при дальнейшем включении интернет не поднимался, написал такой скрипт, который ждет 15 секунд, отправляет один пинг на роутер и если он неудачный, то запускает подключение, а если пинг идет, то снова спит 15 секунд, данное решение на коленке за 3 секунды накидано, но пока работает
#!/bin/bash
connection_name="Pavlik-wifi"
period=15
while sleep $period; do
/bin/ping 192.168.1.1 -c1 || nmcli connection up $connection_name
done
Далее, этот скрипт нужно сделать исполняемым
chmod +x имя файла
И прописать в /etc/rc.local с амперсандом на конце, чтобы скрипт не стопорил дальнейший процесс и уходил в фон.
Настройка системы
У меня достаточно встроенное решение, когда один одноплатник крутит один jar файл с Java-приложением, поэтому захотелось оптимизировать систему, сильно заморачиваться с перепиливанием инициализации не хочу, но могу выпилить некоторые сервисы из автозапуска, которые замедляют время включения аппарата.
Для начала, нужно обновиться, т.к. образ системы собран не сегодня и наверно даже не неделю назад, то появилось много обновлений.
sudo su
apt update && apt upgrade
В серверной убунте установлено из коробки всё подряд, даже докер, опенвпн и т.д... Мне это всё особо не нужно. В т.ч. встроенный конфигуратор и блютуз.
apt purge openvpn docker-ce docker-ce-cli containerd.ioy vim-runtime gcc-12 gcc-11 cpp-12 g++-11 cpp-11 alsa-utils nfs-common dnsmasq bluetooth bluez bluez-tools
apt autoremove
Дополнительно
- http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_3 - мануал официальный