USBシングルチップデバイス(CSR BC4)に接続するために使用するコードレスkextがあります-それはうまく機能します。複数のデバイスを外部ハブに接続しても、それでもうまく機能します。
info.plistのIOKitPersonalitiesディクショナリで、デバイスとインターフェイスのディクショナリについて、IOBluetoothFamily.kextのCSRドライバーを、そのCSRkextとそのパッケージのIOClassを参照するCFBundleIdentifierと照合しています。
内部ハブで複数のCSRBC7チップを使用する新しいデバイスに早送りします。簡単に言うと、そのデバイスをデバイス内のすべてのチップと適切に一致させることができませんでした。Appleのドライバーは、通常、2つのチップを取得します。2つのデバイスを接続すると、一方からすべてのチップを取得し、もう一方からはチップを取得しません。掘り起こしの日々が続いた。「com.apple.kernel.iokit」または「com.apple.kpi.iokit」のCFBundleIdentifierを「IOService」のIOClassで使用することについて、Appleリストで参照を続けました。
どちらのデバイスも運が悪かったので、com.apple.kernel.iokitを試しました。私は64ビットプラットフォームを使用しているので、com.apple.kpi.iokit--bingoを試してみることにしました。どちらのデバイスも魅力のように機能します。
私の質問は、私が本当に何に一致しているのかということです。デバイスを既存のドライバーに一致させることは理解できますが、この場合は何に一致しますか?私が何をしているのかを本当に教えてくれるAppleの決定的なものは何も見つかりません。
助けていただければ幸いです。
初期の性格の例:
MyCsrDevice
CFBundleIdentifier com.apple.driver.CSRUSBBluetoothHCIController
IOClass CSRUSBBluetoothHCIController
IOProviderClass IOUSBDevice
idProduct 32
idVendor vvvv
MyCsrInterface
CFBundleIdentifier com.apple.driver.CSRUSBBluetoothHCIController
IOClass CSRUSBBluetoothHCIController
IOProviderClass IOUSBInterface
idProduct 32
idVendor vvvv
bInterfaceNumber 0
bConfigurationValue 1
現在の性格の例:
MyCsrDevice
CFBundleIdentifier com.apple.kpi.iokit
IOClass IOService
IOProviderClass IOUSBDevice
idProduct 32
idVendor vvvv
MyCsrInterface
CFBundleIdentifier com.apple.kpi.iokit
IOClass IOService
IOProviderClass IOUSBInterface
idProduct 32
idVendor vvvv
bInterfaceNumber 0
bConfigurationValue 1