Jump to content

Guide: Getting broadcom bluetooth devices ( eg DBT-122) 100%


sld87
 Share

5 posts in this topic

Recommended Posts

*EDIT* Currently working on fixing computer waking itself up immediately after forcing it to "sleep", when this occurs bluetooth gets knocked out as well for a few seconds. Currently only bullet point 3 100% working. I will let it hibernate and report back.

 

*Edit 2*

Computer display will turn off, but computer will not completely hibernate. Side scroll bug was present during one of the tests.

 

Hi guys,

 

if anyone was in same boat as me:

 

  • bluetooth wouldn't work properly after sleep - side scrolling stopped working
  • bluetooth delay on startup, had to wait several seconds to become operational.
  • allow bluetooth devices to wake this computer greyed out

I have the fix ( Full credit to Gonzo here http://www.insanelymac.com/forum/topic/236310-broadcom-bcm20452046-optimized-legacy-bluetooth-driver-uses-apple-optimized-driver/page-3 )

 

Ok, to the guide:

 

Step 1:

You need to obtain (In dec, not hex) your DeviceID, and ProductID.

Go to system profiler and under bluetooth hardware settings note your broadcom devices productID, and vendorID

These will be in Hex, so we need to convert them to dec.

 

Go here: http://www.binaryhexconverter.com/hex-to-decimal-converter

 

Convert both values, and copy them somewhere.

 

Step 2:

Navigate to S/L/E and locate IOBluetoothFamily.kext

BACK IT UP

 

Next, using the duplicate you've presumably saved to your desktop in a folder called BACKUP right click on it and 'Show Package Contents'

 

Go to plugins, and do the same to the file called 'BroadcomBluetoothHCIControllerUSBTransport'

 

Go to Contents

 

Navigate to the Info.plist file

 

Step 3:

 

Open it up in your favourite text editor (I Use PListEditor Pro) 

 

We have a bunch of jargon, but we need to add our newly created device string

		<key>Broadcom BCM92045USBBluetoothHCIController</key>
		<dict>
			<key>CFBundleIdentifier</key>
<string>com.apple.iokit.BroadcomBluetoothHCIControllerUSBTransport</string>
			<key>IOClass</key>
			<string>BroadcomBluetoothHCIControllerUSBTransport</string>
			<key>IOProviderClass</key>
			<string>IOUSBDevice</string>
			<key>LMPLoggingEnabled</key>
			<false/>
			<key>idProduct</key>
			<integer>61697</integer>
			<key>idVendor</key>
			<integer>2001</integer>
		</dict>

You can put it wherever I guess, mine went just after the string of code that ends:

	<key>DTXcode</key>
	<string>0440</string>
	<key>DTXcodeBuild</key>
	<string>4F250</string>
	<key>IOKitPersonalities</key>
	<dict>

Step 4:

 

When this is done, save the new Info.plist (You will have to duplicate I think) somewhere else, and replace the one we just opened.

 

To finish, drop it into kextutility and let it replace the one in S/L/E

 

from there, reboot, and you'll be sweet :)

 

Attached my modified IOBluetooth file (Though you should follow my instructions and do it yourself, number 1 because it's better to learn, and number two because I'm not sure if product and device IDs are unique.

 

Enjoy! And please, backup your {censored} as I am no expert and take no responsibilities if you mess anything up.

IOBluetoothFamily.kext.zip

Link to comment
Share on other sites

Hmmm, anyone shed any updates for those that may have tried with Broadcomm? With them in, can you get your computer to sleep? Can't hibernate with device injection into the Broadcomm kext. I'm not sure whether that is because my decimal IDs may be wrong (But if so, it wouldn't make sense that wake is no longer greyed out).. But i'm not sure, its as if it sends a signal to immediately wake it up if you try to force sleep.

 

The display switches off however.

Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...
 Share

×
×
  • Create New...