请问有没有可以在 CentOS 下使用的 USB 蓝牙适配器?

2015-12-27 16:32:10 +08:00
 zeroday
笔记本没有蓝牙,系统是 CentOS7, 打算买一个蓝牙适配器接入电脑使用蓝牙键盘,有没有推荐呢?谢谢。
5030 次点击
所在节点    问与答
11 条回复
redsonic
2015-12-27 17:49:47 +08:00
选 broadcom 支持 4.0 的。 如果需要蓝牙键盘鼠标能在 bios 或 uefi 里操作的好像也只有 broadcom 了。搜某宝应该都有的。
zeroday
2015-12-27 22:41:16 +08:00
@redsonic 暂时还不需要在 bios 下可以使用的蓝牙适配器,谢谢推荐了。如果只是在 CentOS 下可以使用的蓝牙适配器有什么推荐吗?
redsonic
2015-12-27 23:02:51 +08:00
没有特殊要求 CSR 和 broadcom 都可以,内核都支持,后者多在无线网卡上集成,前者比较少见,主打蓝牙耳机之类的,但寨的比较多。我用的是比较老的 BCM2046 ,当时主要考虑要在 linux 下用 apple 的触摸板,他也是 broadcom 的,担心设备兼容性问题(和 wifi 的情况差不多)。
你是笔记本不支持蓝牙(主板上 mini-pcie 没有引出引脚、 bios 不支持)还是没有无线网卡?如果是后者,买块带蓝牙的无线网卡不更好,价格也不贵, 20-30 元就够了,单独一个 usb 蓝牙适配器也这个价钱。
zeroday
2015-12-28 00:53:07 +08:00
@redsonic 谢谢推荐。看了你的描述,我觉得奇怪,查了一下笔记本配置

笔记本是 Dell Latitude E6440 系列
http://china.dell.com/cn/business/p/latitude-e6440-laptop/pd.aspx?c=cn&cs=cnbsd1&l=zh&s=bsd&~ck=mn

看官网的介绍应该是有蓝牙的,但是在 CentOS 下的在设置中无法打开蓝牙,就像这样
redsonic
2015-12-28 01:56:13 +08:00
首先检查有没有物理的 wifi 开关。 wifi 开关关了,蓝牙也肯定关了,它俩一般共用一个物理开关。如果没有,或者有但打开还是找不到适配器。用这个命令试试 rfkill list ,我这里的输出是这样的:
1: phy1: Wireless LAN
Soft blocked: yes
Hard blocked: no
9: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
10: phy5: Wireless LAN
Soft blocked: yes
Hard blocked: no
你应该懂了。可以用 rfkill unblock all 打开。没有 rfkill 命令的话你还要先去装,包名好像就叫 rfkill 。
还不行就要看看是否真的有这个设备。用 lspci 看看是否有 Network controller ,这个一般是无线网卡。用 lsusb 看看是不是有 broadcom 的设备,如果有,几乎肯定是蓝牙。这样的话最终很可能缺少一个固件。我帮你 google 下,看到这个 http://www.dell.com/support/home/us/en/19/Drivers/DriversDetails?driverId=Y24FF , 下载解包里面都是驱动:

debs/
debs/fglrx_12.100-0ubuntu1_amd64.deb
debs/main/
debs/main/pulseaudio-patch-salado_1.0_all.deb
debs/main/oem-audio-hda-daily-lts-quantal-dkms_0.201305151525~precise1_all.deb
debs/main/oem-power-sata-alpm_1.0simerville1_all.deb
debs/main/intel-i915-backport-3.8-dkms_3.8.6.0_all.deb
debs/oem-bt-dw1601-dkms_0.2_all.deb
debs/fglrx-amdcccle_12.100-0ubuntu1_amd64.deb
debs/glidepoint_3.6-13_amd64.deb
debs/fglrx-dev_12.100-0ubuntu1_amd64.deb
debs/oem-sdcard-o2micro-dkms_1.0_all.deb
debs/ethernet-suspend-modules-e1000e_0.2_all.deb
debs/oem-wireless-bluetooth-intel-7260-dkms_3.10.20130828_amd64.deb
debs/bcmwl-kernel-source_6.30.223.30+bdcom-0ubuntu1~ppa1_amd64.deb
factory/
prepackage.dell
preseed/
preseed/dell-recovery.seed
scripts/
scripts/chroot-scripts/
scripts/chroot-scripts/fish/
scripts/chroot-scripts/fish/05-gfx-fglrx.sh
scripts/chroot-scripts/fish/95-pcie_aspm
scripts/chroot-scripts/fish/12-glidepoint_3.6-13_amd64.sh
scripts/chroot-scripts/fish/90-add-bluetooth-restart-workaround
scripts/chroot-scripts/os-post/
scripts/chroot-scripts/os-post/05-gfx-fglrx.sh

和无线 /蓝牙有关的是这几个
bcmwl-kernel-source_6.30.223.30+bdcom-0ubuntu1~ppa1_amd64.deb
oem-wireless-bluetooth-intel-7260-dkms_3.10.20130828_amd64.deb
oem-bt-dw1601-dkms_0.2_all.deb

如果你的本子是 broadcom 的卡,应该用 bcmwl 或 dw1601 但这些在 centos7 里面肯定都有了,会自动加载,所以到这里,很可能是 intel 的 7260 ,这个卡如果没有 firmware 是起不来的,可以到这里下载: http://linuxwireless.org/en/users/Drivers/iwlwifi/#Firmware ,解压放 /lib/firmware ,重启。应该可以看到 wifi 和蓝牙了吧,还看不到就 rfkill list 再看看...
zeroday
2015-12-28 11:29:00 +08:00
@redsonic 非常感谢。

我试着这样操作
➜ ~ rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

➜ ~ lspci | grep "Network"
03:00.0 Network controller: Qualcomm Atheros AR9485 Wireless Network Adapter (rev 01)

➜ ~ lsusb
Bus 003 Device 002: ID 8087:8008 Intel Corp.
Bus 004 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 003: ID 0c45:64d0 Microdia

firmware 也是有的。
➜ firmware ls iwlwifi-7260*
iwlwifi-7260-10.ucode iwlwifi-7260-7.ucode iwlwifi-7260-9.ucode
iwlwifi-7260-12.ucode iwlwifi-7260-7.ucode.bak
iwlwifi-7260-13.ucode iwlwifi-7260-8.ucode

➜ firmware ls iwlwifi-7260*
iwlwifi-7260-10.ucode iwlwifi-7260-7.ucode iwlwifi-7260-9.ucode
iwlwifi-7260-12.ucode iwlwifi-7260-7.ucode.bak
iwlwifi-7260-13.ucode iwlwifi-7260-8.ucode

CentOS 内核版本是
➜ firmware uname -r
3.10.0-327.3.1.el7.x86_64

现在就是不确定是不是驱动的问题, CentOS 下的驱动还没有 Google 到
redsonic
2015-12-28 12:05:40 +08:00
你的 wifi 是 Atheros AR9485
https://wireless.wiki.kernel.org/en/users/drivers/ath9k/btcoex
WB225 ( AR9485 + AR3012 )
蓝牙芯片是 AR3012
你可以按上面说的先 rmmod ath9k 把相关驱动卸载,再载入带参数的试试
modprobe ath9k btcoex_enable=1
redsonic
2015-12-28 12:20:35 +08:00
虽然我也觉得这个卡应该是带蓝牙的,但 lsusb 看不到,说明 linux 认为压根就不存在蓝牙适配器这个物理设备。是不是 bios 里面可能把它禁了?
zeroday
2015-12-28 18:12:07 +08:00
@redsonic 看了一下 bios ,启用了 bluetooth. 下午试着用 Ubuntu live cd 打开,装了官网 ubuntu deb 的驱动也没识别出来。
redsonic
2015-12-28 19:12:22 +08:00
live cd 应该驱动更不全。 你 bios 启用了蓝牙 lsusb 有看到新增设备吗?如果再没有, 90%可以判断就是没有蓝牙了,再或者是 OEM 定制的奇葩卡,只能装 dell windows 的驱动,在 windows 下用。
zeroday
2015-12-29 10:25:16 +08:00
@redsonic 刚刚 broadcom 芯片的蓝牙适配器到了,插入电脑直接可用。

bios 启用蓝牙后,输入 lsusb 显示的设备还是没有变。非常感谢你的帮助。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/246473

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX