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을 사용하여 서버가 매직 패킷을 수신하도록 제어했으며 하드웨어가 WOL을 지원하는지 확인하기 위해 서버에 Windows를 설치하려고했습니다.
다른 사람들은 전원 버튼으로 종료하여이 문제를 우회 할 수 있다고보고했지만 여기에서는 아무런 효과가 없습니다.
내가 무엇을 놓치고 있습니까?
해결책을 찾았습니다
문제는 분명히 몇 년 동안 있었던 sky2 NIC 드라이버의 오류로 인해 발생합니다.
이 기사 의 주석에 설명 된 setpci 방법을 사용하여 해결할 수 있습니다 .
Marvell Technology Group Ltd. 88E8056 PCI-E 기가비트 이더넷 컨트롤러 (개정판 12)가있는 셔틀 장치가 있습니다. Sky2 드라이버 v1.25와 함께 Ubuntu 10.04 LTS 및 XBMC를 실행하고 있습니다. 이 설정에서 WOL이 잘 실행됩니다.
최근에 다른 이야기의 일부로 12.04 LTS로 업그레이드해야했으며 Sky2 v1.30에서 더 이상 작동하지 않는 WOL 문제가 발생했습니다.
Sky2 드라이버는 sky2_wol_init 함수 중에 Y2_HW_WOL_ON 및 Y2_HW_WOL_OFF의 매개 변수 처리 및 레지스터 쓰기 때문에 실패합니다.
나는 결코 Linux 개발자가 아니지만
lspci
,setpci
명령을 조합하여 사용 하여 드라이버 v1.25 및 드라이버 v1.30에 의해 설정된 Marvell 장치의 레지스터를 스니핑하고 이제 setpci를 사용하여 수동으로 레지스터를 설정했습니다. v1.30 드라이버를 실행할 때. Wakeonlan은 다시 컴파일하지 않고 12.04 LTS 및 v1.30 드라이버와 함께 다시 작동합니다!내 시스템의 레지스터는 0x41이고 값을 0x80으로 설정해야합니다. 내 Marvell 칩은 02 : 00.0에 PCI 버스에 있으며
lspci
.ethtool 시퀀스를 실행하는 데 사용 된 동일한 시작 스크립트에이 명령을 추가했습니다.
setpci -s 02:00 41.b=80
따라서 불쾌한 해킹이지만 잘 작동합니다. 시스템에 커널 드라이버를 빌드하는 방법을 알고 있다면 sky2.c 드라이버를 고칠 것입니다.
포스터와 같은 컨트롤러가 없어도 작동했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다