当前位置:操作系统 > Unix/Linux >>

Alsa Setup译文

Alsa Setup
本文阐述了怎样在2.4和2.6内核下使Alsa正常工作。
本文参考了Arjan Timmerman的Alsa Setup howto(http://www.soulfly.nl/arjan/archlinux/alsa-setup.html)。更详细信息见http://bbs.archlinux.org/viewtopic.php?t=2544.
1、安装软件包
a. 2.4及2.6内核都需要:
#pacman -Sy alsa-lib alsa-utils
b. 2.4内核需要:
#pacman -S alsa-driver
#depmod -a
c. 建议安装但非必需:
#pacman -S alsa-oss
注意,“alsa-driver”包中含有基于Arch stock kernel必需的模块!如果自己编译2.4内核,“alsa-driver”大多不会正常工作。你应该使用ABS建立你自己的“alsa-driver”包,并安装此包。
2.配置Alsa
a. 确定声卡的模块,参见http://www.alsa-project.org/alsa-doc/。模块是以"snd-"为前缀(例如:snd-via82XX)。也可以以root身份执行"alsaconf"。
b. 装入模块
#modprobe snd-NAME-OF-MODULE
#modprobe snd-pcm-oss
c. 打开音量
#amixer set Master 100 unmute
#amixer set PCM 100 unmute
或者你可以用图形界面的"alsamixer"。
注意,使用"alsamixer",一定要在调整音量的同时打开它(按M键)。
d. 找个波形文件试一试
#aplay mywav.wav
e. 在/etc/rc.conf的MODULES中加入snd-pcm-oss和'snd-NAME-OF-MODULE'

2. DevFS下设置权限
如果你使用uDev,请跳过本节,阅“uDev下设置权限”。如果你不知道用的是DevFS还是uDev,那么你用的应该是DevFS。
a. 建立sound用户组
#groupadd sound
b. 加入该组
#gpasswd -a USERNAME sound
c. 在'/etc/devfsd.conf'中加入以下两行
REGISTER sound/.* PERMISSIONS root.sound 660
REGISTER snd/.* PERMISSIONS root.sound 660
d. 重启devfs
killall -HUP devfsd
e. logout然后再login以确保sound用户组已载入。

3. uDev下设置权限
a. 建立sound用户组
#groupadd sound
b. 加入该组
#gpasswd -a USERNAME sound
c. 编辑'/etc/udev/permissions.d/udev.permissions'

#audio devices
dsp*:root:root:0660
audio*:root:root:0660
midi*:root:root:0660
mixer*:root:root:0660
sequencer*:root:root:0660
sound/*:root:root:0660
snd/*:root:root:0660
beep:root:root:0660
admm*:root:root:0660
adsp*:root:root:0660
aload*:root:root:0660
amidi*:root:root:0660
dmfm*:root:root:0660
dmmidi*:root:root:0660
sndstat:root:root:0660

改成
# audio devices
dsp*:root:sound:0660
audio*:root:sound:0660
midi*:root:sound:0660
mixer*:root:sound:0660
sequencer*:root:sound:0660
sound/*:root:sound:0660
snd/*:root:sound:0660
beep:root:sound:0660
admm*:root:sound:0660
adsp*:root:sound:0660
aload*:root:sound:0660
amidi*:root:sound:0660
dmfm*:root:sound:0660
dmmidi*:root:sound:0660
sndstat:root:sound:0660
(译注:全改成sound用户组)

d. 重启uDev
/etc/start_udev
mount /dev/pts
mount /dev/shm
e. logout然后再login以确保sound用户组已载入。

4. 启动
a. 执行'alsactl'一次,生成'/etc/asound.state'
alsactl store
b. 将以下内容保存为'/etc/rc.d/alsamixer'

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

case "$1" in
start)
stat_busy "Restoring Alsa mixer volumes"
alsactl restore
if [ $? -gt 0 ]; then
stat_fail
else
add_daemon alsamixer
stat_done
fi
;;
stop)
stat_busy "Storing Alsa mixer volumes"
alsactl store
if [ $? -gt 0 ]; then
stat_fail
else
rm_daemon alsamixer
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage $0 {start|stop|restart}"
;;
esac
c. 将其设置为可执行
chmod 755 /etc/rc.d/alsamixer
d. 编辑'/etc/rc.conf',将'alsamixer'加入守护进程列表,使其在启动时运行。

5. KDE设置
a. 启动KDE
#startx
b. 设置音量,想设多高随你定了(每个用户都有自己的设置)
#alsamixer
c. KDE3.2,K Menu > Settings > Control Center > Sound & Multimedia > Mixer
确定选中了"Load volumes on login",并保存。
d. KDE 3.3,K Menu > Multimedia > KMix
选择Settings > Configure KMix...
取消"Restore volumes on logon"
点OK,所有都设好了。现在你的音量无论是在KDE或在命令行下都一样。
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,