Wake on LAN работает в Windows, но не в Ubuntu 16.04 [дубликат]

На этот вопрос уже есть ответ здесь:

У меня работает сервер 16.04, и я настроил Wake On Lan через

{ethtool - s <NIC> wol g}

и

{auto <NIC>
iface <NIC> inet dhcp
up ethtool -s <NIC> wol g}

в / etc / network / interfaces .

Я использую rtcwake -m mem для тестирования, но не могу запустить сервер. Я использовал ngrep, чтобы контролировать получение сервером волшебного пакета, и я попытался установить Windows на сервере, чтобы убедиться, что оборудование поддерживает WOL.

Другие сообщают, что они могут обойти эту проблему, выключив устройство с помощью кнопки питания, но здесь это не имеет никакого эффекта.

Что мне не хватает?

0
задан 18 July 2019 в 06:53

1 ответ

Я нашел решение

Проблема возникает из-за ошибки в драйвере sky2 NIC, который, по-видимому, был около нескольких лет.

Это может быть решено с помощью setpci метода, описанного в комментарии к этой статье:

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

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

Драйвер Sky2 перестал работать из-за обработки параметра Y2_HW_WOL_ON и 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 драйвер, если бы я знал, как создать драйвер ядра в моей системе …

Это работало даже при том, что у меня нет того же контроллера как плакат.

1
ответ дан 23 October 2019 в 23:34

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

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