DietPi est une distribution Linux minimaliste extrêmement optimisée, et même si elle a été conçue à l'origine pour le RaspberryPi (et autres SBC 1)) elle fonctionne aussi très bien sur PC. Certaines optimisations ont été effectuées spécifiquement pour le Raspberry: RAMLog installé (pour réduire les écritures sur MicroSD), fichiers temporaires en tmpfs, etc.
Elle peut être utilisée comme serveur (en terminal, en headless) ou avec un environement de bureau (Avec plusieurs bureaux disponibles: lxde, mate, xfce…). DietPi est adossée aux dépôt Debian, et elle est aussi fournie avec des packages tout prêts pour installer facilement des tas de services (NextCloud, Kodi, Ampache, WordPress, Pi-Hole, Gitea, LAMP et dérivés (Apache/NGinx/lighttpd)… il y a même plusieurs serveurs Minecraft).
Et au niveau de l'espace de stockage, DietPi peut se satisfaire d'un disque de 4 Go (En gros, il prend 2,8 Go avec l'environnement de bureau par défaut). Sur un RaspberryPi 3B, le système démarre en 11 secondes.
(Une fois le gestionnaire de fichiers et le navigateur lancés (capture d'écran ci-dessus), la consommation mémoire monte à 427 Mo. Oui le web est une monstruosité.)
Pour les RaspberryPi, il existe plusieurs versions de DietPi. Je vous recommande:
RaspberryPi | Version de DietPi à prendre | Adossé aux dépôts |
---|---|---|
Zéro et 1 | ARMv6 32-bit | Raspbian |
2, 3 | ARMv7 32-bit | Debian |
3,4 | ARMv8 64-bit | Debian |
Pour vous simplifier l'installation de DietPi sur une microSD, vous pouvez utiliser le logiciel Raspberry Pi Imager (Choose OS > Use custom et sélectionnez le fichier .img de DietPi).
Voici ma checklist d'installation rapide pour un bureau graphique.
root
/dietpi
. Maintenant on va activer le démarrage directement en mode graphique:
dietpi-config
> Autostart Options. Sous Desktops, choisissez:reboot
Si vous faites juste un serveur, vous pouvez bien entendu lui demander de démarrer juste en mode terminal dans dietpi-config
(Vous pouvez à tout moment démarrer l'interface graphique en tapant startx
)
Pour changer d'autres options, ouvrez un terminal et tapez sudo dietpi-launcher
. Vous aurez accès à tous les outils DietPi pour la configuration et l'installation du système.
Vous pouvez passer par dietpi-software
, mais vous avez aussi accès à apt
(et les dépôts Debian derrière). Dans dietpi-software
il y a des pré-configurations pour différents types de serveurs (web, NextCloud, OpenVPN, torrent, Pi-Hole…).
apt
pour l'installation, car DietPi a des versions spécialement optimisées.
Personnellement, j'installe:
sudo dietpi-software
):sudo apt install less man-db gdebi synaptic zram-tools xscreensaver* lsof smplayer
less
et man
ne sont pas installés par défaut.cat /proc/swaps
(vous devez voir un /dev/zram0
)sudo zramctl
(DATA indique combien de données il contient, TOTAL la quantité de mémoire qu'il occupe après compression).xscreensaver-demo
).
Par défaut, 2 utilisateurs sont créés: root
et dietpi
. Seul root a les droits administrateur.
Notez qu'en plus du fait que (comme d'habitude) ces utilisateurs aient un mot de passe, il existe aussi un mot de passe global DietPit (vous pourrez le choisir à l'installation).
sudo dietpi-services
), en particulier les services que vous avez installés via dietpi-software.sudo dietpi-banner
sudo apt install zram-tools
: en installant zram, un segment de mémoire compressée sera utilisé en priorité sur le swap disque (vous pouvez le voir avec un cat /proc/swaps
et voir le taux de compression avec sudo zramctl
)sudo bash -c 'echo "vm.swappiness=1" >> /etc/sysctl.conf'
: réduit la propension du système à swapper préventivement (rebootez pour prise en compte). 1 est la valeur minimum sans désactiver le swap.about:config
dans la barre d'adressegeneral.useragent.override
. S'il n'existe pas, crééez-le (de type chaîne) et entrez le user-agent de votre choix. Par exemple le User-Agent par défaut de Firefox sous DietPi est:User-Agent: Mozilla/5.0 (X11; Linux armv7l; rv:78.0) Gecko/20100101 Firefox/78.0
X11; Linux armv7l;
changé en Android; Mobile;
) :User-Agent: Mozilla/5.0 (Android; Mobile; rv:78.0) Gecko/20100101 Firefox/78.0
~/.bashrc
, décommentez (ou ajoutez) les lignes suivantes:export LS_OPTIONS='--color=auto' eval "$(dircolors)" alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS -lA'
sudo dietpi-config
, allez dans Performances Options:Paramètre | Valeur par défaut | Valeur recommandée | Explications |
---|---|---|---|
Overclocking | none | none | Vous pouvez forcer le Raspberry à fonctionner au delà des fréquences recommandées du CPU afin d'avoir de meilleures performances, mais cela le fait chauffer. Non recommandé. Laissez à "none". |
CPU Governor | schedutil | conservative | Le gorvenor est l'algorithme qui va décider de la montée/descente en fréquence du CPU en fonction de l'occupation des coeurs du CPU. Schedutil monte très vite en fréquence (et redescend vite), conservative lui va monter moins vite en absorbant les pics d'activité ponctuels (occupation du CPU importante pendant un court instant). |
CPU Throttle Up | 50 | 85 | À partir de ce pourcentage d'occupation d'un coeur du CPU, le governor va décider de commencer à augmenter la fréquence. À moins d'avoir des besoins de traitement en temps réel, mettez à 85. |
ARM Temperature Limit | 75 | Quand le Raspberry atteind cette température, il fait du throttling : il réduit la fréquence du processeur pour éviter de chauffer plus. Peut être mis à 75 pour les Raspberry Pi 3/4. | |
ARM Idle Frequency | 600 | 300 | C'est la fréquence du processeur quand il ne fait "rien". Par défaut à 600, autant la descendre à 300. |
ARM Initial Turbo | 20 | 20 | Au démarrage, le Raspberry sera au maximum de sa fréquence pendant ce temps afin d'accélérer le démarrage. Vous pouvez laisser à 20. |
Le client torrent qBitTorrent est disponible, mais plus particulièrement il s'agit de qBitTorrent-nox : ce n'est pas installé comme une application graphique, mais comme un service. Il est alors accessible à l'aide d'un simple navigateur (l'interface web est identique à l'application graphique). Il consomme beaucoup moins de mémoire que le client graphique, et démarre avec la machine même si aucun utilisateur n'est connecté.
Par défaut, vous devez accéder par http://localhost:1340 avec le login qbittorrent
et le mot de passe dietpi
(ou le mot de passe global que vous avez choisi). Si le login n'est pas accepté (ce qui arrive dans certains cas), voici comment rénitialiser le mot de passe de qBitTorrent-nox:
sudo systemctl stop qbittorrent.service
sudo nano /home/qbittorrent/.config/qBittorrent/qBittorrent.conf
WebUI\Password_…
(utilisez Ctrl+K)sudo systemctl start qbittorrent.service
qbittorrent
et le mot de passe adminadmin
(Pensez à le changer).Le service qBitTorrent tournant avec un utilisateur différent, assurez-vous qu'il a les droits d'écrire dans le répertoire dans lequel il est censé mettre ses fichiers.
Mesure de sécurité supplémentaire: Ne démarrer le service qbittorrent.service
que si le VPN (service wg-quick@wg0.service
, voir ci-dessous) est démarré avec succès:
sudo dietpi-services
[Unit]
, ajoutez une ligne: Requires=wg-quick@wg0.service
(à remplacer par le nom du service VPN de votre système)dietpi-services
et acceptez qu'il redémarre les services.sudo systemctl list-dependencies qbittorrent.service
doit vous afficher wg-quick@wg0.service
dans la liste de ses dépendances.sudo systemctl stop wg-quick@wg0.service
(et vérifiez dans htop
que qBitTorrent est arrêté.)(Je met surtout cette documentation pour moi ici.)
Pour configurer le client Wireguard avec le VPN Mullvad dans DietPi:
sudo dietpi-software
sudo cp mullvad-fr13.conf wg0.conf
)PostUp = iptables…
et PreDown = iptables…
ajoutez: && iptables -I OUTPUT 1 -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT
afin que la machine puisse continuer à communiquer avec le réseau local.
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo systemctl stop wg-quick@wg0
(N'oubliez pas qu'avec le killswitch, cela va couper votre connexion internet.)ip ad
(si vous voyez un wg0 dans la liste, c'est que le VPN est actif).Avantages:
Notes:
sudo iptables -I OUTPUT 1 -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT sudo iptables -I OUTPUT 1 -s 0.0.0.0/32 -d 224.0.0.1/32 -p igmp -j ACCEPT sudo iptables -I OUTPUT 1 -d 239.0.0.0/8 -p igmp -j ACCEPT
Le protocole DLNA permet (entre autres) d'annoncer sur le réseau local un "entrepot" de médias (films, musique, images) et de partager ces médias. Les appareils connectés modernes (TV connectées, MediaCenters…) sont capables d'afficher les serveurs DLNA et d'en lire le contenu. Cela permet par exemple de lire directement sur votre smartTV les contenus stockés sur votre Raspberry. Voici comment installer un serveur DLNA dans DietPi:
sudo dietpi-software
, installez ReadyMedia: (MiniDLNA) media streaming server (dlna, upnp)
./mnt/dietpi_userdata/Music
/mnt/dietpi_userdata/Pictures
/mnt/dietpi_userdata/Video
/etc/minidlna.conf
:media_dir=V,/mnt/usb/films media_dir=A,/mnt/usb/musique
media_dir=PV,/mnt/smartphone
friendly_name=Raspberry
sudo systemctl restart minidlna
Vous devriez alors voir le Raspberry apparaître dans la liste des sources de votre télé. Notez que même si cela n'est pas explicitement indiqué dans la documentation, la majorité des smartTV sorties ces dernières années sont compatibles DLNA. Il est possible que votre poste télé mette quelques minutes à prendre en compte le serveur DLNA. Soyez patients.
Par contre, minidlna ne fait pas de transcodage. Cela veut dire que vous ne pourrez lire que les formats supportés par votre télé.
Il faut expérimenter. Essayez de faire lire le fichier que vous avez avec la télé. Il ne passe pas ? Tout n'est pas perdu: Vous pouvez le convertir:
ffmpeg -i video.avi videoConvertie.mp4
(en précisant l'extension .mp4
, ffmpeg choisira automatiquement le codec H264 pour la vidéo et AAC pour l'audio, ce qui devrait ensuite passer sans problème sur pratiquement tous les appareils.)
ffmpeg -i video.mkv -acodec aac -vcodec copy videoConvertie.mkv
(-vcodec copy
va copier la vidéo tel quel sans la ré-encoder, et -acodec aac
va ré-encoder l'audio en AAC.)
Pour voir quel encodage est utilisé par une vidéo, vous pouvez ouvrir la vidéo avec VLC et presser Ctrl+I.