Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!


Click here to return to the 'Make them work for PS/2 keyboards as well' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Make them work for PS/2 keyboards as well
Authored by: davester on Apr 28, '08 10:24:51AM

The MS keyboard driver also works well for it's PS/2 keyboards as well. I had a spare MS Natural keyboard, bought a generic USB-PS/2 adapter, then hacked the driver usb-matching dictionary to recognize the generic adapter. Now the keyboard works great, including the non-standard buttons like volume-up/down/mute/play.



[ Reply to This | # ]
Make them work for PS/2 keyboards as well
Authored by: PatrickS on Apr 28, '08 02:21:18PM

Could you explain a bit more in detail? Which file contains the dictionary and where did you get the correct values from?



[ Reply to This | # ]
Make them work for PS/2 keyboards as well
Authored by: davester on Apr 29, '08 09:54:38AM

You need to edit the file at:
/System/Library/Extensions/MicrosoftKeyboard.kext/Contents/PlugIns/MicrosoftKeyboardUSB.kext/Contents/Info.plist
This contains the USB matching information that match USB information for the device with which devices Microsoft's kext supports.
I added this dictionary entry to it [as a child entry of the 'IOKitPersonalities' dictionary:
<key>P063 Wireless Natural Multimedia Keyboard</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.microsoft.driver.MicrosoftKeyboardUSB</string>
<key>IOClass</key>
<string>MicrosoftKeyboardUSB</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>idProduct</key>
<integer>1</integer>
<key>idVendor</key>
<integer>3389</integer>
</dict>

I found the information needed for this using USB Prober, which is part of XCode [free download from Apple, also on System Installer DVD's].

This is the info that is displayed in USB Prober for my adapter:
Low Speed device @ 5 (0xFD110000): ............................................. Composite device: "USBPS2"
Device Descriptor
Descriptor Version Number: 0x0110
Device Class: 0 (Composite)
Device Subclass: 0
Device Protocol: 0
Device MaxPacketSize: 8
Device VendorID/ProductID: 0x0D3D/0x0001 (TANGTOP TECHNOLOGY CO., LTD.)
Device Version Number: 0x0001
Number of Configurations: 1
Manufacturer String: 0 (none)
Product String: 2 "USBPS2"
Serial Number String: 0 (none)



[ Reply to This | # ]