WOL sur Qualcomm Atheros QCA8171 sur Linux ne fonctionne pas

2

Je ne peux tout simplement pas faire de wake-on-lan travailler sur ma machine. Je suis nouveau sur Linux alors probablement il me manque quelque chose. Ci-dessous ma config. Toute entrée est grandement appréciée. Je vous remercie.

Ma configuration matérielle:

AsRock FM2A88X-ITX+
AMD A10-7800
Running Linux Mint 17.3 64bits

BIOS configured for wake-on-lan:
    Boot From Onboard LAN: Enabled
    PCIE Device Power On: Enabled

Ma configuration système:

$ uname -a
Linux home-server 3.19.0-32-generic #37~14.04.1-Ubuntu SMP Thu Oct 22 09:41:40 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


$ lspci -nnk | grep -i net -A2
01:00.0 Network controller [0280]: Qualcomm Atheros AR9462 Wireless Network 
Adapter [168c:0034] (rev 01)
        Subsystem: AzureWave Device [1a3b:2110]
        Kernel driver in use: ath9k
        03:00.0 Ethernet controller [0200]: Qualcomm Atheros QCA8171 Gigabit Ethernet [1969:10a1] (rev 10)
        Subsystem: ASRock Incorporation Device [1849:10a1]
        Kernel driver in use: alx


$ modinfo alx
filename:       /lib/modules/3.19.0-32-generic/kernel/drivers/net/ethernet/atheros/alx/alx.ko
license:        GPL
description:    Qualcomm Atheros(R) AR816x/AR817x PCI-E Ethernet Network Driver
author:         Qualcomm Corporation, <[email protected]>
author:         Johannes Berg <[email protected]>
srcversion:     1917D292620190CB7319BDE
alias:          pci:v00001969d000010A0sv*sd*bc*sc*i*
alias:          pci:v00001969d000010A1sv*sd*bc*sc*i*
alias:          pci:v00001969d00001090sv*sd*bc*sc*i*
alias:          pci:v00001969d0000E091sv*sd*bc*sc*i*
alias:          pci:v00001969d00001091sv*sd*bc*sc*i*
depends:        mdio
intree:         Y
vermagic:       3.19.0-32-generic SMP mod_unload modversions
signer:         Magrathea: Glacier signing key
sig_key:        0C:8B:EF:E0:C1:E2:89:E4:D8:99:09:26:11:7A:DA:3B:DF:EB:41:9C
sig_hashalgo:   sha512


$ sudo ethtool eth0
    Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: Unknown
    Current message level: 0x000060e4 (24804)
                           link ifup rx_err tx_err hw wol
    Link detected: yes


$ cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
PB21      S4    *disabled
PB22      S4    *disabled
PB31      S4    *disabled  pci:0000:00:03.1
PB32      S4    *disabled
PB33      S4    *disabled
PB34      S4    *disabled
SBAZ      S4    *disabled  pci:0000:00:14.2
ECIR      S4    *disabled
PS2K      S4    *disabled
PS2M      S4    *disabled
P0PC      S4    *disabled  pci:0000:00:14.4
OHC1      S4    *enabled   pci:0000:00:12.0
EHC1      S4    *enabled   pci:0000:00:12.2
OHC2      S4    *enabled   pci:0000:00:13.0
EHC2      S4    *enabled   pci:0000:00:13.2
OHC3      S4    *disabled
EHC3      S4    *disabled
OHC4      S4    *enabled   pci:0000:00:14.5
XHC0      S4    *enabled   pci:0000:00:10.0
XHC1      S4    *enabled   pci:0000:00:10.1
PE20      S4    *disabled  pci:0000:00:15.0
PE21      S4    *disabled
PE22      S4    *disabled
PE23      S4    *disabled


$ ifconfig
eth0      Link encap:Ethernet  HWaddr ------HAVE_DELETED_THAT_MYSELF-----
          inet addr:192.168.1.98  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::d250:99ff:fe85:92e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17749 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10035 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:22733189 (22.7 MB)  TX bytes:846896 (846.8 KB)
          Interrupt:16


$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback


$ sudo ethtool -s eth0 wol g
Cannot get current wake-on-lan settings: Operation not supported
  not setting wol

Informations complémentaires le 22 janvier 2016 après le @ MariusMatutiae bonnes entrées:

J'ai le dernier Noyau 3.19.8 et tar'ed que le pilote Atheros alx (je pouvais le faire après avoir suivi ces instructions ):

$ tar xf linux-3.19.8.tar.xz linux-3.19.8/drivers/net/ethernet/atheros/alx
$ cd linux-3.19.8/drivers/net/ethernet/atheros/alx
$ make -C /lib/modules/`uname -r`/build M=`pwd` modules
$ sudo cp /lib/modules/3.19.0-32-generic/kernel/drivers/net/ethernet/atheros/alx/alx.ko /lib/modules/3.19.0-32-generic/kernel/drivers/net/ethernet/atheros/alx/alx.ko.old
$ sudo cp alx.ko /lib/modules/3.19.0-32-generic/kernel/drivers/net/ethernet/atheros/alx/alx.ko
$ sudo reboot

Le pilote alx de ce noyau a les paramètres WOL de retour (la seule différence que j’ai constatée était l’absence de clé de signature sur le lecteur - comparez la sortie de mes 'modinfo alx' ci-dessus et celle ci-dessous), mais plus aucune chance! !! Je n'arrive toujours pas à faire fonctionner WOL sur ma machine. J'ai vérifié et revérifié tout dans la configuration de mon BIOS. Je peux même le réveiller en utilisant un clavier USB, mais pas via WOL.

$ sudo modinfo alx
filename:       /lib/modules/3.19.0-32-generic/kernel/drivers/net/ethernet/atheros/alx/alx.ko
license:        GPL
description:    Qualcomm Atheros(R) AR816x/AR817x PCI-E Ethernet Network     Driver
author:         Qualcomm Corporation, <[email protected]>
author:         Johannes Berg <[email protected]>
srcversion:     1917D292620190CB7319BDE
alias:          pci:v00001969d000010A0sv*sd*bc*sc*i*
alias:          pci:v00001969d000010A1sv*sd*bc*sc*i*
alias:          pci:v00001969d00001090sv*sd*bc*sc*i*
alias:          pci:v00001969d0000E091sv*sd*bc*sc*i*
alias:          pci:v00001969d00001091sv*sd*bc*sc*i*
depends:        mdio
vermagic:       3.19.0-32-generic SMP mod_unload modversions

Informations complémentaires le 30 janvier 2016

Toujours pas de chance. Je pouvais définir la fonctionnalité WoWLAN, mais aucun moyen pour que Linux puisse sortir du mode veille, veille prolongée ou en mode veille J'ai essayé de le réveiller via un routeur et d'autres ordinateurs de mon réseau local.

$ sudo iw phy0 wowlan enable magic-packet
$ sudo iw phy0 wowlan show
  WoWLAN is enabled:
   * wake up on magic packet

Celui qui m'aidera à obtenir ce travail obtiendra un paquet de 250 g du meilleur café brésilien :)

Italo Nesi
la source
Wake on LAN est géré par le micrologiciel et non par le système d'exploitation.
a CVn
Merci Michael, mais ce n'était pas vraiment ma question. Avez-vous une recommandation pour le faire fonctionner?
Italo Nesi
Quelle est la sortie de ethtool eth0, à présent?
MariusMatutiae
Salut Marius, merci encore. C'est toujours le même que ci-dessus. J'ai fait d'autres changements mais pas de chance pour le moment. Ce que j’ai fait, c’est d’installer le noyau complet 3.19.8, mais après avoir pris du plaisir avec mon lecteur de carte graphique et certaines applications qui ne fonctionnent pas, je suis revenu à la version 3.19.0. Je suppose que Linux Mint 17.3 est fourni avec 3.19.0 pour une raison. Le prix du café brésilien est toujours en hausse;)
Italo Nesi

Réponses:

5

Enfin quelques progrès, mais toujours pas assez. Comme je suis sur le noyau "3.19.0-32-generic", j'ai téléchargé le code source du lecteur alx depuis kernel.org et modifié les fichiers pour appliquer le cliquez ici pour le patch ) comme fortement conseillé par @MariusMatutiae, puis compilé et remplacé le pilote par le nouveau corrigé. Maintenant, je peux enfin voir "Prise en charge de Wake-on: pg" dans la sortie de la commande ethtool, mais je ne peux pas réveiller la machine (shutdown, hibernate, suspend). Avoir essayé avec mon routeur (à la fois avec la fonctionnalité aiCloud et le réveil sur LAN natif du routeur) et etherwake à partir d'une autre boîte de Linux. Je vais continuer à creuser, pour l'instant voir ci-dessous ce que j'ai fait. Une autre chose est qu'après le démarrage du pilote alx ne se charge pas, j'ai donc créé un script sur rc.local pour le charger. Je le fais probablement de la pire façon possible, mais je vais y arriver.

Télécharger le noyau (le même que j'utilise actuellement)

cd ~/Downloads
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.19.tar.gz

Décompressez les fichiers du pilote alx uniquement

tar xf linux-3.19.tar.gz linux-3.19/drivers/net/ethernet/atheros/alx

Allez dans le dossier avec le code source

cd linux-3.19/drivers/net/ethernet/atheros/alx

IMPORTANT : Ici, il est nécessaire de modifier les fichiers de code source d’alx https://bugzilla.kernel.org/attachment.cgi?id=156751&action=diff

Compiler

sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install

Supprimez le pilote alx (si vous êtes à distance / ssh, votre connexion sera interrompue et vous devrez vous connecter directement à la machine)

sudo rmmod alx

Réinsérez le pilote alx

sudo insmod alx.ko

Supprimer et copier le fichier alx.ko

sudo cp /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko.good
sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko
sudo cp alx.ko /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko

En ce moment, si vous essayez "ethtool -s eth0 wol pg", cela devrait fonctionner, mais cela ne durera pas tant que vous ne redémarrez pas. Je devais donc ajouter ce qui suit à mon fichier /etc/rc.local (veuillez noter le fichier créé 'alx.ko' que j'ai déplacé dans /Drivers/alx.ko):

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "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.
#
exec 2> /tmp/rc.local.log
exec 1>&2
set -x
####################################################
# Enable WOL on eth0 at start-up
rmmod alx
insmod /Drivers/alx.ko
rm /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko
cp /Drivers/alx.ko /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/atheros/alx/alx.ko
ethtool -s eth0 wol pg
iw phy0 wowlan enable magic-packet
# End
####################################################

exit 0
Italo Nesi
la source
1
Je suppose que j'étais trop fatigué hier soir. Ce qui précède fait l'affaire! Je peux réveiller la machine après Powerdown et Hibernate. Avec Suspend ne fonctionne pas, mais je suis heureux du résultat final.
Italo Nesi
Si je pouvais vous voter plusieurs fois, je le ferais. Cela fonctionne pour e2200 aussi.
harveyslash