Jawaban:
Saya telah menemukan cara yang lebih baik untuk saya. Setidaknya dengan cara yang lebih bersih. Rupanya Ubuntu berubah menjadi pemula untuk systemd , di Ubuntu 15.04, Ubuntu 16.04 dan mungkin juga versi berikutnya. Saya baru di kedua sistem tetapi ini bekerja untuk saya.
Saya memposting ini karena saat googling Ubuntu 16 wol dan pencarian serupa lainnya saya menemukan posting ini beberapa kali. Ini bisa membantu orang lain.
Agar WOL tetap berfungsi, saya harus mengaktifkannya kembali setiap kali sistem boot. Untuk menghindari melakukan ini secara manual saya menggunakan systemd untuk tujuan ini. Inilah yang saya lakukan:
Pertama, buat file /etc/systemd/system/wol@.service
(simpan simbol @). Taruh ini di dalamnya:
[Unit]
Description=Wake-on-LAN for %i
Requires=network.target
After=network.target
[Service]
ExecStart=/sbin/ethtool -s %i wol g
Type=oneshot
[Install]
WantedBy=multi-user.target
Aktifkan ini untuk antarmuka saat boot, jalankan perintah berikut (ubah eth3 dengan antarmuka Anda):
systemctl enable wol@eth3
Anda harus melihat sesuatu seperti ini:
Created symlink from /etc/systemd/system/multi-user.target.wants/wol@eth3.service to /etc/systemd/system/wol@.service.
Untuk memeriksa apakah itu diaktifkan, jalankan perintah berikut (ubah eth3 dengan antarmuka Anda) dan harus kembali enabled
:
systemctl is-enabled wol@eth3
Untuk menguji ini, reboot dan jalankan (ubah eth3 dengan antarmuka Anda):
ethtool eth3
Anda harus melihat garis dengan yang berikut:
Wake-on: g
Sumber:
pemula:
Upstart adalah pengganti berbasis-event untuk daemon / sbin / init yang menangani permulaan tugas dan layanan saat boot, menghentikannya saat shutdown dan mengawasi mereka saat sistem sedang berjalan.
- pemula - daemon init berbasis acara
systemd:
systemd adalah paket blok bangunan dasar untuk sistem Linux. Ini menyediakan manajer sistem dan layanan yang berjalan sebagai PID 1 dan memulai sisa sistem. (...)
- systemd
Di Ubuntu 16.04 set WOL_DISABLE=N
di /etc/default/tlp
untuk menghindari WOL dinonaktifkan oleh manajemen daya TLP.
http://linrunner.de/en/tlp/docs/tlp-configuration.html
Menambahkan NETDOWN=no
dalam /etc/default/halt
untuk mencegah mematikan kartu jaringan selama shutdown
Aktifkan Wake on LAN /etc/network/interfaces
ketika konfigurasi jaringan statis digunakan.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
up ethtool -s eth0 wol g
Aktifkan wake on lan di BIOS, masuk ke pengaturan BIOS dan cari sesuatu yang disebut "Wake up on PCI event", "Wake up on LAN" atau yang serupa. Ubahlah agar diaktifkan. Simpan pengaturan Anda dan reboot.
https://help.ubuntu.com/community/WakeOnLan
Peringatan beberapa motherboard / pengontrol jaringan tidak mendukung WOL dari cold boot (kondisi S5, di mana daya ke sistem dimatikan dan dihidupkan kembali secara fisik). Dalam hal ini, setidaknya satu siklus daya (power up, shutdown) harus dilakukan. Untuk mengurangi masalah, BIOS dapat dikonfigurasi untuk menyala ketika AC dipulihkan dan menjadwalkan penghentian di dalam Ubuntu sesudahnya. Lihat manual motherboard untuk detail lebih lanjut.
WOL_DISABLE=N
dan NETDOWN=no
harus menjadi bagian dari help.ubuntu.com/community/WakeOnLan
Jalankan yang berikut ini di terminal:
sudo ethtool -s {your network interface} wol g
sudo ethtool {your network interface}
Anda akan melihat g di samping untuk bangun pada lan setelah menulis perintah kedua
Agar WOL berfungsi, pastikan antarmuka ethernet Anda dimatikan dengan benar oleh sistem saat dimatikan.
Coba yang berikut ini:
Buat skrip bash bernama wol_poweroff.sh di direktori /etc/rc6.d/ :
sudo nano /etc/rc6.d/wol_poweroff.sh
Masukkan kode ini di dalamnya:
#!/bin/bash
ifconfig eth0 down
poweroff
Salin ke direktori /etc/rc0.d (jadi ini juga berfungsi dengan berhenti ):
sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
Jadikan keduanya dapat dieksekusi:
sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
Sekarang uji untuk melihat apakah itu bekerja dengan mematikan mesin Anda dengan sudo shutdown now
atau sudo poweroff
dan menggunakan alat WOL untuk mengirim paket ajaib ke sana.
Itulah satu-satunya hal yang berhasil untuk saya. Saya menemukan langkah-langkah itu di laporan bug di launchpad.net.
Menurut penulis, Robbie Williamson, ini bekerja karena hal berikut:
Agar WOL berfungsi, antarmuka ethernet harus diturunkan dengan benar sebagai bagian dari penutupan sistem. Ini harus dilakukan sebagai bagian dari run level rc0 dan rc6, mencatat bahwa Linux biasanya memiliki 7 level run yang berbeda (atau mode operasi):
rc0.d - Sistem Dihentikan
rc1.d - Mode Pengguna Tunggal
rc2.d - Mode Pengguna Tunggal dengan Jaringan
rc3.d - Mode Multi-Pengguna - boot dalam mode teks
rc4.d - Belum Didefinisikan
rc5.d - Mode Multi-Pengguna - boot di X Windows
rc6.d - Shutdown & Reboot
Sumber: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461
Jika Anda menggunakan NetworkManager, maka Anda dapat mengaktifkan WOL melalui nmcli
:
nmcli connection show
Ingatlah NAMA koneksi dari TYPE "802-3-ehternet" untuk PERANGKAT yang menarik. Sebut namanya "Koneksi kabel 1". Kemudian modifikasi dengan benar:
nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic
Untuk mendapatkan alamat MAC-nya:
nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address
Mulai sekarang Anda dapat mematikannya dan menyalakannya dari mesin lain pada LAN yang sama dengan wakeonlan 1a:2b:3c:4d:5e:6f
perintah, di mana 1a:2b:3c:4d:5e:6f
alamat MAC kartu LAN dari langkah sebelumnya.
Selain parameter yang disarankan oleh @nkef Anda dapat mengatur yang berikut ini di / etc / network / interfaces jika Anda menggunakan DHCP alih-alih pengaturan IP statis untuk adaptor LAN (di sini bernama eth0):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
ethernet-wol g
(diuji pada Ubuntu 16.04 LTS).
Ini hanya menggigit saya juga di bawah Ubuntu 18.04 (headless / minimal install), sayangnya jawaban yang sudah tercantum di sini meskipun mereka tampaknya bekerja kadang-kadang tidak akan memberikan solusi yang dapat diandalkan karena mereka menciptakan kondisi balapan atau bertarung dengan orang-orang seperti systemd, netplan dan udev.
Saya telah mencoba pendekatan ini juga pada awalnya dan sepertinya berhasil, saya menjadwalkan sistem untuk boot setiap malam melalui WakeOnLan untuk menjalankan backup karena sistem BIOS tidak menyediakan AC yang dijadwalkan pada opsi.
Ini akan bekerja selama beberapa hari dan kemudian menolak untuk bangun, menyalakannya secara manual dan menjalankan ethtool mengungkapkan bahwa WoL telah dinonaktifkan:
Wake-on: d
Jadi saya pikir sesuatu yang lain harus mematikannya dan memiliki banyak masalah seperti itu dalam beberapa tahun terakhir dengan systemd mengambil alih bagian dari sistem saya memutuskan untuk mulai di sini, lihatlah:
WakeOnLan = .. .. Default ke mati.
https://www.freedesktop.org/software/systemd/man/systemd.link.html
Contoh online menunjukkan sesuatu di sepanjang baris:
/etc/systemd/network/50-wired.link
[Match]
MACAddress=<MAC ADDRESS>
[Link]
WakeOnLan=magic
Bagaimana pun ini masih tidak berhasil. Lalu saya menemukan ini:
udevadm test-builtin net_setup_link /etc/systemd/network/50-wired.link
yang menghasilkan:
Load module index
Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/50-wired.link
Parsed configuration file /run/systemd/network/10-netplan-eno1.link
Dan apa yang saya temukan di /run/systemd/network/10-netplan-eno1.link?
[Match]
MACAddress=<MAC ADDRESS>
[Link]
Name=eno1
WakeOnLan=off
Solusi :
Karena saya sudah memiliki file systemd .link, saya cukup menamainya menjadi 00-wired.link, reboot dan sekarang laporan ethtool eno1:
Wake-on: g
Tanpa layanan tambahan semata-mata dengan tujuan mencoba mengaktifkan WoL.