Add install kodi on ubuntu server

me
2026-01-21 19:28:42 +03:00
parent 0f7482f8b5
commit 3e2f51e35b

@@ -0,0 +1,132 @@
При запуске/рестарте сервера автоматически запускается `Kodi` приложение от пользователя `tv` (авто юзер без пароля и без sudo прав)
## Установка графической базы
```bash
sudo apt update
sudo apt install --no-install-recommends \
xorg xserver-xorg-legacy \
openbox \
dbus-x11 \
xinit
```
xorg (X / X11) - графический сервер для работы с видеодрайвером — нужен для HDMI/GUI
openbox — простой windows manager для стабильности (фокус / стабильный ввод)
xinit — чтобы запускать X без display managerа (мы запускаем автоматически через systemd)
## Установка Kodi
`sudo apt install kodi`
## Пользователь `tv` без sudo и без пароля
```bash
sudo adduser --disabled-password --gecos "" tv
sudo usermod -aG audio,video,input,render tv
```
- Группы нужны для HDMI, звука, пульта
## Автостарт X + Kodi для пользователя tv
`sudo nano /home/tv/.xinitrc`
Содержимое
```sh
#!/bin/sh
# отключает DPMS (Display Power Management Signaling)
# X не будет:
# - гасить экран
# - уводить монитор в sleep/standby/off
# HDMI-сигнал остаётся активным
xset -dpms
# отключает X screensaver (таймер бездействия)
xset s off
# запрещает «чёрный экран» вместо screensaver
xset s noblank
exec kodi-standalone
```
```bash
sudo chown tv:tv /home/tv/.xinitrc
sudo chmod +x /home/tv/.xinitrc
```
### Разрешаем запуск X без root
`sudo nano /etc/X11/Xwrapper.config`
```ini
allowed_users=anybody
needs_root_rights=no
```
## Автологин без display manager (через systemd)
Создаём сервис
`sudo nano /etc/systemd/system/kodi.service`
```ini
[Unit]
Description=Kodi Media Center
After=systemd-user-sessions.service
Conflicts=getty@tty1.service
[Service]
Type=simple
User=tv
PAMName=login
TTYPath=/dev/tty1
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
StandardInput=tty
# StandardInput=tty заставляет systemd реально “подцепить” сервис к tty1
StandardOutput=journal
StandardError=journal
# Явно забираем VT1 и оставляем tty за X
ExecStart=/usr/bin/startx -- :0 vt1
# убираем -keeptty (он часто конфликтует с тем, как systemd управляет VT)
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
```
Активируем
`sudo systemctl enable kodi.service`
Если меняем и перезапускаем:
`sudo systemctl daemon-reload`
`sudo systemctl restart kodi.service --no-block`
> --no-block нужен чтобы не блокировать текущую ssh сессию админа
# Хранилище
`/srv/photo` и `/srv/media`
монтируем в домашние директории юзерам
`ln -s /srv/photo /home/vk/photo --force`
`sudo -u tv ln -s /srv/photo/ /home/tv/photo --force`