Como faço para que o WakeOnLAN funcione quando meu controlador de rede usa o módulo sky2?

2

Eu tenho uma placa-mãe Aopen i945GMM-HL. Ele ainda funciona bem, e o BIOS está configurado para permitir que o WakeOnLAN ligue a máquina, mas desde uma atualização recente do SO, esses pacotes mágicos simplesmente não funcionam mais.

Aqui está a saída do lspci -v para o NIC:

03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 22)
    Subsystem: AOPEN Inc. Device 0607
    Flags: bus master, fast devsel, latency 0, IRQ 43
    Memory at fdefc000 (64-bit, non-prefetchable) [size=16K]
    I/O ports at ce00 [size=256]
    [virtual] Expansion ROM at fdd00000 [disabled] [size=128K]
    Capabilities: [48] Power Management version 2
    Capabilities: [50] Vital Product Data
    Capabilities: [5c] MSI: Enable+ Count=1/2 Maskable- 64bit+
    Capabilities: [e0] Express Legacy Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Kernel driver in use: sky2

executando ver. 3.4.6-1 do kernel.

    
por user123524 15.01.2013 / 22:05

2 respostas

1

As informações abaixo são do OP, já que ele não pode responder a sua própria pergunta por mais 7 horas.

A solução para esse problema foi bem simples. Aparentemente, quando o kernel que eu costumava usar foi criado, as opções de gerenciamento de energia nunca foram lidas do BIOS. Tudo isso mudou, mas alguns BIOS relatam seus dados incorretamente, resultando na quebra de alguns recursos de gerenciamento de energia para alguns usuários. Soluções alternativas foram postadas na lista de discussão do kernel do Linux como patches, mas foi decidido adicionar uma opção de módulo.

Se você está tendo dificuldade em fazer com que o wakeonlan trabalhe com o seu sistema, apesar do que o ethtool & amp; suas configurações de BIOS dizem, tente colocar isso em um arquivo .conf (por exemplo, sky2.conf) em /etc/modprobe.d/

options sky2 legacy_pme=1

Se você estiver descarregando o módulo sky2 para experimentá-lo com a opção legacy_pme, certifique-se de reativar o wakeonlan com

sudo ethtool -s eth0 wol g

antes de desligar o sistema

    
por tgm4883 15.01.2013 / 22:19
1

Eu queria compartilhar algumas informações - isso pode ajudar com seu problema do wakeonlan (WOL) com o dispositivo Marvell.

Eu tenho um dispositivo Shuttle com o Controlador Ethernet Gigabit PCI-E 88E8056 da Marvell Technology Group Ltd. (rev 12). Eu tenho executado o Ubuntu 10.04 LTS e XBMC, com o driver Sky2 v1.25. WOL funcionando muito bem nesta configuração.

Recentemente tive que atualizar para o 12.04 LTS como parte de outra história, e encontrar o problema do WOL não funciona mais com o Sky2 v1.30

O driver Sky2 falha devido ao tratamento de parâmetro de Y2_HW_WOL_ON e Y2_HW_WOL_OFF e o registrador grava durante a função sky2_wol_init .

Eu não sou de forma alguma um desenvolvedor Linux, mas usando uma combinação de comandos lspci e setpci , cheirei os registros no dispositivo Marvell que foram definidos pelo driver v1.25 e o driver v1.30 e agora defina o registrador manualmente com setpci ao executar o driver v1.30. Wakeonlan trabalha novamente com o driver 12.04 LTS e v1.30 sem recompilar!

O registrador (no meu sistema) está em 0x41 e precisa de sua configuração de valor para 0x80 . Meu chip Marvell está no barramento PCI em 02:00.0 , encontrado usando lspci .

Eu adicionei este comando no mesmo script de inicialização usado para executar a sequência ethtool:

setpci -s 02:00 41.b=80

Então, um hack desagradável, mas funciona bem. Eu consertaria o driver sky2.c se soubesse como construir um driver de kernel no meu sistema…

    
por Dave 23.03.2014 / 17:22