class="22024">
原始文件:Linux Soundblaster 16 PnP Mini-Howto
檔案敘述:如何在 Linux 設定 Soundblaster 16 PnP 音效卡
翻譯日期:1997/11/20
翻譯維護:
[email protected] ----------------------------------------------------------------------------------------------
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
[email protected]
---------------------------------------------------------------------------
這兒有份我的 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
# Minimum IO base address 0x0100
# Maximum IO base address 0x0138
# IO base alignment 8 bytes
# Number of IO addresses required: 1
#(IO 0 (BASE 0x0100))
#(ACT Y)
))
(CONFIGURE CTL002b/16407 (LD 3
(IO 0 (BASE 0x0200))
(ACT Y)))