Я экспериментировал с двумя образами систем, устанавливал их на 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: "Пароль"
Код: Выделить всё
sudo shutdown -rСоздаем нового пользователя во имя безопасности (система запросит пароль для него и некоторые необязательные параметры), даем ему права на судо и перезагружаемся. Здесь и далее smarthome это логин нового пользователя:
Код: Выделить всё
sudo adduser smarthome
sudo usermod -aG sudo smarthome
sudo shutdown -r
Код: Выделить всё
sudo deluser ubuntu --remove-home
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
Код: Выделить всё
sudo apt-get install tasksel
sudo tasksel install xubuntu-desktop
После перезагрузки система задаст вопрос о переименовании папок - я предпочитаю оставлять их в латинском именовании.
Также, вместе с графическим интерфейсом я сразу устанавливаю удобный терминал Guake на случай если придется работать не через ssh:
Код: Выделить всё
sudo apt-get install guake
sudo cp /usr/share/applications/guake.desktop /etc/xdg/autostart/
Что за модули ее вызывают проверяем командой
Код: Выделить всё
sudo journalctl -u systemd-modules-load.serviceПервый можно отключить закомментировав символом # его строку в файле /etc/modules-load.d/cups-filters.conf
Код: Выделить всё
sudo nano /etc/modules-load.d/cups-filters.confКод: Выделить всё
sudo nano /lib/modules-load.d/open-iscsi.confКод: Выделить всё
sudo rm /var/crash/*Код: Выделить всё
sudo nano /etc/hostnameКод: Выделить всё
sudo nano /etc/hostsКод: Выделить всё
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
Код: Выделить всё
sudo usermod -a -G audio "smarthome"Далее ставим majordomo скриптом от prmres по всем пунктам инструкции https://mjdm.ru/forum/viewtopic.php?p=92843#p92843
Перезагружаемся и проверяем голосовой движок командой
Код: Выделить всё
echo "привет" | RHVoice-test -p AnnaЧтобы побороть эту проблему нужно в файле /etc/pulse/default.pa заменить строку
Код: Выделить всё
load-module module-udev-detectКод: Выделить всё
load-module module-udev-detect tsched=0Код: Выделить всё
pulseaudio --startКод: Выделить всё
sudo rm -rf /tmp/pulse* ~/.pulse* ~/.config/pulse
pulseaudio --start
sudo shutdown -rИспользовал подкорректированные функции sd_optimizire() и func_log_off() вырезав все остальное (заменил имя пользователя и некоторые пути).
К сожалению, этот этап я не задокументировал, а сейчас уже снес экспериментальную систему и не сохранил получившийся скрипт.
Чтобы MySQL не падал из за того что запускается раньше оптимизации на старте системы:
Код: Выделить всё
sudo nano /lib/systemd/system/mariadb.serviceКод: Выделить всё
ExecStartPre=/bin/sleep 20В данный момент эксперименты продолжаются и это сообщение наполняется новыми данными.
Код: Выделить всё
sudo service lightdm restart3. В 20.04 тест RHvoice из консоли успешный, а из md нет.