OS X 10.10にアップデートされた一部のMacでWi-Fiが接続できない不具合が報告されていますが、この不具合を「Yosemiteで廃止されたmDNSResponderをMavericksから持ってくることで解決する」という方法をArs Technicaが掲載しています。詳細は以下から。
YosemiteでWi-Fiの不具合が発生する理由
OS X 10.10 YosemiteにアップグレードしたMacでWi-Fiの不具合が色々と問題になっていますが、Ars Technicaのネットワーク担当のテクニカルライターIljitschさんによると、この不具合の根本はdiscoverydというデーモンで、
「Appleが2002年にリリースしたOS X 10.2 Jaguarから2014年のOS X 10.9 Mavericksまで、約12年間に渡りOpen Sourceで開発を続けてきたMacのDNSサービスデーモン”mDNSResponder”をOS X 10.10 Yosemiteでは非Open Sourceにし、C++で書き直した”discoveryd”というデーモンに変更したために起こっている」と主張しており、
[OS X 10.9 : mDNSResponder – Apple Open Source Browser]
This was introduced with Mac OS X 10.2 Jaguar back in 2002. mDNSResponder is written in C and has been released as open source by Apple, and it has found its way to all kinds of non-Apple operating systems and hardware.
Again, as of OS X 10.10, mDNSResponder has been replaced by discoveryd. Curiously, discoveryd is (re)written in C++, not exactly one of Apple’s favorite languages. It’s not on Apple’s list of open source projects.
[Why DNS in OS X 10.10 is broken, and what you can do to fix it – Ars Technica]
AppleはMavericksのpacemakerでもntpdの不具合を起こしており、Isaac HepworthさんやCraig Hockenberryさんなど多くの開発者からも同様の意見や「Sandbox化されて手のうちようがない」という意見が出ているようです。
so fed up with yosemite wifi problems, screwing around with discoveryd and mDNSResponder. downgrading to mavericks with extreme prejudice
Craig Hockenberry@chockenberry
There are two sources of major problems in Yosemite and they’re both daemons that are complete rewrites: screensharingd and discoveryd.
Craig Hockenberry@chockenberry
I think they really screwed up by completely removing mDNSResponder: they should have given folks the option to switch away from discoveryd.
Anyone know a good reason for discoveryd on Yosemite to go bananas? This could explain my performance problems. http://t.co/6lzqGnVX78
YosemiteでmDNSResponderを走らせる
この記事の”Restoring mDNSResponder, if you dare(勇気があるならmDNSResponderを元に戻してみましょう)”という見出しから説明されている方法はOS X 10.10で採用されたdiscoverydを止めて、OS X 10.9までのmDNSResponderをかわりに起動するというもので、かなり無理矢理な感じがしますが、この方法で数人の方は解決しているようなのでまとめました。
Little crazy, but this may also fix my VPN problems on OSX 10.10 Yosemite. http://t.co/YwfkBQTLyt
1.まず、警告として何かの間違いでMacが起動しなくなった場合、シングルユーザーモードでMacを起動してdiscoverydを有効にすることで元に戻ると思いますが、それでも無理な場合を見越してTimeMachineでシステムのバックアップをとっておきます。
First a word of warning: if something goes wrong, your Mac may not be able to boot. This can be fixed by booting in single user mode and re-enabling discoveryd (see below).
Be sure you have a recent backup just in case, and only follow the steps below if you are prepared to boot into single user mode if needed.
[Why DNS in OS X 10.10 is broken, and what you can do to fix it – Ars Technica]
2.次にOS X 10.9からmDNSResponder, mDNSResponderHelper、その他の設定ファイルをコピーします。必要なファイルは以下のディレクトリにあるのでデスクトップなどにコピーしてYosemiteのMacに持ってきてください。(Ars Technicaの記事にはTime Machineのコピー方法も掲載されています)
cd ~/Desktop/ cp /usr/sbin/mDNSResponder . cp /usr/sbin/mDNSResponderHelper . cp /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist . cp /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist .
3.次にOS X 10.10のMacにmDNSResponder一式をコピーします。
sudo cp mDNSResponder /usr/sbin/ sudo cp mDNSResponderHelper /usr/sbin/ sudo cp com.apple.mDNSResponder.plist /System/Library/LaunchDaemons/ sudo cp com.apple.mDNSResponderHelper.plist /System/Library/LaunchDaemons/
4.最後にlaunchctlコマンドでdiscoverydを無効にして、mDNSResponderを有効にします。
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd_helper.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist
5.元に戻したい場合は逆にdiscoverydを有効にしてmDNSResponderを有効にするだけです。
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd_helper.plist
この方法で何か別の不具合が起こるかもしれませんが、とりあえずdiscoverydを無効にして、mDNSResponderを有効にしてても、Wi-FiやAirDropなどは問題なく使用できているので、OS X 10.10.2でもWi-Fi問題で困っている方は試してみるの一つの手段かもしれません。
関連リンク:
・「MacBookをOS X Yosemite 10.10.2にアップデートしたらWi-Fiの接続問題が悪化した」という報告が出始める
・OS X 10.10.2 Yosemiteで修正&改善された報告まとめ。Wi-Fiの不具合についてはまだ解決していないMacも多いもよう
・OS X Yosemiteにアップグレードした一部のMacでWi-Fiが遅くなる不具合を一時的に解消するMac用アプリ「WiFriedX」が公開
コメント
Appleが作るDaemonはいつもバギーだ┐(‘~`;)┌
1年ごとにリリースしなくていいから、しっかりしたものを作ってくれ
いや一年ごとには出していいがwifi問題だけは修正してくれ
他はいいwifiが遅いと動画もまともに見れないからいらいらする
うまく動いていたmDNSResponderを替える必要があったのか?
ML以降、クローズドに回帰してる感があるので、
mDNSResponderの置換もその一環じゃないかねぇ。
Sambaも置き換えてるし相当な強い意志を感じる。
問題なくWi-Fiが使えている環境と、自分のようにWi-Fiがすぐ切れる環境があるわけで、
なぜそんな違いが生じているのか
Wi-Fiのカードのドライバの違いまでも含むのか? さっぱりわからない!!
ヨセからiPhoneモデムにするとwifiをルーターに出来ない仕様になって困ってたんだがこの手段は思い付かなんだ
Macは大丈夫になったんだがiPhoneのWi-Fiが使いもんにならないくらいヤバい
俺はios8 Yosemite になってからどっちも遅くなったな
酷い場合はYouTubeも無理だ
がんばれベータのみんな
マベでようすみせてもらう
ことえりも入れ替わっちゃったし・・・
以前は新OSにすぐ飛びついたけど
Snow Leopardくらいから1年は様子見るようになった
人柱にはなれんよ
実際はみんなの使ってるルーターが古すぎてダメ、という可能性もある気がする。
↑それは100パーセント無い
OSアップデート前は正常で、アップデート後はトラブル発生してるのに
他の機器でも起きてないしな
となると、yosemiteに問題があると考えるのが普通
っていうか、ルーターが古いとダメ・AirPort以外はダメとか言い出したらメーカーとして終わっとる
SafariもよくフリーズするからまたChromeに乗り換えたわ。
1PasswordがあればiCloudキーチェーンはなくてもいい。
いやwifiが遅くなるのはあってもsafariがフリーズしたことはないな
ここまでバグだらけなOSなら、もうWWDCにも興味なくなる人が増えるぞ
どうせまともに動作しないプロダクトなんでしょって感じで・・・
>>14.さん
こちらはMBPr Late 2013 13-inch ですが、Yosemiteのおかげ様で、純正の最新AirPort Time Capsule (802.11ac)ですらWi-Fiの速度低下を招いていますからこのOS自体がすでにApple史上最大のバグのリリースですよ。「どこを見ても不具合を起こす力に満ちて」いますから。どうにもならなかったんで、Mavericksに戻したらちゃんと速度が戻ったんで、どう考えてもYosemiteの仕業ですよね。
マベまでは新OSはすぐにインストールしてそのまま使ってたけど、
ヨセミテはなんかダメ。
リリースしてからだいぶ経ったのに、やっぱりまだどこかしら不具合あって自分の環境に入れる気になれない。
以前みたいに有料で良いからちゃんとしたものリリースしてほしい。
Wi-Fiだけでもなおして欲しい