まだサポートされていない WWAN デバイスのサポートを OS X に追加するにはどうすればよいですか?

まだサポートされていない WWAN デバイスのサポートを OS X に追加するにはどうすればよいですか?

私の大きな目標は、サードパーティのドライバーをインストールせずに、OS X マシンで Huawei E1550 ドングルをサポートできるようにすることです。

実際のところ、AppleWWANSupport*.kext と WWAN インフラストラクチャ全体は、Apple がこれまでに作成したコードの中で最もずさんなものの 1 つです。Info.plist をざっと見ると、ほとんどすべての主要な携帯電話モデム ブランド (おそらく ZTE を除く) をサポートすることを目指していることが簡単にわかりますが、"サポートされている" Huawei ドングルを接続しても何も起こりません。少なくとも CDC ドライバーは有効な構成が見つからないことを通知します。

これまで、CellPhoneHelper.kext/Contents/Info.plist を変更してドングルを実際の WWAN デバイスとして認識し、/Library/Modem Scripts/WWAN.ccl にそのセクションを追加しました。結果は次のとおりです。

  • ドングルを接続するとメニューバーにWWANアイコンが表示されます
  • デバイスファイルが表示され、実際にモデムと通信できるようになります
  • システムプロファイラーはモデムをWWANデバイスとしてリストし、正確にクエリします。

機能しないもの:

  • WWAN アイコンが「初期化中...」のまま動かない
  • その結果、WWANインターフェースは表示されず、設定もできません。

...それが、ある意味、すべてのポイントです。

Huawei E1550 には 4 つのエンドポイントがあります。1 つは「モデム」(0)、もう 1 つは「診断」(1)、さらにもう 1 つは「PCUI」(2)、そして音声データ用 (5) です。これらのエンドポイントを誤って割り当てたために OS X が間違ったエンドポイントを使用しているため、モデムが動作していることを確認できず、インターフェイスを準備することもできないのではないかと思います。

明らかに「データ」(モデム?) であるポートは、コマンドに応答するだけで、USSD 要求などには応答しません。「Diag」とマークされているポートは何も表示されません。何に使用されているのかはわかりません。「PCUI」ポートは、AT コマンドを受け入れ、それに応答し、ポーリングされることなく、信号レベルやその他のステータス メッセージを定期的に出力します。

OS X は、最終的に /dev/wwan (データ、モデム、まれに異なるポート)、/dev/wwanCNTL (制御)、および /dev/wwanCMD (コマンド) となる 4 つのエンドポイントを認識します。

そこで大きな疑問は、それらを正しく一致させるにはどうすればいいでしょうか?

もう一つの大きな疑問は、私をバカだと思ってくれても構わないがWWAN (GSM/UMTS) デバイスのコンテキストにおける制御ポートとコマンド ポートの違いは何ですか?

また、Huawei E1550 または Huawei Datacard (ven:dev = 0x12d1:0x1001) のデータシートやその他の情報へのリンクも大歓迎です。

答え1

私も同様のアプローチを試しました。

/System/Library/Extensions/IOSerialFamily.kext/Contents/PlugIns/AppleWWANSupport.kext/Contents/Info.plist /System/Library/Extensions/CellPhoneHelper.kext/Contents/Info.plistを編集しました

同様の結果が得られましたが、/Library/Modem Scripts/WWAN.ccl セクションを見落としていました。

これら 3 つすべてを適切に「ペアリング」する必要があると私は考えています。さらに、Huawei が提供するモデム スクリプトも必要だと思います。

ポートなどについて、どのようにしてこれほど多くの情報を収集したのか興味があります。何かヒントはありますか?

私は Huawei ドライバーを搭載した自分のもの (e176) を使用していますが、通常のモデム インターフェイスを介して接続しています。「Mobile Connect」ソフトウェアは使いにくく、接続に非常に時間がかかりますが、追加情報が必要なときに使用しています (PIN 要求を無効にするために使用しました)。

すべてのファイルを編集して適切なエントリを作成し、もう一度試してみます...しかし、結局のところ、それが何か利点があるかどうかは疑問です。接続がはるかに高速化され (たとえば、5 秒未満)、メニュー バーから追加情報が提供される場合にのみ、私にとって意味があります。

ちなみに、Ubuntu 12.10 では、このように動作するようです。驚くほどよく似たメニュー項目と信号強度メーターがあり、3 秒未満で接続できることは言うまでもありません。

検索してみると、/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBMergeNub.kext/Contents/Info.plist に「Huawei Mobile」のエントリがあるのですが、製品 ID とベンダー ID が私のものと一致しないこともわかりました。変更しましたが、まだ報告するものはありません。他のファイルの編集も試さなければなりません :-(

しかし、Apple がモデムや電話用のドライバーとフレームワークをセットアップしているのに、なぜこの場合、Huawei がそれに「プラグイン」しないのか理解できません。Huawei は自社のデバイス用に完全に別のインフラストラクチャを開発しました。AppleWWANSupport について知らないのでしょうか? それとも Apple は Huawei を除外しているのでしょうか?

関連情報