wip
This commit is contained in:
40
tools/setup-wakeonlan.sh
Executable file
40
tools/setup-wakeonlan.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
print() {
|
||||
echo -e "$*"
|
||||
}
|
||||
|
||||
state() {
|
||||
sudo ethtool "$iface" | grep -E '^\s+Wake-on:\s\w+' | awk '{print $2}'
|
||||
}
|
||||
|
||||
[ "$1" ] && iface="$1" || iface=enp3s0
|
||||
|
||||
[ -f "/sys/class/net/$iface/address" ] && mac=$(cat "/sys/class/net/$iface/address") || mac=''
|
||||
[ -z "$mac" ] && {
|
||||
print "Wrong interface! $iface" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
state=$(state)
|
||||
|
||||
print "Interface\t: $iface"
|
||||
print "MAC-address\t: $mac"
|
||||
print "WoL state\t: $state"
|
||||
|
||||
if [ $state == 'd' ]; then
|
||||
sudo ethtool -s "$iface" wol gu || true
|
||||
sudo mkdir -p /etc/networkd-dispatcher/configuring.d
|
||||
sudo tee /etc/networkd-dispatcher/configuring.d/wol <<EOF >/dev/null
|
||||
#!/usr/bin/env bash
|
||||
|
||||
ethtool -s $iface wol gu || true
|
||||
EOF
|
||||
sudo chmod 755 /etc/networkd-dispatcher/configuring.d/wol
|
||||
print "* New WOL state\t: $(state)"
|
||||
fi
|
||||
|
||||
print "\nTo wake up this device run this command from another one:\n"
|
||||
print "\twakeonlan -p 8 $mac\n"
|
||||
print "\twol $mac\n"
|
||||
|
||||
Reference in New Issue
Block a user