それは奇妙な状況です。ハードウェアは大幅に変更されたASUS G75VW 3Dです。 Windowsおよび32ビットUbuntuは、Wake on LANで正常に動作します。ここではマザーボードの役割は小さく、WOLを許可するためにBIOSで無効にしたいくつかの省電力設定しかありません。次に、NICを構成する必要があります。Windowsでは、これは1回限りの設定であり、適切に機能します。Ubuntu32ビットでは、ethtool
にrc.local
トリガーを使用しました。すごい。
32ビットUbuntuでは、ネットワークカードがeth0
として表示されます。 64ビットでは、名前がenp4s0
に変更されます。 dmesg
をチェックしたため、名前が変更されたことがわかります。これは、rc.localスクリプトがwol
をd
からg
にethtool
に変更しない理由も示しています。
[ 1.624275] atl1c 0000:04:00.0 enp4s0: renamed from eth0
[ 3.821446] IPv6: ADDRCONF(NETDEV_UP): enp4s0: link is not ready
[ 3.822431] atl1c 0000:04:00.0: atl1c: enp4s0 NIC Link is Up<1000 Mbps Full Duplex>
わかりました。リンクの準備ができていない場合は、それをタイマーに設定するか、後で使用できるようにします。しかし、手動で設定した場合、ethtoolはカードのwol gを表示していると言います
Supports Wake-on: pg
Wake-on: g
なんらかの理由で、コンピューターをシャットダウンするとリセットされます。これは、wolマジックパケットによってコンピューターがスリープ解除されないためです。
私は多くのことをテストしました。まず、ラップトップが抜かれた場合、短時間であってもwolトリガーは機能しません。イーサネットケーブルを抜き差しした場合に機能します。OSのシャットダウン時にwolトリガーが設定されていることは明らかです。32ビットのUbuntuをシャットダウンし、取り外しずにハードドライブを交換すると、64ビットのUbuntuに移行できます。
ドライバーと関係があるのではないかと思いますが、それがどこにあるのかはわかりません。次に、64ビットで32ビットドライバーを実行して、それで終了できますか?私は他の目的のためにマシン上に32ビットのライブラリを持っています。
大量のRAM(32ビットの制限を超える))を必要とするマシンでJVMを実行しているため、32ビットのUbuntuを実行してこれを解決することはできません。
buntu help docs に従って、network-manager
を削除し、ifup
( ここから )を使用して接続を構成しようとしました。残念ながら、ifupはインターフェースを認識しませんでした。これが64ビットの/etc/network/interfaces
ファイルの内容です。
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
ワイヤレスとイーサネットカードがリストに表示されなかった理由がわかりません。こちらがifconfig -a
です。
enp4s0 Link encap:Ethernet HWaddr 10:bf:48:19:08:b4
inet addr:192.168.1.91 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::12bf:48ff:fe19:8b4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:505 errors:0 dropped:0 overruns:0 frame:0
TX packets:289 errors:0 dropped:0 overruns:0 carrier:1
collisions:0 txqueuelen:1000
RX bytes:48646 (48.6 KB) TX bytes:38816 (38.8 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:57 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8091 (8.0 KB) TX bytes:8091 (8.0 KB)
wlp3s0 Link encap:Ethernet HWaddr c4:85:08:70:7d:7b
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
したがって、 フォーラム投稿 に従って、ネットワークインターフェイスファイルにenp4s0
を手動で追加しました。これは次のようになります。
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto enp4s0
iface enp4s0 inet dhcp
その後、ifupが機能しました。正しく入力したかどうかはわかりませんが、入力したのは次のとおりです。
ifup enp4s0
すべてが機能し、再起動後もSSHで接続できたので、イーサネットカードはまだ壊れていないと思います。ここで何をしているのか本当にわからないし、ストローを掴んでいる。
私はヘルプページの少し先を読んで、私は バグへのリンク を見落としていることに気付きました。
回避策に従って、スクリプトをrc6.d
とrc0.d
に追加して実行可能に設定しましたが、実際に実行されたかどうかを確認する方法がわかりません(echo
で何かを確認し、dmesg
を確認できたと思います)。 。それはうまくいくでしょうか?)対策のためにマシンを1回再起動して電源を切りましたが、それでもWOLの試行は行われませんでした。
うさぎの穴に続いて、私は見つけました ブログ投稿へのコメント より具体的な静的IPアドレスが役立つことを示唆しています。 (マジックパケットがMACアドレスを使用してネットワーク全体に送信されるため)理由はわかりませんでしたが、とにかく試しました。ネットワークインターフェイスの構成が彼のように見える場合、変更はありません。
マシンの詳細。 32ビットと64ビットの両方が最新のUbuntu 15.10 Wily Werewolf
にあります。
私にはもっと研究があります。
WoLがWily Werewolf 64ビットの新規インストールで機能することを確認できます。その後、私は走った:
Sudo apt-get update
Sudo apt-get upgrade
そしてWoLは動作を停止しました。それが私の問題を再現するために必要な唯一の手順のようです。
繰り返しますが、これが私の質問です:
ようやくこの問題の答えを見つけたと思います。バージョン15.10では、TLPユーティリティがデフォルトで導入されています。そのため、distアップグレードでは、TLPでWOL_DISABLE = Yと言うデフォルトの構成を取得します。
https://wiki.archlinux.org/index.php/Wake-on-LAN は、TLPを使用しているときにサスペンド/ハイバネート後にコンピュータがウェイクしない場合は、WOL_DISABLEの値を/でNに設定しますetc/default/tlp。
インストール後にWOLが機能しないUbuntu-MATE 16.04 LTS(64ビット)でこれをテストしました。 TLPの構成を変更すると、再び機能します。
これがあなたの問題にも役立つことを願っています。
イーサネットカードのオプションをいじってみたところ、高度なタブに「シャットダウンウェイクアップ」という設定があり、無効になっています。私はそれを有効にしましたが、今は機能します!同じ問題を持つ他の誰かを助けることを願っています。