Service de rétablissement wifi après sortie de veille

Bonjour,

j’ai configuré il y a quelques mois un vieux portable Debian 10 + Xfce, et je m’apprête à l’utiliser comme poste de travail. Je me suis rendu compte à cette occasion que :

  1. je ne comprends pas le système de connexion réseau sous xfce ;
  2. (c’est ce point sur lequel je demande de l’aide) après sortie de veille, la connexion wifi ne se rétablit pas.

Pour le point 1, j’en suis revenu à ifup après édition du fichier /etc/network/interfaces
Pour le point 2, je suis tombé sur cette propositon de mise en place d’un service. J’ai adapté en :

​[Unit]
Description=Local system resume actions
After=suspend.target

[Service]
Type=oneshot
ExecStart=/sbin/rmmod iwldvm ; /sbin/rmmod iwlwifi ; /sbin/modprobe iwlwifi

[Install]
WantedBy=suspend.target

Les trois instructions après ExecStart résolvent le problème lorsque je les exécute en ligne de commande. En revanche, je ne parviens pas à rendre le service disponible (afin d’automatiser le processus) :

# sudo systemctl enable retablir_wifi_apres_veille
Failed to enable unit: File retablir_wifi_apres_veille.service: Invalid argument

et :

# sudo systemd-analyze verify retablir_wifi_apres_veille.service
/usr/lib/systemd/system/./retablir_wifi_apres_veille.service:1: Assignment outside of section. Ignoring.
/usr/lib/systemd/system/./retablir_wifi_apres_veille.service:2: Assignment outside of section. Ignoring.
/usr/lib/systemd/system/./retablir_wifi_apres_veille.service:3: Assignment outside of section. Ignoring.

Je ne connais pas la syntaxe des services systemd, et après une recherche du message d’erreur, je ne parviens pas à détecter l’erreur de syntaxe. Une idée ?

Merci d’avance.

Pourquoi tu as mis une indentation ici ?

C’est dû à mon incapacité à mettre en forme correctement le code dans ce forum. J’ai enlevé l’indentation, qui ne figure pas dans mon fichier.

Et si tu essaies de remplacer cette ligne par ça :

ExecStart=/usr/bin/sh -c "/sbin/rmmod iwldvm ; /sbin/rmmod iwlwifi ; /sbin/modprobe iwlwifi"

Merci de la suggestion. J’obtiens les mêmes messages d’erreur. Il me semble que les trois messages renvoyés après la commande systemd-analyze verify laissent penser à des erreurs concernant trois affectations, et j’ai cru comprendre que les numéros 1,2,3 sont des numéros de ligne. Mais je ne vois pas pourquoi ils sont vus comme en-dehors d’une section, puisqu’il il y a une ligne [Unit].

Problème résolu en recopiant le code à la main. Tout provenait vraisemblablement du fait que j’ai eu la flemme de taper le code, et que l’encodage des caractères n’était pas cohérent entre source et but d’un copier/coller.

Il me resterait maintenant à comprendre pourquoi j’ai besoin d’écrire un code pour permettre de retrouver le wifi, mais pas le temps …

Oui, ou un truc du genre, des fois le copier-coller ne fonctionne pas et on ne sait pas trop.
Moi, ça m’arrive souvent avec les indentations, je me retrouve assez souvent à copier huit espaces au lieu d’une tabulation, Python n’aime pas du tout.

Bonjour

Il arrive parfois que des caractères espaces insécables, tabulation, ou/et autres caractères invisibles soient (par le moteur du site web concerné qui reformate le contenu des pages web à afficher) automatiquement ajoutés ou en remplacent d’autres dans les lignes de commandes qui sont proposées dans certaines pages web,
donc, toujours se méfier de ce que l’on copie/colle car ce que l’on voit dans une page web ne correspond pas toujours à ce que l’on espère y trouver.

Un bon truc, c’est de faire passer la ligne de commande(s) par un filtre qui en affichera les codes hexadécimaux correspondants,
comme par exemple :

michel@deb114x:~$ echo "la ligne de commande" | hd
00000000  6c 61 20 6c 69 67 6e 65  e2 80 af 64 65 20 63 6f  |la ligne...de co|
00000010  6d 6d 61 6e 64 65 0a                              |mmande.|
00000017
michel@deb114x:~$ 

Ci-dessus, le deuxième caractère espace de la ligne de commande n’en est pas un,
il s’agit d’un caractère espace fine insécable (<=> U+202F NARROW NO-BREAK SPACE)
qu’on retrouve dans le dump hexadécimal : e2 80 af
alors que la valeur hexadécimale d’un caractère espace est 20

Voir aussi : Unicode — Wikipédia

1 J'aime