zoukankan      html  css  js  c++  java
  • Ubuntu下声卡驱动解决方法alsa

    一、首先介绍一下什么是ALSA ;

    Advanced Linux Sound Architecture 的简称为 ALSA ,译成中文的意思是先进的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

    或者:

    cat /proc/asound/version

    如果打印出: 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 调节声音设置。

  • 相关阅读:
    css常见小问题(个人的积累总结)
    YQBlogs1.2的解读与使用VS2012&LocalDB版本(跟进贴)
    asp.net mvc 用自定义的RazorViewEngine实现主题的自由切换遇到的问题!
    求解?命令行下操作LocalDb的诸多问题
    CentOS7下docker安装
    IIS 应用程序池设置,避免IIS假死
    .NET 将数据输出到WORD、EXCEL、TXT、HTM
    iframe高度动态自适应
    .net利用SQLBulkCopy进行数据库之间的大批量数据传递
    Datatable.Select()用法简介
  • 原文地址:https://www.cnblogs.com/Ph-one/p/6802358.html
Copyright © 2011-2022 走看看