当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [原创][分享]解决连接USB-蓝牙适配器后,系统日志不断出现 hci_scodata_packet 的问题
帖子发表于 : 2008-11-16 11:45 
头像

注册: 2007-04-05 21:22
帖子: 523
送出感谢: 0 次
接收感谢: 0 次
我有个 USB - Bluetooth 适配器。每次接到电脑上,系统日志里就不断出现:
代码:
hci_scodata_packet: hci0 SCO packet for unknown connection handle 92

估计有一小时不拔下蓝牙的话,系统日志就>50M了。
搜了一下解法,发现是内核的问题。我自己总结了个解法,希望能帮助大家:

解上蓝牙,运行lsusb,然后赶快拔下蓝牙。
你会看到这样的一项:
代码:
Bus 002 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

(如果你的蓝牙是别的牌子的,那么信息有所不同。)

记下这个 0a12:0001

http://www.kernel.org 上下载最新的内核。
我下载了linux-2.6.27.6.tar.bz2

解压。

运行
代码:
sudo apt-get install libqt3-mt-dev -y
cd linux-2.6.27.6
gedit ./drivers/bluetooth/hci_usb.c

找到“static struct usb_device_id blacklist_ids[]”(在105行左右):
在这个数组里加上一项:
代码:
{ USB_DEVICE(0x0a12, 0x0001), .driver_info = HCI_BROKEN_ISOC },

注意,0x0a12, 0x0001要根据您的蓝牙的实际型号而随机应变。
要是数组里本来就有USB_DEVICE(0x0a12, 0x0001)这一项,那么请把等号后面的项改成HCI_BROKEN_ISOC。
然后关了gedit,回到终端,运行
代码:
make xconfig

在出现的窗口里,选“File”->"Load",装载 /boot/config-2.6.24-21-generic (我这个系统是 8.04,最新的config就是这个了。你要是用8.10,就找比这个更新的config,估计是 /boot/config-2.6.27-xx-generic)
再选“File”->"Save"。关了窗口。
然后
代码:
make
make modules
sudo make modules_install
sudo make install
sudo mkinitramfs -o /boot/initrd.img-2.6.27.6 2.6.27.6 (根据内核具体版本而随机应变)

再把 /boot/grub/menu.lst 改了,加上
代码:
title      Ubuntu 8.04.1, kernel 2.6.27.6-generic
root      (hd0,0)
kernel      /boot/vmlinuz-2.6.27.6 root=UUID=7c503741-0611-4cd8-80ef-937aa6c202bb ro quiet splash locale=zh_CN
initrd      /boot/initrd.img-2.6.27.6
quiet

注意:别照抄。要模仿你电脑上menu.lst文件里,Ubuntu自动生成的那项写。

重启,选择用新的内核启动。

再接上蓝牙,就没有 hci_scodata_packet 啦 :em11

弱弱的说:不过,要是系统没声音、或者声音咔啦咔啦的话,你还要自己编译安装一遍ALSA才行。

以下是装ALSA的方法:

下载这三个文件(要是有更加新的版本就下新版):
代码:
驱动程序:ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.18a.tar.bz2
库文件:ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.18.tar.bz2
工具:ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.18.tar.bz2

将这三个文件放到你一般看不见的位置 :em06 因为就算ALSA装好了,误删了文件夹,电脑也会没声音。我是放在 /boot/alsa/ 里

打开终端,运行
代码:
sudo apt-get install xmlto -y
sudo apt-get install libncurses5-dev -y (根据实际情况,可能还需要装别的包)
VER=1.0.18 (根据具体情况改)
tar jxf alsa-driver-${VER}a.tar.bz2 (根据具体情况改)
tar jxf alsa-lib-${VER}.tar.bz2
tar jxf alsa-utils-${VER}.tar.bz2
cd alsa-driver-${VER}a
./configure --with-cards=hda-intel && make && sudo make install (我电脑声卡是Intel的,所以这么写)
cd ..
cd alsa-lib-${VER}
./configure && make && sudo make install
cd ..
cd alsa-utils-${VER}
./configure && make && sudo make install
cd ..

然后
代码:
sudo gedit /etc/modprobe.d/alsa-base

在最后一行加
代码:
options snd-hda-intel model=acer

注意,别照抄,我电脑是Acer、声卡是Intel的,所以这样写。根据电脑的型号和声卡的型号确定“options snd-hda-intel model=XXX”的方法,在ALSA的文档里


_________________
授人以鱼,不如授人以渔。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译