Orange Pi Pc Plus - установка системы и перенос на eMMC








Данная статья справедлива ко всему семейству Orange Pi.



Моя доска выглядит вот так…


ТТХ и элементы

Orange Pi Pc Plus v1.1




И вот здесь подробнее.





Ранее я уже писал про установку ОС на Raspberry Pi без графики, про управление GPIO и подключение 5-ти дюймового экрана.

Сегодня будет описываться установка и настройка ОС ARMBIAN (ниже я объясню, почему именно armbian) на мини компьютер Orange Pi Pc Plus. Попутно будет установлено несколько ненужных программ, включая медиацентр Kodi, и в конечном итоге вся система будет перемещена на встроённую память (embedded MMC), то есть отпадает необходимость в sd-карте, что несомненно улучшит работу.






Забегая вперёд скажу, интерфейс работает шустро, всё функционирует «изкаробки», видео с usb-флешки проигрывается в smplayer и в VLC отлично, равно как и с удалённого компьютера через samba. Фильмы гонял разрешением 720р (1080р у меня что-то не нашлось). Youtube в FireFox`е и в Chromium`е притормаживает. Однако это решает медиацентр Kodi c плагином Youtube. Вся эта канитетель происходит из-за кодеков.



Смело и глубоко вставляйте HDMI-кабель, а то будет отваливаться изображение.


Очень важно, позаботится о хорошем блоке питания (не меньше 2А, а лучше больше), в противном случае, из-за нехватки энергии начнут отключатся ядра или ещё что-то пойдёт не так. Впрочем любопытство всё равно взяло верх и на днях я проверил потребление при подключённой клавиатуре и мышке, оно составило около 400мА, а при показе видео по сети и одновременном копировании большого файла (тоже по сети) около 800мА. Wifi работал но не был подключён.
Однако если рекомендуется не менее 2-х А, то и надо этому следовать.


Радиатор на CPU обязательно нужен. Изкаробки настроенно на плавающую частоту, от 480Мгц до 1296Мгц. Если использовать все заявленные клоки (1600Мгц, что кстати сам производитель не рекомендует делать и в отличии от компании OrangePi заявляет, что процессор Allwinner H3 рассчитан на работу на частоте 1.296 ГГц), тогда нужно охлаждение посерьёзней, некоторые энтузиасты даже куллеры припакивают.

Несмотря на высокое тепловыделение и прожорливось, этот процессор снискал популярность за счёт невысокой цены.




Прошивок для этой штуковины немало. Я перепробовал различные из этих и этих, однако постоянно возникали какие-то трудности. То не работало что-то важное, звук, например, шёл исключительно через аналоговый выход и ни в какую не желал знать HDMI, то в целом всё работало паршивенько и медленно. На каком-то дистрибутиве работал только один usb-порт (пришлось воспользоваться хабом) и не работала сеть.
В конце концов выбор пал на armbian, на нём заработало всё, кроме мелочи.

Образ качался отсюда



В разделе для своего устройства я перешёл по ссылке armbian.com и выбрав там десктопную версию…



… нажал на оставшуюся кнопку


После распаковки архива у Вас появится папка с кучей файлов, и один из них будет заканчиваться — .img, размером около 3ГБ. (Armbian_5.25_Orangepipcplus_Ubuntu_xenial_default_3.4.113_desktop.img)
Вот его-то и нужно записать на флешку.

О том, как это сделать, подробно написано в предыдущей статье, начиная с этого места и до главы "Запуск".

После выполнения описанных там действий возвращайтесь сюда.




Втыкайте в "апельсин" клавиатуру, мышь, sd-карту, HDMI-кабель и подавайте питание.

Сейчас Ваш логин - root и пароль - 1234


На экране побегут строки и в процессе загрузки они остановятся на вводе логина и пароля:




Последовательно вводим то и другое (пароль невидим):




Теперь нас попросят немедленно сменить пароль для rootа (не понятно для чего так намудрили, ведь это можно сделать потом), вводим старый (1234):




Придумываем новый (пароль должен быть посложней, а то система будет ругаться):




Повторяем новый:




После успешной смены пароля для root и недолгой «задумчивости» будет предложено создать для себя нового пользователя. У меня он будет — dima:


На красный warning не обращайте внимания, в этом дистрибутиве ресайз файловой системы не нужен.


Далее нужно придумать пароль для нового пользователя и повторить его (должен отличаться от пароля rootа):




Следом появится предложение заполнить данные на нового пользователя, но делать этого не нужно, просто нажимайте Enter, потом напишите y и опять Enter.




Так же согласитесь (нажав y и Enter) с разрешением дисплея и система наконец загрузится.




На этом самая нудная часть позади. Перегрузитесь чтоб убедиться в нормальной работе.


Если что-то пошло не так и/или Вы запутались, то заново накатите образ на карточку и повторите всю процедуру по новой.

Я в первый раз на вводил паролей и забыл их, пришлось всё делать снова.




Скриншоты делал подключив компьютер (с помощью TTL-USB преобразователя) к выведенной на плату консоли (три штырька возле HDMI). Скорость — 115200.




Переходим к следующему этапу.


Warning!

Везде, где в путях к файлам прописан пользователь dima, не забывайте переправить на своё.


Открываем в меню программ «Terminal Emulator» или подключаемся по ssh (кому как больше нравится) и смотрим свободное место:

df -h



Доступно 12Гб (sd-карта 16Гб).



Теперь обновите репозиторий:

sudo apt update

Пароль вводите тот, который для нового пользователя.


Установите русскую локализацию:

sudo apt-get install language-pack-ru language-pack-ru-base language-pack-gnome-ru-base language-pack-gnome-ru firefox-locale-ru libreoffice-l10n-ru

Если планируете удалять LibreOffice, тогда не ставьте пакет — libreoffice-l10n-ru.


Откройте файл /etc/default/locale

sudo nano /etc/default/locale


Удалите все языки и вставьте это:

LANG="ru_RU.UTF-8"


Получится вот так:




Откройте файл /etc/default/keyboard чтоб добавить русскую раскладку клавиатуры:

sudo nano /etc/default/keyboard


Удалите всё и вставьте это:

XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=","
XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll"


Получится вот так:




Перегрузитесь, интерфейс должен стать русским и появится переключение раскладок (alt + shift), правда без индикатора.


Теперь обновите систему и перегрузитесь:

sudo apt update
sudo apt upgrade


В процессе апгрейда, меня попросили указать переключение раскладки, и после перезагрузки оно вообще исчезло. Оказалось, что изменился файл /etc/default/keyboard, который мы только что редактировали.
Его можно опять исправить, а можно и не исправлять, потому-что сейчас мы установим нормальную переключалку с индикатором:

sudo apt install gxkb



После установки gxkb, создаём файл для его автозапуска:

nano /home/dima/.config/autostart/gxkb.desktop


Вставляем содержимое:

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=gxkb
Comment=gxkb
Exec=gxkb
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false


Сохраняем и ребутимся.


Теперь появится индикатор   раскладки и переключаться она будет по Alt + Shift.

Сочетание клавиш можно менять в предпоследней строчке файла — /home/dima/.config/gxkb/gxkb.cfg





Настраиваем свой часовой пояс:

sudo timedatectl set-timezone Europe/Moscow

sudo reboot

Время синхронизируется после ребута через ~минуту.

Посмотреть другие пояса:

timedatectl list-timezones




Любые другие настройки (да и часть описанных выше) можно выполнять через меню Приложения.




Далее установим менеджер пакетов, текстовый редактор, mc, медиа-проигрыватели и браузер:

sudo apt install synaptic medit mc smplayer smtube vlc chromium-browser



Установим кодеки:

sudo apt install ubuntu-restricted-extras




Если сейчас включить «тяжёлое» видео и в терминале запустить программу — armbianmonitor

sudo armbianmonitor -m


… то будет видно как расходуются ресурсы:



А вот так в простое:





Установим samba

sudo apt install samba samba-common-bin



Создаём папку для самбы:

mkdir /home/dima/papka


Даём её права:

sudo chmod -R 777 /home/dima/papka


Бекапим дефолтный конфиг:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak


И создаём свой:

sudo nano /etc/samba/smb.conf


Вставляем это:

[global]
workgroup = WORKGROUP
netbios name = OrangePi
server string = share
security = user
map to guest = bad user
browseable = yes

[istarik]
path = /home/dima/papka
writeable = yes
browseable = yes
guest ok = yes


Рестартуем самбу:

sudo /etc/init.d/samba restart


Папка "/papka" открыта настежь.



Установим очень удобный медиацентр — Kodi

sudo apt install kodi




Первым делом русифицируем — SYSTEMAppearanceInternationalLanguage.

Настраиваем источник звука — СИСТЕМАСистемаВывод звукаУстройство вывода звука. Если звук идёт по HDMI, то выбирайте — sndhdmi и громкость подкрутите, а то у меня на нуле стояло.

В остальных настройках разберётесь сами.




В данный момент ещё не всё русифицировалось в системе, и чтобы это исправить зайдите в ПриложенияНастройкиЯзык системы и там Вам предложат установить недостающие пакеты.



По окончании установки нажмите кнопку «Применить для всей системы».




GPIO




Управлять GPIO можно средствами системы.

Подключите светодиод вот так:


Минус на пин 6, плюс на пин 16 (Physical).


Становимся суперпользователем (через sudo не работает):

sudo su


Экспортируем пин 68 (BCM):

echo "68" >/sys/class/gpio/export


Настраиваем его на выход:

echo "out" >/sys/class/gpio/gpio68/direction


Зажигаем светик:

echo "1" > /sys/class/gpio/gpio68/value


Гасим:

echo "0" > /sys/class/gpio/gpio68/value




Если нужно чтение пина, то так же экспортируем его и меняем «out» на «in», тем самым настраивая на вход.

А затем смотрим его значение:

cat /sys/class/gpio/gpio68/value


Если есть напряжение на ножке, то будет «1», если ножка к минусу прижата то «0».



Становимся обратно обычным пользователем:

exit




С иными режимами работы GPIO я особо не разбирался. На сколько я понял, там где написано ALTx значит, что пин можно настраивать на альтернативную функцию, например, ШИМ.



Другой способ управления GPIO осуществляется с помощью библиотеки WiringOP.

Устанавливать её нужно с Github:

sudo apt-get install git-core


Скачиваем файлы:

git clone //github.com/zhaolei/WiringOP.git -b h3


После этого в домашней директории появится папка WiringOP, переходим в неё…

cd WiringOP


Делаем скрипт исполняемым:

chmod +x ./build


И собираем:

sudo ./build


Проверяем:

gpio -v

gpio readall

Вы должны увидеть распиновку.



Сделаем простую программу, которая будет мигать нашим светиком.

Вернёмся в домашнюю папку:

cd ..


Создаём файл blink.c:

nano blink.c


Содержимое:

#include <wiringPi.h>
int main (void) {
  wiringPiSetup();
  pinMode (4, OUTPUT) ;
  for (;;) {
    digitalWrite(4, HIGH);
    delay (500) ;
    digitalWrite(4, LOW);
    delay(500);
  }
  return 0;
}

Нумерация пинов согласно столбцу wPi из верхней картинки. Синтаксис ардуиноподобный.


Компилируем файл:

gcc blink.c -o blink -lwiringPi -lpthread


И запускаем:

sudo ./blink





То же самое, библиотека позволяет делать скриптами.

Создаём скрипт в домашней директории:

nano blink.sh


Заполняем этим:

gpio mode 4 out  
while true; do  
    gpio write 4 on
    sleep 1
    gpio write 4 off
    sleep 1
done


Делаем исполняемым:

chmod +x blink.sh


Стартуем:

./blink.sh







Кнопка

Наверное кнопка (возле разъёма питания) должна включать и отключать «апельсинку», но у меня получилось ей только отключать.

Сделать это можно двумя способами, первый — это установить «менеджер питания» и через него настроить событие. Правда вариантов там не много, либо выключить, либо спросить что делать. Второй способ более простой, сделать скрипт, который будет выключать девайс сразу при нажатии кнопки. Я опишу оба.

Первый:

sudo apt-get install xfce4-power-manager


После установки идём в ПриложенияНастройкиМенеджер питания, и делаем как хотим.



Второй:

sudo nano /etc/acpi/events/button_poff


Заполняем скрипт этим:

event=button/power
action=/sbin/shutdown -h now


Сохраняем, закрываем, перегружаемся и пробуем нажать на кнопку.



Ковыряясь в скриптах, в /etc/acpi/powerbtn.sh нашёл строки:

...
# If all else failed, just initiate a plain shutdown.
/sbin/shutdown -h now "Power button pressed"


То есть сам автор говорит, что если скрипт не работает, то сделайте только отключение. И приводит пример.




Микрофон

Про микрофон скажу только одно, он работает. Проверить можно клацнув по значку  в трее, выбрать там «Volume Control» и посмотреть на вкладке «Устройства Ввода».







ИК-приёмник

ИК-приёмник тоже работает, однако в его настройках я не разбирался.

Чтоб проверить работу, выполните пару команд:

sudo modprobe sunxi-cir
sudo mode2 -d /dev/lirc0


И понажимайте кнопки на пульте. В терминале должны побежать циферки.


Я не помню, установлена ли изначально программа lirc, поэтому вначале сделайте так:

sudo apt install lirc





Ну и наконец переносим всю систему на EMMC

Предварительно выньте usb-флешки и другие носители информации подключённые в usb или sata, если конечно Вы не собираетесь ставить систему на них. Разумеется sd-карту вынимать не надо. )))

sudo nand-sata-install

То, что написано «sata», это не опечатка, команда универсальная.


Вначале появится окно со списком носителей на которые можно перенести систему и варианты переноса.

boot from SD — system on SATA/USB — загрузочный раздел (/boot) останется на SD-карте, система переедет на sata или usb.
boot from eMMC — system on eMMC — полный перенос в eMMC.
boot from eMMC — system on SATA/USB — загрузочный раздел в eMMC, система на sata или usb.


У меня был только один вариант — полный перенос, чего я и желал:




Следом сообщили о стирании eMMC:




И предложили выбрать файловую систему:




Теперь начинается довольно длительный процесс:




Заканчивающейся сообщением, что всё сделано, и предложением отключить «апельсинку»:




Нажмите «Power off», дождитесь выключения, отсоедините питание, выньте sd-карту и включите девайс.


Если всё прошло успешно и доска загрузилась, то можно посмотреть сколько есть свободного места. Размер eMMC равен 8Гб.

Смотрим:

df -h




Доступно четыре с лишним гигабайта, можно много чего ещё напихать.



Теперь можете эксплуатировать «апельсинку» без всяких карточек, а если вставите карту, то загрузитесь с неё, ибо у загрузки с карты приоритет.



На этом всё, всем спасибо.


  • 0
  • 8061

Комментарии (4)

0
А я свой апельсин спалил :)
0
Как?
0
Задел локтем трехлитровую банку со всякими болтиками и железячками, она опрокинулась и железячки рассыпались по столу, где лежала палата.
0
И смешно, и грустно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.