Raspberry Pi 4 + Ubuntu x64 + majordomo

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Ответить
Аватара пользователя
kesha4
Сообщения: 2
Зарегистрирован: Чт янв 30, 2020 10:48 am
Откуда: Московская область
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Raspberry Pi 4 + Ubuntu x64 + majordomo

Сообщение kesha4 » Вт дек 08, 2020 9:25 am

Помимо умного дома, я хотел запускать 64-битные приложения на малине, но не нашел готового 64-битного расбиана. Поэтому решил поэкспериментировать со знакомой мне убунтой. При установке нестандартной для малины системы обнаружилось немало подводных камней. Надеюсь, мой опыт будет кому-то полезен.

Я экспериментировал с двумя образами систем, устанавливал их на Raspberry Pi 4:
Ubuntu 18.04.5 Server x64: https://cdimage.ubuntu.com/releases/18. ... pi4.img.xz
Ubuntu 20.04.1 Server x64: https://cdimage.ubuntu.com/releases/20. ... spi.img.xz

Отличия в процессе установки минимальные. Нюансы, присущие только 18.04, спрячу в спойлер. В 20.04 больше нерешенных проблем, я перечислил их в конце.

Записываем при помощи Raspberry Pi Imager на MicroSD 16 Гб выбранный образ.

Вставляем флешку в малину, включаем, логин ubuntu, пароль ubuntu, задаем новый пароль.

Настраиваем wifi:

Код: Выделить всё

sudo nano /etc/netplan/50-cloud-init.yaml
добавить строки:

Код: Выделить всё

    wifis:
      wlan0:
       dhcp4: yes
       access-points:
        название_сети:
          password: "Пароль"
Сохраняем (Ctrl+X, Y, Enter), перезагружаемся.

Код: Выделить всё

sudo shutdown -r
С этого момента при желании можно подключиться по ssh и забросить малину в шкаф на постоянное место жительства.

Создаем нового пользователя во имя безопасности (система запросит пароль для него и некоторые необязательные параметры), даем ему права на судо и перезагружаемся. Здесь и далее smarthome это логин нового пользователя:

Код: Выделить всё

sudo adduser smarthome
sudo usermod -aG sudo smarthome
sudo shutdown -r
После перезагрузки логинимся уже в нового пользователя и удаляем старого пользователя вместе с домашней папкой:

Код: Выделить всё

sudo deluser ubuntu --remove-home
Настроим вход в ssh по ключ-файлу, отключим вход по паролю, порт ssh сменим на нестандартный согласно этой инструкции.
https://www.digitalocean.com/community/ ... u-18-04-ru
Единственное, я сгенерировал ключи другим способом, закинул публичный ключ pi.pub в папку ~/.ssh ручками через графический интерфейс и применил его командой:

Код: Выделить всё

touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat ~/.ssh/pi.pub >> ~/.ssh/authorized_keys
Обновляем пакеты до последних версий:

Код: Выделить всё

sudo apt-get update 
sudo apt-get upgrade
Если нужен графический интерфейсПоказать
Если нужен графический интерфейс, я рекомендую Xfce, он жрет меньше ресурсов чем другие оболочки. Устанавливается так:

Код: Выделить всё

sudo apt-get install tasksel
sudo tasksel install xubuntu-desktop
Если нужен русский язык в системе, то заходим в Settings -> Language Support, добавляем русский язык и перетаскиваем его вверх в списке. Применяем кнопкой Apply System-Wide
После перезагрузки система задаст вопрос о переименовании папок - я предпочитаю оставлять их в латинском именовании.

Также, вместе с графическим интерфейсом я сразу устанавливаю удобный терминал Guake на случай если придется работать не через ssh:

Код: Выделить всё

sudo apt-get install guake
sudo cp /usr/share/applications/guake.desktop /etc/xdg/autostart/
Устранение ошибки Load Kernel Modules на 18.04Показать
При включении образ 18.04 выдает ошибку Load Kernel Modules
Что за модули ее вызывают проверяем командой

Код: Выделить всё

sudo journalctl -u systemd-modules-load.service
В моем случае это модули parport и ib_iser, я не нашел способа побороть проблему кроме отключения этих модулей и пока это никаких проблем не вызвало.
Первый можно отключить закомментировав символом # его строку в файле /etc/modules-load.d/cups-filters.conf

Код: Выделить всё

sudo nano /etc/modules-load.d/cups-filters.conf
Второй отключаем таким же образом в файле /lib/modules-load.d/open-iscsi.conf

Код: Выделить всё

sudo nano /lib/modules-load.d/open-iscsi.conf
После этого нужно удалить отчеты о сбое, иначе система будет выдавать предупреждение при каждой загрузке.

Код: Выделить всё

sudo rm /var/crash/*
Меняем хостнейм в файле /etc/hostname

Код: Выделить всё

sudo nano /etc/hostname
Ошибка sudo: unable to resolve hostПоказать
В /etc/hosts добавляем строку "127.0.0.1 хостнейм"

Код: Выделить всё

sudo nano /etc/hosts
Если не проходит пинг по домену, но проходит по ipПоказать
Добавляем DNS сервера в /etc/resolv.conf (192.168.1.1 замените на ip своего роутера).

Код: Выделить всё

sudo nano /etc/resolv.conf
Добавляем строки:

Код: Выделить всё

nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4
Сразу после установки в системе нет звука или вместо звука слышим хрип, решено так:

Код: Выделить всё

sudo nano /boot/firmware/usercfg.txt
Добавляем строки

Код: Выделить всё

hdmi_drive=2
dtparam=audio=on
Также добавляем пользователя в группу audio

Код: Выделить всё

sudo usermod -a -G audio "smarthome"
И перезагрузимся. Теперь звук должен работать нормально.



Далее ставим majordomo скриптом от prmres по всем пунктам инструкции https://mjdm.ru/forum/viewtopic.php?p=92843#p92843

Перезагружаемся и проверяем голосовой движок командой

Код: Выделить всё

echo "привет" | RHVoice-test -p Anna
Звук снова хрипит, но теперь только в RHVoice.
Чтобы побороть эту проблему нужно в файле /etc/pulse/default.pa заменить строку

Код: Выделить всё

load-module module-udev-detect
на строку

Код: Выделить всё

load-module module-udev-detect tsched=0
Если не стартует pulseaudioПоказать
В какой то момент у меня пропал звук, а аплет на панели показывал перечеркнутый индикатор. Оказалось пульсаудио не стартует с системой, разово при этом помогает команда

Код: Выделить всё

pulseaudio --start
Окончательно помогла в решении проблемы со звуком очистка настроек:

Код: Выделить всё

sudo rm -rf /tmp/pulse* ~/.pulse* ~/.config/pulse
pulseaudio --start
sudo shutdown -r
Оптимизацию работы с картой памяти брал из скрипта от Immortal: https://kb.mjdm.ru/install-script/?utm_ ... geDownload
Использовал подкорректированные функции sd_optimizire() и func_log_off() вырезав все остальное (заменил имя пользователя и некоторые пути).
К сожалению, этот этап я не задокументировал, а сейчас уже снес экспериментальную систему и не сохранил получившийся скрипт.

Чтобы MySQL не падал из за того что запускается раньше оптимизации на старте системы:

Код: Выделить всё

sudo nano /lib/systemd/system/mariadb.service
добавить строку

Код: Выделить всё

ExecStartPre=/bin/sleep 20
В таком состоянии система стабильно работала больше месяца. И работала бы дальше, если бы я не начал резать разделы sd карты прямо на живой системе :)
В данный момент эксперименты продолжаются и это сообщение наполняется новыми данными.


Нерешенные проблемыПоказать
1. В 20.04 периодически при простое отваливается управление графическим интерфейсом (курсор двигается, но нажатия не реагирует). При этом по ssh управляется нормально, по Ctrl+Alt+F1 переходит в консоль. Перезапуск LightDM помогает на какое-то время:

Код: Выделить всё

sudo service lightdm restart
2. Bluetooth не работает в обеих версиях, нужно настраивать.
3. В 20.04 тест RHvoice из консоли успешный, а из md нет.
За это сообщение автора kesha4 поблагодарил:
skysilver (Вт дек 08, 2020 11:14 am)
Рейтинг: 1.16%
Ответить