我有一个 Broadcom BCM43228 mPCIe 卡,它随我的主板(华硕 ROG Maximus V Extreme,似乎无法找到该卡的链接)现在非常适合 WiFi,但我无法检测到板载蓝牙硬件。在 Windows 中,我完全支持蓝牙 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)
Run Code Online (Sandbox Code Playgroud)
关键线似乎是:
15:00.0 Network controller: Broadcom Corporation BCM43228 802.11a/b/g/n
Run Code Online (Sandbox Code Playgroud)
如果我尝试检测蓝牙卡,则看不到任何内容:
$ hcitool dev
Devices:
$ rfkill list all
Run Code Online (Sandbox Code Playgroud)
$ lspci
Run Code Online (Sandbox Code Playgroud)
$ lsusb
Run Code Online (Sandbox Code Playgroud)
我终于找到了这张卡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)
Run Code Online (Sandbox Code Playgroud)
我正在运行 kernel 3.2.0-34-generic。
我听说这张卡需要注入固件才能运行。如果是这种情况,我该怎么做?
根据这篇文章,当前的精确内核无法识别您的特定蓝牙模块。
您的命令会usb-devices显示特定的蓝牙设备 - 供应商和 ProdID 值 -0b05:17b5
补丁已提交到主 Git 存储库。很可能(但不确定)此补丁将包含在下一个内核 - v3.8 中。但是,如果这通过staging 进行,它可能是以后的模块。
因此,目前,为了让您的蓝牙设备被识别,您应该在启动板上提交错误报告,询问是否可以向后移植此补丁 - 尽可能详细地提供补丁,并在可能的情况下将补丁提交为好。
如果你想自己修补这个,这里有一些你可以遵循的注意事项。
修补内核
sudo apt-get install build-essential apt-get 源 linux-source-3.2.0 sudo apt-get install linux-headers-$(uname -r)
即不要使用,sudo apt-get source linux-source-3.2.0因为这将以 root 身份下载源 - 如果您以 root 身份下载,这将导致稍后编译问题。
cd linux-3.2.0 cp /boot/config-$(uname -r) .config cp /usr/src/linux-headers-$(uname -r)/Module.symvers 。
上面的linux表明补丁应该适用于 btusb.c
使用你最喜欢的编辑器打开这个内核模块
gedit驱动程序/蓝牙/ btusb.c
搜索并找到包含文本的行 BCM20702A0
它看起来像:
/* 博通 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 },
添加以下您的新蓝牙设备 - 即您的供应商和 ProdID,{ USB_DEVICE(0x0b05, 0x17b5) },即
/* 博通 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 },
make M=驱动程序/蓝牙模块
这应该成功编译内核模块,包括您新修补的文件。
最后将内核模块添加到您当前的内核驱动程序文件夹中:
光驱/蓝牙 须藤cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth 须藤服务蓝牙停止 须藤 modprobe -r btusb 须藤 modprobe btusb 须藤服务蓝牙启动
希望现在你的蓝牙设备被识别-当你运行它应该是可见的rfkill list all,以及lsusb
最后...
每次您的内核被 Canonical 更新时,您都需要重新运行上述过程,因为您的新蓝牙模块将被覆盖 - 如果幸运的话,您可以使用运行sudo modprobe命令进行较小的内核更新。
| 归档时间: |
|
| 查看次数: |
4262 次 |
| 最近记录: |