[Résolu] Problème WakeOnLan openmediavault

Bonjour à tous,
J’ai installé un serveur NAS sous openmediavault, j’ai activé le WakeOnLan dans les paramètres d’openmedaivault et j’ai configuré l’application WakeMeOnLan.exe qui me détecte bien le NAS.
J’ai également activé le WOL dans le BIOS du NAS. Lorsque je tape la commande “sudo ethtool eth0” j’ai la ligne “wake-on : d” ce qui signifie que la carte réseau n’est pas configurée. Je tape donc la commande “sudo ethtool -s eth0 wol g” et là quand je retape “sudo ethtool eth0” j’ai bien la ligne “wake-on : g”.
Cependant lorsque j’éteins le NAS la carte réseau revient forcément sur “wake-on : d”. J’ai vu sur plusieurs sites que linux remettait à zéro la configuration lors de l’extinction et que pour pallier à ce problème il fallait rajouter la ligne “ethtool -s eth0 wol g” avant “exit 0” dans le fichier “/etc/rc.local”, ce que j’ai fais également. Mais lors du redémarrage je me retrouve encore et toujours avec “wake-on : d” et donc impossible d’utiliser le WakeOnLan.

Merci d’avance pour vos réponses.

Salut,

Si ta distro Debian est sous systemd, il faut probablement activer le service rc-local.service, qui ne l’est pas par défaut :

sudo systemctl enable rc-local.service

Après un redémarrage, ce service devrait se lancer automatiquement.
Tes autres manips me semblent correctes, tu devrais obtenir la valeur “g” dans la commande “sudo ethtool eth0”.

A+

Merci pour ta réponse :). J’ai tapé la commande “sudo systemctl enable rc-local.service” et j’ai ce message et là je suis bloqué :/. toujours la valeur “d” mdr
The unit files have no [Install] section. They are not meant to be enabled
using systemctl.
Possible reasons for having this kind of units are:

  1. A unit may be statically enabled by being symlinked from another unit’s
    .wants/ or .requires/ directory.
  2. A unit’s purpose may be to act as a helper for some other unit which has
    a requirement dependency on it.
  3. A unit may be started when needed via activation (socket, path, timer,
    D-Bus, udev, scripted systemctl call, …).

Salut,

S’il y a lieu, ça pourrait signifier que ce service était déjà activé. Pour vérifier, passe la commande:
systemctl status rc-local.service

Peut-être vérifier dans le BIOS de ton ordi s’il n’y aurait pas aussi quelque chose à activer concernant le WOL ?

Désolé, mes maigres connaissances en ce domaine ne me permettent pas de t’aider davantage, tu devras attendre le passage d’un membre plus expérimenté que moi en ce domaine.

A+

Voilà j’ai tapé ce que tu m’as dit et je tombe sur ça :
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static)
Active: inactive (dead)

Faut dire que j’aime pas trop le mot (dead) lol

Edit: Le BIOS de mon ordi est bien configuré pour le WOL. Le WOL fonctionne lorsque je mets le NAS en mode “standby” car il ne s’éteint pas complètement. Mais lorsque je l’éteint il repasse en wake-on : d

Salut,

Y aurait-il quelque chose à activer dans le bios de ton ordi concernant le WOL ?

Par exemple sur ma machine en Debian testing avec le service rc-local activé, j’obtiens :

  yvan@yvan-maison:~$ systemctl status rc-local.service
● rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/lib/systemd/system/rc-local.service; enabled-runtime; vendor preset: enabled)
  Drop-In: /lib/systemd/system/rc-local.service.d
           └─debian.conf
   Active: active (exited) since Fri 2018-03-02 05:25:27 EST; 3h 2min ago
     Docs: man:systemd-rc-local-generator(8)
    Tasks: 0 (limit: 4705)
   CGroup: /system.slice/rc-local.service

mar 02 05:25:27 yvan-maison systemd[1]: Starting /etc/rc.local Compatibility...
mar 02 05:25:27 yvan-maison systemd[1]: Started /etc/rc.local Compatibility.
yvan@yvan-maison:~$

Encore désolé de ne pouvoir te dépanner plus adéquatement…

C’est déjà super sympa de consacrer de ton temps :). Et en ce qui concerne le BIOS je l’ai bien configuré avec l’option WOL enable

Salut,

Peut-être une dernière chose à vérifier: Pour voir si le service rc-local se lance bien au démarrage de ta session, faire :

systemd-analyze blame | grep rc-local

… si le retour est vide, c’est que le service ne s’est pas lancé à l’ouverture de ta session pour une raison quelconque.

Chez-moi :

    yvan@yvan-maison:~$ systemd-analyze blame | grep rc-local
       380ms rc-local.service
    yvan@yvan-maison:~$

je n’ai aucun retour :/.

Est-ce que le fichier rc-local.service existe sur ton système ?

sudo find / -type f -name rc-local.service

…pour vérifier.

Peut-être tenter :

 sudo /etc/rc.local start

…histoire de voir quel genre de retour tu obtiens, sinon je sèche et une autre solution serait peut-être de créer un script exécutable se lancant au démarrage de ta session qui contiendrait la commande :

ethtool -s eth0 wol g

sur la première commande j’ai ça qui revient :
sudo find / -type f -name rc-local.service
/lib/systemd/system/rc-local.service

donc d’après ce que je comprends il existe vraiment mdr.
ensuite la seconde commande que tu m’as donné ne me fais aucun retour.

En ce qui concerne le script au démarrage j’ai essayé de faire mais je ne comprends rien aux tutos trouvé sur le net lol si jamais tu sais faire et que tu peux m’expliquer étape par étape je suis preneur.

Edit: Après j’ai peut-être mal modifié le fichier rc.local :/.

Salut,

Tu pourrais poster le contenu de ton fichier /etc/rc.local

Il semble que ton service rc-local ne se lance pas au démarrage pour une raison qui m’échappe. Il faudrait qu’un(e) intervenant(e) plus qualifié(e) se penche sur ton problème.

À tout hasard, tu pourrais tenter ces trois commandes en cascade pour voir si ça améliorerait les choses :

sudo systemctl unmask rc-local.service
sudo systemctl enable rc-local.service
sudo systemdtl start rc-local.service 

…mais je n’y crois pas vraiment.

Quant au script à lancer au démarrage, je ne saurais pas le faire sans beaucoup de tâtonnements…

A+

Je pense à quelque chose : Est-ce que ton fichier /etc/rc.local est exécutable ?
Chez-moi :

yvan@yvan-maison:~$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 433 jan 13  2016 /etc/rc.local
yvan@yvan-maison:~$ 

Si tu n’as pas les valeurs “x” dans le retour, alors pour rendre ce fichier exécutable :

sudo chmod +x /etc/rc.local

Peut-être aussi voir cette discussion, si l’anglais ne te rebute pas trop :

https://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd

Je te montre le contenu de mon fichier rc-local.service, à titre d’indication :

yvan@yvan-maison:~$ cat /lib/systemd/system/rc-local.service
#  SPDX-License-Identifier: LGPL-2.1+
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
yvan@yvan-maison:~$ 

A+

alors j’ai fais les 3 lignes de commandes la seconde me fait toujours le même message d’erreur :/. J’ai lancé la commande pour rendre le script exécutable et toujours pareil lors du reboot. Je te mets également mon rc-localservice et mon rc.local pour voir si tu trouve le problème mdr :D.

rc-local.service:

This file is part of systemd.

systemd is free software; you can redistribute it and/or modify it

under the terms of the GNU Lesser General Public License as published by

the Free Software Foundation; either version 2.1 of the License, or

(at your option) any later version.

This unit gets pulled automatically into multi-user.target by

systemd-rc-local-generator if /etc/rc.local is executable.

[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
SysVStartPriority=99

mon rc.local:
#!/bin/sh -e

rc.local

This script is executed at the end of each multiuser runlevel.

Make sure that the script will “ethtool -s eth0 wol g exit 0” on success or any other

value on error.

In order to enable or disable this script just change the execution

bits.

By default this script does nothing.ethtool -s eth0 wol g exit 0

Il me semble voir un problème dans ton fichier /etc/rc.local.
Dans ton retour à la fin du fichier:

By default this script does nothing.ethtool -s eth0 wol g exit 0

…alors qu’il faudrait y voir :

#By default this script does nothing.
ethtool -s eth0 wol g
exit 0

…sur des lignes séparées.

Redémarre après avoir modifié en conséquence /etc/rc.local et t’être assuré que le fichier est exécutable.

Ajout:
Pour fin d’exemple, je poste les dernières lignes de mon fichier /etc/rc.local, auquel tu peux voir trois commandes ajoutées par moi :

# By default this script does nothing.

for tty in /dev/tty[0-9]*; do setleds -D +num <$tty; done

rfcomm bind 0 00:05:4F:00:19:C3 1
rfcomm bind 1 10:C6:FC:26:5B:EF 1
exit 0

Tu es mon dieu :). “Wake-on : g” après reboot et donc accès au WOL. En fait j’avais modifier le fichier avec bloc note windows lol du coup tout sur une même ligne :/. J’ai utilisé un éditeur de script et je pouvais le voir comme il fallait.
Je te remercie énormément pour ton aide passe une bonne soirée :).

Salut,

Super !!!

Bonne continuation sous Debian.

A+