LINUX.ORG.RU

PME-Enable и setpci


0

0

Подскажите, как установить флаг PME-Enable, выводимый по lspci -vv при помощи setpci?

Есть такая информация из pci-utils:
#define PCI_PM_CTRL 4 /* PM control and status register */
...
#define PCI_PM_CTRL_PME_ENABLE 0x0100 /* PME pin enable */
...
t = get_conf_word(d, where + PCI_PM_CTRL);
printf("\t\tStatus: D%d PME-Enable%c DSel=%d DScale=%d PME%c\n",
t & PCI_PM_CTRL_STATE_MASK,
FLAG(t, PCI_PM_CTRL_PME_ENABLE),
...

Я так понимаю, что нужно для выбранного устройства (setpci -d или -s) установить для регистра 4 значение 3 бита в 1. Не хочется повредить железку.

Это нужно, чтобы работал Wake-On-Lan на сетевом адаптере. После выключения из Windows он работает (там в настройках PME-Enable стоит в Enabled), после выключения из Linux - нет.

Установка через "ethtool -s eth0 wol g" не помогает (да и не должна, она всего лишь включает WOL на карте, но карта скажем так пока еще не имеет связи с матплатой, потому что PME-Enable выключен - lspci показывает PME-Enable-). В BIOS-е WOL для этой почти интегрированной сетевой платы включен (это Intel EtherExpress VE/100 на IBM T23). Даже если сбросить "ethtool -s eth0 wol d", а потом включить WOL "ethtool -s eth0 wol g", то все равно ничего не работает. Другие флаги для ethtool параметра wol эта сетевая не поддерживает (ущербная она, этакая недоделка от Intel, не ожидал, offload capabilities никаких нет вообще).

★★★★★

Не 3 бита, а 8 (если считать от 0).

saper ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.