Bluetooth não encontrado em BCM43228

4

Eu tenho uma placa mcompi Broadcom BCM43228 que veio com minha placa-mãe ( ASUS ROG Maximus V Extreme , não consigo encontrar um link para o que o cartão é) que está funcionando muito bem para WiFi agora, mas não consigo detectar o hardware Bluetooth onboard. No Windows, tenho suporte total a Bluetooth 4.0.

$ lspci 
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:14.0 USB controller: Intel Corporation Panther Point USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation Panther Point MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 04)
00:1a.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation Panther Point High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 1 (rev c4)
00:1c.4 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 5 (rev c4)
00:1c.6 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 7 (rev c4)
00:1c.7 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 8 (rev c4)
00:1d.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Panther Point LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation Panther Point 6 port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation Panther Point SMBus Controller (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1189 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 0e0a (rev a1)
0d:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
0e:00.0 PCI bridge: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev ba)
0f:01.0 PCI bridge: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev ba)
0f:04.0 PCI bridge: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev ba)
0f:05.0 PCI bridge: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev ba)
0f:06.0 PCI bridge: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev ba)
0f:07.0 PCI bridge: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev ba)
0f:08.0 PCI bridge: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev ba)
0f:09.0 PCI bridge: PLX Technology, Inc. PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch (rev ba)
10:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
12:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 01)
15:00.0 Network controller: Broadcom Corporation BCM43228 802.11a/b/g/n
17:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 01)

A linha chave parece ser:

15:00.0 Network controller: Broadcom Corporation BCM43228 802.11a/b/g/n

Se eu tentar detectar a placa Bluetooth, não vejo nada:

$ hcitool dev
Devices:

$ rfkill list all

Saída

$ lspci 

Saída

$ lsusb

Saída

Eu finalmente encontrei o cartão com usb-devices :

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)

Estou executando o kernel 3.2.0-34-generic .

Ouvi dizer que esta placa precisa ter firmware injetado para funcionar. Se for esse o caso, como faço isso?

    
por Naftuli Kay 04.12.2012 / 02:07

3 respostas

5

atualizando seu kernel

De acordo com esta postagem , seu módulo bluetooth específico não é reconhecido pelo kernel preciso atual.

Você comanda usb-devices revela o dispositivo bluetooth específico - os valores do fornecedor e do ProdID - 0b05:17b5

Um patch foi enviado ao repositório principal do Git. É provável (mas não certo) que este patch seja incluído no próximo kernel - v3.8. No entanto, pode ser um módulo posterior, se isso ocorrer em teste .

Assim, por enquanto, para que o dispositivo bluetooth seja reconhecido, você deve enviar um relatório de erros na barra de tarefas perguntando se é possível fazer backport desse patch - forneça o máximo de detalhes possível ao patch e, se possível, envie o patch também.

Se você quiser corrigir isso, aqui estão algumas notas que você pode seguir.

atualizando seu kernel

  • faça o download do ambiente de criação, fonte do kernel & amp; cabeçalhos
sudo apt-get install build-essential 
apt-get source linux-source-3.2.0
sudo apt-get install linux-headers-$(uname -r)

i.e. NÃO use sudo apt-get source linux-source-3.2.0 , pois isso fará o download da origem como root - isso causará problemas de compilação mais tarde se você fizer download como root.

  • copie o arquivo de versões do módulo atual dos cabeçalhos de configuração e origem do kernel
cd linux-3.2.0
cp /boot/config-$(uname -r) .config
cp /usr/src/linux-headers-$(uname -r)/Module.symvers . 
  • corrigir o módulo bluetooth

O linux acima indicou que o patch deve ser aplicado a btusb.c

Usando seu editor favorito, abra este módulo do kernel

gedit drivers/bluetooth/btusb.c

Pesquisar & amp; encontre a linha que contém o texto BCM20702A0

Será parecido com:

/* Broadcom BCM20702A0 */
{ USB_DEVICE(0x0489, 0xe042) },
{ USB_DEVICE(0x13d3, 0x3388), .driver_info = BTUSB_BCM_PATCHRAM },
{ USB_DEVICE(0x13d3, 0x3389), .driver_info = BTUSB_BCM_PATCHRAM },
{ USB_DEVICE(0x413c, 0x8197), .driver_info = BTUSB_BCM_PATCHRAM },

Adicione o seguinte, seu novo dispositivo bluetooth - ou seja, seu fornecedor e ProdID { USB_DEVICE(0x0b05, 0x17b5) }, , por exemplo,

/* Broadcom BCM20702A0 */
{ USB_DEVICE(0x0b05, 0x17b5) },
{ USB_DEVICE(0x0489, 0xe042) },
{ USB_DEVICE(0x13d3, 0x3388), .driver_info = BTUSB_BCM_PATCHRAM },
{ USB_DEVICE(0x13d3, 0x3389), .driver_info = BTUSB_BCM_PATCHRAM },
{ USB_DEVICE(0x413c, 0x8197), .driver_info = BTUSB_BCM_PATCHRAM },
  • Agora compile
make M=drivers/bluetooth modules
  • Isso deve compilar com sucesso os módulos do kernel, incluindo o arquivo recém-atualizado.

  • Finalmente, adicione o módulo do kernel à sua atual pasta de drivers do kernel:

cd drivers/bluetooth
sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth
sudo service bluetooth stop
sudo modprobe -r btusb
sudo modprobe btusb
sudo service bluetooth start

Espero que agora seu dispositivo Bluetooth seja reconhecido - ele deve ficar visível quando você executar rfkill list all e lsusb

e finalmente ...

Cada vez que seu kernel é atualizado pela Canonical, você precisará executar novamente o procedimento acima porque seu novo módulo bluetooth será sobrescrito - se você tiver sorte, poderá usar os comandos sudo modprobe com kernel secundário atualizações.

    
por fossfreedom 08.12.2012 / 00:57
1

Eu tenho o mesmo problema com o BCM20702A0 no meu Acer Aspire R7 e encontrei outra solução permanente (sem recompilar o driver nas atualizações):

sudo echo btusb >> /etc/modules - isso forçará o carregamento do driver btusb;

adicione a linha echo 0b05 17b5 > /sys/bus/usb/drivers/btusb/new_id ao /etc/rc.local antes de exit 0 - isso forçará o driver a ser usado com o dispositivo especificado na inicialização (que é 04ca 2004 no meu sistema e também funciona).

    
por clover 03.02.2014 / 23:50
0

Consulte WifiDocs / Driver / bcm43xx no wiki do Ubuntu para obter informações sobre como instalar o arquivo correto drivers para o seu chipset.

    
por YodaDaCoda 06.12.2012 / 04:58

Tags