use*_*890 6 laptop bluetooth broadcom 12.10 13.10
我有一台联想 B590 笔记本电脑。笔记本电脑是Ubuntu 认证的 Ubuntu 12.04 64bit,所以我没想到会出现任何问题。首先,我尝试让 Broadcom 43142 wifi/蓝牙模块在 Ubuntu 12.10 64 位上运行,但失败了。因此,我昨天做了一个全新的 Ubuntu 13.10 64 位安装。这里 wifi 模块是开箱即用的。我唯一要做的就是启用受限驱动程序。该蓝牙模块是公认太多,但它不工作。
问题是:我还有两个蓝牙设备靠近笔记本电脑,未配对,每个设备都可以分别发现另一个。他们都无法hcitool scan
发现笔记本电脑,也找不到任何设备。虽然它不会给出任何错误。
lspci|grep -i Broadcom:
02:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)1
Run Code Online (Sandbox Code Playgroud)
dmesg|grep -i 蓝色:
[ 8.023496] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[ 8.384905] Bluetooth: Core ver 2.16
[ 8.384936] Bluetooth: HCI device and connection manager initialized
[ 8.384943] Bluetooth: HCI socket layer initialized
[ 8.384944] Bluetooth: L2CAP socket layer initialized
[ 8.384959] Bluetooth: SCO socket layer initialized
[ 8.721266] Bluetooth: can't load firmware, may not work correctly
[ 11.274285] Bluetooth: RFCOMM TTY layer initialized
[ 11.274298] Bluetooth: RFCOMM socket layer initialized
[ 11.274299] Bluetooth: RFCOMM ver 1.11
[ 11.283683] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 11.283686] Bluetooth: BNEP filters: protocol multicast
[ 11.283696] Bluetooth: BNEP socket layer initialized
[ 13.417478] Bluetooth: hci0 command 0x1003 tx timeout
Run Code Online (Sandbox Code Playgroud)
hciconfig:
hci0: Type: BR/EDR Bus: USB
BD Address: 1C:3E:84:E8:81:98 ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING PSCAN ISCAN
RX bytes:1265 acl:0 sco:0 events:84 errors:0
TX bytes:3794 acl:0 sco:0 commands:81 errors:0
Run Code Online (Sandbox Code Playgroud)
bluez-simple-agent hci# 1C:3E:84:E8:81:98:
Creating device failed: org.bluez.Error.ConnectionAttemptFailed: Page Timeout
Run Code Online (Sandbox Code Playgroud)
rfkill 列表:
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
1: brcmwl-0: Wireless LAN
Soft blocked: no
Hard blocked: no
2: tpacpi_bluetooth_sw: Bluetooth
Soft blocked: no
Hard blocked: no
3: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
Run Code Online (Sandbox Code Playgroud)
用户名 -a:
Linux B590 3.11.0-14-generic #21-Ubuntu SMP Tue Nov 12 17:04:55 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
最后是扫描尝试的输出,它没有给出任何结果:
hcitool 扫描:
Scanning...
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我应该如何让蓝牙设备工作?
小智 0
我正在使用 Broadcom 的 wl 驱动程序,网址为http://www.broadcom.com/support/802.11/linux_sta.php该驱动程序需要修补,我从 arch linux 论坛之一获取了修补程序文件。制作并安装 wl.ko 并记住加载 btusb 模块以使蓝牙工作
Linux 内核支持 Broadcom 43142 蓝牙,但它需要一个二进制固件文件,由于许可问题,发行版无法包含该文件。
如果您查看系统日志,您可能会看到内核尝试从名为 的文件加载固件BCM43142A0-04ca-2007.hcd
,但失败了。
获取文件涉及下载芯片的 Windows 驱动程序、找到指定的文件BCM43142A0_001.001.011.0122.0153.hex
,然后使用hex2hcd将其转换为 hcd 格式。转换后的文件应放置在/lib/firmware/brcm/BCM43142A0-04ca-2007.hcd
.
Windows 驱动程序 EXE 安装程序可以使用 wine 解压 - 安装程序将在其中创建一个文件夹,drive_c
您可以在其中找到所需的 .hex 文件。B590 的当前驱动程序显然已经更改了 .hex 文件的名称,因此我必须进行额外的谷歌搜索才能从另一个型号的安装程序中获取该文件。
如果您不想自己进行转换,可以使用我制作的BCM43142A0-04ca-2007.hcd文件,该文件应复制到内核将搜索它的位置:
sudo cp BCM43142A0-04ca-2007.hcd /lib/firmware/brcm/
Run Code Online (Sandbox Code Playgroud)
这是从 Windows 安装程序中获取的原始BCM43142A0_001.001.011.0122.0153.hex,以防万一您需要它。