远程开机的原理是通过电脑上wol(wake on lan)功能实现,前提是需要电脑主板和网卡支持wol功能。
在电脑上的设置
设置BIOS
BIOS中的Wake On Lan功能为了安全,一般默认处于关闭状态,需要我们手动进入BIOS去开启。开机时,点击的del键进入BIOS,一般在BIOS->Power Management->Wake On Lan下,开启wake on lan功能。
具体的设置路径,不同厂家的主板设置路径不同,需要依赖具体主板型号来定。
设置网卡
在BIOS中设置完成,还需要对网卡进行设置,开启网卡的wol功能。linux和windows系统的设置方法不同,下面分开来说。
ubuntu系统
首先,安装ethtool工具。
sudo apt-get install ethtool
通过ifconfig命令查看当前的网卡名。
输入以下命令查看网卡是否开启了wol。
sudo ethtool eth0 #eth0要替换成自己的网卡名
可以看到有一行:
Supports Wake-on: pumbg
Wake-on: g
如果wake-on处于off状态,需要手动开启:
ethtool -s eth0 wol g #eth0要替换成自己的网卡名
windows系统
首先,打开设备管理器,网卡设置,确认允许此设备唤醒计算机。
确认关机网络唤醒和魔术封包唤醒都在开启状态。
关闭快速开机选项。
在树莓派上的设置
在树莓派上安装工具etherwake
sudo apt install etherwake
查看树莓派当前网卡名,比如我的树莓派是通过wifi上网的,默认的网卡名wlan0.也可以通过ifconfig命令查看
ifconfig
远程开机
在树莓派终端输入命令格式如下:
sudo etherwake -i 网卡名 要开机电脑的MAC地址
如:
sudo etherwake -i wlan0 11:22:33:44:55:66