Jump to content

Dell Wireless 365/370/410 Bluetooth


  • Please log in to reply
81 replies to this topic

#1
Boombeng

Boombeng

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 598 posts
  • Gender:Male
  • Location:France
EDIT 10 nov 2009

Bcc9 striked again :(
He made an all in one kext with easy instal pkg so if you have a Dell Wireless Bluetooth 365, 370 or 410 but can not use it in HCI mode just run the pkg and that's it, it will automaticaly turns the BT on at boot, reload after sleep etc... really great

Here is a driver version of my hid2hci program. Benefits vs standalone program:
Leverages operating system to auto-match any eligible bluetooth device, no configuration required.
There are no suspend/resume scripts ala sleepwatcher required. Driver reloads right away upon resume
Handles reloading when you turn off/on of the wireless card via the laptop's hotkey.
Driver is able to turn on HCI mode a lot faster than sleepwatcher as it runs from the kext cache instead of after the system fsck
I've configured the driver's plist to auto-match the device codes for the following cards, if I missed any, they could simply be added to the Info.plist
Dell Wireless 365 Bluetooth
Dell Wireless 370 Bluetooth
Dell Wireless 410 Bluetooth
The only drawback I've found is that the kext needs to be in /System/Library/Extensions for the system to auto-load the kext if you boot with wireless turned off and then turn it on sometime later. If the kext is instead in /Extra the system errors out when it tries to load the kext in this case. If someone knows how to fix this dependency please let me know.

OSX 10.5.x and 10.6.0 versions included, choose your flavor.

If you boot with -v mode, you should see DellBluetoothHCI loading right after the USB drivers.

Update: fixed 10.6 version's plist so that it loads properly in 64 bit mode.
Update2: I've added a pkg version of DellBluetoothHCI. This package version automatically selects the 10.5.x or 10.6.x kext depending upon the installed OS. The new version also automatically installs the kext into /System/Library/Extensions with the right permissions.


Link to the Instal pkg


Thx again Bcc9


----------------------------------------------------------------------------------------------------------------------------------------
EDIT

Bcc9 managed to port Hid2Hci from linux to enable dell 370 bluetooth cards on OSX :(
You just need to download his file and to run it

See his post here



Thanks a lot bcc9, you are the man :D

-----------------------------------------------------------------------------------------------------

Hello,

I know bluetooth is not a priority, but i'd like to use mine on OSX so...

If you have time and knowledges which can help me thanks in advance... :)

For the moment i just want to answer a simple question :

Is it possible to make this card working with simple edit/hexediting apple bluetooth kexts ?


Here are the status :

It is a 2.1 EDR Bluetooth module
Card seeems to be based on a broadcom 2046 chip its ID is
:

413C 8156 (REV 10)
USB\VID_413C&PID_8156&REV_0172

It is no recognised in OSX, neither with LSPI tool but in USB devices from system information we can see this :
http://forum.insanel...t...st&id=38144

I also noticed that when i lookfor new bluetooth devices with my bluetooth phone, i can see the dell 370 but i can not connect


The things which make me think there is hope are :

> other onboard dell bluetooth cards like the 350 or 355, both based on BCM2045 chip, work out of the box (413c 8103 broadcom for exemple)

> BCM2046 chips 2.1EDR bluetooth are used by real mac (macbook air)


But, when i have a look in IOBluetoothfamily kext it looks complicated, there are different other kexts, i can not recognise the different ID from other cards working out of the box in info plist, but we can see a few ID from BCM2046 familly like ours in Info Plist like this one :

[/b]
			 
						 </dict>
						 <key>idProduct</key>
						 <integer>33293</integer>
						 <key>idVendor</key>
						 <integer>1452</integer>
					 </dict>
					 <key>Broadcom2046FamilyUSBBluetoothHCIController</key>
			 
			 [b]



So What do you think, is it a lost cause ? Is it possible and how can i inject 370 dell card ID in kext to make it work ?

Thanks in advance for any advices and reply :)

[Edit]
Can someone using a real mac with integrated BCM2046 chip can give me his complete card ID please (look in system information/bluetooth

[Edit]
About the ID in Kexts : It seems we have to make the difference between Profile compatibility devices ( http://en.wikipedia....uetooth_profile ) and onboard hardware's ID itself , I think (?)

[Edit]
Well, may be the solution is to write a kext which enables the inbuilt bluetooth module like has done Hatsmasher :
http://forum.insanel...&...st&p=309454



Thanks



Technical informations about BCM2046 chips :

Attached File  broadcom_bcm2046_bluetooth.pdf   215.79KB   217 downloads


#2
Boombeng

Boombeng

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 598 posts
  • Gender:Male
  • Location:France
Well, I did find the real ID in my IOREG, and it seems closer to the Info Plist one :


| | | || | | +-o BCM2046B1@1a100000 | | | | | {| | | | | "PortNum" = 1| | | | | "Bus Power Available" = 250| | | | | "bNumConfigurations" = 1| | | | | "Device Speed" = 1| | | | | "sessionID" = 1207068959| | | | | "AAPL,current-in-sleep" = 1500| | | | | "USB Product Name" = "BCM2046B1"| | | | | "bcdDevice" = 256| | | | | "locationID" = 437256192| | | | | "USB Vendor Name" = "Broadcom"| | | | | "USB Address" = 2| | | | | "idProduct" = 17664| | | | | "iProduct" = 2| | | | | "bDeviceProtocol" = 0| | | | | "iManufacturer" = 1| | | | | "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUS$| | | | | "bDeviceClass" = 9| | | | | "iSerialNumber" = 0| | | | | "bMaxPacketSize0" = 8| | | | | "Need contiguous memory for isoch" = Yes| | | | | "bDeviceSubClass" = 0| | | | | "IOUserClientClass" = "IOUSBDeviceUserClientV2"| | | | | "idVendor" = 2652| | | | | }| | | | || | | | +-o AppleUSBHub | | | | | {| | | | | "IOProviderClass" = "IOUSBDevice"| | | | | "IOProbeScore" = 50000| | | | | "CFBundleIdentifier" = "com.apple.driver.AppleUSBHub"| | | | | "bDeviceClass" = 9| | | | | "IOMatchCategory" = "IODefaultMatchCategory"| | | | | "IOUserClientClass" = "AppleUSBHSHubUserClient"| | | | | "bDeviceSubClass" = 0| | | | | "IOClass" = "AppleUSBHub"| | | | | "IOPowerManagement" = {"ChildrenPowerState"=4,"CurrentPowerState"=4,"DeviceChangePowerState"=4,"D$| | | | | }| | | | || | | | +-o IOUSBInterface@0 | | | | {| | | | "iInterface" = 0| | | | "idProduct" = 17664| | | | "bConfigurationValue" = 1| | | | "locationID" = 437256192| | | | "bInterfaceSubClass" = 0| | | | "bInterfaceProtocol" = 0| | | | "bAlternateSetting" = 0| | | | "bInterfaceClass" = 9| | | | "bInterfaceNumber" = 0| | | | "bNumEndpoints" = 1| | | | "idVendor" = 2652| | | | "bcdDevice" = 256| | | | }


And in BroadcomUSBBluetoothHCIControlers.kext's info Plist (Extensions/Iobluetoothfamily.kext/Contents/plugins/BroadcomUSBBluetoothHCIController.kext/contents) here is the closer value i can find :


Broadcom2046FamilyUSBBluetoothHCIController_DongleCFBundleIdentifiercom.apple.driver.BroadcomUSBBluetoothHCIControllerIOClassBroadcom2045FamilyUSBBluetoothHCIControllerIOProviderClassIOUSBDeviceIOProviderMergePropertiesClassicMustNotSeizeidProduct8262idVendor2652


I tried to replace 8262 by 17664 in this file (info plist) and it doesn't work, so i tried to find this Hex values but i can not managed
Which Hex value do i have to find to replace 8262 by 17665 in the driver ?

Thanks in advance


#3
CompCrasher86

CompCrasher86

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 175 posts
  • Gender:Male
  • Location:Massachussetts
  • Interests:Building computers, audio and video editing, HOME THEATER, Xbox 360.
8262 in hexadecimal reads 2046 and the hexadecimal of 17664 is 4500. I am working on finding the locations of these nubers now

#4
Mark Rose

Mark Rose

    InsanelyMac Protégé

  • Members
  • PipPip
  • 55 posts
I have a Dell D620 (Kalyway 10.5.5 / Nvidia / Dell Wireless and Bluetooth (350)). For the most part it is working well, but I can not get the Bluetooth module to be recognized. I installed chunnan PCMCIA kext and I get the following message during boot: "BTCoexistence feature not supported!"

If anyone has seen this and has a fix, please let me know. I have a few other issues as well (sleep and poweroff after shutdown), but will deal with them later. Any and all help will be appreciated. Thanks!

Mark

#5
Boombeng

Boombeng

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 598 posts
  • Gender:Male
  • Location:France
Hi, thx for the info

Someone reported in another thread dell 370 bluetooth card (in a dell studio laptop) is working well with a dell Bluetooth mouse and keyboard, so there is a hope!

Mark, you should read this thread, there is way to run your dell 350 :

http://forum.insanel...&...ost&p=99351

I also have BTcoexistence not supported with -v mode boot.

Did you try to use a bluetooth keyboard and mouse ? Are you able to transfer data from a phone with your BT card ?

#6
Boombeng

Boombeng

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 598 posts
  • Gender:Male
  • Location:France
Well i tried to edit IOBluetoothFamily.kext/Contents/Plugins/BroadcomUSBBluetoothHCIController.kext/Contents/Info.plist
I added 2 entries under IOKitPersonalities :
one with
ID Vendor 0x413c (16700 in dec)
ID Product 0x8157 (33111 in dec)

and another with
ID Vendor 0x413c (16700 in dec)
ID Product 0x8158 (33112 in dec)

Because this devices were known as USB Composite Device :
Attached File  USB_Device.jpg   95.78KB   260 downloads

The principal device (BCM2046B1) is already not in the plist :
ID Product 0x4500 (17664 in dec)
ID Vendor 0x0a5c (2652 indec)
And If i add it, nothing changes

Now we have this :
Attached File  USB_Bluetooth.jpg   115.31KB   202 downloads
The added devices are now known as "Bluetooth USB Host Controler"
And with -v flag or dmesg, instead of before "BTCoexistence not supported" there is now this error message:

E:[AppleUSBBluetoothHCIController][FindInterfaces] bulk IN pipe open failed!
 E:[AppleUSBBluetoothHCIController][FindInterfaces] some interface pipes were not found. Device is no good as a transport
 E:[AppleUSBBluetoothHCIController][initHardware] failedExit.
 SendHCIRequest failed, error (0xe00002c0)E:[AppleUSBBluetoothHCIController][FindInterfaces] bulk IN pipe open failed!
 E:[AppleUSBBluetoothHCIController][FindInterfaces] some interface pipes were not found. Device is no good as a transport
 E:[AppleUSBBluetoothHCIController][initHardware] failedExit.
 SendHCIRequest failed, error (0xe00002c0)Jettisoning kernel linker.

But it still doesn't work... and I don't know if this is a good way, surly no because it doesn't work :(
:)

Any help and advises would be much appreciated
thanks in advance :)

#7
mastrchee

mastrchee

    InsanelyMac Protégé

  • Retired
  • 66 posts
  • Gender:Male
  • Location:London, UK
have u found a solution? or was it a dead-end? im expecting a dell laptop soon..so im looking around now

#8
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male
The dell xps1340 uses the dell bluetooth 370 as well so I'm interested in a solution for this.

Seems to me that the changes to Info.plist should be for the usb device 413c:8156, which corresponds to the dell bluetooth controller, not 413c:8157 & 413c:8158 which correspond to the bluetooth HID keyboard & mouse devices respectively.

I notice that 413c:8156 only shows up under linux after I flip bluetooth from HID to HCI mode with: hid2ch --tohci. Under OSX, I see no such usb device. So I'm thinking the problem is that under OSX, it's failing to put the controller into HCI mode and so the kexts don't initialize. Anybody know how to get the controller into HCI mode under OSX?

I haven't seen any lsusb -v details from a real mac with a broadcom 2046. That'd be real handy to compare against and could confirm which of the sub-devices is the right one to be referenced by BroadcomUSBBluetoothHCIController.

#9
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male
So I managed to port the dell portion of hid2hci over to OSX's IOKit API. And guess what, it works! Once I run my custom hid2hci program the dell bluetooth 370 pops up and the bluetooth device & daemon appears. No need to hack Info.plist at all.

BTW, the hid2hci program configures the dell bluetooth 370 via the usb device 413c:8158, which seems a bit odd, but whatever.

Need to cleanup the code to make a package.

Also, unfortunately, bluetooth is reverting back to HID mode upon resume from suspend, so it looks like this application will have to be re-run in /etc/rc.wakeup via sleepwatcher, so that bluetooth works cleanly upon wakeup. Better ideas?

#10
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male
Here is my OSX version of hid2hci. I have only ported over the dell support from the linux version of hid2hci (the original unix version also has logitech and csr support which I am unable to test and so I didn't bother with).
By default, hid2hci will look for a dell wireless 370 bluetooth device and flip it from HID to HCI mode. You can specify other usb product numbers with the -p switch. For example, "hid2hci -p 8154" should work for the dell wireless 410 bluetooth, and "hid2hci -p 8162" should work for the dell wireless 365 bluetooth.
Example:
bash-3.2$ hid2hci 
	   hid2hci: OSX version by bcc9@insanelymac.com <bcc24x7@gmail.com>
	   hid2hci: Version 1.0: supporting dell bluetooth devices only
	   Bluetooth HCI configuration request succeeded
	   bash-3.2$
I recommend setting up sleepwatcher and adding this program to sleepwatcher's /etc/rc.wakeup to get the bluetooth hardware automatically initialized upon resume from suspend and initial boot.

Attached Files



#11
Boombeng

Boombeng

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 598 posts
  • Gender:Male
  • Location:France
Thanks a lot Bcc9!
Works like a charm
:)

First post and topic's title edited

#12
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male

Thanks a lot Bcc9!
Works like a charm
:(

Great, glad it works for you too.
PS: Unreleated, but, any news on the HDA driver support for dell IDT audio? Us xps 1340 folks are still stuck on the old 10.5.3 driver which is a bit of a problem.

#13
buffalo98

buffalo98

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
hi, I downloaded and ran the file, but i don't know how to use "hid2hci -p 8154". please help

#14
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male

hi, I downloaded and ran the file, but i don't know how to use "hid2hci -p 8154". please help

You can try the command manually from the command line (terminal window) to verify that it works with your hardware. Once you've done that, the command can be automated by adding to sleepwatcher's /etc/rc.wakeup.

#15
Mr.Krabs

Mr.Krabs

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
  • Gender:Male
Great news, and big thanx to bcc9 for making this possible. Will give it a try today, and hope my tethering with iPhone will work over bluetooth now :)

#16
buffalo98

buffalo98

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

You can try the command manually from the command line (terminal window) to verify that it works with your hardware. Once you've done that, the command can be automated by adding to sleepwatcher's /etc/rc.wakeup.


Thanks bcc9, do you know where i can find how to get sleepwatcher's /etc/rc.wakeup? sorry for stupid question. I found some, but i'm not sure if it is, like here http://www.insanelym...hp/t107030.html

#17
jessa_jr

jessa_jr

    InsanelyMac Protégé

  • Members
  • Pip
  • 20 posts
Can I used this for my dell latitude d630 bluetoot 360 module.

#18
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male

Thanks bcc9, do you where i can find how to get sleepwatcher's /etc/rc.wakeup? sorry for stupid question. I found some, but i'm not sure if it is, like here http://www.insanelym...hp/t107030.html

sleepwatcher is here: http://www.bernhard-baehr.de/ and its enclosed startup package creates /etc/rc.wakeup. I currently have added
sleep 2
  /usr/local/bin/hid2hci
To the end of mine. I'm not totally happy with this solution however, as sleepwatcher doesn't even run /etc/rc.wakeup until fsck has completed and so my bluetooth mouse doesn't come online as quickly as I'd like.

Can I used this for my dell latitude d630 bluetoot 360 module.

I only listed 3 models of dell bluetooth, the 3 specifically listed in the source code. I don't know about that model, you'd need to figure out whether dell supports it using hid2hci under linux or what. If they got it working under linux it should work here too. Or just try it!

#19
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male
Here is a driver version of my hid2hci program. Benefits vs standalone program:
  • Leverages operating system to auto-match any eligible bluetooth device, no configuration required.
  • There are no suspend/resume scripts ala sleepwatcher required. Driver reloads right away upon resume
  • Handles reloading when you turn off/on of the wireless card via the laptop's hotkey.
  • Driver is able to turn on HCI mode a lot faster than sleepwatcher as it runs from the kext cache instead of after the system fsck
I've configured the driver's plist to auto-match the device codes for the following cards, if I missed any, they could simply be added to the Info.plist
  • Dell Wireless 365 Bluetooth
  • Dell Wireless 370 Bluetooth
  • Dell Wireless 410 Bluetooth
The only drawback I've found is that the kext needs to be in /System/Library/Extensions for the system to auto-load the kext if you boot with wireless turned off and then turn it on sometime later. If the kext is instead in /Extra the system errors out when it tries to load the kext in this case. If someone knows how to fix this dependency please let me know.

OSX 10.5.x and 10.6/10.7 versions included, auto-selected by installer script.

If you boot with -v mode, you should see DellBluetoothHCI loading right after the USB drivers.

Update: fixed 10.6 version's plist so that it loads properly in 64 bit mode.
Update2: I've added a pkg version of DellBluetoothHCI. This package version automatically selects the 10.5.x or 10.6/10.7 kext depending upon the installed OS. The new version also automatically installs the kext into /System/Library/Extensions with the right permissions.
Update 3: Source code for kext attached

Attached Files



#20
zmsilver

zmsilver

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

Here is a driver version of my hid2hci program.


I have a dell 1340, however I have not been successful in getting my bluetooth to work using this kext, or the application that you previously posted. The kext loads successfully, so I'm not quite sure what is wrong...any ideas?





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy