在 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 �堙A要看被介面卡所使用的資源可在 設備管理員下的 資源 看)。
如果你遇到問題,請小心地讀一下和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 套件來給音效驅動程式使用。就算你
的核心原始程式目錄�堣w經有 awedrv 延伸套件了 (請檢查 /drivers/sound/lowlevel/ 看看),
你可能想要升級 awedrv 軟體。依照安裝在 awedrv 原始目錄�堛澈�示。簡單地說,你必須執行
一個修補核心原始程式的安裝命令手稿。
請小心你已經在執行完安裝命令手稿後已經升級了核心原始程式了。這個命令手稿
只是在檢查看看一些特定檔案是否已經有了,如果有了,它不會有任何需要的修補動作。
你升級核心原始程式後在執行命令手稿前會被建議將 drivers/sound/lowlevel/awe_wav.c
檔案移除。
接下來你必須建構核心程式來支援音效。我希望你知道怎麼來編譯核心程式;詳情請參考
Sound HOWTO 以及 Kernel HOWTO。到核心原始程式的目錄�堙A (例如 /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/�堛漱憟鞳C這�埵陪荋ㄔ隉G
# 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 卡,請確認在開機啟動命令手稿�堜峎O手動地執行 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系統) �媕Y
加上一行包含 sound 或是加上 /sbin/modprobe -a sound 到你的啟動命令手稿�堙C