Проблемы Wake-On-LAN 13.04

Я несколько недель пытался заставить WOL работать на моем сервере Ubuntu 13.04, но, похоже, он не работает.

Я замечаю, что когда я приостанавливаю сервер с помощью "sudo pm-suspend" или через графический интерфейс рабочего стола, карта NIC выключается. Т.е. на сетевом порту нет мигающих огней. Я не знаю, в этом ли проблема, но в моем /var/log/syslogЯ также увидел, что мой Ethernet не был одним из PCI, в котором было включено "активация системы с помощью ACPI":

    Oct  2 16:46:10 JAMFS1 kernel: [26462.745615] PM: suspend of devices complete after 519.955 msecs
    Oct  2 16:46:10 JAMFS1 kernel: [26462.745743] PM: late suspend of devices complete after 0.126 msecs
    Oct  2 16:46:10 JAMFS1 kernel: [26462.745953] ehci-pci 0000:00:1d.0: System wakeup enabled by ACPI
    Oct  2 16:46:10 JAMFS1 kernel: [26462.761576] ehci-pci 0000:00:1a.0: System wakeup enabled by ACPI
    Oct  2 16:46:10 JAMFS1 kernel: [26462.793491] xhci_hcd 0000:00:14.0: System wakeup enabled by ACPI
    Oct  2 16:46:10 JAMFS1 kernel: [26462.809491] PM: noirq suspend of devices complete after 63.784 msecs
    Oct  2 16:46:10 JAMFS1 kernel: [26462.809695] ACPI: Preparing to enter system sleep state S3
.......
    Oct  2 16:46:10 JAMFS1 kernel: [26463.464575] ACPI: Waking up from system sleep state S3
    Oct  2 16:46:10 JAMFS1 kernel: [26463.510511] xhci_hcd 0000:00:14.0: System wakeup disabled by ACPI
    Oct  2 16:46:10 JAMFS1 kernel: [26463.542498] ehci-pci 0000:00:1a.0: System wakeup disabled by ACPI
    Oct  2 16:46:10 JAMFS1 kernel: [26463.574474] ehci-pci 0000:00:1d.0: System wakeup disabled by ACPI
    Oct  2 16:46:10 JAMFS1 kernel: [26463.590562] PM: noirq resume of devices complete after 125.527 msecs
    Oct  2 16:46:10 JAMFS1 kernel: [26463.590650] PM: early resume of devices complete after 0.071 msecs

Но согласно "cat /proc/acpi/wakeup" моя сетевая карта должна быть включена:

Device  S-state   Status   Sysfs node
USB1      S3    *disabled
RP01      S4    *enabled   pci:0000:00:1c.0
RP03      S4    *enabled   pci:0000:00:1c.2
GLAN      S4    *disabled
EHC1      S4    *enabled   pci:0000:00:1d.0
EHC2      S4    *enabled   pci:0000:00:1a.0
XHC       S4    *enabled   pci:0000:00:14.0
HDEF      S4    *enabled   pci:0000:00:1b.0
PEG0      S4    *disabled
PEGP      S4    *disabled

Из моего "lspci -tv" вы можете видеть, что "pci:0000:00:1c.2" - это сетевая карта Atheros:

       +-14.0  Intel Corporation Lynx Point USB xHCI Host Controller
       +-16.0  Intel Corporation Lynx Point MEI Controller #1
       +-1a.0  Intel Corporation Lynx Point USB Enhanced Host Controller #2
       +-1b.0  Intel Corporation Lynx Point High Definition Audio Controller
       +-1c.0-[01]--
       +-1c.2-[02]----00.0  Qualcomm Atheros QCA8171 Gigabit Ethernet
       +-1d.0  Intel Corporation Lynx Point USB Enhanced Host Controller #1
       +-1f.0  Intel Corporation Lynx Point LPC Controller

Я тоже поставил /sys/class/net/p2p1/device/power/wakeup на "включен". Как и побежал sudo ethtool -s p2p1 wol g и вставил это в мой /etc/rc.local

Я включил эквивалентный пробуждение по LAN/PCI в моем ASRock Bios.

ethtool p2p1 (p2p1 - это мое имя Qualcomm Atheros QCA8171 Gigabit Ethernet) показывает это:

Supports Wake-on: pg
Wake-on: g

Так что мне делать?? Я следовал за каждым гидом и предложением, которое я нашел. Как вы думаете, это проблема с драйверами? Есть ли способ обновить драйвер Atheros? Кто-нибудь смог разбудить по локальной сети, если на карте NIC нет мигающих огней? Когда система работала, я использовал wireshark и смог обнаружить WOL-пакеты, отправленные с моего локального dd-wrt с помощью команды /usr/sbin/wol -i 192.168.1.254 -v bc:5f:f4:be:38:e4 -p 9, Я также был в состоянии получить пакеты от машины Windows с генератором WOL. У любого есть какие-либо предложения, так как у меня просто нет идей... Заранее спасибо за чтение.

Наконец, мой lspci -vv как таковой, если это помогает кому-либо:

02:00.0 Ethernet controller: Qualcomm Atheros QCA8171 Gigabit Ethernet (rev 10)
        Subsystem: ASRock Incorporation Device 10a1
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 18
        Region 0: Memory at f0400000 (64-bit, non-prefetchable) [size=256K]
        Region 2: I/O ports at e000 [size=128]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [58] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 4096 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag- AttnBtn+ AttnInd+ PwrInd+ RBE+ FLReset-
                DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
                        ClockPM+ Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        Capabilities: [c0] MSI: Enable- Count=1/16 Maskable+ 64bit+
                Address: 0000000000000000  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [d8] MSI-X: Enable+ Count=16 Masked-
                Vector table: BAR=0 offset=00002000
                PBA: BAR=0 offset=00003000
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 14, GenCap+ CGenEn- ChkCap+ ChkEn-
        Capabilities: [180 v1] Device Serial Number ff-be-38-f4-bc-ef-f4-df
        Kernel driver in use: alx

1 ответ

Итак, поигравшись еще немного, я обнаружил, что когда я впадаю в Ubuntu через

sudo pm-hibernate

огни NIC остаются включенными, и я могу WOL. Тем не менее, это не очень хорошо для меня, так как у меня есть шифрование LVM, поэтому оно требует ввода пароля на месте, и я не могу сделать это через удаленный вход. При сравнении режимов гибернации и приостановки я заметил, что в режиме ожидания

/usr/lib/pm-utils/sleep.d/50unload_alx

у него есть строка:

'modunload alx'

я обнаружил, что это разгрузка драйверов для сетевого адаптера Atheros. Комментируя это, трюк и свет остались, когда я приостановил, и теперь я могу WOL.

ОДНАКО, я обнаружил, что причина для modunload alx связана с ошибкой, которая препятствует правильной приостановке работы машины, следовательно, она, вероятно, была добавлена.

Итак, новая ситуация, в которой я сейчас нахожусь, заключается в том, что я могу WOL от приостановки, но не могу приостановить машину после первого раза. Интересно, что гибернация работает нормально, а WOL от гибернации работает каждый раз.

Я просто не могу приостановить и WOL и повторять снова и снова. Первый приостановить работает с

sudo pm-suspend

но после этого этого уже нет.

ОДНАКО, я обнаружил, что я могу нормально приостановить через рабочий стол (а затем WOL), что я нахожу странным....

Итак, новый вопрос (возможно, мне следует создать новую тему):

В чем разница между

sudo pm-suspend

против приостановки через рабочий стол??

Кроме того, если я делаю

sudo pm-suspend-hybrid

Это приостанавливает, и я также могу WOL. Если я установлю таймер на рабочем столе, чтобы приостановить через XX минут, он также приостанавливается нормально, и я могу WOL.

Так в чем же разница между всеми этими процедурами и тем, что делает sudo pm-suspend?

Другие вопросы по тегам