档案叙述:如何在 Linux 设定 Soundblaster 16 PnP 音效卡
翻译日期:1997/11/20
翻译维护:cwhuang@phys.ntu.edu.tw
----------------------------------------------------------------------------------------------
Linux Soundblaster 16 PnP Mini-Howto
by Eric Z. Ayers
v1.0, 14 January 1997
很高兴地,我的太太给我一块崭新的音效卡作为生日礼物.但不幸地,这块
Soundblaster 16 PnP 音效卡拒绝在 Linux 下工作.事实上,我的 3com
3c509 网路卡也不能在 Linux 下运作.
最後,在随附核心而来的 Linux 音效卡驱动程式及由
ftp://ftp.redhat.com/pub/utils/isapnptools-1.8.tgz 取得的
isapnp 套件的协助下我终於让我的硬体能运作了.
结果是我必须面对两项主要的困难以便让音效卡能工作.第一个困难是我不
知道用来和音效卡沟通的 IRQ 及输出入埠(IO ports)位址.这点由 isapnp
工具套件所解决.第二个问题是 3c509 乙太网路卡.似乎不论我怎麽去改变
卡上的设定,Linux 的核心都没办法认出这块乙太网路卡.结果是因为有一
个音效卡上的装置和 3c509 的侦测程式码相冲.
1) 安装 isapnp 套件.编辑 /etc/isapnp.conf 使得音效卡的 IRQ 及输出
入埠位址不会和你的任何其它装置相冲.
2) 重建 Linux 核心.将音效支援变成一可载入模组,其中 IRQ, 输出入及
DMA 位址就如 isapnp.conf 所配置的.同时也将你的 3c509 做成一模组
(在编译及安装完你的核心之後不要忘了执行 make modules 及 make
modules_install).
3) 修改你系统的启动程序稿.
我在跑的是 Slackware 套件而核心版本是 2.0.23.在网路被设定之前,我
执行 isapnp 程式 (在 /etc/rc.d/rc.M 里就在 hostname 被设定之後):
# EZA
# 设定即插即用装置
/sbin/isapnp /etc/isapnp.conf
然後,我在 /etc/rc.d/rc.inet1 所做的第一件事是载入网路卡驱动程式
# EZA
# 载入网路卡模组
/sbin/insmod 3c509
我忽略了启动时动态侦测乙太网路卡无法运作的警告讯息,因为它对我没
有影响.最後,在 /etc/rc.d/rc.local 里我插入了音效卡驱动程式模组:
/sbin/insmod sound
更多关於 Linux 即插即用装置的资讯可在
http://www.redhat.com/linux-info/pnp/ 找到.我现在快乐地以
Real-Audio player 享用网路并且聆听由我的光碟机所拨放的 CD 音乐.
Eric Ayers
eric.ayers@compgen.com
---------------------------------------------------------------------------
这儿有份我的 isapnp.conf 的拷贝,大部份的注解都已去掉.
# Trying port address 0203
# Board 1 has serial identifier 67 00 00 40 17 2b 00 8c 0e
# (DEBUG)
(READPORT 0x0203)
(ISOLATE)
(IDENTIFY *)
# Card 1: (serial identifier 67 00 00 40 17 2b 00 8c 0e)
# CTL002b Serial No 16407 [checksum 67]
# Version 1.0, Vendor version 2.0
# ANSI string --Creative SB16 PnP<--
#
# Logical device id CTL0031
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given, this may be changed if required
# Don't forget to uncomment the activate (ACT Y) when happy
(CONFIGURE CTL002b/16407 (LD 0
# ANSI string --Audio<--
# Multiple choice time, choose one only !
# Start dependent functions: priority preferred
# IRQ 5.
# High true, edge sensitive interrupt (by default)
(INT 0 (IRQ 5 (MODE +E)))
(DMA 0 (CHANNEL 1))
(DMA 1 (CHANNEL 5))
(IO 0 (BASE 0x0220))
(IO 1 (BASE 0x0330))
(IO 2 (BASE 0x0388))
(ACT Y)
))
(CONFIGURE CTL002b/16407 (LD 1
(INT 0 (IRQ 11 (MODE +E)))
(IO 0 (BASE 0x01e8))
(IO 1 (BASE 0x03ee))
(ACT Y)
))
(CONFIGURE CTL002b/16407 (LD 2
# ANSI string --StereoEnhance<--
# Logical device decodes 16 bit IO address lines
#