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.
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.
ATTENZIONE In configurazioni più recenti, ad esempio RaspiOS basato su Debian 10.8 Buster che installa Kodi 18.7 Leia, il pacchetto Kodi si può installare in modo del tutto diverso, senza xserver-xorg. Vedere Kodi on a Raspberry Pi NAS.
Con Debian 9 Stretch è stato necessario installare i seguenti pacchetti e le loro dipendenze:
Altri pacchetti consigliati:
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
In alcuni post viene consigliato anche di eseguire dpkg-reconfigure x11-common
. Senza queste modifiche 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.
L'esecuzione xinit/kodi funziona a questo punto da utente non privilegiato, sia da console locale che da terminale remoto. 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
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:
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.
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.
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.
È possibile catturare la schermata corrente di Kodi eseguendo una riga di comando in una shell dell'host stesso. Si deve installare il pacchetto Debian kodi-eventclients-kodi-send e quindi eseguire:
kodi-send --action="TakeScreenshot"
Alla prima esecuzione, nell'interfaccia Kodi, compare la richiesta di directory destinazione, dove verrà salvato il file PNG. Le richeiste successive utilizzeranno la stessa directory (fino al riavvio successivo).
Something is not working as wanted:
We incurred into a problem with movie date in Yatse, the Android application to control Kodi remotely: every movie was presented as released in year 1601. It turned out that you must use the <premiered> tag into the .nfo file, instead of the <year> one. The tag must be in the ISO format YYYY-MM-DD, otherwise it will be not parsed.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- created on 2017-12-30 15:09:33 - by MediaManager --> <movie> <title>L'era glaciale 3 - L'alba dei dinosauri</title> <sorttitle>era glaciale 3</sorttitle> <set>Era Glaciale</set> <genre>Animazione</genre> <premiered>2009-01-01</premiered> </movie>
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>/\|@€#[]<>`~</row> <row>!"£$%&()='?</row> <row><>,.-+*_^§ç</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):
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")
La skin predefinita di Kodi 17 Krypton si chiama Estuary ed è abbastanza soddisfacente, salvo per la dimensione delle miniature dei video nella modalità Muro (Wall): le immagini sono quadrate e troppo piccole. Nella nostra collezione abbiamo invece preparato tutte le miniature (file .tbn) nel formato 4:3.
È sifficiente modificare alcuni file XML e riavviare Kodi per provare un layout più soddisfacente. La directory che contiene la skin è /usr/share/kodi/addons/skin.estuary/xml/, i file sono:
Il nostro utilizzo di Kodi è orientato alle seguenti caratteristiche:
Ecco i consigli per una corretta visualizzazione dei contenuti video:
Come metadati da includere nei file .nfo ci è sufficiente assegnare:
Kodi ha innumerevoli parametri che possono essere personalizzati, ecco alcuni consigli su cosa impostare dal menu Settings (icona a forma di ingranaggio):
Pare che Kodi 17 supporti il file $HOME/.kodi/userdata/autoexec.py. Vedere gli appunti presi per l'autostart con OpenELEC: pare che siano ancora validi (compreso l'import xbmc
e i metodi). Anche il wiki di Kodi ha una pagina a riguardo.
Vedere Keyboard controls.
Key | Function | Note |
---|---|---|
Space | Pause | |
X | Stop playback | |
Enter | Player controls (OSD) | |
- (minus) | Volume down | |
+ (plus) | Volume up | |
C | Contextual menu | Utile ad esempio per mettere in coda una intera directory. |
ESC | Previous menu | Utile anche per chiudere il menu OSD. |
S | Shutdown menu | Per spengere o riavviare l'host. |
T | Subtitles | Attiva o disattiva i sottotitoli. |
A | Audio delay | Aggiusta la sincronizzazione audio-video. |
TAB | Fullscreen playback | |
\ (backslash) | Fullscreen mode | Fullscreen/windowed mode. |