Utiliser un onduleur sous GNU/Linux est facile sur GNU/Linux avec Network-UPS-Tools et KNutClient. Je vous explique comment faire.
Sommaire
Introduction
Mon onduleur est un Eaton Ellipse Pro 1600 qui est branché à mon PC par un port USB 2.
Installations
Vous avez besoin des deux logiciels suivant NUT (Network UPS Tools ) et KNutClient (qui est un client KDE visuel pour les onduleurs utilisant le logiciel NUT).
On va commencer par le logiciel NUT, là, c’est facile : ouvrez votre gestionnaire de logiciels préféré. Faites une recherche de logiciel portant le nom de « nut » et installez-le.
Pour KNutClient, c’est un vieux logiciel, la dernière version est la 1.1.1 de 2009 mais fonctionne toujours très bien.
Il semble que le logiciel ai été rattaché au fork de Kde 3.5 : Trinity mais je n’ai pas trouvé plus d’informations.
Vous pouvez installer KNutClient avec les dépôts Trinity Desktop (Trinity Desktop est un fork de Kde 3.5) avec certaines distributions :
Sous Debian 11 :
Installez la clé GPG :
wget http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-keyring.deb
sudo dpkg -i trinity-keyring.deb
Ajoutez les deux dépôts :
deb http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-r14.0.x bullseye main
deb http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-builddeps-r14.0.x bullseye main
Mettez à jour les dépôts et installez le paquet knutclient-trinity :
sudo apt update
sudo apt install knutclient-trinity
Vous pouvez lancer le logiciel avec la commande suivante :/opt/trinity/bin/knutclient
Il existe un lanceur ici : /opt/trinity/share/applications/kde/knutclient.desktop
Sous Ubuntu 22.04 :
Ajouter la clé GPG :
wget http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-keyring.deb
sudo dpkg -i trinity-keyring.deb
Ajoutez les deux dépôts :
deb http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-r14.0.x jammy main
deb http://mirror.ppa.trinitydesktop.org/trinity/deb /trinity-builddeps-r14.0.x jammy main
Mettez à jour les dépôts et installez le paquet knutclient-trinity :
sudo apt update
sudo apt install knutclient-trinity
Vous pouvez lancer le logiciel avec la commande suivante :/opt/trinity/bin/knutclient
Il existe un lanceur ici : /opt/trinity/share/applications/kde/knutclient.desktop
Sous openSUSE Leap 15.4 :
Installez le dépôt additionnel et installez KNutClient :
sudo rpm --import http://mirror.ppa.trinitydesktop.org/trinity/rpm/opensuse15.4/RPM-GPG-KEY-trinity
sudo zypper ar http://mirror.ppa.trinitydesktop.org/trinity/rpm/opensuse15.4/trinity-r14/RPMS/x86_64 trinity
sudo zypper ar http://mirror.ppa.trinitydesktop.org/trinity/rpm/opensuse15.4/trinity-r14/RPMS/noarch trinity-noarch
sudo zypper install trinity-knutclient
Vous pouvez lancer le logiciel avec la commande suivante :/opt/trinity/bin/knutclient
Il existe un lanceur ici : /opt/trinity/share/applications/kde/knutclient.desktop
Le dépôt Trinity existe pour ArchLinux mais KNutClient n’y est pas présent.
J’ai créé une archive zip compilé par mes soins de la version 1.1.1, vous pouvez la télécharger ici : knutclient.zip (1,4 Mo) (somme de contrôle SHA256 : 4621899a5abb0934c9680389ac7abd2ecb71ba36ea64fb4ee9d370727f55cec2). Pour l’installer, ce n’est pas très compliqué. Dans votre navigateur de fichiers, vous dézippez l’archive (là suivant votre navigateur de fichiers, vous pourrez ou non dézipper avec un clic droit et choisir « Extraire ici »). Vous vous retrouvez avec un beau répertoire knutclient.
Faite un clic droit sur le répertoire et choisissez « Ouvrir un terminal ici » ou quelque chose du genre. Vous voilà dans le terminal.
Tapez la commande suivante avec une ArchLinux ou une Manjaro Linux :
./install-archlinux.sh
Tapez la commande suivante avec une Debian, Ubuntu ou Mint :
./install-deb.sh
Tapez la commande suivante avec une distribution basé sur RPM.
./install-rpm.sh
Le script va faire appel à votre gestionnaire de paquet en ligne de commandes pour installer les dépendances (pacman pour ArchLinux et Manjaro Linux), (apt-get pour les paquets deb) (et yum pour les paquets RPM). Comme vous le voyez, ça a tout copié dans le répertoire /usr/local/
pour bien différencier le logiciel installé à la main de ceux installés avec un gestionnaire de logiciel.
Faites un « Alt+ F2 » et tapez knutclient.

Voilà, c’est fini pour cette partie installations.
Configuration
On va commencer par le début. On va configurer Nut (Network UPS Tools).
Configuration de Network UPS Tools
Pour commencer, on va dire à NUT quel pilote il doit utiliser. Pour savoir quel pilote utiliser, faites une recherche sur Google :
le nom de votre onduleur Network UPS Tools
Vous trouverez vite la réponse, mais le pilote générique connaît déjà beaucoup d’onduleurs, c’est donc lui qu’on va configurer aujourd’hui, mais c’est le même principe qu’avec celui-là.
Toute la configuration se fait sur des fichiers appartenant au compte ROOT donc prudence, on lance l’éditeur de texte (je n’ai pas dit traitement de texte) depuis une console avec sudo
devant le nom de l’éditeur. Je vous montre une première fois avec l’éditeur Leafpad.
Éditez le fichier /etc/nut/ups.conf
sudo leafpad /etc/nut/ups.conf
eaton
, c’est l’identifiant que j’ai donné à mon onduleur. usbhid-ups
, c’est le nom du pilote de l’onduleur. Le port = auto
, c’est le port utilisé par l’onduleur, ici, comme c’est comme c’est de l’USB, on laisse en auto et on ajoute desc = "Eaton Protection Station 800"
, c’est la marque et le modèle de mon onduleur donc mettez celle et celui de votre onduleur.
Pour le choix du pilote de l’onduleur, voilà la liste des onduleurs supportés par NUT avec le nom des pilotes à utiliser.
Ajoutez ceci à la fin du fichier.
[eaton] driver = usbhid-ups port = auto desc = "Eaton Ellipse PRO 1600"
Avant de démarrer le service, on a un autre fichier à configurer, car le démon qui pilote a besoin de l’adresse IP du PC qui peut communiquer avec l’onduleur donc on va dire à UPSD quelles adresses il doit écouter pour le commander et donc pouvoir passer le pilote au démon. Pour passer les les adresses IP à UUPSD il faut donc les trouver, pour ça on va donc ouvrir un fichier en lecture seule (donc pas besoin de terminal ni de sudo) on ouvre le fichier /etc/hosts
ce qui pour moi me donne ça :
⋕ Host addresses
127.0.0.1 localhost
127.0.1.1 ignace-pc
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Donc :
Éditez le fichier /etc/nut/upsd.conf
On ajoute à la fin du fichier ces trois éléments qui composent une ligne, et on peut ajouter autant de ligne que nécessaire. Attention tout de même, on ne s’occupe pas des adresses en IPv6.
LISTEN : ÉCOUTEZ en anglais qui dit à UPSD d’écouter.
X.X.X.X : l’adresse IP qui doit être écoutée par UPSD.
YYYY : le port TCP/IP utilisé par UPSD pour écouter, 3493, est le port par défaut.
Ce qui donne ça pour mon fichier personnel :
LISTEN 127.0.0.1 3493
LISTEN 127.0.1.1
LISTEN localhost
LISTEN ignace-pc
Pour bien faire, on ajoute notre utilisateur au groupe nut, ne pas oublier -a
sinon ça nous ajoute au groupe nut mais ça enlèverait tous les autres. username, c’est ton nom d’utilisateur.
sudo usermod -a -G nut username
Voilà, il ne reste plus qu’à vous déconnecter et vous reconnecter et c’est bon.
Donc la configuration de NUT est faite, on active le service NUT par la commande suivante dans un terminal:
sudo systemctl enable nut-server.service
On peut donc maintenant lancer le service NUT toujours dans un terminal :
sudo systemctl start nut-server.service
Pour vérifier que ça fonctionne, j’utilise le terminal, mais sans sudo avec le programme upsc
espace puis vient l’identifiant de votre onduleur suivi d’un sans espace @ et toujours sans espace ce que vous avez déclaré dans le fichier /etc/nut/upsd.conf
, mais sans le port, la commande qui fonctionne chez mois est la suivante, commencez par la première ligne et si ça ne fonctionne pas, essayez la seconde ligne et ainsi de suite jusqu’à que vous trouviez le bon nom d’hôte ou la bonne adresse IP :
upsc eaton@localhost
Là, vous n’avez pas eu le temps de voir, mais il y est passé toutes les données collectées sur votre onduleur, je vous encourage à les regarder, c’est intéressant. On peut donc passer à la suite.
Configuration de KNutClient
Lancez KNutClient par la combinaison des touches Alt+F2, dans la fenêtre qui s’ouvre, tapez knutclient
et cliquez sur Lancer.
La fenêtre de KNutClient s’ouvre :

C’est bien gris tout ça, comme vous avez (avec la commande upsc) tout ce qu’il vous faut pour bien configurer KNutClient.
On y va, cliquez sur « Configurer KNutClient… ». Vous arrivez à cette fenêtre :

À gauche, vous avez le menu avec six icônes nommées sur le premier « Paramètres », vous ne devriez rien avoir à changer.
Passons au suivant :

Là, ça devient intéressant, ici on peut ajouter, enlever ou modifier un onduleur. Ici, j’ai déjà le mien qui a déjà été ajouté. Cliquez sur « Ajouter », vous avez la fenêtre de configuration des paramètres de l’onduleur :

Il reste plus qu’à configurer l’onduleur, vous lui donnez un nom.L’adresse, c’est le nom d’hôte ou l’IP de l’onduleur que vous avez trouvé avec la commande upsc
, le délai en ms, on y touche pas, le port, c’est bon aussi. Pour les variables, vous sélectionnez vos variables disponibles et les ajoutez une variable à la fois, vous en sélectionnez une et vous cliquez sur la flèche vers la droite pour la passer dans la colonne de droite. Dans les valeurs sélectionnées, vous pouvez faire varier l’ordre de chaque valeur avec les boutons vers le haut et vers le bas et l’on fait « ok » quand c’est fini. Voilà ce que donne ma configuration avec mon onduleur :

Maintenant, voyons les paramètres du panneau (sur l’interface principale, c’est le panneau à gauche), c’est explicite, vous cochez, vous cliquez sur « Appliquer » puis sur « OK » pour finir.

Le menu « Polices » donne la possibilité d’utiliser des polices de caractères personnalisées. Le menu « Analogique » donne la possibilité de modifier les couleurs des cadrans analogiques de l’interface. Maintenant, vous allez configurer le dock (c’est l’icône dans la zone d’état) :

Voilà l’interface principale de KNutClient une fois NUT et KNutClient configurées :

Voilà, ce tutoriel est terminé. Voici les liens des sites officiels pour des deux logiciels :
Network UPS Toolstools et KNutClient.
Problème
Il peut arriver que NUT ne démarre pas le pilote au démarrage de GNU/Linux.
Essayez d’éteindre le pilote et le service NUT et de démarrer le service NUT à nouveau comme ça :
sudo upsdrvctl stop
sudo systemctl stop nut-server.service
sudo systemctl start nut-server.service
Dans KNutClient, cliquez sur « Reconnexion ».
Si vous voyez les cadrans analogiques, vous pouver créer les fichiers suivant :
/etc/systemd/system/nut-driver.service.d/delay.conf
Mettez dedans :
[Service]
ExecStartPre=/bin/sleep 20
Et le suivant :
/etc/systemd/system/nut-driver.service.d/autorestart.conf
Mettez dedans :
[Unit]
StartLimitIntervalSec=240s
[Service]
RestartSec=5s
Restart=on-failure
Normalement, cela devrait régler le problème (vous aurez juste un temps d’attente de quelques secondes avant de voir les cadrans analogiques dans KNutClient).
Si le problème n’est pas résolu, vous devez lancer le pilote et nut manuellement après de démarrage du PC avec les commandes suivantes :
sudo upsdrvctl start
sudo systemctl start nut-server.service
Personnellement j’ai créé un script et un lanceur (qui utilise pkexec) pour effectuer la manœuvre graphiquement :
Dans votre répertoire bin
de votre répertoire personnel (si il n’existe pas, créez le), créez le script upsd-nut.sh
que vous remplissez avec ce qui suit :
#!/bin/bash
upsdrvctl start
systemctl start nut-server.service
Rendez le exécutable en faisant un clic droit « Propriétés » dessus, dans l’onglet « Permissions », cochez la case « Programme : ».
Maintenant, créez un lanceur avec le nom que vous voulez et la commande :
pkexec /home/UTILISATEUR/bin/upsd-nut.sh
Remplacez UTILISATEUR par votre nom d’utilisateur.
Maintenant, grâce à ce lanceur, une fois que vous avez démarré votre PC, vous cliquez sur le lanceur (ça vous demande votre mot de passe), attendez quelques secondes le temps que le pilote et NUT démarrent et vous n’a plus qu’à cliquer sur « Reconnexion » dans KNutClient et c’est bon.
Je n’ai pas trouvé mieux pour l’instant.