Pine A64+ – 64-битный одноплатный ПК с широкими возможностями. Подробно о характеристиках можно почитать на их сайте. Из того, что мне лично нравится, это наличие отдельного порта для подключения литиевой батареи*, HDMI-выхода**, полноценных USB-портов (хотя и стандарта 2.0), 1Gbps Ethernet, портов для LCD (touch screen) и камеры. К сожалению, плата не очень компактная, но на ней можно построить неплохой медиа-центр, например. Это, конечно, если у вас не суперсовременный телевизор, который все это умеет и сам.
Не так давно я узнал, что на Pine можно установить… FreeBSD. На то время была одна или две сборки, но у меня не получилось их завести, устройство не реагировало при включении. Недавно я решил повторить эксперимент и узнал, почему у меня не получалось раньше.
Оказывается, FreeBSD на PINE A64+ работает только в т.н. headless-режиме, в виду отсутствия драйверов для HDMI. При этом загрузить и настроить систему можно используя UART.
Для FreeBSD на PINE A64+ пригодитсяUSB-TTL адаптер. А для Малинки – LCD экран и клавиатура. Для начала нужно прошить карту любым удобным способом. Образ я взял отсюда. На адаптере нужно поставить перемычку на 3.3В, и подключить к Pine64 по схеме TX->RX, RX->TX и GND->GND. Выходы UART:
Затем нужно вставить адаптер, уже подключенный к плате, в ПК или ноутбук, запустить PuTTY, выбрать подключение Serial, указать COM-порт (в моем случае система определила адаптер на порту COM3), прописать скорость подключения (115200) и открыть соединение. После подачи питания на плату будет виден весь процесс загрузки ОС FreeBSD. Когда ОС загрузится, можно залогиниться, логин/пароль на образе — root/root.
/!\ Нужно учесть, что соединение через UART не самое стабильное, при прописывании конфигов нужно все тщательно проверять, а ключи для SSH (если настраиваете доступ по ключам) желательно заливать по SSH или залогиниться на одноплатник по SSH и уже в таком режиме копипастить.
Чип WiFi, который используется на Малинке, не поддерживается в FreeBSD, а Pine64 вообще без встроенного контроллера, поэтому нужен еще какой-нибудь USB-свисток, например Edimax EW-7811UN .
Для работы свистка в /boot/loader.conf нужно прописать:
wlan_load="YES" rtwn_load="YES" if_rtwn_pci_load="YES" if_rtwn_usb_load="YES" wlan_amrr_load="YES" wlan_wep_load="YES" wlan_ccmp_lod="YES" wlan_tkip_load="YES" legal.realtek.license_ack=1
Далее нужно сгенерировать файл для вашей WiFi сети:
root@generic:~# wpa_passphrase NETWORK PASSWORD > /etc/wpa_supplicant.conf root@generic:~ # cat /etc/wpa_supplicant.conf network={ ssid="NETWORK" #psk="PASSWORD" psk=4f516665cfedc80c77fb125e3df72a9da6f00ce75b7b29803f2eb6324c91ceba } # NETWORK нужно заменить на имя вашей сети, а PASSWORD - на пароль. # если вы параноик, #psk="PASSWORD" можно удалить из конфига
В /etc/rc.conf нужно дописать:
wlans_rtwn0="wlan0" ifconfig_wlan0="ssid NETWORK WPA DHCP" # где NETWORK - имя WiFi сети
Все, сеть уже можно поднять:
service netif restart
Для полного счастья, можно настроить доступ на одноплатник по ключам изменив /etc/ssh/sshd_config:
Port 22 # здесь я бы порекомендовал использовать что-то другое, 2255, например Protocol 2 PermitRootLogin yes MaxAuthTries 6 PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no PermitEmptyPasswords no UsePAM yes TCPKeepAlive yes ClientAliveInterval 100000 UseDNS no Subsystem sftp /usr/libexec/sftp-server AllowUsers root
Если планируется доступ извне (например, пробросив порты через маршрутизатор), то можно еще настроить белый список в фаерволе, чтобы скрипткиддисы и боты не ломились с подбором паролей.
Далее можно запустить ssh-keygen, чтобы сгенерировался ключ и автоматически создался каталог .ssh, или создать каталог .ssh вручную. В нем нужно создать файл authorized_keys, в целом права на каталог и файл должны быть следующими:
~ ~> ls -la .ssh/ total 54 drwx------ 2 root wheel 512 23 тра 16:29 ./ drwxr-xr-x 57 root wheel 8192 26 тра 09:25 ../ -rw------- 1 root wheel 4345 1 гру 06:10 authorized_keys
В authorized_keys нужно скопировать содержимое *pub-ключа(ей).
N.B. Если в качестве редактора вы используете ee, то он сам добавит в файл переводы строки, если mc (Midnight Commander), то нужно в конце файла добавлять перевод строки (нажать Энтер). Это нужно делать при добавлении задач крон и редактировании конфигов.
К Малинке можно даже жесткий диск подключить, я купил специальную плату, но пока не пробовал подключать.
*Ложкой дегтя является переключатель между питанием от батареи и от сети. В C.H.I.P. (R.I.P. :(), например, реализовано по-другому, там есть порт для батареи, подключил и забыл, подал питание на USB – питается от сети, пропало питание – от батареи, есть сеть – батарея заряжается. Все просто. У Pine все как-то витиевато. К тому же документация крайне спартанская.
** HDMI пока что поддерживается только на линупсах/ведроиде, увы.