Yanıtlar:
İşe yarayan daha iyi bir yol buldum. En azından daha temiz bir yol. Görünüşe göre Ubuntu , sistemd için başlangıç değiştirdi , Ubuntu 15.04, Ubuntu 16.04 ve muhtemelen sonraki sürümlerde de. İki sistemde de yeniyim ama bu benim için işe yaradı.
Bunu gönderiyorum çünkü Ubuntu 16 wol ve diğer benzer aramaları googling yaparken bu yazıyla birkaç kez karşılaştım. Bu başka birine yardımcı olabilir.
WOL'un çalışmaya devam etmesi için, sistemin her açılışında yeniden etkinleştirmem gerekiyordu. Bunu manuel olarak yapmaktan kaçınmak için bu amaçla systemd kullandım. Ben de öyle yaptım:
İlk önce dosyayı oluşturun /etc/systemd/system/wol@.service
(@ sembolünü saklayın). Bunu içine koy:
[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
Bunu önyüklemedeki arayüz için etkinleştirin, aşağıdaki komutu çalıştırın (arayüzünüzle eth3'ü değiştirin):
systemctl enable wol@eth3
Böyle bir şey görmelisin:
Created symlink from /etc/systemd/system/multi-user.target.wants/wol@eth3.service to /etc/systemd/system/wol@.service.
Etkin olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın (arayüzünüzle eth3 değiştirin) ve geri dönmesi gerekir enabled
:
systemctl is-enabled wol@eth3
Bunu test etmek için yeniden başlatın ve çalıştırın (arayüzünüzle eth3'ü değiştirin):
ethtool eth3
Aşağıdakileri içeren bir çizgi görmelisiniz:
Wake-on: g
Kaynaklar:
sonradan görme:
Upstart, önyükleme sırasında görevlerin ve hizmetlerin başlatılmasını, kapanma sırasında durdurulmasını ve sistem çalışırken denetlemesini sağlayan / sbin / init arka planının olaya dayalı bir alternatifidir.
- upstart - olaya dayalı init daemon
systemd:
systemd, bir Linux sistemi için temel yapı taşları paketidir. PID 1 olarak çalışan ve sistemin geri kalanını başlatan bir sistem ve servis yöneticisi sağlar. (...)
- sistemd
Ubuntu 16.04 setinde WOL_DISABLE=N
de /etc/default/tlp
TLP güç yönetimi tarafından devre dışı WOL almamak için.
http://linrunner.de/en/tlp/docs/tlp-configuration.html
Kapatma sırasında ağ kartının kapanmasını önlemek için ekleyin NETDOWN=no
./etc/default/halt
/etc/network/interfaces
Statik ağ yapılandırması kullanıldığında LAN üzerinden Uyandırma özelliğini etkinleştirin .
# 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
BIOS'ta lan'de uyanmayı etkinleştirin, BIOS kurulumuna girin ve "PCI olayında uyanma", "LAN'da uyanma" veya benzeri bir şey arayın. Etkin olacak şekilde değiştirin. Ayarlarınızı kaydedin ve yeniden başlatın.
https://help.ubuntu.com/community/WakeOnLan
Bazı anakartların / ağ kontrol cihazlarının uyarısı WOL'u soğuk bagajdan desteklemez (S5 durumu, sisteme giden gücün fiziksel olarak kapatılıp tekrar açıldığı). Bu durumda, en az bir güç döngüsü (güç açma, kapatma) gerçekleştirilmelidir. Sorunu azaltmak için, BIOS, AC geri yüklendiğinde açılacak ve daha sonra Ubuntu içinde bir kapanma zamanlayacak şekilde yapılandırılabilir. Daha fazla detay için anakartın kullanım kılavuzuna bakın.
WOL'un çalışması için ethernet arayüzünüzü kapatırken sisteminiz tarafından uygun şekilde kapatıldığından emin olun.
Takip etmeyi dene:
Adlı bir bash komut dosyası oluşturun wol_poweroff.sh üzerinde /etc/rc6.d/ dizinde:
sudo nano /etc/rc6.d/wol_poweroff.sh
Bu kodu içine koy:
#!/bin/bash
ifconfig eth0 down
poweroff
/Etc/rc0.d dizinine kopyalayın (bu nedenle durma ile de çalışır ):
sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
İkisini de çalıştırılabilir yapın:
sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
Şimdi birlikte makinenizi kapatmadan çalışır olmadığını test sudo shutdown now
veya sudo poweroff
ve buna bir sihirli paket göndermek için WOL aracını kullanarak.
Bu benim için çalışan tek şeydi. Bu adımları launchpad.net'teki bir hata raporunda buldum.
Yazara göre, Robbie Williamson, bu, aşağıdakilerden dolayı işe yarıyor:
WOL'un çalışması için ethernet arayüzü sistemin kapatılmasının bir parçası olarak uygun şekilde indirilmelidir. Bu, Linux'un tipik olarak 7 farklı çalışma seviyesine (veya çalışma moduna) sahip olduğunu not ederek rc0 ve rc6 çalışma seviyelerinin bir parçası olarak gerçekleştirilmelidir:
rc0.d - Sistem Durduruldu
rc1.d - Tek Kullanıcı Modu
rc2.d - Ağ ile Tek Kullanıcı Modu
rc3.d - Çok Kullanıcı Modu - metin modunda önyükleme
rc4.d - Henüz Tanımlanmadı
rc5.d - Çoklu Kullanıcı Modu - X Windows'ta önyükleme
rc6.d - Kapat & Yeniden başlat
Kaynak: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461
Terminalde aşağıdakileri çalıştırın:
sudo ethtool -s {your network interface} wol g
sudo ethtool {your network interface}
Eğer bir görmelisiniz g yanındaki lan ardından ikinci komutu yazdıktan sonra
NetworkManager kullanıyorsanız, WOL’u aşağıdaki yöntemlerle etkinleştirebilirsiniz nmcli
:
nmcli connection show
İlgilendiğiniz CİHAZ için "802-3-ehternet" TİPİ bağlantısının ADI'nı unutmayın. Adının "Kablolu bağlantı 1" olduğunu söyle. Sonra doğru şekilde değiştirin:
nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic
MAC adresini almak için:
nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address
Bundan sonra kapatabilirsiniz ve aynı LAN üzerindeki başka bir makineden açın wakeonlan 1a:2b:3c:4d:5e:6f
komutu, 1a:2b:3c:4d:5e:6f
bir önceki adımdaki LAN kartının MAC adresidir.
@Nkef tarafından önerilen parametrelerin yanı sıra , LAN bağdaştırıcısı için statik IP ayarları yerine DHCP kullanıyorsanız ( etc0 adında) / etc / network / arabirimlerinde aşağıdakileri ayarlayabilirsiniz :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
ethernet-wol g
(Ubuntu 16.04 LTS'de test edilmiştir).
Bu sadece beni Ubuntu 18.04 (başsız / minimum kurulum) altında da ısırdı, maalesef burada listelenen cevaplar, zaman zaman çalışıyor gibi gözükse de, yarış koşulları yaratırken ya da sistem beğenileriyle savaşırken güvenilir bir çözüm sunmayacak, netplan ve udev.
Bu yaklaşımı ilk başta da denemiştim ve işe yarayacak gibiydi, her akşam WakeOnLan aracılığıyla sistem BIOS'u için programlanmış bir AC seçeneği sağlamadığından yedeklemeleri çalıştırmak üzere bir sistem başlatıyorum.
Birkaç gün çalışacak ve sonra uyandırmayı reddedecek, manuel olarak çalıştıracak ve ethtool çalıştıracak, WoL'un engellendiğini ortaya koydu:
Wake-on: d
Bu yüzden, başka bir şeyin onu geri çevirmek zorunda kaldığını ve son birkaç yıl içinde sistemin başlarına devralarak karar verdiğim sistemli sistemlerle bu kadar çok sorun yaşadığını düşündüm:
WakeOnLan = .. .. Varsayılan olarak kapalı.
https://www.freedesktop.org/software/systemd/man/systemd.link.html
Çevrimiçi örnekler aşağıdakiler boyunca bir şey gösteriyor:
/etc/systemd/network/50-wired.link
[Match]
MACAddress=<MAC ADDRESS>
[Link]
WakeOnLan=magic
Ne kadar bu hala işe yaramadı. Sonra buna rastladım:
udevadm test-builtin net_setup_link /etc/systemd/network/50-wired.link
hangi sonuçlandı:
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
Ve ne / run/systemd/network/10-netplan-eno1.link içinde ne bulurum?
[Match]
MACAddress=<MAC ADDRESS>
[Link]
Name=eno1
WakeOnLan=off
Çözüm Ya:
Ben zaten systemd .link dosyasına sahip olduğum için basitçe 00-wired.link olarak yeniden adlandırdım, yeniden başlattım ve şimdi ethtool eno1 raporları:
Wake-on: g
Herhangi bir ekstra hizmet olmadan yalnızca WoL'yi etkinleştirmeye çalışmak amacıyla.