蓝牙不工作(Atheros AR5BBU22)

蓝牙不工作(Atheros AR5BBU22)

我的笔记本电脑无法通过 Ubuntu 找到蓝牙设备。在 Windows 7 中它可以正常工作。我使用的是 Ubuntu 12.04 和 11.10

lsusb 的输出:

总线 001 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
总线 002 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
总线 003 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
总线 004 设备 001:ID 1d6b:0003 Linux Foundation 3.0 根集线器
总线 001 设备 002:ID 8087:0024 Intel 公司集成速率匹配集线器
总线 002 设备 002:ID 8087:0024 Intel 公司集成速率匹配集线器
总线 001 设备 003:ID 1bcf:288a 凌阳创新科技股份有限公司
总线 001 设备 004:ID 0489:e03c 富士康/鸿海
总线 002 设备 003:ID 046d:c52b Logitech, Inc. Unifying 接收器

hciconfig 的输出:

hci0:类型:BR/EDR 总线:USB
   BD 地址:94:39:E5:4E:FA:3A ACL MTU:1022:8 SCO MTU:183:5
   启动运行 PSCAN ISCAN
   RX字节:1559 acl:0 sco:0 事件:104 错误:0
   TX 字节:926 acl:0 sco:0 命令:81 错误:0

lsmod 的输出:

使用的模块大小
bbswitch 13355 0
rfcomm 47604 12
孟加拉国经济伙伴关系 18281 2
parport_pc 32866 0
ppdev 17113 0
binfmt_misc 17540 1
snd_hda_codec_hdmi 32474 1
snd_hda_codec_conexant 62128 1
snd_hda_intel 33773 3
snd_hda_codec 127706 3 snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_hda_intel
joydev 17693 0
snd_hwdep 13668 1 snd_hda_codec
snd_pcm 97188 3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_seq_midi 13324 0
uvcvideo 72627 0
videodev 98259 1 uvcvideo
hid_logitech_dj 18593 0
snd_rawmidi 30748 1 snd_seq_midi
usbhid 47199 1 hid_logitech_dj
hid 99559 2 hid_logitech_dj,usbhid
arc4 12529 2
v4l2_compat_ioctl32 17128 1 视频设备
snd_seq_midi_event 14899 1 snd_seq_midi
ath9k 132390 0
mac80211 506816 1 ath9k
ath9k_common 14053 1 ath9k
snd_seq 61896 2 snd_seq_midi,snd_seq_midi_event
ath9k_hw 411112 2 ath9k,ath9k_common
snd_timer 29990 2 snd_pcm,snd_seq
snd_seq_device 14540 3 snd_seq_midi,snd_rawmidi,snd_seq
i915 468651 3
psmouse 87603 0
snd 78855 16 snd_hda_codec_hdmi、snd_hda_codec_conexant、snd_hda_intel、snd_hda_codec、snd_hwdep、snd_pcm、snd_rawmidi、snd_seq、snd_timer、snd_seq_device
ath 24067 3 ath9k,ath9k_common,ath9k_hw
cfg80211 205544 3 ath9k,mac80211,ath
drm_kms_helper 46978 1 i915
drm 242038 4 i915,drm_kms_helper
18288 2
mac_hid 13253 0
蓝牙 180104 23 rfcomm,bnep,btusb
soundcore 15091 1 秒
acer_wmi 28418 0
mxm_wmi 12979 0
snd_page_alloc 18529 2 snd_hda_intel,snd_pcm
i2c_algo_bit 13423 1 i915
稀疏键映射 13890 1 acer_wmi
严重_原始 13211 0
rts_pstor 445196 0
梅 41616 0
wmi 19256 2 acer_wmi,mxm_wmi
视频 19596 1 i915
17799 0
parport 46562 3 parport_pc,ppdev,lp
atl1c 41717 0

uname -a 的输出:

Linux 笔记本电脑 3.2.0-23-通用 #36-Ubuntu SMP 2012 年 4 月 10 日星期二 20:39:51 UTC x86_64 x86_64 x86_64 GNU/Linux

dmesg | grep Bluetooth 的输出:

[7.642818]蓝牙:核心版本2.16
[7.642839]蓝牙:HCI设备和连接管理器已初始化
[7.642841]蓝牙:HCI套接字层已初始化
[7.642842]蓝牙:L2CAP套接字层已初始化
[7.642847]蓝牙:SCO套接字层已初始化
[7.700557]蓝牙:通用蓝牙 USB 驱动程序版本 0.6
[15.498797]蓝牙:BNEP(以太网仿真)版本1.3
[15.498800]蓝牙:BNEP 过滤器:协议多播
[15.524883]蓝牙:RFCOMM TTY 层已初始化
[15.524888]蓝牙:RFCOMM套接字层已初始化
[15.524890]蓝牙:RFCOMM 版本 1.11

答案1

支持Atheros AR5BBU22位于内核中,3.6.15但此外,系统上还必须安装专有固件才能使蓝牙正常工作。它在软件包中可用linux-firmware(在 ubuntu 上;firmware-atheros在 debian 上,非免费)。

答案2

这个需要补丁才能正确加载固件:

--- a/drivers/bluetooth/ath3k.c 2012-04-27 19:17:35.000000000 +0200  
+++ b/drivers/bluetooth/ath3k.c 2012-04-30 01:29:47.081838667 +0200  
@@ -79,6 +79,9 @@ static struct usb_device_id ath3k_table[  
    /* Atheros AR5BBU12 with sflash firmware */  
    { USB_DEVICE(0x0489, 0xE02C) },  

+   /* Atheros AR5BBU22 with sflash firmware */  
+   { USB_DEVICE(0x0489, 0xE03C) },  
+
    { } /* Terminating entry */  
 };  

@@ -95,6 +98,9 @@ static struct usb_device_id ath3k_blist_  
    { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },  
    { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },  

+   /* Atheros AR5BBU22 with sflash firmware */  
+   { USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },  
+
    { } /* Terminating entry */  
 };

--- a/drivers/bluetooth/btusb.c 2012-04-27 19:17:35.000000000 +0200  
+++ b/drivers/bluetooth/btusb.c 2012-04-30 01:31:49.302182281 +0200  
@@ -135,6 +135,9 @@ static struct usb_device_id blacklist_ta  
    /* Atheros AR5BBU12 with sflash firmware */  
    { USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },  

+   /* Atheros AR5BBU22 with sflash firmware */  
+   { USB_DEVICE(0x0489, 0xe03c), .driver_info = BTUSB_ATH3012 },  
+
    /* Broadcom BCM2035 */  
    { USB_DEVICE(0x0a5c, 0x2035), .driver_info = BTUSB_WRONG_SCO_MTU },  
    { USB_DEVICE(0x0a5c, 0x200a), .driver_info = BTUSB_WRONG_SCO_MTU },  

相关内容