alsa的网站上有如下的包:
Current versions
* alsa-driver-1.0.19 这个肯定是要的
* alsa-lib-1.0.19 这个是否要?
* alsa-utils-1.0.19 可要可不要
* alsa-tools-1.0.19 可要可不要
* alsa-firmware-1.0.19 这个是否要?
* alsa-plugins-1.0.19 可要可不要
* alsa-oss-1.0.17 可要可不要
* pyalsa-1.0.17 可要可不要
自己编译alsa驱动该选哪些包?
-
- 帖子: 466
- 注册时间: 2007-09-06 16:07
-
- 帖子: 391
- 注册时间: 2006-02-20 0:27
Re: 自己编译alsa驱动该选哪些包?
我是在LFS上面装ALSA时边做边做的笔记,可能有点乱,特别是后面的,可以将就看看。。。。
#ALSA Library
wget -c http://alsa.cybermirror.org/lib/alsa-lib-1.0.19.tar.bz2
tar xvf alsa-lib-1.0.19.tar.bz2
cd alsa-lib-1.0.19
./configure
make
make install &&
install -v -m644 -D doc/asoundrc.txt \
/usr/share/doc/alsa-lib-1.0.19/asoundrc.txt
cd ..
rm -rf alsa-lib-1.0.19
#ALSA Plugins
wget http://alsa.cybermirror.org/plugins/als ... 19.tar.bz2
tar xvf alsa-plugins-1.0.19.tar.bz2
cd alsa-plugins-1.0.19
./configure
make
make install &&
install -v -m755 -d /usr/share/doc/alsa-plugins-1.0.19 &&
install -v -m644 doc/{README*,*.txt} \
/usr/share/doc/alsa-plugins-1.0.19
cd ..
rm -rf alsa-plugins-1.0.19
#ALSA Utilities
wget http://alsa.cybermirror.org/utils/alsa- ... 19.tar.bz2
tar xvf alsa-utils-1.0.19.tar.bz2
cd alsa-utils-1.0.19
sed -i -e 's/^\(man_MANS[ \t]*=[ \t]*\).*$/\1/' alsactl/Makefile.*
./configure &&
make
make install
cd ..
rm -rf alsa-utils-1.0.19
#ALSA Tools 里面有很多个,一个一个的安装,可以选择性的吧,应是?ld10k1 must be built before ql10k1
wget http://alsa.cybermirror.org/tools/alsa- ... 19.tar.bz2
tar xvf alsa-tools-1.0.19.tar.bz2
每个包的安装用:
./configure --prefix=/usr &&
make
make install
#ALSA Firmware
wget -c http://alsa.cybermirror.org/firmware/al ... 19.tar.bz2
tar xvf alsa-firmware-1.0.19.tar.bz2
cd alsa-firmware-1.0.19
./configure --prefix=/usr &&
make
make install
cd ..
rm -rf alsa-firmware-1.0.19
#ALSA OSS
wget http://alsa.cybermirror.org/oss-lib/als ... 17.tar.bz2
tar xvf alsa-oss-1.0.17.tar.bz2
cd alsa-oss-1.0.17
./configure &&
make
make install
cd ..
rm -rf alsa-oss-1.0.17
#ALSA Driver
wget http://gd.tuwien.ac.at/opsys/linux/alsa ... 19.tar.bz2
tar xvf alsa-driver-1.0.19.tar.bz2
cd alsa-driver-1.0.19
./configure --with-kernel=/lib/modules/$(uname -r)/source \
--with-cards=intel8x0 \
--with-oss=yes \
--with-isapnp=no
make &&
make install
./snddevices #如果这是你第一次安装ALSA驱动,你必须到ALSA驱动的源代码目录,用下面的命令在/dev下创建音频设备.
cd ..
rm -rf alsa-driver-1.0.19
上面的intel8x0 ,是我的机子这样,找出自己是什么的才好哟。。下同。
配置文件:
cat >> /etc/modules.conf << "EOF"
alias char-major-14 soundcore
alias char-major-116 snd
alias snd-card-0 snd-intel8x0
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-midi
EOF
这个配置文件好像可以由alsaconf自动配置的,但我运行了找不到任何的东西,算了,就手动配置/etc/modules.conf文件。
其实我在DEBIAN里面的是这样的
alias snd-card-0 snd-intel8x0
options snd-intel8x0 index=0
在编辑完 /etc/modules.conf 文件后,你需要运行 depmod. 如果你是为你目前在运行的内核编译的声卡驱动,那么你只需要运行一下
depmod
,如果你编译的声卡不是为你现在运行的内核版本编译的, 你就要运行以下代码
depmod -a 2.6.19 -F /boot/System.map-2.6.19
加载模板:modprobe snd-intel8x0
注意:有时第一次执行alsa模块加载操作后,会出现一些出错信息,此时可重启一次系统,再加载一次模块看是否能解决问题。
使用下列命令检验声卡驱动:
#cat /proc/asound/cards
我的显示为:
0 [ICH ]: NFORCE - Intel ICH
Intel ICH with ALC655 at irq 10
加载成功了。。
用命令alsamixer来打开声音调节。用M来打开声音,因为默认是静音的。
我装好了XMMS,再试一下,能听到声音了。
保存音量配置,执行:alsactl store
搞定了。
在DRIVER这一段里,一开始我./configure时说我把声音编译进内核了,You have built-in ALSA in your kernel.不让我make,那个时候alsamixer能运行,应该就可以用,不用装DRIVER都行。
我一开始也不懂嘛,其实现在也是不懂的。就重新编译过内核,尝试声音部分的都去掉,安了ALSA的DRIVER之后以为就大吉了,结果还是有问题出来,没法加载我的声卡的模块。。把原来SOUND CARD SURPORT是编译进内核的,改成了编成模片,就是Y改成了M了,在make menuconfig下改的,有两个怎么样都是×的,没法变成M。
补充说一下/etc/modules.conf的东西。关于参数ac97_quirk=6,有时可能会用得上的。
卸载内核模块
rmmod snd_intel8x0
如果提示
ERROR: Module snd_intel8x0 is in use
请找关闭所有你正在使用声卡的程序,一个小tip就是你在面板删除那个小喇叭,应该就好了。
然后再运行上面的命令。
加载内核模块,这里要加上ac97_quirk=*的参数
modprobe snd_intel8x0 ac97_quirk=6
测试有没有声音,如果不行,再把6换成7,重复上面动作。。。到可以为止
找到ac97_quirk的值后,在/etc/modules.conf 中添加一个选项
options snd-intel8x0 ac97_quirk=6
其他几点补充说明
1.ALSA的安装一般没有什么困难,但如果出现错误,请多执行lsmod,因为alsa是以模块形式加载的,可通过lsmod的输出信息得知alsa的加载情况,从而判断出错原因。
其中:
snd为alsa的核心模块,为声卡驱动模块及其它alsa的模块所调用,首先载入。如果没有它,alsa将不能工作。
soundcore为linux内核声音支持模块。snd需要它。
2.如果alsa成功编译,模块成功加载,音量调节也没错的话,所以步骤都正确执行却依然无声的话,请参考alsa的文档,看看是否该声卡需要附加特定参数。例如es1988芯片的声卡便可能需要加特定的参数才能发声。笔记本的用户特别需要注意这一点。
这一篇是写得相当的乱,没办法,不好整理呀。
可以去LinuxSir.org的硬件版块看置顶文章,里面可以学很多东西。
我就是对着那里搞定的。
#ALSA Library
wget -c http://alsa.cybermirror.org/lib/alsa-lib-1.0.19.tar.bz2
tar xvf alsa-lib-1.0.19.tar.bz2
cd alsa-lib-1.0.19
./configure
make
make install &&
install -v -m644 -D doc/asoundrc.txt \
/usr/share/doc/alsa-lib-1.0.19/asoundrc.txt
cd ..
rm -rf alsa-lib-1.0.19
#ALSA Plugins
wget http://alsa.cybermirror.org/plugins/als ... 19.tar.bz2
tar xvf alsa-plugins-1.0.19.tar.bz2
cd alsa-plugins-1.0.19
./configure
make
make install &&
install -v -m755 -d /usr/share/doc/alsa-plugins-1.0.19 &&
install -v -m644 doc/{README*,*.txt} \
/usr/share/doc/alsa-plugins-1.0.19
cd ..
rm -rf alsa-plugins-1.0.19
#ALSA Utilities
wget http://alsa.cybermirror.org/utils/alsa- ... 19.tar.bz2
tar xvf alsa-utils-1.0.19.tar.bz2
cd alsa-utils-1.0.19
sed -i -e 's/^\(man_MANS[ \t]*=[ \t]*\).*$/\1/' alsactl/Makefile.*
./configure &&
make
make install
cd ..
rm -rf alsa-utils-1.0.19
#ALSA Tools 里面有很多个,一个一个的安装,可以选择性的吧,应是?ld10k1 must be built before ql10k1
wget http://alsa.cybermirror.org/tools/alsa- ... 19.tar.bz2
tar xvf alsa-tools-1.0.19.tar.bz2
每个包的安装用:
./configure --prefix=/usr &&
make
make install
#ALSA Firmware
wget -c http://alsa.cybermirror.org/firmware/al ... 19.tar.bz2
tar xvf alsa-firmware-1.0.19.tar.bz2
cd alsa-firmware-1.0.19
./configure --prefix=/usr &&
make
make install
cd ..
rm -rf alsa-firmware-1.0.19
#ALSA OSS
wget http://alsa.cybermirror.org/oss-lib/als ... 17.tar.bz2
tar xvf alsa-oss-1.0.17.tar.bz2
cd alsa-oss-1.0.17
./configure &&
make
make install
cd ..
rm -rf alsa-oss-1.0.17
#ALSA Driver
wget http://gd.tuwien.ac.at/opsys/linux/alsa ... 19.tar.bz2
tar xvf alsa-driver-1.0.19.tar.bz2
cd alsa-driver-1.0.19
./configure --with-kernel=/lib/modules/$(uname -r)/source \
--with-cards=intel8x0 \
--with-oss=yes \
--with-isapnp=no
make &&
make install
./snddevices #如果这是你第一次安装ALSA驱动,你必须到ALSA驱动的源代码目录,用下面的命令在/dev下创建音频设备.
cd ..
rm -rf alsa-driver-1.0.19
上面的intel8x0 ,是我的机子这样,找出自己是什么的才好哟。。下同。
配置文件:
cat >> /etc/modules.conf << "EOF"
alias char-major-14 soundcore
alias char-major-116 snd
alias snd-card-0 snd-intel8x0
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-midi
EOF
这个配置文件好像可以由alsaconf自动配置的,但我运行了找不到任何的东西,算了,就手动配置/etc/modules.conf文件。
其实我在DEBIAN里面的是这样的
alias snd-card-0 snd-intel8x0
options snd-intel8x0 index=0
在编辑完 /etc/modules.conf 文件后,你需要运行 depmod. 如果你是为你目前在运行的内核编译的声卡驱动,那么你只需要运行一下
depmod
,如果你编译的声卡不是为你现在运行的内核版本编译的, 你就要运行以下代码
depmod -a 2.6.19 -F /boot/System.map-2.6.19
加载模板:modprobe snd-intel8x0
注意:有时第一次执行alsa模块加载操作后,会出现一些出错信息,此时可重启一次系统,再加载一次模块看是否能解决问题。
使用下列命令检验声卡驱动:
#cat /proc/asound/cards
我的显示为:
0 [ICH ]: NFORCE - Intel ICH
Intel ICH with ALC655 at irq 10
加载成功了。。
用命令alsamixer来打开声音调节。用M来打开声音,因为默认是静音的。
我装好了XMMS,再试一下,能听到声音了。
保存音量配置,执行:alsactl store
搞定了。
在DRIVER这一段里,一开始我./configure时说我把声音编译进内核了,You have built-in ALSA in your kernel.不让我make,那个时候alsamixer能运行,应该就可以用,不用装DRIVER都行。
我一开始也不懂嘛,其实现在也是不懂的。就重新编译过内核,尝试声音部分的都去掉,安了ALSA的DRIVER之后以为就大吉了,结果还是有问题出来,没法加载我的声卡的模块。。把原来SOUND CARD SURPORT是编译进内核的,改成了编成模片,就是Y改成了M了,在make menuconfig下改的,有两个怎么样都是×的,没法变成M。
补充说一下/etc/modules.conf的东西。关于参数ac97_quirk=6,有时可能会用得上的。
卸载内核模块
rmmod snd_intel8x0
如果提示
ERROR: Module snd_intel8x0 is in use
请找关闭所有你正在使用声卡的程序,一个小tip就是你在面板删除那个小喇叭,应该就好了。
然后再运行上面的命令。
加载内核模块,这里要加上ac97_quirk=*的参数
modprobe snd_intel8x0 ac97_quirk=6
测试有没有声音,如果不行,再把6换成7,重复上面动作。。。到可以为止
找到ac97_quirk的值后,在/etc/modules.conf 中添加一个选项
options snd-intel8x0 ac97_quirk=6
其他几点补充说明
1.ALSA的安装一般没有什么困难,但如果出现错误,请多执行lsmod,因为alsa是以模块形式加载的,可通过lsmod的输出信息得知alsa的加载情况,从而判断出错原因。
其中:
snd为alsa的核心模块,为声卡驱动模块及其它alsa的模块所调用,首先载入。如果没有它,alsa将不能工作。
soundcore为linux内核声音支持模块。snd需要它。
2.如果alsa成功编译,模块成功加载,音量调节也没错的话,所以步骤都正确执行却依然无声的话,请参考alsa的文档,看看是否该声卡需要附加特定参数。例如es1988芯片的声卡便可能需要加特定的参数才能发声。笔记本的用户特别需要注意这一点。
这一篇是写得相当的乱,没办法,不好整理呀。
可以去LinuxSir.org的硬件版块看置顶文章,里面可以学很多东西。
我就是对着那里搞定的。
Linux mylinux 2.6.37.3-mylinux #1 SMP Fri Feb 18 19:52:03 CST 2011 i686 GNU/Linux
==
境由心造,事在人为!
==
http://www.open2l.com
==
==
境由心造,事在人为!
==
http://www.open2l.com
==
-
- 帖子: 391
- 注册时间: 2006-02-20 0:27
Re: 自己编译alsa驱动该选哪些包?
可以看看BLFS,或者CBLFS上面的东西,都有依赖关系的,DRIVER不一定要的,可以编出内核。LIB肯定是要的,算是基础来的。。。
Linux mylinux 2.6.37.3-mylinux #1 SMP Fri Feb 18 19:52:03 CST 2011 i686 GNU/Linux
==
境由心造,事在人为!
==
http://www.open2l.com
==
==
境由心造,事在人为!
==
http://www.open2l.com
==
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 466
- 注册时间: 2007-09-06 16:07
Re: 自己编译alsa驱动该选哪些包?
嘿嘿,就是想升级一下驱动。
现在装好了,用realtek的驱动,它里面有个install的脚本,打开看了下,它只装了driver、lib、utility这三样,然后是些设置。
下面就是它的内容,就是不知道我64位的系统,##for x86 到##for x86_64这段是不是要执行?看起来这段对32位和64位应当都是需要的,为何还特意注明是 for x86?
现在装好了,用realtek的驱动,它里面有个install的脚本,打开看了下,它只装了driver、lib、utility这三样,然后是些设置。
下面就是它的内容,就是不知道我64位的系统,##for x86 到##for x86_64这段是不是要执行?看起来这段对32位和64位应当都是需要的,为何还特意注明是 for x86?
代码: 全选
#!/bin/sh
######## VERSION 1.0 ########
KERNEL_VER=`uname -r`
. ./version
echo ".....Decompress Driver source v1.0.19-$ver"
tar xvpfj alsa-driver-1.0.19-$ver.tar.bz2 > /dev/null 2>&1
echo ".....Decompress ALSA Library source v1.0.19"
tar xvpfj alsa-lib-1.0.19.tar.bz2 > /dev/null 2>&1
echo ".....Decompress ALSA Utility v1.0.19"
tar xvpfj alsa-utils-1.0.19.tar.bz2 >/dev/null 2>&1
#echo ".....Decompress XRealMixer v0.5"
#tar xvpfj xrmix-0.5.tar.bz2 > /dev/null 2>&1
sync
echo "Remove old sound driver"
if [ -d /lib/modules/$KERNEL_VER/kernel/sound ]; then
rm -rf /lib/modules/$KERNEL_VER/kernel/sound/pci > /dev/null 2>&1
rm -rf /lib/modules/$KERNEL_VER/kernel/sound/acore > /dev/null 2>&1
rm -rf /lib/modules/$KERNEL_VER/kernel/sound/core > /dev/null 2>&1
fi
## remove driver modules
if [ -f /etc/rc.d/init.d/alsasound ]; then
/etc/init.d/alsasound stop
rmmod snd-page-alloc > /dev/null 2>&1
rmmod soundcore > /dev/null 2>&1
fi
sleep 2
echo "Compile Driver........"
cd alsa-driver-1.0.19-$ver
./configure --with-cards=hda-intel
make
make install
./snddevices
cd ..
## for x86
echo "Remove old alsa library"
rm -rf /lib/libasound.* > /dev/null 2>&1
rm -rf /lib64/libasound.* > /dev/null 2>&1
rm -rf /usr/lib/libasound.* > /dev/null 2>&1
rm -rf /usr/lib64/libasound.* > /dev/null 2>&1
echo "Compile ALSA Library....."
cd alsa-lib-1.0.19
./configure
make
make install
cd ..
echo "Compile ALSA Utility......"
cd alsa-utils-1.0.19
./configure
make
make install
cd ..
#echo "Comiple XrealMixer......"
#cd ./
## for x86_64
if [ -d /usr/lib64 ]; then
cp -lf /usr/lib/libasound.* /usr/lib64
cp -lf /usr/lib/pkgconfig/alsa.pc /usr/lib64/pkgconfig
ldconfig -n /usr/lib64
fi
sleep 1
## del audio stat file
if [ -f /etc/asound.state ]; then
rm -rf /etc/asound.state > /dev/null 2>&1
fi
## alsa driver sndstat file relink
rm -rf /dev/sndstat > /dev/null 2>&1
ln -s /proc/asound/oss/sndstat /dev/sndstat
## sample wave
if [ -d /usr/share/sounds/alsa ]; then
bzip2 -d test.wav.bz2
cp -f test.wav /usr/share/sounds/alsa
bzip2 test.wav
else
mkdir /usr/share/sounds/alsa
bzip2 -d test.wav.bz2
cp -f test.wav /usr/share/sounds/alsa
bzip2 test.wav
fi
echo "Remove Folder....."
rm -rf alsa-driver-1.0.19-$ver > /dev/null
rm -rf alsa-lib-1.0.19 > /dev/null
rm -rf alsa-utils-1.0.19 > /dev/null
alsaconf