ぼやき

0

macOS Sierra (10.12) がリリースされましたが、わたしが使っている Mac mini Early 2009 はアップグレードの対象機器から外れてしまったので、OS X El Capitan (10.11.6) が最終 OS となります。それで 5 月に Mavericks からアップグレードして問題なく使っていたのですが、ここにきて不具合を発見してしまいました。それは Wake On LAN (WOL) でスリープ中の Mac mini を起こそうとするとエラーになって起こすことができないのです。何回かそんなことがあったのですが、エラーになることもあるかと思いあまり気にしてなかったのですが、きちんと検証してみたら OS のバグであることがわかりました。

com.apple.PowerManagement.plist の値を変更する

まずは「mac wol not working」で検索して見つけた以下の方法を試してみることにしました。
→Apple Communities:No Wake-on-LAN possible since updating to ML

I think I found a fix. I have not been able to get TeamViewer WOL working and found this on another forum.

I went to /Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist and changed “PrioritizeNetworkReachabilityOverSleep” from a “0” to a “1”. Now WOL works fine with TeamViewer and think it will fix everyones issues.

「ライブラリ/Preferences/SystemConfiguration/com.apple.PowerManagement.plist」を Pref Setter で開いて「PrioritizeNetworkReachabilityOverSleep」の値を「0」から「1」に書き換えました。

20160923_1.png

しかし Wake On LAN は動作しません。

ネットワークの項目をすべて削除し再設定する

以下を参考に「システム環境設定」の「ネットワーク」の項目をすべて削除し、新たに設定し直し再起動してみます。(参考にしたサイトの URL がわからなくなってしまいました。)

20160923_2.png

これでも起動しません。

NetworkInterfaces.plist を削除し再起動

次は NetworkInterfaces.plist を削除してみました。
→InsanelyMac:Ethernet quit working after El Capitan upgrade

— Delete all network interfaces in System Preferences > Network
— Delete file /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist (and maybe you can need delete file /Library/Preferences/SystemConfiguration/preferences.plist)
— Reboot
— After Reboot go to System Preferences > Network and add all network interfaces (wi-fi Ethernet and other)
— Done!

20160923_3.png

これも Wake On LAN は動作しません。

Incompatible Kernel Extension Configuration Data の強制アップデート

調べていると 2016 年 2 月の終わりから 3 月の初めにかけて、El Capitan で Ethernet に接続できなくなったという報告が多いです。これは Apple が 10.11.4 でリリースするつもりだった「Incompatible Kernel Extension Configuration Data」が手違いかセキュリティアップデートでリリースされてしまったことにあるようです。この解決方法は Apple が公式に対処法を公開しています。
→Apple:Mac の Ethernet 接続が最近つながらなくなった場合

わたしは 5 月に El Capitan にアップグレードしたので関係ないかもしれませんが一応対処をしてみました。Wi-Fi が使える場合は以下のように実行します。

  1. アクティビティモニタを開きます (「アプリケーション」フォルダの「ユーティリティ」フォルダにあります)。
  2. アクティビティモニタで「CPU」タブを選択し、検索フィールドに「updated」と入力します。リストに softwareupdated プロセスだけが表示されるはずです。
  3. ターミナル App を開きます (同じく「ユーティリティ」フォルダにあります)。
  4. ターミナルに以下のコマンドを入力して、最新バージョンの「Incompatible Kernel Extension Configuration Data」カーネル拡張にアップデートします。
    sudo softwareupdate --background
  5. 入力画面が表示されたら、OS X ユーザの管理パスワードを入力します。
  6. アクティビティモニタに切り替えます。softwareupdated プロセスの CPU 使用率 (「% CPU」) がゼロに戻れば、カーネル拡張は最新バージョンになっています。
  7. Apple メニューから「再起動」を選択して、Mac を再起動します。

20160923_4.png

結果は変わらず Wake On LAN は使えません。

El Capitan 10.11.4 から(一部の機種で) WOL できなくなったらしい

この辺からこれって OS のバグじゃないかと思い始めました。外付け HDD に入っている Mavericks から起動してみて検証したところ、WOL で起動することができました。ハード的な故障ではないことがわかりました。同じ El Capitan をインストールしている夫の Mac mini Mid 2011 をスリープさせわたしの Mac mini から WOL させて見ましたが起動しません。ダメ押しで外付け HDD に El Capitan を新規インストールし起動、その後設定し WOL をしてみますが、起動しません。これって何かが壊れているとか設定がおかしいとかいうレベルではなく、OS 自体で動かないということみたいです。

日本語のコミュニティでも話題になっていました。
→Apple コミュニティ:OS X 10.11.4アップデートと「ネットワークアクセスによるスリープ解除」

というかなんで検索でこのページが上位にこないのか疑問です。調べているとだいたい 2012 年以前の古い Mac で WOL ができない不具合が起きているようです。

nvenet.kext のバージョンが違う

では El Capitan 10.11.4 から何が変わったのか Ethernet 周りを調べてみると、「システム情報」の「Ethernet カード」の「nvenet.kext」の「バージョン」が 10.11.6 では「2.0.22」ですが、Mavericks では「2.0.21」になっています。(ボードについている Ethernet の部品によって違うKext がインストールされているようです。)

20160923_5.png

20160923_6.png

nvenet.kext の中身を覗いてみましたが何がなんだかわかりません。条件が変更されていることだけはわかりましたが……。これを「2.0.21」にすれば動くようになる気もしますが怖くて試してはいません。

El Capitan 10.11.4 になったあたりで Ethernet 関係に大きな変更があったのは確かで、ハックして Apple 製じゃないマシンに OS X を載せてる人たちも Kext を違うものや古いものに変えると動くようになるといっています。
→tonymacx86.com:Wake On LAN?
→tonymacx86.com:[SOLVED] No ethernet on P5G41-m lx (OS X El Capitan 10.11.4)!

ということで不具合を Apple が修正してくれることを願いつつ、バグ報告しておきました。この問題で困っている方は報告して、その数が多くなれば、もしかしたら直してくれるかもしれません。
→Apple:OS X – フィードバック – Apple(日本)

関連記事