2

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    
4

0 に答える 0