답변:
내가 웹에서 찾은 최고의 지침 은 WOL을위한 XBMC 위키였습니다 . 간단히 말해서 (링크의 자세한 정보) :
sudo apt-get install ethtool
;sudo ethtool -s eth0 wol g
;테스트되지 않은; 위키 링크의 정보
휴면 모드 외에도 하드 디스크에 상태를 저장하고 서버를 완전히 종료하려는 경우 최대 절전 모드가 선택됩니다.
그래서 많은 사람들이 지적했듯이 대답은 WOL (Wake On Lan)입니다. 그것에 대한 많은 자습서가 있지만 주로 다음을 설정해야합니다.
서버는 한 시간 동안 활동이 없으면 시스템을 종료하기 위해 적절한 전원 관리 구성보다 더 많은 설정이 필요하지 않습니다 (시스템> 관리> 전원 관리에서 수행 할 수 있음).
분명히 시스템은 최대 절전 모드를 해제해야하며 몇 초가 걸릴 수 있으므로 WOL 패킷을 보낸 후 잠시 기다려야합니다.
행운을 빕니다
dd-wrt에 의존하지 않는 액세스 할 때 미디어 서버를 자동으로 깨울 수있는 솔루션을 원했습니다.
나는 라즈베리 파이를 가지고 있기 때문에 저전력이기 때문에 그것을 사용했고 항상 그것을 유지하는 것을 신경 쓰지 않습니다. 물론 모든 리눅스 머신에서 실행될 수 있습니다.
내가 찾은 마지막 해결책은 작은 bash 스크립트를 작성하는 것이 었습니다. 라즈베리 파이 의존성은 etherwake 및 tcpdump입니다. 둘 다 rasbian에 기본적으로 설치되지 않습니다. 또한 서버에서 다른 게시물에서 언급 한 것처럼 Wake On Lan을 활성화해야합니다.
sudo apt-get install etherwake
sudo apt-get install tcpdump
웨이크 스크립트는 다음과 같습니다.
nano ~/wol.sh
그때:
#!/bin/bash
pingInterval=60 #time interval, in seconds, between checks that the server is still awake.
target=192.168.x.x #WOL target ip address
targetMAC=00:11:22:33:44:55 #WOL target MAC
wake () {
tcpdump -i eth0 -c 1 -p host $target
etherwake $targetMAC
#echo WOL sent to $target at $targetMAC
return
}
while sleep $pingInterval; do
varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?`
if [ $varPing -eq 0 ]; then
#echo ping success
else
#echo ping fail
wake
fi
done
기본 아이디어는 내 raspberry-pi에서 실행되어 서버에 대한 단일 arp 요청이 감지되면 서버를 깨울 것입니다. 서버가 깨어 있으면 arp 요청을 수신하지 않고 매번 몇 개의 핑을 보낸 다음 여전히 깨어 있는지 확인하십시오.
파일 이름을 wol.sh로 지정하고 실행 파일로 만들었습니다. 그런 다음 sudo crontab에 넣어 @reboot를 루트로 시작하십시오. eth0 및 etherwake를 청취하려면 높은 액세스 권한이 필요한 tcpdump를위한 것입니다.
sudo chmod +x /home/pi/wol.sh
sudo crontab -e
이것을 바닥에 추가
@reboot sh /home/pi/wol.sh > /dev/null
Wake On Lan이 핵심이며 오늘날 거의 모든 카드가 모든 모드를 지원합니다 (linux :()는 아님).
가장 쉬운 솔루션은 Wake On Lan 모드를 지원하는 Linux 드라이버가 작동하는 카드입니다. pumbg
에서 ethtool
유니 캐스트 모드와 같은 것을 원합니다. 따라서 네트워크 주소에 액세스하자마자 컴퓨터가 시작됩니다. 그러나 Linux에서 지원하는 카드 목록을 얻는 것이 훨씬 어렵습니다. 내가 찾은 것은 Intel Gigabit Netzwerkadapter Pro / 1000 GT PCI입니다.
해결 방법은 모든 모드를 지원하지 않는 카드가있는 경우입니다. 거의 모든 Linux 드라이버는 g mode => magic packet을 지원합니다. 따라서 서버를 사용하기 전에 서버를 명시 적으로 켜야합니다.