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 调节声音设置。

  • 相关阅读:
    haproxy 2.5 发布
    cube.js sql 支持简单说明
    基于graalvm 开发一个cube.js jdbc driver 的思路
    apache kyuubi Frontend 支持mysql 协议
    oceanbase 资源池删除说明
    基于obd 的oceanbase 扩容说明
    jfilter一个方便的spring rest 响应过滤扩展
    cube.js schema 定义多datasource 说明
    typescript 编写自定义定义文件
    meow 辅助开发cli 应用的工具
  • 原文地址:https://www.cnblogs.com/Ph-one/p/6802358.html
Copyright © 2011-2022 走看看