linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miguel Barrio Orsikowsky <megamik@gmail.com>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: PROBLEM: 0489:e062 [Sony VAIO SVF1531C5E] Bluetooth adapter does not see BT devices
Date: Wed, 31 Dec 2014 13:54:43 +0100	[thread overview]
Message-ID: <54A3F213.20106@gmail.com> (raw)
In-Reply-To: <F1981414-E281-4925-9C71-7310F538219F@holtmann.org>

El 31/12/14 a las 12:31, Marcel Holtmann escribió:
> Hi Miguel,
>
>>>> [1.] One line summary of the problem:
>>>>
>>>> 0489:e062 [Sony VAIO SVF1531C5E] Bluetooth adapter does not see BT devices
>>>>
>>>> [2.] Full description of the problem/report:
>>>>
>>>> The Bluetooth adapter is detected and apparently working but, when executing "hcitool scan", the device list is always empty: it cannot see any BT device around.
>>>>
>>>> But, if I boot into Windows just before booting into Linux, the adapter works perfectly and it sees all BT devices. It seems Windows driver is performing some activation to the BT adapter.
>>>>
>>>> Test case:
>>>> Step 1: power on the Sony VAIO SVF1531C5E and boot into Linux.
>>>> Step 2: while having around one or more devices with BT enabled and visible, type "hcitool scan" and wait for a few seconds just to see that nothing gets listed.
>>>> Step 4: reboot the laptop and boot into a Windows partition (mine is Windows 8.1 x64).
>>>> Step 5: wait until it is completely booted, then just reboot into Linux again.
>>>> Step 6: while having around one or more devices with BT enabled and visible, type "hcitool scan" and wait for a few seconds just to see all of your devices correctly listed this time. You will be able to pair and use them later without any issue.
>>>>
>>>> [3.] Keywords (i.e., modules, networking, kernel):
>>>>
>>>> [4.] Kernel version (from /proc/version):
>>>>
>>>> Linux version 3.19.0-031900rc2-generic (apw@tangerine) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201412290135 SMP Mon Dec 29 01:36:54 UTC 2014
>>> just include the content of /sys/kernel/debug/usb/devices for this adapter. I assume it is connected via USB.
>> Yes, it is integrated and connected via USB:
>>
>> T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
>> D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
>> P:  Vendor=0489 ProdID=e062 Rev= 1.12
>> S:  Manufacturer=Broadcom Corp
>> S:  Product=BCM43142A0
>> S:  SerialNumber=3C77E6DC7494
>> C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
>> I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
>> E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
>> E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
>> E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
>> I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
>> E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
>> E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
>> I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
>> E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
>> E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
>> I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
>> E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
>> E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
>> I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
>> E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
>> E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
>> I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
>> E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
>> E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
>> I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
>> E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
>> E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
>> I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
>> E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
>> E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
>> I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
> this one is listed as loading firmware patches if they are provided.
>
>          /* Foxconn - Hon Hai */
>          { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01),
>            .driver_info = BTUSB_BCM_PATCHRAM },
>
> The only thing you have to do find the right *.hcd file and put under /lib/firmware/brcm/ so it can be loaded. I bet if you call dmesg and look at the log of the driver it will even mention something about the firmware file.
>
> Some of the Broadcom dongles are pretty much broken. They will not work when you do not patch the firmware to fix their bugs.
>
I have done the following:

1. dmesg | grep Bluetooth. This reveals the name of the firmware patch 
needed:

[   15.825275] Bluetooth: hci0: BCM: patch brcm/BCM43142A0-0489-e062.hcd 
not found

2. Mounted the Windows 8.1 x64 partition into /mnt

3. find /mnt -iname '*brcm.inf'. This leads to '/mnt/Program 
Files/WIDCOMM/Bluetooth Software/bin/bcbtums-win8x64-brcm.inf', viewed 
it and located the E062 string which leads to the file 
BCM43142A0_001.001.011.0161.0182.hex:

...
%BRCM43142BtAdapter.DeviceDesc%=BlueRAMUSBE062, 
USB\VID_0489&PID_E062       ; Sony 43142A0 combo
...
;;;;;;;;;;;;;RAMUSBE062;;;;;;;;;;;;;;;;;

[RAMUSBE062.CopyList]
bcbtums.sys
btwampfl.sys
BCM43142A0_001.001.011.0161.0182.hex
...

4. find /mnt -name 'BCM43142A0_001.001.011.0161.0182.hex'. Copied the 
'/mnt/Program Files/WIDCOMM/Bluetooth 
Software/bin/BCM43142A0_001.001.011.0161.0182.hex' file into my home dir.

5. Downloaded and compiled hex2hcd (https://github.com/jessesung/hex2hcd 
<https://github.com/jessesung/hex2hcd>). Executed it against the 
BCM43142A0_001.001.011.0161.0182.hex file to get the 
BCM43142A0-0489-e062.hcd as requested by the dmesg message, and put it 
in /lib/firmare/brcm.

6. Reboot.

7. Now dmesg does not show the error "patch 
brcm/BCM43142A0-0489-e062.hcd not found", but the BT adapter is not even 
recognized ("hcitool scan" shows No such device), and dmesg shows this 
error in addition to the "hci0 command 0x1001 tx timeout" one:

[   26.265214] Bluetooth: hci0: HCI_OP_READ_LOCAL_VERSION failed (-110)

8. I rebooted into Linux again (no Windows this time), and the BT 
adapter is now recognized and fully working ("hcitool scan" shows all 
the BT devices around). Dmesg shows no errors this time but this two new 
messages:

[   15.107318] Bluetooth: hci0: BCM: patching hci_ver=06 hci_rev=00b6 
lmp_ver=06 lmp_subver=210b
[   15.567138] Bluetooth: hci0: BCM: firmware hci_ver=06 hci_rev=00b6 
lmp_ver=06 lmp_subver=210b

Thus, there is no need to boot Windows before Linux if the .hcd file is 
present, but you still need to boot Linux twice in order for the BT 
adapter to work properly:

Regards,
Miguel.

  reply	other threads:[~2014-12-31 12:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-30 16:30 PROBLEM: 0489:e062 [Sony VAIO SVF1531C5E] Bluetooth adapter does not see BT devices Miguel Barrio Orsikowsky
2014-12-30 19:09 ` Marcel Holtmann
2014-12-31 11:25   ` Miguel Barrio Orsikowsky
2014-12-31 11:31     ` Marcel Holtmann
2014-12-31 12:54       ` Miguel Barrio Orsikowsky [this message]
2014-12-31 22:51         ` Marcel Holtmann
2015-01-01 13:40           ` Miguel Barrio Orsikowsky
2015-01-01 19:47             ` Marcel Holtmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54A3F213.20106@gmail.com \
    --to=megamik@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=marcel@holtmann.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).