Installer Kodi sur un Raspberry

Je dispose de quelques Raspberry à la maison et je suis également un grand adepte du serveur freebox. Comme j'essaie le plus possible de ne pas être dépendant de services qui peuvent m'être retirés j'ai envisagé la possibilité de remplacer le serveur freebox, plus particulièrement la fonctionnalité de lecture de contenu local (disque, NAS, ...) par l'application Kodi.

Matériel de base

Au niveau du matériel, je dispose donc d'un Raspberry Pi 3B+ sur lequel j'ai installé la dernière version de Raspbian.
Il n'y a besoin de rien de plus que cela pour la suite de l'article.

Installation de Kodi

Si comme moi vous utilisez Raspbian sans bureau, il convient d'installer au préalables les utilitaires qui permettent d'afficher des interface. En gros, un serveur x :

sudo apt install xinit xutils

Ceci effectué, il suffit ensuite d'exécuter la commande suivante pour installer kodi :

sudo apt install kodi

Démarrage automatique de kodi

Si comme moi, vous souhaitez que kodi démarre automatiquement lorsque vous allumez votre raspberry, il est nécessaire de passer par les étapes ci-dessous :

  • On commence par créer un utilisateur qui sera chargé de lancer le programme. Cet utilisateur ne nécessite pas de mot de passe et doit faire parti de différents groupes afin de pouvoir utiliser les ressources nécessaires.
sudo adduser --disabled-password --gecos "User to run Kodi Media Center" <USER>
sudo adduser <USER> audio
sudo adduser <USER> video
sudo adduser <USER> plugdev
sudo adduser <USER> input
  • On créé le fichier /etc/systemd/system/kodi.service qui nous permet de déclarer le service kodi. Le contenu est le suivant :
[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 = <USER>
Group = <USER>
Type = simple
ExecStart = /usr/bin/kodi-standalone
Restart = always
RestartSec = 15

[Install]
WantedBy = multi-user.target
  • Enfin on référence le service que nous venons de créer puis nous le démarrons :
systemctl daemon-reload
systemctl enable kodi.service
systemctl start kodi.service

Désormais, lorsque le Raspberry démarrera, Kodi se lancera automatiquement. Il sera alors possible de le configurer en fonction de votre installation.

Configuration complémentaire

Si l'installation est configurée pour utiliser des dossiers réseaux (répertoires sur un NAS par exemple), il convient de configurer la gestion du cache comme l'indique la documentation.
Pour cela, il faut créer le fichier /home/<USER>/.kodi/userdata/advancedsettings.xml et y ajouter le contenu suivant :

<?xml version="1.0" encoding="UTF-8"?>
<advancedsettings>
  <cache>
    <memorysize>104857600</memorysize>
    <buffermode>1</buffermode>
    <readfactor>4.0</readfactor>
  </cache>
</advancedsettings>

Il est possible d'avoir plus de détails sur les options de configuration du cache dans cette documentation.

Références :