Table of Contents
PIBOX OS sur Raspbian
Table of Contents
Le PiBox est un stockage de type NAS, piloté par un Raspberry Pi Compute Module4.
Le référentiel https://github.com/kubesail/pibox-os fournit, outre une image disque prète à l'emploi, des scripts et des modules de noyau utilisés pour modifier le système d'exploitation Raspberry Pi afin de tirer pleinement parti du matériel PiBox.
Le présent tutoriel permet de personnaliser l'installation avec:
- OpenMediaVault, une solution de stockage en réseau (NAS) construite sur Debian et prenant en charge le Raspberry Pi.
- Jellyfin, un logiciel de serveur multimédia sous licence libre, conçu pour organiser, lire et partager des fichiers multimédias numériques sur des appareils en réseau.
Préparation du système
L'installation de OpenMediaVault proscrit l'utilisation des variantes de système d'exploitation avec des bureaux graphiques. OpenMediaVault ne fonctionnera que sur les systèmes basés sur des terminaux. Dans le cas du Pi, il s’agit du Raspberry Pi OS Lite.
La première chose à faire est de mettre à jour et de mettre à jour le système Raspberry :
sudo apt update sudo apt upgrade
Pour compiler les modules il faut installer le noyau RPI:
sudo apt install -y raspberrypi-kernel-headers
Dans le fichier /boot/cmdline.txt
, ajouter cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
à la fin du fichier.
Installation de Pibox-os
Le script suivant installe tout (PWM, écran, k3s et agent KubeSail)
curl -s https://raw.githubusercontent.com/kubesail/pibox-os/main/provision-os.sh | sudo bash
Récupérer le dépôt PiBox OS:
git clone https://github.com/kubesail/pibox-os.git
Prise en charge des ventilateurs PWM
Pour rendre le ventilateur silencieux et tourner aussi vite que nécessaire, il faut activer le module bcm2835-1 pour permettre à un service pi_fan_hwpwm.service d'envoyer le signal correct au ventilateur à l'aide du contrôleur PWM matériel du Pi.
cd pibox-os/pwm-fan tar zxvf bcm2835-1.68.tar.gz cd bcm2835-1.68 ./configure make sudo make install cd .. make sudo make install
Activer le pilote d'affichage
Un service d'affichage qui affiche des statistiques et d'autres informations utiles est fournit. Pour l'installer:
pushd pibox-os/st7789_module curl -O https://raw.githubusercontent.com/torvalds/linux/master/drivers/staging/fbtft/fbtft.h make xz fb_st7789v.ko mv /lib/modules/"$(uname -r)"/kernel/drivers/staging/fbtft/fb_st7789v.ko.xz /lib/modules/"$(uname -r)"/kernel/drivers/staging/fbtft/fb_st7789v.BACK mv fb_st7789v.ko.xz /lib/modules/"$(uname -r)"/kernel/drivers/staging/fbtft/fb_st7789v.ko.xz popd dtc --warning no-unit_address_vs_reg -I dts -O dtb -o /boot/overlays/drm-minipitft13.dtbo pibox-os/overlays/minipitft13-overlay.dts cat <<EOF >> /boot/config.txt dtoverlay=spi0-1cs dtoverlay=dwc2,dr_mode=host hdmi_force_hotplug=1 dtoverlay=drm-minipitft13,rotate=0,fps=60 EOF
Installer K3S
Les binaires fournit par Pibox-OS recquierrent K3s une distribution kubernettes légère.
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
Lors de l'installation de K3S, un fichier kubeconfig est écrit dans /etc/rancher/k3s/k3s.yaml
. Le moyen le plus courant de se connecter au cluster Kubernetes est la commande kubectl, qui est automatiquement installée sur le nœud du cluster lors de l'installation de K3S.
Pour se connecter au cluster, il faut indiquer à Kubectl où trouver le kubeconfig, en définissant une variable d'environnement ou en le copiant dans ~/.kube/config
:
mkdir ~/.kube sudo k3s kubectl config view --raw | tee ~/.kube/config chmod 600 ~/.kube/config
Pour configurer la variable d'environnement KUBECONFIG utiliser la commande suivante:
export KUBECONFIG=~/.kube/config
Et pour rendre ce paramétrage persistant, ajouter cette commande dans ~/.profile
ou ~/.bashrc
Vérifier que le cluster Kubernetes est bien en cours d'exécution avec la commande :
kubectl get pods -A
Installer les binaires
curl -s https://raw.githubusercontent.com/kubesail/pibox-os/main/setup.sh | sudo bash curl -s https://raw.githubusercontent.com/kubesail/pibox-os/main/update-framebuffer.sh | sudo bash
Installation de OpenMediavault
Exécuter la commande suivante pour télécharger le script d'installation d'OpenMediaVault et le diriger directement vers bash.
Ce script installera et configurera tout le nécessaire pour exécuter OpenMediaVault sur le Raspberry Pi.
wget -O - https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/installScript/master/install | sudo bash
Ce processus peut prendre un certain temps car le script doit installer de nombreux packages requis par le logiciel OpenMediaVault.
k3s est livré avec un contrôleur d'entrée traefik préinstallé qui se lie aux ports 80, 443 et 8080 sur l'hôte, on ne peut donc utiliser ces ports pour un serveur tiers.
Pour modifier le port d'OpenMediaVault (80 par défaut), exécuter omv-firstaid
, sélectionner Option-2 "configure web control panel"
.
Une fois le processus d'installation terminé, il est recommandé de redémarrer le Raspberry Pi.
sudo reboot
Installation de Jellyfin
Installation depuis le dépôt officiel
Par défaut, le gestionnaire de packages apt ne prend pas en charge les référentiels exécutés derrière HTTPS.
\\Pour contourner ce problème, il faut installer le package apt-transport-https en exécutant la commande suivante:
sudo apt install apt-transport-https lsb-release
Ce package ajoute la prise en charge du protocole de transport HTTPS au gestionnaire de packages apt.
Une fois le Raspberry Pi à jour, il faut installer certains fichiers pour accéder au référentiel de packages Jellyfin.
- importer la clé de signature GPG:
curl https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/jellyfin-archive-keyring.gpg >/dev/null
- ajouter le référentiel Jellyfin:
echo "deb [signed-by=/usr/share/keyrings/jellyfin-archive-keyring.gpg arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
Cette ligne récupère automatiquement l'architecture système actuelle et sa version actuelle et remplit les espaces vides.
- mettre à jour la liste des packages:
sudo apt update
Lorsqu'on modifie les fichiers sources, il faut mettre à jour la liste des packages. Sans mise à jour, le gestionnaire de packages ne sera pas au courant des modifications.
- installer le package jellyfin:
sudo apt install -y jellyfin
Installation depuis le dépôt extrepo
Pour commencer, ajouter le dépôt de Jellyfin:
sudo apt install extrepo -y sudo extrepo enable jellyfin
Rafraîchir les dépots et installer jellyfin
apt update apt install jellyfin -y
Configuration
Se rendre à l’adresse : http://ip-du-serveur:8096
- Sélectionner la langue souhaitée
- Créer un compte utilisateur
- Ensuite on peut ajouter les dossiers en local ou sur un dossier réseaux comme un NAS où sont stockés les films, séries, etc ..
- Sélectionner la Langue et pays pour les paramètre du serveur
Activer uniquement “Autoriser le mapping automatique de port” si lerouteur supporte l’UPnP et si on souhaite accèder aux serveur sur internet