2

USBデバイスの1つがAppleUSBUHCIドライバーに誘拐されないように、コードレスkextを作成しました。プラグを差し込むと、別のドライバーがロードされているはずです。これは、FTDIデバイスとCSRデバイスの両方で発生します。

kextをまとめると、info.plistは次の例によく似ています:http ://www.projectosx.com/forum/index.php?showtopic = 798 VID/PIDが異なるだけです。-entZを指定してkextutilを実行しましたが、唯一の警告は、パーソナリティに異なるCFBundleIdがあることでした。MacのUSB(HID)割り込みエンドポイントの読み取りと書き込みの手順に従って、ロードしました。

kextをロードすると、正常にロードされたと表示されますが、kextstatで表示できず、デバイスを接続してもハイジャックされます。kextunloadを実行しようとすると、kextがロードされていないと表示されます。

どんな助けでもいただければ幸いです。

4

1 に答える 1

4

Appleのリストから、コードレスkextは、既存のドライバーにリンクしない限り、kextstatに表示されないことがわかりました。IOKitバンドルにリンクした私のパーソナリティは、スタブコードがある場合にのみロード後に表示されます。

私のデバイスでは、同様のデバイス用の既存のドライバーを見つけ、最初にそのドライバーにパーソナリティを注入しました。デバイスを接続したときにロードされていることを確認でき、デバイスを開くことができました。そのドライバーを元の状態に戻しました。次に、既存のドライバーに注入したパーソナリティを使用して、コードレスkextを作成しました。その後、デバイスを接続したときにそのドライバーが読み込まれ、デバイスと通信できるようになりました。

私の元の問題の解決策は、元のコードレスkextとbcdDeviceのCFBundleIdentifierでした。http://lists.apple.com/archives/usb/2009/Aug/msg00050.htmlから、さまざまなタイプのコードレスkextに関するヒントを入手し、既存のドライバーにCFBundleIdentifierを使用する必要があることに気付きました。

于 2011-09-06T15:45:09.547 に答える