• 聆听自由的声音----Linux下声卡驱动软件ALSA的安装与配置


    软件,Linux的多媒体特性一直不能让人非常满意。比如,Linux系统自带的声卡驱动程序能够支持的声卡很少。绝大多数市场上流行的声卡产品都难以得到系统的支持。 

      这种情况正在迅速转变。许多厂商看到大势所趋,积极参加驱动程序的开发工作。一些组织和个人也开始一展身手,做了很多有益的探索。 

      今天介绍的这套软件是一套声卡驱动程序包---ALSA, 全称是Advanced Linux Sound Architecture。它是GNU大旗下的软件之一。顾名思义,它可以在Linux下面驱动声卡设备。 

     它可以支持大多数流行的声卡。模块化架构。支持全双工,数字音频等声卡特性。 

      在http://www.alsa-project.org所属的FTP站点可以下载最新的软件包。如果你有兴趣和足够的能力,也可以加入开发队伍。向全世界展现聪明才智。 

      下面详细介绍ALSA的全部安装配置过程和注意事项,还会给出支持的声卡列表。 

      安装前请你对照列表,检查自己的声卡是否被支持。以免白忙一场。 

    一:硬件及其软件环境要求。 

      作者的硬件环境:赛扬366 CPU/微星6199va主板/128MB kingmax内存/10.2GB金钻2硬盘/8X CDROM/WINFast L2300显卡/雅马哈724芯片的声卡 

      硬盘分区和操作系统软件:Windows98+Windows2000+BluePoint1.0(蓝点中文Linux,与Redhat 完全兼容)。使用LILO启动器。 

      ALSA对Linux软件环境的要求:没有要求特别的Linux版本,但是要求内核版本在2.2.x之上。如果你的Linux系统内核低于此版本,请重新编译新的核心。BluePoint1.0的内核版本是2.2.13。 

    二:下载软件。 

      ALSA目前最新版本是0.5.9b,文件全名是alsa-driver-0.5.9b.tar.bz2。采用的新的bz2压缩格式,占用空间更小。除了它之外,正常操作还需要下面的软件包: 

    alsa-utils-0.5.9a.tar.bz2----------实用程序包 

    alsa-lib-0.5.9.tar.bz2-------------编译实用程序需要的库文件 

      如果你是使用Windows操作系统下载的软件,那么需要把它拷贝到Linux系统里面。 

      首先请使用root用户登录并开始安装过程。 

    1:在Linux里面装载含有此文件的Windows分区, 

    输入命令: 

    “mount -t vfat /dev/hadx /win98 ”其中hdax中的“x”是Win98硬盘分区号码。如果对此有任何疑问,请请教其他熟悉的朋友。 

    2:进入下载的目录,把alsa-driver-0.5.9b.tar.bz2和其它两个文件拷贝到一子目录中, 

    输入命令: 

    “cp alsa-driver-0.5.9* /root” 

    3:解压缩文件。 

    输入命令: 

    “bzip2 -dv alsa-driver-0.5.9b.tar.bz2” 

    此时用“ls”命令查看,当前目录里面只有alsa-driver-0.5.9b.tar,说明bzip压缩已经解除。 

    输入命令: 

    “tar vfx alsa-driver-0.5.9b.tar” 

      程序自动生成一个名为---alsa-driver-0.5.9b的子目录。 

      对其它两个软件包重复此步骤,解开压缩。使用“ls”命令查看,就会发现相应的目录了。 

      如果你对命令行不够熟悉,可以查看帮助信息和书籍。也可以启动X-Window窗口环境,在文件管理程序里面选择相应压缩文件,然后在文件菜单里面选择解压缩命令就可以了。 

    三:安装驱动文件。 

    1:打开内核中的声卡支持。 

    绝大多数情况下,此步骤可以忽略,因为基本所有Linux发行版本内核默认状态都是支持声卡设备的。 

    2:运行脚本。 

    输入命令: 

    “./configure” 

    如果你的声卡属于ISA即插即用类型,请输入下面的命令: 

    “./configure --with-isapnp=yes” 

    输入命令: 

    “make install” 

    注意此步骤操作时间较长,请耐心等候。如果一切正常,程序最后会提示模块编译成功!并且警告声卡默认的状态是静音,需要使用“amixer”等实用程序调节音量。 

    “amixer”等命令正是alsa-utils-0.5.9a.tar.bz2附带的,需要编译才能使用。 

    如果make命令不能执行,那么你需要找出Linux安装盘,把有关开发编译的文件包安装进系统。具体操作请参考软件手册。 

    输入命令: 

    “./snddevices” 

    脚本程序会在“/dev“目录自动创建有关声卡设备。 

    四:安装库文件和实用程序。 

    由于“amixer”等程序需要找到对应的库文件才能编译,所以需要首先安装alsa-lib-0.5.9.tar.bz2。 

    进入相应的子目录alsa-lib-0.5.9, 

    输入命令: 

    “./configure” 

    输入命令: 

    “make install” 

    这两步做好后,回到上层目录,进入alsa-utils-0.5.9a子目录, 

    输入命令: 

    “./configure” 

    输入命令: 

    “make install” 

    注意,如果上面步骤中“./configure”出错,恐怕你需要使用“-prefix”参数来指定路径。 

    如:在安装库文件时尝试使用“./configure -prefix=/usr/include/linux” 

    在安装实用程序时尝试“./configure -prefix=/usr/include/sys” 

    五:编辑/etc/modules.conf文件。 

    这一步恐怕是最困难的一步了。不过下面给出范例,一般只要按照各自系统情况改动就可以了。 

    1:建立modules.conf文件。 

    因为系统里面有一个演示文件,所以只要复制一份,重新修改即可 

    输入命令: 

    “cp modules.conf.sample modules.conf” 

    2:修改modules.conf。 

    使用任何一种文本编辑器,如VI,打开此文件,在最下面加入下列内容: 

    “ 

    #ALSA portion 

    alias char-major-116 snd 

    #注释:ALSA使用的主设备号码 

    alias snd-card-0 snd-card-ymfpci 

    #snd-card-0是系统里面第一个声卡设备,如果系统有两个以上声卡, 

    #可以使用snd-card-1 snd-card-2等方法映射 

    # snd-card-ymfpci是声卡设备名称. 

    #OSS /free portion----因为ALSA需要内核中OSS SoundCore和其它设备的支持 

    alias char-major-14 soundcore 

    #系统中soundcore的主设备号码 

    alias sound-slot-0 snd-card-0 

    #第一个声卡对应的插槽 

    #下面是声卡驱动模块,sound-service-0指第一块声卡,如果系统里面只有一块,原封不动#拷贝即可.否则按照此格式加入其它声卡驱动模块 

    #card #1 

    alias sound-service-0-0 snd-mixer-oss 

    alias sound-service-0-1 snd-seq-oss 

    alias sound-service-0-3 snd-pcm-oss 

    alias sound-service-0-8 snd-seq-oss 

    alias sound-service-0-12 snd-pcm-oss 

    #ISA声卡还需要指定IRQ/IO地址,因为市场上已经很少,在此不再探讨。有需要可以查 

    #看此软件的相关说明。 

    ” 

    六:系统测试和声卡设备调整。 

    1:编辑好/etc/modules.conf文件后,需要使用系统程序测试模块是否可以正常加载。 

    输入命令: 

    “modprobe snd-card-ymfpci” 

    系统直接进入提示符状态,表明加载正常。不过,如果你搞不清到底加载什么模块,可以去/lib/modules/2.2.13/misc下面去查看,可加载声卡模块都在里面。凭借模块名字就可以知道自己需要什么文件了。 

    2:调节音量。 

    输入命令: 

    “amixer” 

    命令提示如下: 

    “ 

    Capabilities: volume Channels: Front-Left Front-Right Limits: min = 0, max = 16383 Front-Left: 0 [0%] [on] [---] Front-Right: 0 [0%] [on] [---] Group ‘ADC Record‘,0 Capabilities: volume Channels: Front-Left Front-Right Limits: min = 0, max = 16383 Front-Left: 0 [0%] [on] [---] Front-Right: 0 [0%] [on] [---] Group ‘Capture Volume‘,0 Capabilities: volume Channels: Front-Left Front-Right Limits: min = 0, max = 16383 Front-Left: 0 [0%] [on] [---] Front-Right: 0 [0%] [on] [---] Group ‘Input Gain‘,0 Capabilities: volume mute jointly-mute Channels: Front-Left Front-Right Limits: min = 0, max = 15 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] Group ‘Master Mono‘,0 Capabilities: volume mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] Group ‘Master‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] Group ‘Aux‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] Group ‘Video‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] Group ‘CD‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] Group ‘Line‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] Group ‘MIC‘,0 Capabilities: volume mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 0 [0%] [mute] [capture] Front-Right: 0 [0%] [mute] [capture] Group ‘Phone‘,0 Capabilities: volume mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] Group ‘PC Speaker‘,0 Capabilities: volume mute Channels: Front-Left Front-Right Limits: min = 0, max = 15 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] Group ‘PCM‘,0 Capabilities: volume mute jointly-mute Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 0 [0%] [mute] [---] Front-Right: 0 [0%] [mute] [---] 

    ” 

      这表明声卡驱动默认状态是静音,所以需要使用程序调节合适的音量。 

      本来使用“amixer”命令可以手工指定参数,进行音量调整。不过,为了不至于把跟随此文一直到现在,大脑可能一直糊里糊涂的朋友们吓跑,可以尝试使用下面的办法,非常方便。 

    输入命令: 

    “alsamixer” 

    你是否看到一个图形界面?按F1可以察看帮助信息。注意每个竖条都代表你的声卡特性。使用 上下左右 光标键,可以很容易的调节每种特性的音量。上下光标调数量,比如,我把他们都调到了“74”,左右光标切换竖条。调好之后,按“ESC”键退出。 

    再输入命令: 

    “amixer“ “Group ‘SPDIF Record‘,0 Capabilities: volume Channels: Front-Left Front-Right Limits: min = 0, max = 16383 Front-Left: 12136 [74%] [on] [---] Front-Right: 12136 [74%] [on] [---] Group ‘ADC Record‘,0 Capabilities: volume Channels: Front-Left Front-Right Limits: min = 0, max = 16383 Front-Left: 12136 [74%] [on] [---] Front-Right: 12136 [74%] [on] [---] Group ‘Capture Volume‘,0 Capabilities: volume Channels: Front-Left Front-Right Limits: min = 0, max = 16383 Front-Left: 12136 [74%] [on] [---] Front-Right: 12136 [74%] [on] [---] Group ‘Input Gain‘,0 Capabilities: volume mute jointly-mute Channels: Front-Left Front-Right Limits: min = 0, max = 15 Front-Left: 11 [73%] [mute] [---] Front-Right: 11 [73%] [mute] [---] Group ‘Master Mono‘,0 Capabilities: volume mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 23 [74%] [mute] [---] Front-Right: 23 [74%] [mute] [---] Group ‘Master‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 23 [74%] [mute] [---] Front-Right: 23 [74%] [mute] [---] Group ‘Aux‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 23 [74%] [mute] [---] Front-Right: 23 [74%] [mute] [---] Group ‘Video‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 23 [74%] [mute] [---] Front-Right: 23 [74%] [mute] [---] Group ‘CD‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 23 [74%] [mute] [---] Front-Right: 23 [74%] [mute] [---] Group ‘Line‘,0 Capabilities: volume mute jointly-mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 23 [74%] [mute] [---] Front-Right: 23 [74%] [mute] [---] Group ‘MIC‘,0 Capabilities: volume mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 23 [74%] [mute] [capture] Front-Right: 23 [74%] [mute] [capture] Group ‘Phone‘,0 Capabilities: volume mute capture exclusive-capture Capture exclusive group: 1 Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 23 [74%] [mute] [---] Front-Right: 23 [74%] [mute] [---] Group ‘PC Speaker‘,0 Capabilities: volume mute Channels: Front-Left Front-Right Limits: min = 0, max = 15 Front-Left: 11 [73%] [mute] [---] Front-Right: 11 [73%] [mute] [---] Group ‘PCM‘,0 Capabilities: volume mute jointly-mute Channels: Front-Left Front-Right Limits: min = 0, max = 31 Front-Left: 23 [74%] [mute] [---] Front-Right: 23 [74%] [mute] [---]” 

    你会发现你的调整已经起作用了。 

    3:存储配置参数。 

    因为刚才的调整不是永久性的,下次重新启动时,又成了静音状态。所以,需要把参数存储起来。 

    输入命令: 

    “ 

    alsactl store 

    ” 

    程序自动的建立了配置文件---“/etc/asound.conf“。如果对修改后的配置不满意,可以使用: 

    “alsactl restore”恢复。 

    七:聆听自由的声音。 

    到此,所有的安装过程全部结束了。由于每个人的系统配置各异,所以作者无法预料到所有的情况。有任何问题请平心静气,仔细研究、思考。解决不了欢迎上网讨论。要知道,这样你的Linux使用水平会迅速提高。一步到位的安装虽然简单,但是少了DIY的乐趣。 

    感谢你有如此耐心,现在启动X Window,打开MP3播放器,尽情享受美妙音乐的乐趣吧! 

    作者:TopMan 

    2000/8/31 

    附录:支持的声卡列表 

    1:声卡列表: 

    ========================================================== 

    声卡类型: AMD InterWave 声卡类型: Gravis UltraSound Plug & Play 声卡类型: Dynasonic 3-D 声卡类型: STB Sound Rage 32 声卡类型: UltraSound 32-Pro (STB) 声卡类型: MED3210 声卡类型: Gravis UltraSound MAX 声卡类型: Gravis UltraSound Extreme 声卡类型: Gravis UltraSound Classic/ACE 声卡类型: ESS AudioDrive ESx688 声卡类型: SoundBlaster 1.0/2.0/Pro 声卡类型: SoundBlaster 16/AWE 声卡类型: Yamaha OPL3-SA2/SA3 声卡类型: Yamaha PCI YMF72x, YMF74x & YMF75x 声卡类型: OAK Mozart 声卡类型: S3 SonicVibes PCI 声卡类型: Schubert 32 PCI (PINE) 声卡类型: Ensoniq AudioPCI (ES1370,ES1371) 声卡类型: SoundBlaster PCI 64 声卡类型: SoundBlaster PCI 128 声卡类型: Cirrus Logic / Crystal Semiconductors CS4232/CS4232A 声卡类型: Cirrus Logic / Crystal Semiconductors CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 声卡类型: Turtle Beach Malibu 声卡类型: Cirrus Logic / Crystal Semiconductors CS4610/CS4612/CS4615/CS4280 声卡类型: ESS Solo-1 ES1938 声卡类型: ESS ES18XX 声卡类型: OPTi 82C9xx 声卡类型: Audio 16 Pro EPC-SOUN9301 (82C930 based) 声卡类型: ExpertColor MED-3931 v2.0 (82C931 based) 声卡类型: ExpertMedia Sound 16 MED-1600 (82C928 based - AD1848) 声卡类型: Mozart S601206-G (OTI601 based - CS4231) 声卡类型: Sound Player S-928 (82C928 based - AD1848) 声卡类型: Trident 4DWave DX/NX 声卡类型: Best Union Miss Melody 4DWave PCI 声卡类型: HIS 4DWave PCI 声卡类型: Warpspeed ONSpeed 4DWave PCI 声卡类型: AzTech PCI 64-Q3D 声卡类型: Addonics SV 750 声卡类型: CHIC True Sound 4Dwave 声卡类型: Shark Predator4D-PCI 声卡类型: Jaton SonicWave 4D 声卡类型: Hoontech SoundTrack Digital 4DWave NX 声卡类型: ForteMedia FM801 声卡类型: DT-0398 声卡类型: SGI Indy (HAL2) 声卡类型: Turtle Beach WaveFront 声卡类型: Tropez Plus (Tropez+) 声卡类型: Tropez 声卡类型: Maui (models with CS4232; others use OPTi 16 which is not handled) 声卡类型: C-Media CMI8330 声卡类型: C-Media CMI8338/8738 声卡类型: Avance Logic ALS100/ALS120 声卡类型: Diamond Technologies DT-0197H 声卡类型: Aztech Sound Galaxy 声卡类型: MOTU MidiTimePiece AV multiport MIDI interface 声卡类型: EMU10K1 声卡类型: Sound Blaster Live! 声卡类型: Sound Blaster PCI 512 声卡类型: E-mu APS 声卡类型: RME Digi9652 (Hammerfall, Hammerfall light) 声卡类型: Intel i810/i820/i830/i840/MX440 声卡类型: ESS Maestro 1/2/2E 声卡类型: VIA 82C686A (South Bridge) 



    如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。
  • 相关阅读:
    201571030114/201571030143《小学四则运算练习软件》结对项目报告
    201571030114随机四则运算
    略读构建之法
    使用staruml学习画类图
    了解面向对象方法学的优点
    做项目的感受和心得
    项目:学生查看自己的作业情况和分数(php)
    php操作数据库的简单示例
    学习使用html与css,并尝试写php
    html和css的联系
  • 原文地址:https://www.cnblogs.com/superit/p/3831474.html
Copyright © 2020-2023  润新知