Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

テザリング

iPhone4(iOS5.0.1 SIMフリーでdocomo使用)とMacBook Air(MacOS10.7.2)をテザリング利用しています。

WiFiテザリングとBluetoothテザリングは使用できるのですが、USBテザリングが利用できません。

iPhoneの画面では「インターネット接続はUSB経由で共有中です」と表示されている状態でMacBook AirにUSB接続しても、Macのネットワーク設定画面ではiPhoneを認識できません。


昨日アップルストア銀座にMacBook AirとiPhoneを持って行ったのですが、切り分けもしてもらえず、ろくに調べもせず「WindowsはUSBテザリングできるみたいですが、Macではできません。仕様です」と言われました。

そうなんですか?仕様なんですか?ジーニアスであんな適当な対応されたのは初めてです。


USBテザリングだと繋ぐだけでインターネット共有を開始できるので、私はUSBテザリングをしたいのですが、どなたか御教授ください。

iPhone 4, iOS 5.0.1, MacBookAir(Late2010 11inch 10.7.2)

投稿日 2011/12/12 14:13

返信
スレッドに付いたマーク ベストな回答

投稿日 2011/12/12 15:52

何時まで、存在するか不明ですが。

http://gadget-shot.com/2011/11/29/itether/ ってのが有るようです。

返信: 22

2011/12/13 17:18 akr への返信

再度ジーニアス行きました。


ストアのMacBookにiPhoneを繋いだところUSBテザリングの利用ができました。

結局原因はわからないのですが、原因は私のMacBook Airにありそうだとわかりました。


Lionを入れ直してみます。

2012/01/23 00:37 akr への返信

解決済みの様ですが、私も同じ症状でこちらのディスカッションにたどり着いた後に簡単に解決しましたので、同じ症状の方がいらっしゃるかもしれないので書き込みます。ご参考に。



iPhone4S(カナダ版 iOS5.0.1 SIMフリーでdocomo Xi sim)とMacBook Air (13-inch Late 2010), Mac OS X v10.7.2 Lionですが同じ症状でした。私もiPhone構成ユーティリティを使っています。



さて、解決策ですが簡単です。http://www.apple.com/jp/itunes/download/ からiTunesをダウンロードして上書きインストールするだけでした。


私の場合はiPhoneをUSBで接続し、テザリングをONにした状態でインストーラを開始したところ、インストール完了前に「ピポッ」っと認識しあっけなくUSBテザリングを開始しました。システム環境設定のネットワークにもiPhone USBが追加されました。



OSXもiTunesも毎回アップグレードでしたので新規インストールでないとドライバがインストールされないのかもしれませんね。



なお解決後にもネットワークの環境設定で「インターフェイス」プルダウンには「WiFi/Bluetooth DUN/VPN/PPPoE/6to4」しかありませんので自動認識する以外ないようです。

2012/08/14 14:53 mono への返信

追記です。


Mountain Lionへのアップデート後に同様にUSBテザリングできなくなりました。

iTunesの再インストールだけでは解決せず。


いろいろ調べたところ、/System/Library/Extensions/AppleUSBEthernetHost.kext を削除し再起動。iTunesを再インストールすることで解決しました。


iPhone構成ユーティリティをインストール後でも上記方法を行うとUSBテザリングできますし、構成ユーティリティも使えています。


ちなみにUSBテザリング中ですとネットワークの環境設定で「+」を押すと「インターフェイス」プルダウンには「iPhone USB」が現れます。

2012/11/22 03:09 akr への返信

Mac OS X 10.6.8 及び正規の iPhone 5、そして iOS 6.0.1、iTunes 10.7 において同じ問題に見舞われたので、色々試行錯誤の結果得られた結論を纏めておく。これらの問題は結局は AppleUSBEthernetHost.kext に由来する物らしいが、今回は最新の iTunes 10.7 をインストールしても解決されなかったので、そのダウングレードが必要となる場合の対処法を投稿する。


■正常なテザリング

通常、正常にテザリングに成功すると、コンソールには


>kernel AppleUSBEthernetHost::getHardwareEthernetAddress: MAC address = xx:xx:xx:xx:xx:xx

>kernel AppleUSBEthernetHost::powerStateChangeOccurred: intf is not enabled, ignoring ... st: 0

>kernel AppleUSBEthernetHost: Ethernet address xx:xx:xx:xx:xx:xx


といった MAC アドレスを決定したと言う内容がでる。テザリングを終了すると、


>kernel AppleUSBEthernetHost::disable: failed to set alt interface 0, e0YYYYYY

>kernel AppleUSBEthernetHost::getHardwareEthernetAddress: MAC address = xx:xx:xx:xx:xx:xx

>kernel AppleUSBEthernetHost::powerStateChangeOccurred: intf is not enabled, ignoring ... st: 0

>kernel AppleUSBEthernetHost: Ethernet address xx:xx:xx:xx:xx:xx

>kernel AppleUSBEthernetHost::disable: failed to set alt interface 0, e00002ed


といった内容がでる。


■テザリングできない例

ところが、AppleUSBEthernetHost.kext に由来する問題では、


>com.apple.kextd[10] Failed to load /System/Library/Extensions/AppleUSBEthernetHost.kext - (libkern/kext) link error.

>com.apple.kextd[10] Load com.apple.driver.AppleUSBEthernetHost failed; removing personalities.

kernel kxld[com.apple.driver.AppleUSBEthernetHost]: The super class vtable '__ZTV20IOEthernetController' for vtable '__ZTV20AppleUSBEthernetHost' is out of date. Make sure your kext has been built against the correct headers.

>kernel Can't load kext com.apple.driver.AppleUSBEthernetHost - link failed.

>kernel Failed to load executable for kext com.apple.driver.AppleUSBEthernetHost.

>kernel Kext com.apple.driver.AppleUSBEthernetHost failed to load (0xdc008016).

>kernel Failed to load kext com.apple.driver.AppleUSBEthernetHost (error 0xdc008016).


という、カーネルが kext をリンクできなかったことを告げる、致命的なエラーが、毎回では無いようだが、記録される様である。


■テザリングできない組合せ

AppleUSBEthernetHost.kext の version は、


>iTunes 10.7 - KEXT 2.3.6

>iTunes 10.6.3 - KEXT 2.3.0

>iTunes 10.5.3 - KEXT 2.2.0


と対応し、v.2.3.6 の場合には Mac OS X 10.6.8 との相性が悪いようであった。その事は同じ OS と iTunes をインストールした異なる Intel Mac 二台で確認済である。ところが、


>iTunes 10.7 - Mac OS X 10.7.5 [Intel]

>iTunes 10.6.3 - Mac OS X 10.5.8 [PPC]


の二例においては、何の問題もなくテザリングが可能であつた。但し後者の場合の Interface の名称は Ethernet であり、iPhone であるとは認識されない。Intel Mac における v.10.5 との相性は未確認であるが、恐らく可能であらうと思われる。


■解決方法

AppleUSBEthernetHost.kext の差替えにより対処したところ、問題は解決した。この方法は同様の事例である https://discussions.apple.com/thread/4367664 を参考にした。以下はかなり面倒な操作を伴うので、わからない場合は迂闊に弄らない方がよい。


1. AppleUSBEthernetHost.kext v.2.3.6 を廃棄、v.2.2.0 を入れる。

1.1 尚 KEXT は /System/Library/Extensions/AppleUSBEthernetHost.kext に存在する。

1.2 iTunes 10.5.3 は既に配布が終了しているので、次の URL より入手する。

iTunes 10.5.3 - http://appldnld.apple.com/iTunes10/041-3779.20120119.Bgty5/iTunes10.5.3.dmg

1.3 入手した dmg ファイル中の mpkg ファイルは、Developer Tools の PackageMaker で展開する。

1.4 各 pkg ファイルの取り出しは PackageMaker にバンドルされた Flat Package Editor で行う。

1.5 取り出した各 pkg バンドル中の Payload が tar.gzip のファイルなので、拡張子 gz をつけ足して展開すると、pkg がインストールするファイルが得られる。

1.6 アクセス権を調整する。基本は root / wheel に変更しておく。chown -r root 等とする。

2. 差替えたら、再起動し、iPhone を繫ぐと、テザリング可能になった。確認後、テザリングを一旦終了する。

3. v.2.2.0 を破棄、同様にして v.2.3.0 を入れる。

3.1 iTunes 10.6.3 - http://support.apple.com/kb/DL1575

4. 差替えたら、再起動し、iPhone を繫ぐと、やはりテザリング可能であった。


ここで注意したいのが、v.2.3.6 から直接 v.2.3.0 を入れた場合には、テザリング可能とはならなかったことである。また、v.2.3.6 を再度入れてみてもみたが、テザリング可能とはならなかった。

2012/11/24 16:36 poca への返信

KEXT 関連のコマンドについての追記。若し入れ替えたりしても上手く行かない場合は、 KEXT のキャッシュである


>/System/Library/Caches/com.apple.kext.caches

>/System/Library/Extensions.mkext


を消してから再起動すると上手くいくかもしれない。前者は 10.6 以降、後者は 10.5 以前の物となる。


●Mac OS X 10.6 以降では、kextutil を使えば、KEXT が正常に使用できるかどうかを確認できる。


>kextutil -n /System/Library/Extensions/AppleUSBEthernetHost.kext


no-load を指定することで、kext を実際に kernel にロードすることなく、その妥当性をチェックできる。正常に終了した場合、


>No kernel file specified; using running kernel for linking.

>/System/Library/Extensions/AppleUSBEthernetHost.kext appears to be loadable (including linkage for on-disk libraries).


といったメッセージが出力されるが、異常であると、


>No kernel file specified; using running kernel for linking.

>kxld[com.apple.driver.AppleUSBEthernetHost]: The super class vtable 'vtable for IOEthernetController' for vtable 'vtable for AppleUSBEthernetHost' is out of date. Make sure your kext has been built against the correct headers.

>Link failed (error code 5).

>Check library declarations for your kext with kextlibs(8).


などの appears to be loadable とは別のメッセージが出力される。こういう場合には、確実にテザリングはできないと思われる。


●上手くいったかどうかの別の確認方法としては、Mac OS X 10.4 以降では、kextstat を使う方法がある。インターネット共有された iPhone を USB ケーブルで接続すると、kernel に AppleUSBEthernetHost.kext が読み込まれるので、kextstat すると、


>1XX 0 0xXXXXX000 0x4000 0xX000 com.apple.driver.AppleUSBEthernetHost


などのメッセージが一覧で出力され、その末尾に直近にロードされたドライバとして com.apple.driver.AppleUSBEthernetHost のコードが出力される。テザリングが AppleUSBEthernetHost.kext が原因で失敗すると、当然ながらこの一覧には現れない。


●参考

kextutil OS X Manual Page

http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/kextutil.8.html

不要なドライバーをスッキリ整理、KEXT関連コマンドを知る

http://ascii.jp/elem/000/000/544/544198/

テザリング

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。