困扰了我一个多月的声音问题,在无数次的google,安装,卸载,重启,大吼救命之后终于解决了,突然感觉自己好强,哈哈。
鉴于自己痛苦无助的经历,写此篇以帮助那些跟我有相同遭遇的朋友们。
在此感谢所有帮助过我的朋友们,尤其是shely和chris666。
--------
根据好多朋友的求助回贴,我觉得首先应该按照
和 先把错误都排除
声卡的参数信息请看,在其中查找自己声卡对应型号
--------
一些需要的查看系统信息的命令
代码:
查看内核
uname -r
代码:
查看alsa版本
cat /proc/asound/version
--------
我的具体声卡信息请看,
参考
首先找到你的声卡chip类型
代码:
lspci -v|grep audio
我的是
代码:
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 04)
在 找到你的声卡类型
intel声卡应该在这里
首先我建议先用源里的驱动
1. 如果你已经试了好多种方法,系统设置已经乱了,建议把声卡相关驱动全部删除,然后重新安装。
删除alsa
代码:
sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils
重新安装alsa
代码:
sudo apt-get install linux-sound-base alsa-base alsa-utils
****注意****
这一步很重要,在删除alsa-utils的时候会同时删除gdm和ubuntu-desktop,意味着将失去桌面,所以得重新安装桌面
代码:
sudo apt-get install gdm ubuntu-desktop
重启电脑
2. 在alsamixer中取消静音,显示MM的即是被静音的
3. 打开一个声音文件看能不能出声,如果没有声音,进行下一步
3.1测试"ac97_quirk="的值
我的问题就是这个值,我想大多数没声音的问题也是因为这个。这个值是-1~6之间的一个整数值
3.1.1 在这一步需要我们测试这七个值中哪一个值适合你的声卡,为了避免重复重启电脑,我们可以用命令卸载内核模块,然后重新加载
3.1.1a 卸载内核模块
代码:
sudo /sbin/rmmod snd_MODEL
MODEL是你的声卡驱动类型,我的是intel8x0,下同
所以我用
代码:
sudo /sbin/rmmod snd_intel8x0
如果提示
代码:
ERROR: Module snd_intel8x0 is in use
请找关闭所有你正在使用声卡的程序,一个小tip就是你在面板删除那个小喇叭,应该就好了。
然后再运行上面的命令。
3.1.1b 加载内核模块,这里要加上ac97_quirk=*的参数
代码:
sudo /sbin/modprobe snd-intel8x0 ac97_quirk=*
建议从6开始试,因为我的是6,还看到过有3的。
所以我们现在运行
代码:
sudo /sbin/modprobe snd_intel8x0 ac97_quirk=6
然后打开一个声音文件看有没有声音,如果没有,就重复3.1.1a步,然后换其它值加载内核模块 (3.1.1b步)
3.2 找到ac97_quirk的值后,在/etc/modprobe.d/alsa-base中添加一个选项
代码:
$sudo gedit /etc/modprobe.d/alsa-base #打开文本编辑器
添加 options snd-intel ac97_quirk=*
我的*参数值是6,所以我加的是
代码:
options snd-intel8x0 ac97_quirk=6
重启电脑后问题基本应该就能解决了
如果还是没声,就参照,重新编译驱动,然后重复上面的步骤,不过ac_quirk的参数值就不用重复了。
注意置顶贴中的驱动链接地址已经不在了,到 主页上下载最新的驱动,现在已经是1.0.15版了
-----------
好了,基本算是总结完了,见笑了。
如果有什么问题或者有不周到的地方,欢迎指点。
我也只是个新手,只是因为这个问题我学了好多。
-----------
谢谢chenqingzhi的补充
有关耳机有声,音箱没声的问题请看
----------
aqidesign(79楼)测试
机型HPB3800参数
代码:
snd-intel8x0 ac97_quirk=6