User Tools

Site Tools


doc:appunti:linux:tux:kodi

This is an old revision of the document!


Kodi

Kodi è il nuovo nome di XBMC, a partire dalla versione 14. Vedere le vecchie pagine XBMC Media Center e Raspberry PI mediacenter con OpenELEC, perché gran parte degli appunti restano validi.

Su Debian 9 Stretch

Si è preferito installare il pacchetto da deb-multimedia.org piuttosto che quello ufficiale fornito da Debian, sia perché è una versione più recente (17.6 invece di 17.1) sia per gestire al meglio le dipendenze da codec proprietari che in Debian non ci sono, ma sono presenti in Deb-Multimedia.

La pacchettizzazione Debian di Kodi dipende da xserver-xorg, tuttavia non abbiamo installato un login manager (lightdm, gdm, o simili) quindi l'host si avvia con il login su console testuale.

È stato necessario installare i seguenti pacchetti con le loro dipendenze:

  • kodi
  • kodi-standalone
  • libgl1-mesa-dri

La formula per avviare kodi suggerita da kodi.wiki è la seguente:

/usr/bin/xinit /usr/bin/dbus-launch --exit-with-session \
    /usr/bin/kodi-standalone -- :0 -nolisten tcp vt7

Senza il pacchetto libgl1-mesa-dri l'avvio di xinit/kodi falliva, lasciando nel kodi_crashlog-*.log questo errore:

ERROR: Failed to find matching visual

Per consentire all'utente non privilegiato kodi (creato apposta) di avviare Kodi è stato necessario modificare il file /etc/X11/Xwrapper.config, mettendo le righe:

allowed_users=anybody
needs_root_rights=yes

Altrimenti l'esecuzione di xinit/kodi da parte dell'utente non-root dava il seguente errore del server X:

Fatal server error:
(EE) xf86OpenConsole: Cannot open virtual console 7 (Permission denied)

L'utente kodi appartiene ai gruppi di sistema audio, video e plugdev. Il pacchetto policykit-1 è installato, ma non sono state fatte personalizzazioni. In queste condizioni il menu Power di Kodi consente il reboot e lo spengimento anche all'utente non privilegiato.

Per avviare il servizio kodi al bootstrap si è creata una unit systemd:

[Unit]
Description = Kodi Media Center

# if you don't need the MySQL DB backend, this should be sufficient
After = systemd-user-sessions.service network.target sound.target

# if you need the MySQL DB backend, use this block instead of the previous
# After = systemd-user-sessions.service network.target sound.target mysql.service
# Wants = mysql.service

[Service]
User = kodi
Group = kodi
Type = simple
ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/kodi-standalone -- :0 -nolisten tcp vt7
Restart = always
RestartSec = 15

[Install]
WantedBy = multi-user.target

e quindi si è installato, abilitato e avviato il servizio:

systemctl daemon-reload
systemctl enable kodi.service
systemctl start kodi.service

Su Debian 7 Wheezy

Si installa facilmente su Debian Wheezy, basta aggiungere i repository:

deb  https://people.debian.org/~rbalint/ppa/xbmc-ffmpeg xbmc-ffmpeg-wheezy-backports/
deb  http://http.debian.net/debian wheezy-backports main contrib non-free

Seguire le istruzioni del repository, in sintesi:

apt-get install debian-keyring
apt-get install apt-transport-https
gpg --keyring /usr/share/keyrings/debian-keyring.gpg -a --export 21E764DF | sudo apt-key add -

Quindi installare i seguenti pacchetti:

  • alsa-base e alsa-utils per il supporto audio.
  • x11-common e xinit per poter avviare l'ambiente grafico. Non serve un ambiente desktop completo.
  • kodi e kodi-bin il software media center vero e proprio.
  • upower e acpi-support per gestire lo spengimento/reboot dai menu di Kodi.

Quando serve una dipendenza necessariamente dai bacports:

apt-get -t wheezy-backports install libtag1c2a

Si crea un utente kodi per mandare in esecuzione il software omonimo, deve appartenere ai vari gruppi Debian quali audio, video, plugdev, ecc.

Script start/stop

Lo script per avviare Kodi automaticamente al bootstrap è stato preso dalla pagina Autostart Kodi for Linux, opportunamente aggiornato per il passaggio di nome XBMC → Kodi.

Aggiornamento delle miniature

Per ogni video è possibile visualizzare una miniatura personalizzata al posto di quella creata automaticamente; basta mettere un file JPG oppure PNG nella stessa directory del file video, chiamandolo con lo stesso nome e l'estensione .tbn.

Queste immagini vengono salvate in una cache e in un database, quindi aggiornarle non è semplice. Un metodo drastico è eliminare il file $HOME/.kodi/userdata/Database/Textures13.db e i file in $HOME/.kodi/userdata/Thumbnails/.

Pare che esista uno script più efficace: Texture Cache Maintenance utility.

Layout tastiera italiana

On-Screen keyboard

Stranamente Kodi 14.0 su Debian Wheezy non include il layout italiano per la tastiera on-screen (cioè quella utilizzabile anche con il telecomando o il mouse). I vari layout sono definiti nel file /usr/share/kodi/system/keyboardlayouts.xml e pare che non sia possibile creare un file personalizzato con layout aggiuntivi (almeno con la versione 14 Helix). Questo è un problema perché se si modifica il file, questo sarà sostituito durante un aggiornamento di Kodi.

Ad ogni modo si deve aggiungere una sezione del tipo:

  <layout name="Italian QWERTY">
    <keyboard>
      <row>1234567890'ì</row>
      <row>qwertyuiopè+</row>
      <row>asdfghjklòàù</row>
      <row>zxcvbnm,.-</row>
    </keyboard>
    <keyboard modifiers="shift">
      <row>1234567890?^</row>
      <row>QWERTYUIOPé*</row>
      <row>ASDFGHJKLç°§</row>
      <row>ZXCVBNM;:_</row>
    </keyboard>
    <keyboard modifiers="symbol,shift+symbol">
      <row>/\|@€#[]&lt;&gt;`~</row>
      <row>!"£$%&amp;()='?</row>
      <row>&lt;&gt;,.-+*_^§ç</row>
    </keyboard>
  </layout>

Quindi dall'interfaccia Kodi si seleziona quali layout tenere a disposizione (se sono più di uno sarà possibile cambiare da uno all'altro durante l'input da tastiera virtuale):

  • Sistema, Impostazioni, Aspetto
    • Livello impostazioni ⇒ Standard (o superiore)
    • Internazionale ⇒ Layout della tastiera

Tastiera hardware

Kodi 14.0 su Debian Wheezy ha un bug per cui la tastiera localizzata non funziona: quando si digita un input con la tastiera fisica nell'interfaccia di Kodi, è attivo sempre il layout US. Questo nonostante che il sistema sia configurato correttamente (la console ad esempio produce le lettere accentate come deve essere):

  • dpkg-reconfigure locales
  • dpkg-reconfigure keyboard-configuration

Neanche creando un file /etc/X11/xorg.conf.d/00-keyboard.conf con l'opportuna sezione InputClass e l'opzione XkbLayout si ottiene la localizzazione (eppure la direttiva viene caricata, come si può verificare da /var/log/Xorg.0.log).

Ancor più stranamente: se da una terminale virtuale (Alt+F1) si modifica l'impostazione della tastiera, allora Kodi inizia a funzionare correttamente, senza neanche riavviarlo:

export DISPLAY=:0
setxkbmap it

Il tutto è molto strano, poichè le impostazioni mostrate con setxkbmap -print -verbose 10 non cambiano prima e dopo aver dato il comando. Tutto sommato pare che il workaround migliore sia quello di impostare un autoexec per Kodi in /home/kodi/.kodi/userdata/autoexec.py:

import os
os.system("setxkbmap it")
doc/appunti/linux/tux/kodi.1514279015.txt.gz · Last modified: 2017/12/26 10:03 by niccolo