在 Linux 下使用 SB AWE 需要下列东东哦:
/usr/src/Linux/drivers/sound/Readme
),如果你有个 PnP 卡,你还需要:
请看有关于如何取得这些程序的章节 Sources。
如果你有 Debian GNU/Linux 系统,那你需要 kernel-source-<version>
, awe-drv
套件,也许还需要 isapnptools
这个,虽然并不需要但你可能想要一些 awe-*
套件,我
强烈建议你采用 kernel-package
会更容易编译及安装核心程序。
假设你已经正确地安装好声卡到你的电脑的主机板上而且也在 DOS 以及 Windows环境上试过了。
然后,如果它是一张 PnP 卡的话我们必须在开机启动时初始化一下。请按照
原始档套件的文件所说地去编译以及安装 isapnptools
(或只需使用 Debian 的二进位码套件),然后以
root 的身份执行
# pnpdump > /etc/isapnp.conf
这样会产生一个为你的 PnP 卡量身订做的建构,但它会把所有的设备都注解起来。请再
小心地修改这个文档,如果可能的话并比较 DMA频道、IO、插断等等的设定是否与它在 DOS 或 WINDOW
环境下不一样 (在 Win95 里,要看被界面卡所使用的资源可在 设备管理员
下的 资源
看)。
如果你遇到问题,请小心地读一下和isapnptools
放一起的文件。
请注意: isapnptools
常无法侦测 SB AWE Wave Table 设备的三个 I/O 埠。
请查明你的 isapnp.conf
内的 WaveTable
项目 against the example at the end of this HOWTO.
如果需要的话调整一下 I/O base 位址。
注意: 根据e isapnp-faq
,有时候 isapnp
会无法得知逻辑设备的数目。如果你遭遇
到像下面的错误信息:
Error occurred executing request 'LD 2' on or around line...
那试看看加入 (VERIFYLD N)
到 isapnp.conf
的上头。你必须使用至少是 1.10 版的才能这么做。
如果你无法使用 1.10 或是更新的版本。你也可以自已直接手动改逻辑设备的数量。
请情请参考 isapnp-faq
。如果还是无法克服,请和我连络 (应该有人也会对 isapnp
有兴趣吧
,我想)。
小心: 请确认最后那行是 (WAITFORKEY)
,有时候较旧的 pnpdump
版本会删除它。
在文件的后面有一个isapnp.conf
给单个 PnP 声卡用的样本。 (请看章节
Sample <tt>isapnp.conf</tt>)。
如果你是用 Debian 系统就不用再做任何的其他调整。 /etc/init.d/boot
加上下面的
命令手稿下,你就可以在开机时启动isapnp
# Configure the isa plug and play boards before loading # modules. Need to do this before loading modules to get # a chance of configuring and starting PnP boards before # the drivers mess all this up. # if [ -x /etc/init.d/isapnp ] then /etc/init.d/isapnp start fi
/etc/init.d/isapnp
is
#! /bin/sh # /etc/init.d/isapnp: configure Plug and Play boards test -x /sbin/isapnp || exit 0 /sbin/isapnp /etc/isapnp.conf exit 0
如果你有其他的 Linux 供应商版本,你就要自已来了。我也不知道怎么做 (有谁愿意提供更多的信息吗?)。只要记得 isapnp 必须在所有模块被载入 之前 就被载入了 (请看下面)。
在编译核心程序之前,你必须有 AWE Driver Extension 套件来给音效驱动程序使用。就算你
的核心原始程序目录里已经有 awedrv
延伸套件了 (请检查 /drivers/sound/lowlevel/
看看),
你可能想要升级 awedrv
软件。依照安装在 awedrv
原始目录里的指示。简单地说,你必须执行
一个修补核心原始程序的安装命令手稿。
请小心你已经在执行完安装命令手稿后已经升级了核心原始程序了。这个命令手稿
只是在检查看看一些特定文档是否已经有了,如果有了,它不会有任何需要的修补动作。
你升级核心原始程序后在执行命令手稿前会被建议将 drivers/sound/lowlevel/awe_wav.c
文档移除。
接下来你必须建构核心程序来支持音效。我希望你知道怎么来编译核心程序;详情请参考
Sound HOWTO 以及 Kernel HOWTO。到核心原始程序的目录里, (例如 /usr/src/linux
)
然后执行
# make config
或是 make menuconfig
或 make xconfig
。然后用标准的方式来
建构你的核心程序。 利用这个机会来做个体积又小又强而有力的核心程序,特别是
为你的系统量身订做的。记得在回答 Enable loadable module support
是选 Y
,
如果你想把音效驱动程序安装成可载入式模块的话 (如果你用的是 PnP 卡的话就 必须这么做)
,但我知道你也会这么做吧!
你会在有个地方被问到是否需要声卡支持。如果你没有 PnP卡的话
你可以自由回答 Y
或 M
,如果你要做成模块的话而且是 PnP卡,必须 回答 M
。
你必须将 PnP 声卡的支持编译成一个模块,因为在模块被载入前 PnP 卡必须先初始化。
下列的问题你应该回答 Y
,其余回答 N
:
Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?] Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?] /dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?] MIDI interface support (CONFIG_MIDI) [Y/n/?] FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?] lowlevel sound driver support [Y/n/?] AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?]
只有后面的是给 Wave Table 合成器用的。其余是 OSS/Free 音效驱动程序给 SB 16 的选项。
除此之外,你必须建构声卡 I/O 埠。可参考 isapnp.conf
档会给你一些提示,
如果你有这个档的话。对我来说,下面的内定值就够了。请注意:核心程序建构命令手稿的内定值
也有可能是错的 (特别是 SBC_IRQ
和 SB_MPU_BASE
的值对大部份的卡来说好像都错了)。
I/O base for SB Check from manual of the card (SBC_BASE) [220] Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5] Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1] Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards) (SB_DMA2) [5] MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card (SB_MPU_BASE) [330] SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1]
好了,现在重新编译核心程序,Debian 的使用者要用 kernel-package
指令。
这个套件让我们编译核心程序就像安装 debian 的套件一样容易哦。请看
/usr/doc/kernel-package/
里的文件。这里有个提示:
# make-kpkg clean
# make-kpkg -revision custom.1.0 kernel_image
然后 dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb
.
如果你的是其他的 Linux 供应商版本,请依照标准的方式来编译新的核心程序。不要忘了
make modules
以及 make modules_install
。详情请看 Sound HOWTO 或 Kernel HOWTO。
安装完新核心程序后,你应该重新开机 (请记得你要有个可用的开机磁片在手上)。交叉著你的手指头等一下。
如果你有个 PnP 卡,请确认在开机启动命令手稿里或是手动地执行 isapnp (像上面所提的一样):
# /sbin/isapnp /etc/isapnp.conf
Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e: CTL0048 Serial No 58128
[checksum 74]
现在你可以安装音效驱动程序了,如果你已把它编译成一个模块:
# modprobe -a sound
AWE32 Sound Driver v0.3.3e (DRAM 2048k)
如果你认为内存侦测有误 (有个人告诉我说他有张 AWE64 卡有 4096k,然而 ``侦测到'' 28672k !),请升级
awedrv
软件或是在 /usr/src/linux/drivers/sound/lowlevel/awe_config.h
文档里指定内存,
如:
#define AWE_DEFAULT_MEM_SIZE 4096 /* kbytes */
抱谦,你必须再重新编译核心程序 (也许编译这些模块就够了,但我不确定)。
如果它成功动作了,你可能希望音效模块能自动载入。你可以使用 kerneld
(
在 1.4章节里有说明为何这是个坏点子) 或是在你的/etc/modules
(Debian系统) 里头
加上一行包含 sound
或是加上 /sbin/modprobe -a sound
到你的启动命令手稿里。