Ubuntu 声卡解决办法合集

我的声卡是 ALC662
现下载了驱动程序,原先以为驱动有问题,后来证明不需要那样做,这里主要是找那个说明文档而已。
1.到alsa-driver-rt20080527-5.04\alsa-kerne\Document\ALSA-Configuration.txt文本文件
打开此文本文件,查找声卡型号,我的是 ALC662,得到
    ALC662
      3stack-dig    3-stack (2-channel) with SPDIF
      3stack-6ch     3-stack (6-channel)
      3stack-6ch-dig 3-stack (6-channel) with SPDIF
      6stack-dig     6-stack with SPDIF
      lenovo-101e     Lenovo laptop
      eeepc-p701    ASUS Eeepc P701
      eeepc-ep20    ASUS Eeepc EP20
      auto        auto-config reading BIOS (default)


2.打开 那个alsa-base,命令 是 sudo gedit /etc/modprobe.d/alsa-base
3 注释掉options snd-cmipci mpu_port=xxx fm_port=xxx这行,就是前面加上 #。他就不起作用了。
#options snd-cmipci mpu_port=xxx fm_port=xxx
4 然后最下面添加 options snd_hda_intel model=xxxx ,这个xxxx,就是上面的文本内容。上面那个文本查出来的就是 model 的值,例如我的系统是:
options snd_hda_intel model=lenovo-101e
重起电脑后就一切正常了。


本人一向支持国货,用的是清华同方的K40A,今天终于搞定了,用的就是lenovo-101e这个模块驱动。现在插上耳机能自动屏蔽外放了,哇哈哈~~


;--------------------------------------------------------------------------------


2009-3-20 更新
昨晚升级了内核到 Linux Hikari 2.6.27-14-generic 发现没有声音了 orz ,于是上网找文章乱搞一通,最后发现竟然只是拉了静音而已,但是本来打算手动装


驱动的,装到一半,手动安装进去覆盖了 orz 当场jiong掉,重启后,本来没有问题的声音驱动被搞坏了 orz .....
今天决定继续搞搞,发现那个编译还是不过,哎,算了,不折磨了 .... 上网看文章,突然发现了一篇好物体,ubuntu官方网上面的,英文不过很容易懂,跟着


敲了几个命令,应该是搞坏了驱动,于是继续看,找到了ubuntu下面装alsa声音驱动的办法,很简单。
原文在这里,可以自己去看:




sudo apt-get dpkg-reconfigure alsa-source
下面是我自己搞的记录:


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


>>>>>>>>>>>>>>>>>


(1)检查系统
aplay -l


应该能看到安装的声卡设备,否则应该就是驱动安装失败了。


etual@Hikari:~$ aplay -l
**** PLAYBACK硬件设备列表 ****
卡 0: Intel [HDA Intel], 设备 0: ALC662 Analog [ALC662 Analog]
子设备: 0/1
子设备:#0: subdevice #0
卡 0: Intel [HDA Intel], 设备 1: ALC662 Digital [ALC662 Digital]
子设备: 1/1
子设备:#0: subdevice #0


(2)检查一下系统设备是否有检测到声卡
lspci -v


应该能看到类似的:
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
    Subsystem: Giga-byte Technology Device a002
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at e1280000 (64-bit, non-prefetchable) [size=16K]
    Capabilities:
    Kernel driver in use: HDA Intel
    Kernel modules: snd-hda-intel
证明内核是找到声卡的。


(3)通过ubuntu的APT-GET安装,好吧,我就是通过这个搞回来的驱动,推荐!
首先,将原来的卸载干净
sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils
千万注意,因为依赖关系,多删除了部分东西,必须装回来,否则重启后就进不了桌面了。
sudo apt-get install gdm ubuntu-desktop
下面就是安装了
sudo apt-get install linux-sound-base alsa-base alsa-utils


恩,经过漫长的下载安装,重启后,我的UBUNTU又在发出声音了,yeah~~~


最后就是修改一下音量,顺便保存一下:
alsamixer
调节好之后保存
sudo alsactl store 0


到此就完毕了,继续听歌,yeah~~~
有兴趣的看看原文吧,还有不少东西的呢:


.............................................................................................................................................


.............................................................................................................................................


............................................................................................................................................


己的机子折腾了2天,重做N次系统,终于搞定了
参考文献:http://monespaceperso.org/blog-en/2009/08/31/upgrade-alsa-1-0-21-on-ubuntu-jaunty-9-04/
作者原文全是鸟文,这里稍微做个解释
cat /proc/asound/version #查看当前声卡驱动版本
下面这个是9.04原本的驱动版本


引用:
Advanced Linux Sound Architecture Driver Version 1.0.18rc3.


sudo /etc/init.d/alsa-utils stop #停止声卡的服务
sudo apt-get -y install build-essential ncurses-dev gettext xmlto
sudo apt-get -y install linux-headers-`uname -r` libncursesw5-dev
上面两个命令都是下载更新、安装编译所需的工具
cd ~
rm -rf ~/alsa*
wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.21.tar.bz2
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.21a.tar.bz2
wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.21.tar.bz2
sudo rm -rf /usr/src/alsa
sudo mkdir -p /usr/src/alsa
cd /usr/src/alsa
sudo cp ~/alsa* .
sudo tar xjf alsa-driver*
sudo tar xjf alsa-lib*
sudo tar xjf alsa-utils*
上面这段,看不懂就去好好读读入门教材吧.....
cd alsa-driver*
sudo ./configure
sudo make
sudo make install
cd ../alsa-lib*
sudo ./configure
sudo make
sudo make install
cd ../alsa-utils*
sudo ./configure
sudo make
sudo make install
红字部分就是进行三部曲了,要严格按照顺序,不然安装不成功自己负责.....还有权限问题....也注意点
在对最后一个文件夹(也就是 “alsa-utils-1.0.21”这个了)进行“sudo ./configure”时,如果出现如下错误(没出现的直接跳过这一段,直接跳到下面清


理安装文件那里):


引用:
checking form.h presence... yes
checking for form.h... yes
checking for new_panel in -lpanelw... no
configure: error: panelw library not found


可以使用如下命令:
sudo ln -s libpanelw.so.5 /usr/lib/libpanelw.so
sudo ln -s libformw.so.5 /usr/lib/libformw.so
sudo ln -s libmenuw.so.5 /usr/lib/libmenuw.so
sudo ln -s libncursesw.so.5 /lib/libncursesw.so
使用完之后,再重新对这个 “alsa-utils-1.0.21” 文件夹进行 “sudo ./configure" ....(三部曲)这时应该能顺利的完成三部曲了。
下面三个命令就是清理安装文件了。
rm -f ~/alsa-driver*
rm -f ~/alsa-lib*
rm -f ~/alsa-utils*
上面的搞定好之后,就可以重启系统了
重启好后,继续打开终端,开启声卡的服务
sudo /etc/init.d/alsa-utils start
然后再次查看现在的声卡驱动版本:
cat /proc/asound/version
应该出现如下内容咯,看到没,“Version 1.0.21”


引用:
Advanced Linux Sound Architecture Driver Version 1.0.21.
Compiled on Aug 31 2009 for kernel 2.6.28-15-generic (SMP).


别以为搞定了(不信你看看小喇叭,还是像静音一样的)还有一个最最重要的命令.......就是下面这个了(应该是声卡的配置文件之类的)
sudo alsaconf
然后就是弹出些什么框框的,就是选OK啊,Yes之类的东西了
这个搞定以后,你的喇叭就会变成正常的样子了。
音质比原来的1.0.18rc3版本好了N倍.....不会在出现音量超过70%就出现爆音的状况了.....


.............................................................................................................................................


.............................................................................................................................................


.............................................................................................................................................


..........................................................


alc655声卡oss驱动安装2008-05-26 17:57首先我要说的是,我曾经装过ALSA没有成功,这次是oss声卡的确好用,哈哈 
以下是我的几点理由,我的声卡是 alc655 七彩虹板载声卡。 
1)ALSA好是好,就是声音有点小 
2)ALSA强是强,就是安装太麻烦 
3)ALAS棒是棒,就是爱闹小毛病(有时候会突然就不响了) 
4)ALSA猛是猛,就是害我睡不好(插上耳机后笔记本音箱依然发音,headphone and speaker 一起出声) 
5)ALSA爽是爽,就是我看它不爽


个人意见,不喜欢PK,PK的别找我。。


安装 OSS指南 
1)下载DEB包 http://www.4front-tech.com/download.cgi 自己选择相应版本 
2)安装前先 sudo apt-get install build-essentials安装基本的支持 
3)然后 run dpkg -i **********.deb 星号部分是你自己保存的驱动文件名


OK,一切搞定(在我这是这样的) 
然后把所有相关的用到声音设备的程序中相应的设置改成OSS,如果该程序无法运行请重新安装一遍 
原先的ALSA最好不要卸载,好像会出问题。我是在系统自带的驱动的基础上换成OSS的,自己手动装过ALAS的就不清楚了。 
调出音量控制用ossxmix命令


如果第一次安装失败了要重装,清参照以下内容:————————————————————————————
Failed to disable conflicting sound drivers 
Reboot and try running soundon again


Also check that you have not compiled sound support statically 
into the kernel.




On Ubuntu or Debian, if you don't have the necessary packages listed in the "Installing on Ubuntu 6.10" notes then OSS will likely fail to


install and 
you will need to do the following to recover:


1) cd /var/lib/dpkg/info 
2) rm oss-linux* 
3) edit /var/lib/dpkg/status and look for oss-linux 
and delete the entire section that looks like:


Package: oss-linux 
Status: install ok installed 
Priority: extra 
Section: alien 
Installed-Size: 8440 
Maintainer: root  
Architecture: amd64 
Version: v4.0rc9-999 
Depends: libatk1.0-0 (>= 1.12.1), libc6 (>= 2.4-1), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.3.0), libglib2.0-0 (>= 2.12.0), libgtk2.0-0


(>= 2.10.3), libpango1.0-0 (>= 1.14.5), libx11-6, libxcursor1 (>> 1.1.2), libxext6, libxfixes3, libxi6, libxinerama1, libxrandr2, libxrender1 
Conffiles: 
/etc/oss.conf 055432d38aaf37fc6de3dba4a95accc3 
Description: Open Sound System sound drivers for Linux 
Open Sound System for Linux (OSS/Linux) is a commercial quality sound driver 
distributed by 4Front Technologies (http://www.opensound.com). OSS provides 
support for practically all sound cards on the market including PnP and 
many PCI ones. Installation and configuration is higly automated and easy to 
perform. To obtain technical support and additional features, you will need to 
order a license key from http://www.opensound.com/order.html 

(Converted from a rpm package by alien version 8.64.)




可省
5) Now you should be able to run dpkg --purge oss-linux and it should 
say: dpkg - warning: ignoring request to remove oss-linux which isn't installed.




6) Finally run dpkg -i oss-linux_v4.0rc9-999_amd64.deb and now it should succeed.


OK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
Thank you!!!




.............................................................................................................................................


.......
.............................................................................................................................................


..........................................
...................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


aplay -l
lspci -v


$ sudo apt-get install build-essential libncurses5-dev gettext kernel-package gcc make libc6 libc6-dev
$ sudo apt-get install linux-headers-`uname -r`


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>




首先,目标是找到一个名为ALSA-Configuration.txt的文本文件,网站给出的路径真怪,是alsa-driver- rt20080527-5.04\alsa-kerne\Document\ALSA-


Configuration.txt,这种路径在Ubuntu中应 该是找不到的。所以一搜到位,直接搜索“ALSA-Configuration”,找到了一个tar.gz文件,打开里面就是那个文


本文件,打开吧,然后 Ctrl+F搜索对应的声卡的型号,我的是ALC662,找到如下内容:


ALC662/663
3stack-dig   3-stack (2-channel) with SPDIF
3stack-6ch   3-stack (6-channel)
3stack-6ch-dig 3-stack (6-channel) with SPDIF
6stack-dig   6-stack with SPDIF
lenovo-101e   Lenovo laptop
eeepc-p701   ASUS Eeepc P701
eeepc-ep20   ASUS Eeepc EP20
m51va       ASUS M51VA
g71v       ASUS G71V
h13       ASUS H13
g50v       ASUS G50V
auto       auto-config reading BIOS (default)


要记住,就是那个3stack-dig。然后再打开alsa-base这个文件并编辑它:


sudo gedit /etc/modprobe.d/alsa-base


找到options snd-cmipci mpu_port=xxx fm_port=xxx这一行,我的机器里面是options snd-cmipci mpu_port=0×330 fm_port=0×388,然后让它失效,在前面


加个“#”号就行了,我的就变成了#options snd-cmipci mpu_port=0×330 fm_port=0×388。接着来到文件的最底部,添加options snd_hda_intel


model=xxxx这一行,其中的xxxx就是之前ALSA-Configuration.txt文件里面我说过要记下来的东西,我的机器里是 3stack-dig,让它看起来是这样的options


snd_hda_intel model=3stack-dig,然后保存文件重启系统,不出意外的话,问题已经解决了,就像我这样~Happying~


虽然问题解决了,但是这只是我照别人的方法弄了一下而已,原理是什么我还是不懂。Linux是个奇怪的系统,因为以前没用过,不懂的东西太多,现在 开始学


习了,不折腾一下,不吃点苦头是不会有结果的,然后也因为问题是自己努力去寻找方法而解决的,所以那种开心劲是不能言表的


.................................................................................
.............................................................................


............................................................................


,译成中文的意思是先进的Linux声音架构(这是google翻译的);一谈到架构就有点范围太大了,所以ALSA不仅仅是包括对声卡的支持和驱动;


ALSA具有如下特征:


1、对所有音频接口的高效支持,从普通用户的声卡到专业级别多路音频设备;


2、声卡驱动完全模块化设计;


3、SMP and thread-safe design.


4、开发库(alsa-lib) 为程序设计提供了简单、方便,并且拥有有高级的效果和功能;


5、支持旧版本的OSS API 结口,能为大多数的OSS应用程序提供兼容;OSS是一个商业性的驱动,OSS有一个简装本的代码已经移入内核和ALSA,其中alsa-oss就


是;OSS公司据说目前已经并不存在了;我们没有必要用OSS 公司提供的商业版本;用ALSA和OSS简装版足够




二、查看 ALSA 版本,如果最新,就不用重新安装了,仔细查看一下配置吧。
$ alsactl -v
如果打印出: alsactl version 1.0.19,那么 ALSA 已经是最新了。如果不是最新就要先安装最新的alsa驱动。
第一步,首先停止当前的ALSA服务:
sudo /etc/init.d/alsa-utils stop


第二步,卸载原有驱动
sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils


第三步,(*由于在删除alsa-utils的时候会同时删除gdm和ubuntu-desktop,所以得重新安装,否则会无法进入桌面,请大家不要漏过此步)


sudo apt-get install gdm ubuntu-desktop




编译安装alsa


第一,在 ALSA 官方网站 http://www.alsa-project.org 上,下载最新的 ALSA 驱动,用tar -jxvf alsa-*-1.0.19.tar.bz2和tar xvf alsa-*.1.0.19.tar解


压缩。
$ wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.19.tar.bz2
$ wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.19.tar.bz2
$ wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.19.tar.bz2


第二,查看自己的内核版本和声卡解码芯片是否被支持。
查看支持的内核版本
$ less alsa-driver-1.0.19/SUPPORTED_KERNELS
查看自己声卡解码芯片(如果系统不能识别声卡,可能无法由下面两个查到,那么查看你电脑配置单吧)
$ tail -2 /proc/asound/oss/sndstat

$ head -1 /proc/asound/card0/codec#0
比如我的 ONDA A69G 就显示的是下面这个
0: Realtek ALC655 rev 0
在 alsa-driver-1.0.15/alsa-kernel/Documentation/ALSA-Configuration.txt 中查找自己声卡解码芯片对应的 model 名字,比如我的 alc655 对应的就是:


- alc_jack    For ALC65x, turn on the jack sense mode




第三,准备好编译环境,安装 gcc, libc 等等工具,还需要下载 Linux header,这是编译 ALSA 驱动必须的。
$ sudo apt-get install build-essential libncurses5-dev gettext kernel-package gcc make libc6 libc6-dev
$ sudo apt-get install linux-headers-`uname -r`


第四,编译安装,一般的 ./configure, make, make install 流程。注意的是驱动编译时候需要 module 名字,就是第三步中找到的 modle 对应的 module 名


字,去掉 snd-即可。比如我的 alc655 对应的module 是 snd-atiixp那么 configure 时候需要加上 --with-cards=atiixp。编译安装时遇到问题请仔细阅读源


码附带的 INSTALL。
$ cd alsa-driver-1.0.19
$ ./configure --with-cards=MODULE_NAME 我的是snd-atiixp
$ make
$ sudo make install
$ cd ../alsa-lib-1.0.19
$ ./configure
$ make
$ sudo make install
$ cd ../alsa-utils-1.0.19
$ ./configure
$ make
$ sudo make install


第五,配置 ALSA。
如果以前系统中没有使用 ALSA 驱动,可能需要 alsaconf 来配置,还要将 ALSA 加入内核模块中,我没有经验;
如果系统原来已经有 ALSA 驱动,但是没有识别声卡或者声音驱动有问题。那么理论上只需要在两个地方做改动:


添加 /etc/modprobe.d/sound 文件,内容为:
alias snd-card-0 snd-MODULE_NAME
alias sound-slot-0 snd-MODULE_NAME
比如我的就是:
alias snd-card-0 snd-atiixp
alias sound-slot-0 snd-atiixp


在 /etc/modprobe.d/alsa-base 中最后一行添加:
options snd-MODULE_NAME model=MODEL_NAME


第六,重新启动查看效果,可以使用 alsamixer 调节声音设置

你可能感兴趣的:(linux)