文逸首页 小文论坛 文逸博客 精华文章
 首页 | 新闻 | 论坛 | 博客 | 专题 | FTP | 金融 | 微博 | 图库 | MyHome | 搜索 | 登陆 | 注册 | 帮助 | 设为首页  ·在线人数: 584

发表新帖 我的主页  用户登陆 返回上页 收藏本帖 文友爬行榜

标题:ALSA安装配置指南(Official)(适用于Intel snd-intel8x0)
[作者] dsj [发表时间] 2005/10/18 15:05:09  [回复] 6  [点击] 6453

 [作者] dsj   [头衔] 论坛坛主  [经验] 220862  [等级] 大主帅   [发帖] 15642   [回帖] 1366  [登陆] 7956
[发表时间] 2005/10/18 15:05:09  [楼主]
标题: ALSA安装配置指南(Official)(适用于Intel snd-intel8x0)
 
http://www.alsa-project.org/alsa-doc/doc-php/template.php?company=Intel&card=.&chip=440MX%2C+i810%2C+i810%2C+i810E%2C+i820%2C+i820&module=intel8x0
目录
snd-intel8x0的模块选项
介绍
快速安装
设置modprobe和kmod支持
对/etc/modules.conf文件内容的简单解释
.asoundrc文件

链接
用户反馈

snd-intel8x0的模块选项
描述:"Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; SiS 7012; Ali 5455" 
作者:"Jaroslav Kysela " 
许可证:"GPL"
parm: index int array (min = 1, max = 8), 描述 "Intel i8x0 声卡的索引值" 
parm: id string array (min = 1, max = 8), 描述 "Intel i8x0 声卡的ID字串" 
parm: enable int array (min = 1, max = 8), 描述 "启用Intel i8x0 声卡" 
parm: ac97_clock int array (min = 1, max = 8), 描述 "AC'97 编码时钟(codec clock) (0 = 自动侦测)." 
parm: joystick_port int array (min = 1, max = 8), 描述 "Intel i8x0 声卡的游戏杆端口地址 (0 = 禁用)" 
parm: mpu_port int array (min = 1, max = 8), 描述 "Intel i8x0 驱动的 MPU401 端口号 #." 

介绍
有两种方法可以使linux驱动工作,一种是将它们编译进内核,另一种是将它们构建成独立的模块。请阅读kernel-HOWTO以获得内核编译的详情。

你必须打开声音核心模块(soundcore module)的音效支持。这个模块位于内核中。查看音效驱动(sound drivers)目录,它应该是第一个选项。大多数人都启用了这个模块设定。这样的话你就可以手工加载和卸载这些模块,或者如果你有多声卡/设备,或者你需要debug或使用有时可能导致你的驱动挂起的切边软件(cutting edge software--译者按:恕我孤陋寡闻,不知道这个词是什么意思,请各位看官不要见笑)。这同时也表示,你获得了对系统更多的控制权。大多数现代的发行版都把声音核心编译成了模块。你可以通过多种方法验证。最简单的方法是在终端输入:
modinfo soundcore
如果这条命令返回的信息中指示你有该模块,你就不必重新编译你的内核了。

快速安装

NB.如果你使用cvs,你需要输入:
./cvscompile 或者 make build
而不是
./configure

在shell中输入下面的命令:
新建一个目录以存放alsa的源代码

cd /usr/src
mkdir alsa
cd alsa
cp /downloads/alsa-* .

解压缩并安装alsa-driver包

bunzip2 alsa-driver-xxx
tar -xf alsa-driver-xxx
cd alsa-driver-xxx
./configure --with-cards=intel8x0 --with-sequencer=yes;make;make install

NB.如果你使用的是0.9.4或者更早的版本的driver的话,你需要运行
./snddevices
如果你使用devfs,你就不需要运行snddevices脚本了

snddevices脚本设置了创建的设备的权限是root。所以你需要:
chmod a+rw /dev/dsp /dev/mixer /dev/sequencer /dev/midi
现在,解压并安装 alsa-lib 包
cd ..
bunzip2 alsa-lib-xxx
tar -xf alsa-lib-xxx
cd alsa-lib-xxx
./configure;make;make install
现在,解压并安装 alsa-utils 包
cd ..
bunzip2 alsa-utils-xxx
tar -xf alsa-utils-xxx
cd alsa-utils-xxx
./configure;make;make install
然后,将模块插入内核
modprobe snd-intel8x0;modprobe snd-pcm-oss;modprobe snd-mixer-oss;modprobe snd-seq-oss

NB.使用早于 0.9.0beta11 驱动的用户,使用如下命令:
modprobe snd-card-intel8x0

现在调整你的声卡的音量水平。所有混音器声道(mixer channels)默认都是静音。你必须使用一个本地的mixer程序取消合适的声道的静音,例如,你可以使用alsa-utils包中的alsamixer。注意,usb-audio设备没有内部的混音器控制。
alsamixer
你也可以看看utils/alsasound文件。这个脚本是为Redhat发行版所设计的,但是你可以将它应用在任何使用System V风格的rc初始化脚本的发行版上。这将可以使你在系统启动的时候加载模块。当然如果你想这样做,你可以把它编译进内核,这样就省去了你去理解rc初始化脚本时的困难了。

设置modprobe和kmod支持

在你发送邮件抱怨“我没有/etc/modules.conf,我可以再那里找到它……”之前,/etc/modules.conf的确已经为一些发行版所反对,但是它还是可能以/etc/conf.modules的形式存在。两者基本上是一样的。不要担心这些问题,作为一个可选的步骤,请升级你的modutils到最新的版本。这将解决你的问题。
这里有一个例子,你可以复制,粘贴这部分到你的/etc/modules.conf文件的最后。

debian用户注意啦:你必须把这些信息保存为一个文件,放到/etc/modutils/目录下(例如:/etc/modutils/alsa)然后运行update-modules

# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-intel8x0
# module options should go here

# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-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

NB. 使用早于0.9.0beta11驱动的用户必须使用:
snd-card-intel8x0

按照这些<A href="http://www.alsa-project.org/alsa-doc/doc-php/file-edit.php";>指导</A>复制并粘贴上面的内容到你的/etc/modules.conf文件中。

对/etc/modules.conf文件内容的简单解释

本地设备

当主多路复用器(multiplexer)被加载后,它的编码需要顶层水平的声卡模块。字串snd-card-%i是本设备的需要的,%i是声卡的数量,从1-7。字串sound-slot-%i是本设备的需要的,%i代表ALSA拥有的插槽数量,这代表了声卡的数目。这个选项行允许你在模块加载前设置不同的配置选项。字串snd_id让你设置声卡的名字,可以通过/proc/asound/cards文件返回其值。其他还有一些声卡特异性的选项。这些选项可以在INSTALL文件中或者上面找到。

xyz@localhost#pico /etc/modules.conf

# ALSA portion
alias snd-card-0 snd-interwave
alias snd-card-1 snd-cmipci
options snd-cmipci id="first" enable_midi="1"

# OSS/Free portion
alias sound-slot-0 snd-card-0
alias sound-slot-1 snd-card-1

NB.使用0.9.0rc5 或者更老的驱动的用户请使用:
options snd-cmipci snd_id="first" snd_enable_midi="1"
为了符合内核表准,"snd_"q前缀已经从"module options"中被删除了。

自动加载OSS/Free模拟

当我们完成配置ALSA本地设备之后,在某种意义上说我们已经完成了,但是你可能同时也需要自动加载ALSA的OSS/Free模拟模块扩展。此时,仅有一个模块并不依赖于其他任何模块,因此必须被单独加载,snd-pcm1-oss.o。字串sound-service-%i-%i是OSS/Free服务所需要的。第一个%i代表插槽数量,例如,卡的数量。而第二个%i代表服务的数量。
xyz@localhost#pico
/etc/modules.conf

# OSS/Free portion - card #1
alias sound-slot-0 snd-card-0
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

# OSS/Free portion - card #2 (cmipci)
alias sound-slot-1 snd-card-1 
alias sound-service-1-0 snd-mixer-oss
alias sound-service-1-3 snd-pcm-oss
alias sound-service-1-12 snd-pcm-oss

别名(alias)snd-seq-oss 对第二个设备并不是必须的,因为不惯你有多少设备,你只有一个/dev/sequencer。

.asoundrc文件

你可以在<A href="http://www.alsa-project.org/alsa-doc/doc-php/asoundrc.php?module=intel8x0";>这里</A>找到关于该文件的更多信息。

这个文件允许你对你的声卡/设备有更多的高级控制。一些非常有用的应用程序没有了它将无法工作。.asoundrc文件由对你系统中可获得的许多声卡的定义组成。它同时也给了你使用alsa-lib中pcm插件的权限。它还允许你做一些有趣的事,如把你的多块声卡捆绑成一块使用,或者让你使用多声道声卡的多输入输出(multiple i/o)。
下面是一个基本的定义。
在你的用户目录或者root目录下新建一个名为.asoundrc的文件:
vi /home/xxx/.asoundrc
复制粘贴下面的部分到文件中,保存它。

pcm.intel8x0 {
type hw
card 0
}

ctl.intel8x0 {
type hw
card 0
}

链接(略)

分享到:

我的QQ群:500人财富群11470502;投资群5920530;资源群6648659;交友群5713862;娱乐群6925950。
我的博客:http://104508155.qzone.qq.com/

 [作者]dsj [头衔]论坛坛主 [经验]220862 [等级]大主帅  [发帖]15642  [回帖]1366 [登陆]7956
[发表时间]2005/10/18 15:05:32 [1楼]
用户反馈:(简单意译了,作者的名字一改省略。但是还是表示以下感谢。)

1. 在freshrpms.net上可以找到RPM包http://freshrpms.net/docs/alsa/
如果针对你特定内核的RPM没有,你可以通过源RPM为你的特定内核重构一个:
"rpmbuild --rebuild"

2. ALSA intel8x0 的维基百科http://opensrc.org/alsa/index.php?page=intel8x0

3. 我终于让midi在我的nforce2 apu上正确工作,通过添加下面的行:
options snd-intel8x0 mpu_port=0x330
希望这对勇敢的linux音乐家有用。

4. 当前对本芯片的SP/DIF的支持只在cvs版的ALSA才有。我不知道为什么要这样。但是在/dev/alsa下所需的设备并不会为“发行版”的ALSA所创建,另外混音器(mixer)中也不能找到SPDIF控制。找一个最新的CVS版吧。提示:使用gnome-alsamixer,会让你比使用alsamixer更容易的启用许多SPDIF选项。

5.nfroce2多声道混音alsa音频可以使用下面的配置文件:

### .asoundrc for nforce2 apu


pcm.nforce-hw {
type hw
card 0
}

pcm.!default {
type plug
slave.pcm "nforce"
}

pcm.nforce {
type dmix
ipc_key 1234
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
}

ctl.nforce-hw {
type hw
card 0
}

它定义了两个多通道设备分别称为"nforce"和"default"。为"raw"飞混音输出(如jackd,它并不怎么喜欢dmix插件)定义了称为 "nforce-hw" 的设备。
应用实例:
--xmms,你需要xmms-alsa插件,并且配置它使用称为"nforce"的设备。
--(g)mpayer你需要使用如下命令启动:"gmplayer -ao alsa9:nforce"

现在,所有的音频都使用alsa而不用esound或者arts了。希望这个有用。 作者:lars


6. 我成功的在华硕A7N8X Deluxe 板载声卡上实现了 5.1 声道。芯片组被侦测为:
"NVidia nForce2:Realtek ALC650 rev 3" (MB is hardware revision 2.0)
我用的是Gentoo发行版,我编译了alsa-{driver,libs}-0.9.8,并且加入了oss的支持。然后用了gamix(一个好用的gtk alsa mixer)。我取消了Surround, LFE, Master, PCM的静音,并把它们开刀最大。在MB面板后面有:
2ch,front L+R, 绿色 jack
2ch,rear L+R, 紫色 jack
1ch,bass L, 橙色 jack
这是默认设置。(这一段看不太懂,所以大概翻译了一下,希望传达出来的一点意思对你们的理解有所提示。)
我用3个立体声功放,带有2,2,1扬声器(没有钱买新的5.1声道的设备啊),所以,同时调整三个功放的声音时就比较郁闷。:-)
作为测试,我使用了一张支持5.1声道的DVD,以ROOT身份进行试验。
# mplayer dvd://1 -v -aid 128 -ao oss -channels 6 2>&1|grep AC3:
检查你是不是有一个类似于下面的输出:
AC3: 5.1 (3f+2r+lfe) 48000 Hz 448.0 kbit/s
如果没有,试一下129, 130... 以获取帮助。(靠!老外写得句子这么口语化,看不懂了!)

享受美妙的音质体验吧!

7. 我有一个华硕的带nforce2芯片组的a7n8x-vm板子,我成功的让所有的音效都通过mplayer的spdif输出。模拟信号和数字信号都可以,所以无论你是在欣赏AC3电影还是听MP3的时候,就不需要对参数进行变化了。有三个参数帮你搞定一切:
mplayer -ao alsa9:spdif -ac hwac3, -srate 48000 somemovie.avi
-ao alsa9:spdif通过spdif输出送出所有的音频
-ac hwac3,如果有ac3流,它就会以raw模式发送,因此你的接收器就可以处理它了,否则,“模拟”回放将被使用。
-srate 48000 把所有的都转换成48kHz,因为声卡不能同国spdif处理44.1kHz的信号,否则将导致其播放速度加快。
完了,尽情享受吧!

8. 我已经可以在我的系统上通过数字spdif实现AC3/DTS输出了。这就意味着我可以用XINE回放DVD而实现杜比数字5.1声道(Dolby Digital 5.1 sound)了。
我有一个运行着getoo linux的Shuttle SN41G2系统。主板是nforce2芯片组,和intel8xO的声音芯片。我还订购了额外的spdif扩展,以提供4个数字接口(1个光纤接入,一个光线输出,一个同轴电缆输入,一个同轴电缆输出)。我运行的是CVS版的alsa-driver和alsa-libs,另外和以下的.asoundrc(基于上面的Lars G写得那份)。只在slave设备的pcm值上有一个很小的改动。
pcm.nforce-hw {
type hw
card 0
}

pcm.!default {
type plug
slave.pcm "nforce"
}

#0,0 is analog out (i.e. headphone socket on the shuttle), and 0,1 is 
#spdif out.

pcm.nforce {
type dmix
ipc_key 1234
slave {
pcm "hw:0,1"
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
}

ctl.nforce-hw {
type hw
card 0
}

Everything else is as per the intel8xO sound card matrix.(看不懂,不翻了)

提示:
----
o) KDE
默认状态下,KDE是使用artsd来混音的,但是因为我们使用了dmix插件,那就不再需要它了。artsd通过阻止其他任何程序发声的方式,掌管着声音设备(除非那些程序有一个artsd的插件),这样就导致了像xmms,xine,甚至alsapalyer运行时挂起

通过上面的.asoundrc文件,你就可以进入KDE,加载控制中心,关掉artsd,而所有的声音都工作正常。

o) 用aplay和KDE时的噪音和爆音干扰
我发现自己的.asoundrc文件在用aplay播放声音提示时会产生恼人的爆音和噼啪声。(KDE使用aplay来产生声音提示,例如登录和注销的声音)。这个问题似乎是因为cvs版的alsa-utils的问题。所以我反安装了这些之后,又装回了旧版的(我用gentoo的emerge,我估计是装载了0.92版的)。(编者按-原文是9.2版的。但是alsa现在还没有到2.9呢,哪来的9.2版啊。是我错了还是作者错了呢?)

9. 因为某种原因,ALSA不能在KDE中被正确的侦测。请确认是不是使用了artsd输出。控制中心-〉系统和媒体-〉多媒体-〉声音I/O,修改声音方案为:Threaded Open Sound System。

10. CIMLinux给的解决方案在我的华硕A7N8X Deluxe上工作良好。
但是在我KDE下回放,最大化/最小化窗口的时候会有一个跳过声音(其他的PCI活动都会产生同样的结果 - 我机器上还在使用PCI的图形加速卡)。安如下方法加入"buffer_size"值进行挽救。
slave {
pcm "hw:0,1"
period_time 0
period_size 1024
buffer_size 32768
rate 48000
}
(这段位于dmix插件的同一部分。)
较小的buffer_size可能会使其工作正常。因为似乎ALSA在使用SP/DIF输出的时候会强行转换为48000Hz,但是我为了清晰,还是修改它了。

11. 我最终也使得alsa成功的运行在我的微星nforce 1 k7n420主板上。Had to drop the period in half.(长话短说了。——这么烦不知是不是合适。)
pcm.nforce-hw {
type hw
card 0
}

pcm.!default {
type plug
slave.pcm "nforce"
}

pcm.nforce {
type dmix
ipc_key 1234
slave {
pcm "hw:0,0"
period_time 0
period_size 512
buffer_size 4096
rate 44100
}
}

ctl.nforce-hw {
type hw
card 0
}
 


我的QQ群:500人财富群11470502;投资群5920530;资源群6648659;交友群5713862;娱乐群6925950。
我的博客:http://104508155.qzone.qq.com/

 [作者]dsj [头衔]论坛坛主 [经验]220862 [等级]大主帅  [发帖]15642  [回帖]1366 [登陆]7956
[发表时间]2005/10/18 15:05:52 [2楼]
12. 用alsamixer(而不是用kMix)设置我的ALSA录音。

设置: NForce MB, Mandrake9.2, thac's mm kernel etc, 
Alsa, Jack, Rosegarden Audio tracks
(什么东西,看不懂啦。我对音响没有研究。)
要音频录音你需要打开“抓取”("capture"),然而,用KMIX工作并不很好。作为替代方案,你需要使用alsamixer(在shell下)。当我使用kmix的时候,我立刻得到了一个声音反馈。
但是我在用alsamixer的时候,一切正常。
(对于我,抓取是在控制面板上的第八个。)
……
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch cswitch-joined
Capture channels: Front Left - Front Right
Limits: Capture 0 - 15
Front Left: Capture 0 [0%] [on]
Front Right: Capture 0 [0%] [on]
……
现在Jack-Rack可以工作了,我也可以在玫瑰园录制音轨了。

13. Dell Inspiron 1100 本本,i845芯片组:
启用ALSA多音频流,编辑/etc/asound.conf。
文件应该包含以下内容:
#/etc/asound.conf start: 
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.dsp0 {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 8192
rate 44100
}
bindings {
0 0
1 1
}
}

ctl.dmixer {
type hw
card 0

#end.
然后,告诉你的声音程序以ALSA作为默认输出设备。这样你就可以实现多音频流,而不会发生声音设备被占用之类的问题了。

14. 我根据上面指导做了,但是还是不能使我的nforce2 (shuttle sn41g2)用spdif输出。最后,我cat了 /proc/asound/devices,发现狮子音频回放在我的系统里居然是0,2,而不想上面的例子中列出的那样。可能是因为0,x会随系统的变化而变化吧。无论如何,我希望这对其他人有所帮助。

15. EPOX 8RDA3+, CMedia 声音芯片组
Alsa 1.04 i8x0 驱动工作正常。但是在我搜寻了半天之后,我发现,除了要解除PCM的静音之外,还必须解除IEC958 Capture
Monitor的静音,否则还是不会有任何声音的。
希望对你们有所帮助。  


我的QQ群:500人财富群11470502;投资群5920530;资源群6648659;交友群5713862;娱乐群6925950。
我的博客:http://104508155.qzone.qq.com/

 [作者]pylpyl1 [头衔]认证会员(助) [经验]899 [等级]三等兵  [发帖]29  [回帖]51 [登陆]136
[发表时间]2006/2/15 23:02:06 [3楼]
dsj无处不在。  



3 条回复; 10 条/页;  1 / 1     第   ↑到页首
您未登陆,发帖前请填写:用户名 密码 注册新用户  
 回复: ALSA安装配置指南(Official)(适用于Intel snd-intel8x0)
排版
粗体斜体下划线居中飞翔文字移动文字发光文字阴影文字插入超级链接插入网页插入下载地址插入Email地址插入图片插入Flash插入RealPlay文件插入Media文件插入QuickTime影片插入背景音乐插入代码插入引用
插入表情:表情符号   使用帮助
内容 (8000字以内)
 
  关闭窗口  
[论坛列表]

小文诊所 创业经验
金融创新 家庭理财
居家旅行 国内资源
职业生活 配置应用
饮食文化 实盘记录
温情一刻 国外资源
法律频道 红旗社区
妇幼天地 商标标准
站务处理 蓝总看盘
奖励认证 开源软件
故障咨询 求助中心
公益活动 手机软件
网络经济 文史研究
期货专版 代理试用
网页制作 人才交流
分类广告 房产观澜
体育资讯 雅瑟风流
初学园地 美术贴图
股海风云 听风茶轩
管理学院

[今日热帖]

关于文逸 | 小文论坛 | 文逸博客 | 文逸金融 | 精华文章网站地图 | 联系我们 | 隐私保护
 Copyright© WWW.WONYEN.NET 2003 - 2021  闽ICP备09016518号-16   本站最高 10508 人同时在线,发生时间 2005-5-17 5:09:15 
 文逸科技 制作维护