You are not logged in.

#26 2012-01-13 19:04:18

Harey
Member
From: Bavaria, Germany
Registered: 2007-03-24
Posts: 359

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

laloch wrote:

You can try this newer firmware taken from the 6.5.0.2100 driver package: http://dl.dropbox.com/u/25169171/BCM207 … 6.0204.hex
Rename in to fw.hex, place it in the bcmfwup directory and run the script.

Edit: Oh, and if you can, post the output please. It could prove my assumption about the firmware version HCI event.

No joy. Here is the output:

[root@gruenix bcmfwup]# ./bcmfwup.py                                                                                               
Traceback (most recent call last):                                                                                                 
  File "./bcmfwup.py", line 140, in <module>                                                                                       
    sys.exit(main())                                                                                                               
  File "./bcmfwup.py", line 129, in main                                                                                           
    hex = intelhex('fw.hex')                                                                                                       
  File "./bcmfwup.py", line 107, in __init__                                                                                       
    self.load_from_file(filename)                                                                                                  
  File "./bcmfwup.py", line 111, in load_from_file                                                                                 
    self.append(line)                                                                                                              
  File "./bcmfwup.py", line 119, in append                                                                                         
    checksum = int(line[-2:], 16)                                                                                                  
ValueError: invalid literal for int() with base 16: ''

Looks like no upload is taking place. BTW, this hex file is 10 times the size of the first file... (?)

Harvey


Linux is like a wigwam: No Gates, no Windows and an Apache inside

Offline

#27 2012-01-13 19:24:44

laloch
Member
Registered: 2010-02-04
Posts: 186

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Harey wrote:

No joy. Looks like no upload is taking place.

Ooops, that were those Windows lineends. Reuploaded. Sorry.

BTW, this hex file is 10 times the size of the first file... (?)

The rampatch is mutch newer than the previous one. It seems, that the original ROM firmware is really buggy smile

Edit: The hex parser is now fixed.

Last edited by laloch (2012-01-13 19:40:04)

Offline

#28 2012-01-13 19:50:45

Harey
Member
From: Bavaria, Germany
Registered: 2007-03-24
Posts: 359

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

laloch wrote:

Ooops, that was those Windows lineends. Reuploaded. Sorry.

Never mind. Retried and now:

[root@gruenix bcmfwup]# ./bcmfwup.py
event: array('B', [14, 4, 1, 3, 12, 0])
event: array('B', [14, 10, 1, 121, 252, 0, 20, 254, 255, 255, 0, 0])
event: array('B', [14, 4, 1, 46, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 76, 252, 0])                                                                                          
event: array('B', [14, 4, 1, 78, 252, 0])                                                                                          
event: array('B', [255, 2, 30, 0])                                                                                                 
event: array('B', [14, 10, 1, 121, 252, 0, 20, 254, 255, 255, 204, 0])                                                             
event: array('B', [19, 5, 1, 0, 0, 1, 0])                                                                                          
Traceback (most recent call last):                                                                                                 
  File "./bcmfwup.py", line 140, in <module>                                                                                       
    sys.exit(main())                                                                                                               
  File "./bcmfwup.py", line 136, in main                                                                                           
    up.attach_drivers()                                                                                                            
  File "./bcmfwup.py", line 32, in attach_drivers                                                                                  
    self.dev.attach_kernel_driver(intf.bInterfaceNumber)                                                                           
  File "/usr/lib/python2.7/site-packages/usb/core.py", line 718, in attach_kernel_driver                                           
    self._ctx.backend.attach_kernel_driver(self._ctx.handle, interface)                                                            
  File "/usr/lib/python2.7/site-packages/usb/backend/libusb10.py", line 617, in attach_kernel_driver                               
    _check(_lib.libusb_attach_kernel_driver(dev_handle, intf))                                                                     
  File "/usr/lib/python2.7/site-packages/usb/backend/libusb10.py", line 403, in _check                                             
    raise USBError(_str_error[ret], ret, _libusb_errno[ret])                                                                       
usb.core.USBError: [Errno 2] Entity not found

That works! Data transfer is possible now. I tried a Samsung cell phone and another computer with bt support. Although I can't connect to my headset but as I said before this seems to be a bluez bug. I can pair with this headset(s) too but no sound will get transferred.

Harvey

Last edited by Harey (2012-01-13 19:53:46)


Linux is like a wigwam: No Gates, no Windows and an Apache inside

Offline

#29 2012-01-13 20:00:26

laloch
Member
Registered: 2010-02-04
Posts: 186

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Harey wrote:

That works! Data transfer is possible now. I tried a Samsung cell phone and another computer with bt support.

Great!
I've already uploaded the fixed downloader together with this wersion of the rampatch.
...And it even confirmed my guess about the 'HCI_BCM_GET_FW_VERSION' command smile

edit:

Although I can't connect to my headset but as I said before this seems to be a bluez bug. I can pair with this headset(s) too but no sound will get transferred.

See here: https://bbs.archlinux.org/viewtopic.php?id=133460

Last edited by laloch (2012-01-13 23:13:34)

Offline

#30 2012-01-14 13:07:01

Harey
Member
From: Bavaria, Germany
Registered: 2007-03-24
Posts: 359

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

laloch wrote:

I've already uploaded the fixed downloader together with this wersion of the rampatch.
...And it even confirmed my guess about the 'HCI_BCM_GET_FW_VERSION' command smile

While thinking about your efforts it came to my mind that this could end in a patch that not only supports my 'flavour' of BCM20702A0 but all adapters mentioned in the windows inf file. Those not needing a rampatch could be supported just by adding their vendor id from the inf file (see former patch on the linux-bluetooth mailing list). This seems to really trivial.
And those needing a rampatch could be added using the information gained by now by uploading the rampatches that the windows driver supplies. We're writing history here wink

laloch wrote:

Although I can't connect to my headset but as I said before this seems to be a bluez bug. I can pair with this headset(s) too but no sound will get transferred.

See here: https://bbs.archlinux.org/viewtopic.php?id=133460

Thanks for the hint. Had no time to care about that by now. There is a new bluez (4.98) in the repos. Will first try that and maybe downgrade later via ARM if needed.

Harvey


Linux is like a wigwam: No Gates, no Windows and an Apache inside

Offline

#31 2012-01-14 13:22:58

laloch
Member
Registered: 2010-02-04
Posts: 186

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Harey wrote:

While thinking about your efforts it came to my mind that this could end in a patch that not only supports my 'flavour' of BCM20702A0 but all adapters mentioned in the windows inf file.

And that's what I intend to do of course ;-)

Offline

#32 2012-01-14 14:21:24

Harey
Member
From: Bavaria, Germany
Registered: 2007-03-24
Posts: 359

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

laloch wrote:

I've already uploaded the fixed downloader together with this wersion of the rampatch.

You have to rename the hex file to the original name of 'BCM20702A0_001.001.024.0156.0204.hex' to reflect your argument changes to the intelhex() call.

BTW, Bluez 4.98 is no good either. Downgrading to 4.96 brings my my headset back to life in kde.

Harvey


Linux is like a wigwam: No Gates, no Windows and an Apache inside

Offline

#33 2012-01-14 14:30:29

laloch
Member
Registered: 2010-02-04
Posts: 186

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Harey wrote:

You have to rename the hex file to the original name of 'BCM20702A0_001.001.024.0156.0204.hex' to reflect your argument changes to the intelhex() call.

Oh, thanks. I was somehow out of shape yesterday smile
Reuploaded.

Offline

#34 2012-01-15 20:55:53

thefoxlux
Member
Registered: 2012-01-11
Posts: 5

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Hello Guys,

Than you very much for your work and testing....Do you know when it will make it in the official repositories....Thanks

Kind Regards
Chris

Offline

#35 2012-01-15 21:51:19

laloch
Member
Registered: 2010-02-04
Posts: 186

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Hello,

thefoxlux wrote:

Do you know when it will make it in the official repositories.

it's hard to tell. The implementation itself is rather trivial, but we have to decide (preferably together with people from the BlueZ project) whether to implement a kernel module or an user space tool. Once implemented, we have to acquire a permission from Broadcom to redistribute their firmware.

Offline

#36 2012-01-16 01:29:44

starkraving
Member
Registered: 2012-01-16
Posts: 2

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Hi there, using the latest patch file, here is the output from bcmfwup.py:

Traceback (most recent call last):
  File "./bcmfwup.py", line 141, in <module>
    sys.exit(main())
  File "./bcmfwup.py", line 131, in main
    up = bcm_fw_up()
  File "./bcmfwup.py", line 19, in __init__
    raise ValueError('Device not found')
ValueError: Device not found


Don't know if this is relevant or not but my hardware id for bluetooth is "0a5c 21e3"

Thanks in advance,
Mike

Offline

#37 2012-01-16 02:02:26

laloch
Member
Registered: 2010-02-04
Posts: 186

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

starkraving wrote:

Don't know if this is relevant or not but my hardware id for bluetooth is "0a5c 21e3"

Yes it is. You need to change both the script and the RAM patch to match your device. Edit the ID_VENDOR and ID_PRODUCT constants near the top of the script to

ID_VENDOR = 0x0a5c
ID_PRODUCT = 0x21e3

Proper firmware for your device is BCM20702A1_001.002.014.0136.0175.hex. Save it to the bcmfwup directory. You also need to edit one more line near the end of the script from

  hex = intelhex('BCM20702A0_001.001.024.0156.0204.hex')

to

  hex = intelhex('BCM20702A1_001.002.014.0136.0175.hex')

Now run the script:

# ./bcmfwup.py
# modprobe btusb
# echo "0a5c 21e3" >> /sys/bus/usb/drivers/btusb/new_id

Please report results. It will help further development. Thanks.

Offline

#38 2012-01-17 04:58:10

starkraving
Member
Registered: 2012-01-16
Posts: 2

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Hi there, thanks for the help. I downloaded the file you specified and altered the python script, then reran it. Below is the output:

event: array('B', [14, 4, 1, 3, 12, 0])
event: array('B', [14, 10, 1, 121, 252, 0, 63, 254, 255, 255, 0, 0])
event: array('B', [14, 4, 1, 46, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 76, 252, 0])
event: array('B', [14, 4, 1, 78, 252, 0])
event: array('B', [255, 2, 30, 0])
event: array('B', [14, 10, 1, 121, 252, 0, 63, 254, 255, 255, 175, 0])
event: array('B', [19, 5, 1, 0, 0, 1, 0])

I'm happy to say that after running this script and the rest of the code you listed, I was able to pair with my bluetooth headset and get pulse output through it! Now my only question is, do I have to run the python script everytime I reboot? or just modprobe and register the new id?

Thank you so much!
Mike

Offline

#39 2012-01-17 11:03:16

laloch
Member
Registered: 2010-02-04
Posts: 186

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

starkraving wrote:

I'm happy to say that after running this script and the rest of the code you listed, I was able to pair with my bluetooth headset and get pulse output through it! Now my only question is, do I have to run the python script everytime I reboot? or just modprobe and register the new id?

Thanks for the feedback. For now, yes. You have to run the script after each reboot

Offline

#40 2012-01-17 12:31:53

Harey
Member
From: Bavaria, Germany
Registered: 2007-03-24
Posts: 359

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Hi laloch,

Did I miss a thread on the mailing list or did really noone answer your question?
FWIW: there is a package bluez-firmware in extra:
https://www.archlinux.org/packages/extr … -firmware/
I guess this is the right way to go with your additions then.

Harvey


Linux is like a wigwam: No Gates, no Windows and an Apache inside

Offline

#41 2012-01-17 14:51:01

laloch
Member
Registered: 2010-02-04
Posts: 186

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Nope, no one.
Since the BlueZ is not interested, I will most likely write a simple userl space tool and host it on Github.

Offline

#42 2012-01-17 16:03:54

Harey
Member
From: Bavaria, Germany
Registered: 2007-03-24
Posts: 359

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

laloch wrote:

Since the BlueZ is not interested, I will most likely write a simple userl space tool and host it on Github.

I doubt that they are not interested. I rather think most of them have set the thread to 'ignore' as it seemed to be at an end. Maybe repost on a new thread with [need coding advice] in the subject or something similar?

Harvey


Linux is like a wigwam: No Gates, no Windows and an Apache inside

Offline

#43 2012-01-20 13:52:22

thefoxlux
Member
Registered: 2012-01-11
Posts: 5

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Hello Guys,

David,,,did you get any chance to start a new thread on the mailing list or try to ping some on IRC channel #bluez ?

Thanks again for your help

Chris

Offline

#44 2012-04-28 09:48:15

jih
Member
Registered: 2012-04-28
Posts: 4

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Like starkraving, I have 0a5c:21e3 Broadcom device and when I run the py script, I get the same output as in message #38.  However, after modprobe and echo commands, I get to syslog

Apr 28 12:44:27 siika bluetoothd[4053]: HCI dev 0 registered
Apr 28 12:44:27 siika bluetoothd[4053]: Listening for HCI events on hci0
Apr 28 12:44:27 siika bluetoothd[4053]: HCI dev 0 up
Apr 28 12:44:27 siika bluetoothd[4053]: Proximity GATT Reporter Driver: Operation not permitted (1)
Apr 28 12:44:27 siika bluetoothd[4053]: sap-dummy interface org.bluez.SimAccessTest init failed on path /org/bluez/test
Apr 28 12:44:27 siika bluetoothd[4053]: Sap driver initialization failed.
Apr 28 12:44:27 siika bluetoothd[4053]: sap-server: Operation not permitted (1)
Apr 28 12:44:27 siika bluetoothd[4053]: Unable to load keys to adapter_ops: Function not implemented (38)
Apr 28 12:44:27 siika bluetoothd[4053]: Adapter /org/bluez/4053/hci0 has been enabled

and Bluetooth is not working.  hcitool dev shows the device, but scan does not find any other Bluetooth devices.

-- Juha

Offline

#45 2012-08-22 21:42:19

Ephraim
Member
Registered: 2012-08-22
Posts: 5

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Hey,

I own such a Fujitsu E751 too. And was about to try myself with updating the btusb kernel module. But had problems with understanding my wireshark logs. So I googled a bit regarding the usb stuff and stumbeld over this thread.
I would be glad if I could help anyhow. Is there any status update on this script or even about the kernel module laloch started?

Laloch: anyhow, I tested your script on ubuntu 12.04 and it worked. First I got timeouts after some "event: array('B', [14, 4, 1, 76, 252, 0])" outputs, but I guess it was an undefined hw situation as I was testing some stuff on my own before. After a reboot (geting into a defined state) it worked nicely!

Now I don't need to start up my virtualbox windows to load the firmware smile THX !!!

I have some spare time the next weeks so if I could help testing something or even implementing some stuff (as I said, I wanted to implemented firmware upload into btusb myself, altough I have only very little knowledge about the USB Protocol).

Bye
Ephraim

Offline

#46 2012-12-05 02:09:33

rfkrocktk
Member
Registered: 2012-12-05
Posts: 3

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Very interesting. I stumbled across this on my own quest for Bluetooth smile

My situation is a bit different. My Bluetooth adapter is a part of a BCM43228 mPCIe chip which was included with my motherboard (ROG Maximus V Extreme). In Windows, it actually shows up as a USB(!) device, but on Linux, I can't see the device at all.

$ rfkill list all

Output: http://pastebin.com/err9T5WS

$ lspci

Output: http://pastebin.com/aSJccW7N

$ lsusb

Output: http://pastebin.com/ZWFc82Tp

$ dmesg

Output: http://pastebin.com/pR18nL1F

Windows Driver INF file: http://pastebin.com/inV15jqd

Any ideas on where to get started here? I'd try the patch, but I'm not even seeing the device at all at this point. Any ideas?

Offline

#47 2012-12-05 08:41:21

Harey
Member
From: Bavaria, Germany
Registered: 2007-03-24
Posts: 359

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

The chip is fairly new and a completely different beast. Maybe it's better to open a different thread. Is your wlan working? You could try

usb-devices

for more information. I guess it has some kind of pci-usb bridge integrated. The easiest way to circumvent this is to buy a cheap separate bluetooth usb-adapter. I know that this is not what you wanted to hear. But think of the following: even if your chip would be supported both for wlan and bluetooth I don't think that they could be switched on and off separately...

Harvey


Linux is like a wigwam: No Gates, no Windows and an Apache inside

Offline

#48 2012-12-05 11:00:58

Ephraim
Member
Registered: 2012-08-22
Posts: 5

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Any news about this regarding Kernel integration of the firmware stuff?

Offline

#49 2012-12-05 11:33:05

Harey
Member
From: Bavaria, Germany
Registered: 2007-03-24
Posts: 359

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Ephraim wrote:

Any news about this regarding Kernel integration of the firmware stuff?

Not from my side. But the ubuntu guys seem to be working on this:
https://bugs.launchpad.net/ubuntu/+sour … ug/1065400

Harvey


Linux is like a wigwam: No Gates, no Windows and an Apache inside

Offline

#50 2012-12-05 18:39:28

rfkrocktk
Member
Registered: 2012-12-05
Posts: 3

Re: kernel 3.2 and Bluetooth Broadcom BCM20702A0

Harey wrote:

The chip is fairly new and a completely different beast. Maybe it's better to open a different thread. Is your wlan working? You could try

usb-devices

for more information. I guess it has some kind of pci-usb bridge integrated. The easiest way to circumvent this is to buy a cheap separate bluetooth usb-adapter. I know that this is not what you wanted to hear. But think of the following: even if your chip would be supported both for wlan and bluetooth I don't think that they could be switched on and off separately...

Harvey

Ok, I actually found it! w00t.

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0b05 ProdID=17b5 Rev=01.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM20702A0
S:  SerialNumber=############
C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

If it's there, can I use the firmware injection tool mentioned above to inject the firmware and power it on? What do I need to do in order to make that happen? I don't fear any bash work wink

Last edited by rfkrocktk (2012-12-05 18:39:51)

Offline

Board footer

Powered by FluxBB