Как я получаю работу WakeOnLAN, когда мой сетевой контроллер использует sky2 модуль?

У меня есть материнская плата i945GMM-HL AOpen. Это все еще хорошо работает, и BIOS установлен позволить WakeOnLAN включать машину, но начиная с недавнего обновления ОС те волшебные пакеты просто не работают больше.

Вот вывод lspci-v для 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

выполнение ver. 3.4.6-1 из ядра.

2
задан 16 January 2013 в 01:05

2 ответа

Приведенная ниже информация получена от ОП, так как он не может ответить на свой вопрос еще 7 часов.

Решение этой проблемы было довольно простым. Видимо, когда было сделано ядро, которое я использовал, опции управления питанием никогда не читались из BIOS. Все это изменилось, но некоторые BIOS неправильно сообщают свои данные, что приводит к поломке некоторых функций управления питанием для некоторых пользователей. Обходные пути были опубликованы в списке рассылки ядра Linux в виде исправлений, но вместо этого было решено добавить опцию модуля.

Таким образом. Если вам трудно заставить wakeonlan работать с вашей системой, несмотря на то, что ethtool & amp; ваши настройки BIOS говорят, попробуйте поместить это в файл .conf (например, sky2.conf) в /etc/modprobe.d/

options sky2 legacy_pme=1

FYI, если выгрузите модуль sky2, чтобы попробовать его с опцией legacy_pme самостоятельно, обязательно включите wakeonlan с помощью

sudo ethtool -s eth0 wol g

перед выключением системы

0
ответ дан 16 January 2013 в 01:05

Я хотел поделиться некоторой информацией - это может помочь с вашей проблемой wakeonlan (WOL) с устройством Marvell.

У меня есть устройство Shuttle с Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (версия 12). Я использовал Ubuntu 10.04 LTS и XBMC с драйвером Sky2 v1.25. WOL работает нормально в этой настройке.

Недавно мне пришлось обновить систему до 12.04 LTS как часть другой истории и столкнуться с проблемой WOL, которая больше не работает со Sky2 v1.30

Сбой драйвера Sky2 из-за обработки параметров [ 111] и Y2_HW_WOL_OFF и регистр записывает, во время функции sky2_wol_init.

Я ни в коем случае не разработчик Linux, но, используя комбинацию команд lspci и setpci, я обнаружил регистры в устройстве Marvell, которые были установлены драйвером v1.25 и драйвером v1.30 и теперь установите регистр вручную с помощью setpci при запуске драйвера v1.30. Wakeonlan снова работает с драйвером 12.04 LTS и v1.30 без какой-либо перекомпиляции!

Регистр (в моей системе) имеет значение 0x41, и его значение должно быть установлено на 0x80. Мой чип Marvell находится на шине PCI в 02:00.0, найден с использованием lspci.

Я добавил эту команду в тот же сценарий запуска, который использовался для запуска последовательности ethtool:

setpci -s 02:00 41.b=80

Итак, неприятный хак, но работает нормально. Я бы исправил драйвер sky2.c, если бы знал, как собрать драйвер ядра в моей системе…

0
ответ дан 16 January 2013 в 01:05

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

Похожие вопросы: