|
|
本人刚刚开始接触Linux,今天是我学习Linux的第4天,在经过了N次重装系统后,终于把地球上最“顽固不化”的Audigy ES搞定了,而且把5.1声道也弄出来了,和Windows下一样了!
为了安装声卡,我在网上参考了无数贴子,当然,也少不了rr19xx大大写的《声卡驱动ALSA安装指南(第三版)》(http://www.linuxsir.cn/bbs/showthread.php?t=45116)。不过,我作为一个新手来看这篇贴子,有很多地方当初都没看懂。后来查阅了无数资料后,才明白rr19xx大大的意思。当然,由于声卡个体的原因,我的方法和rr19xx大大的方法不完全一样,我更多的是参考alsa官方的技术文档。
下面开工!
首先,alsa需要内核源码包,所以,要先安装好这个。(个人认为,这是最重要的步骤)
内核源码包下载地址: http://www.kernel.org/
注意:必须与当前使用内核版本完全相同。
Q:安装某些需要内核源码的软件时,为什么我已经将内核源码装在了/usr/src/linux下,仍然提示找不到内核源码?
A:因为这些软件configure会通过检测/usr/src/linux/include/linux/version.h是否存在,以判断是否以安装
内核源码,而如果只将内核源码包解压,并不存在version.h这个文件,所以需要做如下步骤:
在内核源码目录下(/usr/src/linux)
1)make include/linux/version.h 生成version.h文件
2)make include/asm 创建
从www.kernel.org下载的源码包 ... linux-2.6.9.tar.bz2
使用下列命令安装:
cd /usr/src 进入/usr/src目录中,将源码包放置在这里。
tar jxvf linux-2.6.9.tar.bz2 解压源码包,会生成linux-2.6.9目录
ln -s /usr/src/linux-2.6.9 /usr/src/linux 编译内核建议做个软链接。
并且要确保/lib/modules/2.6.9/下的build,source目录正确指向/usr/src/linux-2.6.9的(这一步非常重要。简单地说,就是让alsa源码知道linux内核源码放在什么地方了)
[root@NEWLFS modules]#ls -l /lib/modules/2.6.9 (ls -l查看一下,和下面一样就OK)
lrwxrwxrwx 1 root root 21 2005-02-08 20:28 build -> /usr/src/linux-2.6.9/
drwxr-xr-x 9 root root 216 2005-02-08 20:28 kernel/
-rw-r–r– 1 root root 3408 2005-02-09 13:26 modules.alias
-rw-r–r– 1 root root 69 2005-02-09 13:26 modules.ccwmap
-rw-r–r– 1 root root 7503 2005-02-09 13:26 modules.dep
-rw-r–r– 1 root root 73 2005-02-09 13:26 modules.ieee1394map
-rw-r–r– 1 root root 205 2005-02-09 13:26 modules.inputmap
-rw-r–r– 1 root root 81 2005-02-09 13:26 modules.isapnpmap
-rw-r–r– 1 root root 4649 2005-02-09 13:26 modules.pcimap
-rw-r–r– 1 root root 13519 2005-02-09 13:26 modules.symbols
-rw-r–r– 1 root root 189 2005-02-09 13:26 modules.usbmap
lrwxrwxrwx 1 root root 21 2005-02-08 20:28 source -> /usr/src/linux-2.6.9/
做完这些,我去安装alsa驱动,结果编译时出错。现在仅仅是把内核源码copy到了硬盘上,还需要编译一次(不用安装,仅编译一次就行了)
我从网上找到2种编译方法,哪一种方法好,我也说不清。我个人用的是第二种
----------------------------------------------------------------------------------------------------------------------------
方法一:
cd /usr/src/linux 进入源码目录
make 编译内核及模块
方法二:
cd /usr/src/linux
make dep 建立依赖关系(不知道是否有必要,做下没坏处)
make bzImage 编译内核 (bzimage,中间那个是i的大写,不是小写L。可恶的字体,大写i和小写L分不清)
make modules 编译模块
----------------------------------------------------------------------------------------------------------------------------
这样,“内核安装”部分就到此结束了。注意,不需要做make install
下面,开始安装alsa
先到alsa官方网站上下载驱动,我一共下载了3个包,别的包没用,也不知道有什么用
Driver ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.13.tar.bz2
Library: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.13.tar.bz2
Utilities: ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.13.tar.bz2
接下来是解压,解压到哪个目录随个人喜好,我是解压到/tmp里的。解压方法就不写了
解压完毕后,先安装Driver,这个是声卡的驱动
cd /tmp/alsa-driver-1.0.13
./configure --with-cards=emu10k1 --with-sequencer=yes (这个地方我是操官方的,因为官方文档上明确指出,我的声卡芯片是emu10k1)
make
make install
./snddevices
chmod a+rw /dev/dsp /dev/mixer /dev/sequencer /dev/midi (做这一步时,中途说有个目录删不掉,不过好像没影响)
cd /tmp/alsa-lib-1.0.13 这个是库文件,是安装alsa-utils-1.0.13的先决条件
./configure
make
make install
cd /tmp/alsa-utils-1.0.13 这个是alsa的应用程序,包括音量调节之类的工具,但是我没用这样,因为有kmix这样的替代品。安装这个的目的是要用到alsaconf这个配置程序
./configure
make
make install
执行到这里,alsa的安装就算OK了。请注意,如果执行正常的话,在以上步骤不会提示“error”或“错误”。如果内核源码包没安装好的话,多半会在make执行的尾部出现几行有关"error"或“错误”的信息。如果遇到这种情况,请检查内核源码的是否安装好了。
接下来需要将声卡信息装载到内核中去,如果安装正确的话,可以在任意目录下输入
alsaconf
这时会弹出一个配置对话框,一路回车就OK了。
重启以后,播了一段ogg文件,终于有音乐了,不过是双声道的。而且我用输入kmix以后,居然看不到任何信息,反而直接给我弄成静音了。
为了解决这个问题,我执行:chkconfig --add alsasound 往系统加入alsasound服务,使用alsa本身的脚本进行控制
再次重启,kmix正常了。(或许你不会出现我这样的问题)
不过,这个时候我的6个音箱里,还只有“前左”和“前右”两个音箱有声音,其余的音箱都不响。看来是驱动问题………用百度搜了一下,居然找到了创新发布的alsa补丁,不过没有相关的安装教程。没办法,只好自己试试了,没想到人品爆发了~~
先下载一个文件 http://nchc.dl.sourceforge.net/s ... ld10k1-0.1.8.tar.gz
解压到/tmp下
cd ld10k1-0.1.8
./configure
make
make install
重启linux,再播放ogg文件,6个音箱都当当当了。哈哈~
希望我写的这个贴子能对你有些帮助,配合rr19xx大大的贴子,相信你的声卡也能安装好。如果这样还不行,也许是你的声卡暂时还不被alsa所支持。想知道自己的声卡是否被alsa支持,可到http://www.alsa-project.org/alsa-doc/ 查一下,红色部分是表示明确不支持的型号,绿字是表示有可能支持的型号,值得一试,黑色部分表示完全支持! |
|