作者: Marcus Brinkmann %26lt; Marcus.Brinkmann@ruhr-uni-bochum.de%26gt;
* O& n" Z$ |# Q译者: 谢昆中 HSIEH Kun-Chung, ( linuxer.bbs@cis.nctu.edu.tw )
) A7 X% s; F' i9 A% G+ d
8 y$ ]" ^2 g( B. N5 \v1.2版, 1998年 1月11日
% _6 x1 B# u4 F% a/ n* Y7 \# k
) y- e6 _) f( K( O' D* G
) u0 Z" B+ b% x1 Q
--------------------------------------------------------------------------------
5 b0 L1 `+ j+ i8 p% i* j
本文件在叙述如何安装及建构 Sound Blaster 32 (SB AWE 32, SB AWE 64) 音效卡以及使用由 Takashi Iwai 所写的 AWE Sound Driver Extension的 Creative Labs音效卡。它还包含一些给 SB AWE
系统所用特殊的工具以及拨放器。我使用的是Debian GNU/
Linux 系统,但是其他的任何一种
Linux 供应商版本皆可以运作。
0 ]( H- g8 r! X% O. [--------------------------------------------------------------------------------
* ]& v7 f- L# i+ b# X2 J3 ?--------------------------------------------------------------------------------
: ~' p" S( F3 ^
5 I, g$ E5 K# n3 n6 {1. 简介
& ?. l' N, A% c8 x$ |. I" a) j* y+ r6 e2 U3 c; t) m
这是 Sound Blaster AWE HOWTO,它给你有关於如何发挥你的 Sound Blaster 32的详细资讯,包含 Wave Table synthesis。这份文件含盖所有的 SB 卡,包含 SB 32。
4 k) G. ^1 i7 j# U8 j! \, j& h0 }4 r/ e' y7 s1 A
在 DOS 或
Windows 的世界□, Sound Blaster 系统已是个家喻户晓的名称,而且有很多的 Linux 使用者也想要在 Linux 下使用他们。不幸的是, Creative Labs 只提供在
Windows 以及 DOS 下的音效
驱动程式,所以在 Linux 下安装 SB 卡变成不是件小事了。这份文件试著来叙述我们如何在 Linux 的
环境下使用 SB AWE 系列。
0 E% k3 h9 k/ i- F; X! U& G3 x
# }* E; z* U. Q0 V C/ J6 P f% O
1 s; L6 J8 f' [: E( z5 `
1.1 感谢
1 P2 x8 V$ S) ~5 H% }1 E2 ~( j, z: t
这份文件中我所□集的资讯来自於 AWE Driver FAQ 以及 ISA PnP FAQ。请看 Sources 这些文件的作者以及位置。谢谢所有的作者,才能有今天 SB AWE 的支援。
- n3 I, V2 } N4 S9 T; o, y
7 d$ B% }6 h" O) f- B% H2 F) Y9 r( C% X有很多基本工作已由 Hannu Savolainen做好了,他开发了与 Linux 核心程式相随的音效驱动程式。谢谢您。
( G. ?8 ?. ~& o# N- k5 s
% U$ g4 t' w8 P2 E我想谢谢 Nicola Bernardelli 他
测试了 AWE64 的相关
功能。没有他,有很多的错误可能还存留而未被发现。
8 J0 V! J0 ~1 t% R- Y) x# c
! D$ e4 Y9 H5 R2 Y5 w谢谢 SGML Tools 这份套件,这份 HOWTO 文件可以有很多种文件格式,而且只需使用一种格式就可以来做转换。
- F5 H2 G! x% x% X' x5 T2 h
i u* W9 [6 D0 X3 \8 u. X. k( K. b3 O" e( Q0 Z" V$ _( Q& K8 q; M
1.2 改版历史
/ O+ J f0 E9 M1 H* T9 S
5 s8 Y, B) Q3 V' Y$ M0 ?$ @7 k
6 Y5 V4 N; m$ m' v, U
l K' v1 d5 X ~4 J' C$ d+ ~版本 1.0
6 H2 g7 F9 K9 ?7 B) A首版
7 [' a: n: L: m4 w7 d7 \9 P |0 e( q. u9 s8 z5 F0 g
版本 1.1
$ n+ o; e: d T2 h! q! W* G修改拼字後(谢谢 Curt!),增订给 isapnp的
需求,现在可以经由 sunsite 以及它的映射站取得
0 w% R9 s. N6 L) g8 o
* l8 b7 g7 T4 I版本 1.2
, U3 J: N6 C% @) f7 F
法文版已经出炉了!,只做少许的修正,修订了很多拼字 (感谢 ispell)
. T& r, e- W- W9 s
4 o3 R. `/ P/ {, N
7 f3 o- |: B& t- x4 e2 R
0 d9 ~3 j& h* V9 M& k( e" v6 r/ d
7 p9 ^$ ~# Z$ x, L' f% F5 F1.3 本文件的新版本
3 \4 J/ @: `) K e( D3 [6 i/ [6 ]! c6 q
最新的版本可以在我的首页□找到 Sound Blaster AWE HOWTO。
0 Z4 B! A d: c$ C
0 T6 X' m* H; {7 ]! z! `# r
这份文件的新版本会被上载到许多
FTP 站上,包含 ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini。
( Q) `+ a3 c5 ?1 K/ w$ h0 C. D
5 Y6 n% A! o9 m: b& d- g这份文件的超本文版以及其他的 Linux HOWTO 文件都可在许多的 WWW 站□找到,像 http://sunsite.unc.edu/LDP/。许多的 Linux CD-ROM 供应商版□也都会有 HOWTO 文件,通常是放在 /usr/doc 目录下。
+ b- b3 D. D- Q( @7 f$ x U1 { p
' k x# n. f/ }3 G+ n) `, i; l感谢 Arnaud Launay zoro@lsol.tm.fr,这份文件的法文版才能诞生! 最新的版本可以由 http 或 anonymous ftp取得。
" w9 R" b. u" \, o
/ s, C% f9 ?* C9 S如果你要翻译这份文件到你的语言,请让我知道,我会加入一份它的参考连结。
/ X: d3 [" @6 P- R
: @& E3 s* @' d3 D5 h6 H& r% E2 w8 J
译注:这份文件的中文版可在 http://www.linux.org.tw/LCDP/下取得。
8 {0 V- b) m3 S8 ?- h+ u2 J! X/ I$ i6 d- C
3 B4 j; ]' `* @- b6 F+ d/ g' H1.4 回应
1 x2 f4 m6 C" j& l( t# k( s; E4 B, u F
我仰赖你,各位读者,来让这份 HOWTO 变得有用。如果你有任何的建议,更正或指教请让我知道 Marcus.Brinkmann@ruhr-uni-bochum.de,我会将它整合到下一版本□。
$ O+ K2 l9 u5 g. O/ o
$ G `8 h8 O$ ^$ r
我特别欢迎关於其他有外的 Linux 供应版本的启动
程序 (启动命令手稿..等)例如 Red Hat 或 SuSE Linux。
, }# o! k( F/ j% {1 H7 [
0 J& Z! B# \4 \3 [如果你将这份文件出版到 CD-ROM 或其他形式,如果可以给我一份免费样品我会很感激你。请你将他寄到我的邮政地址。还有,您可考虑捐钱给 Linux 文件计画来协助我们为 Linux 做免费的文件。请您连络 Linux HOWTO 连络人 Tim Bynum linux-howto@sunsite.unc.edu。
! y. U8 j7 @6 a$ {4 d1 x; j$ v
1 j: k5 J( U3 Z1 j! j' z' u4 w8 x
+ a/ I0 ]: t. J9 D5 v
1.5 散布政策
9 H! h1 E7 e7 Q) a y
, r% b! l6 P2 b& Q" e版本 1997 Marcus Brinkmann
! [* ?; t' V$ ?/ t2 u, q. V
, a3 f" c3 @# H- E2 e Q这个 HOWTO 是份免费文件;你可以在免费软体基本会 (Free Software Foundation) 的 GNU 一般公用执照的条件(第二版或更新的版本)下来提供或修改它。
; P' W$ v" O, I8 O; p+ M1 X[color=#FFFFFF']
: @- R" m5 R; b/ p; n. v
3 ~* {! D% [4 W1 t+ `
0 J5 H) J& }' B# {这份文件的散布是希望它能能有用处,但 不做任何保证( 甚至任何暗示的保证) 可销售的 或 适合特别目地的。详情请看 GNU 一般公用执照。
% R; H2 D' G* o
/ A4 Z" ]6 \2 A3 |& T* ]你可以写信到 Free Software Foundation, 来取得一份 GNU 一般公用执照。 地址 Inc., 675 Mass Ave, Cambridge, MA 02139 USA。
0 ^7 u0 ^$ o% d0 r& h( T
# Z6 F$ t, i" }5 O! j
: I5 [/ Q a9 G' K; l# G I/ w& O. I) x& I2 D7 n
" N7 r* t7 d& F9 j1 i0 d' H
--------------------------------------------------------------------------------
; E* {4 V4 g6 t- e* {--------------------------------------------------------------------------------
. W8 e" j) V a7 e$ W$ w9 K5 E% V) y* M# R) l! _
2. 在你开始之前
+ i$ `/ k. k6 ?/ x
, Y1 }, ]0 K! W6 U1 K3 d7 Y/ f
( `- f/ ^' F0 d' Q" Q) \2.1 简介
( p9 h$ W" f% ]3 j x1 k# g, F7 h" _& n
这份文件试著帮助你在 Linux 系统上安装以及使用 Creative Labs 的 Sound Blaster AWE 32 或 Sound Blaster AWE 64 。我所用的系统是 Debian GNU/Linux 系统,在一台
Intel i586
电脑平台上,它应该可在其他的 Linux 供应商版以及其他支援 Linux 音效驱动程式的平台上, (如果有不同处,我会把它们提出来)。
5 t$ k7 `! b) y% D$ E4 n
. N2 m! B1 m! I0 g记得要仔细阅读 Linux Sound HOWTO (请看 Additional Information章节)。我只是补充 Sount HOWTO 不足的地方而已,有些资讯我会请你再去阅读 Sound HOWTO,这儿不再赘述。
5 `- i r8 c& @" `1 L7 I! g7 p& H% B) u$ X8 a$ |9 h- ^3 }
5 r- L& H; X) n/ k
+ q) Y5 K! |/ y g `
2.2 关於 SB AWE 卡的一般常识
2 Y4 T9 m/ @: J5 y2 ^0 ?
+ i0 \/ l3 S8 C+ a$ ?SB AWE 32 音效卡提供了阳春的音效设备、
标准 OPL-2/OPL-3 合成器、 MPU-401 MIDI 埠以及有 32 voices 的 EMU 8000 Wave Table 合成器。 (想进一步了解这些术语的意思请看Linux Sound HOWTO)。这份文件的目标是要协助你使用及发挥这些功能。
/ @" Z0 a4 y$ t& J; A* p! l* x i
8 D8 q1 |& K& J- `, t" e# g" ESB AWE 64 除了相容於 SB AWE 32 之外,还增加了一个连Creative Labs 公司都特别感到骄傲的 Wave Guide 合成器。 Linux 使用者所面临的一个问题是, 新增加的 32 模拟
声音是由软体所产生再经由阳春的
声波设备来输出的。因为 Creative Labs 以为在 Linux 的驱动程式上并没有市场可言,所以才只提供 Windows 3.1 及 Windows 95 的驱动程式而已。
3 H. h4 i' H' ]/ ^8 Z
/ r! k0 o0 q( ]2 y7 Z; Q
这意味著,从 Linux 使用者的观点看来,SB AWE 32 和 SB AWE 64 大家都晓得,下面开始除非两者有不同处的比较外,我将以 SB AWE 来代表两者。
% ? a4 t- w5 \1 O
; C; k7 x% R) f# j3 P) \
% z& W, X$ v5 [2.3 关於 Plug %26;amp; Play 卡卡的一般常识
1 c" x5 g1 B. }2 l; K/ `
3 k. f! p% x/ X( p: r0 h @* y
最近配合 Intel 平台的介面卡都是 ISA PnP 卡,简称为 ``Plug and Play''。也就是说,这些卡必须由作业系统来建构,这需要在启动系统时做一个初始化的程序。一般来说,至少有三种不同的方法可以达成这个:
! t, S& X9 {4 ?0 i5 z
[color=#FFFFFF']
! |/ R& L" J; V4 W
C# f8 Q& z% O& u( ]( I' }. ~) P0 i+ f1 X( d G
! r% Y! A9 B9 w0 b4 o4 [/ R
你有 PnP Bios,意指你的 BIOS 会自动察觉 PnP 卡并且建构它们。如果你以为你有 PnP BIOS 所以你可以发挥你的 SB AWE PnP 的长才的话,很不幸的,门都没有。就算 BIOS 有支援 PnP 卡,它也只能初始化时将你的音效卡所使用埠及位址做个小设定而已。也许你可以拨放一些基本的音波资料,但无法拨放 MIDI 音效,这是个例子。因此,有无 PnP Bios 都无所谓,由你自己决定。
6 z5 p1 E5 C: J* P
你有个支援 PnP 卡的作业系统。目前稳定的 Linux 核心程式 (2.0.x) 还不这个样子,因此,我们得等未来的新版本,它们将支援 PnP 设备。
% S4 F# n" [ R4 o2 _( n0 p0 W你有个特别的程式会在启动系统时执行,它会初始化你的 PnP 卡。我们就是这麽办到的。
6 x0 j* e4 p, b在 Linux □最常被使用来初始化 PnP 卡的程式是 ``isapnptools'' (请看 Sources 以及 Getting Started)。它们提供了可预测的方式来建构你的
机器□的所有 ISA PnP 卡,并不仅只音效卡而已哦。
! ~0 T# y. |0 W: J4 c
0 `' L! Y v; z4 n, ~1 x' K4 z' e# Z h0 N9 I+ |
: g( U& R1 ~, f8 z2.4 关於可载入式核心程式模组的一般常识
- G% n& C2 c4 V5 H$ Z' i
! @; D& n" g6 D6 @" T( Q1 J有些设备驱动程式可以被做成模组,而不必将它们编译到核心程式□头。 你可以在 Kernel HOWTO 及 Module HOWTO □找到关於模组的资讯。(请看 Additional Information).
, E. O0 g- n6 G5 P" h6 D+ R+ R- }
9 p* [$ D" [8 @( i
如果你有 PnP 卡,你 必须 将音效卡支援成一个可载入式核心驱动程式模组。也就是说,你不能将音效驱动程式建立在核心程式□头,而将它做作一个模组,这样就能在核心程式执行时被载入。这是因为核心程式会在你的 ISA PnP 卡被建构前就被安装了,而你的音效驱动程式必须在 ISA PnP 建构後才会被载入。
/ g o$ I5 A! _, B$ x7 }! j
1 V( I, `* o8 P# f0 T音效核心程式模组可以使用 insmod sound 或 modprobe -a sound 或在你的 Linux 系统□的相对的启动命令手稿的方式来启动。 (在 Debian,增加一行包含 sound 到 /etc/modules的命令就够了)。接下来,执行 kerneld,它是一个可以安装或移除核心程式模组的精灵。
( F' n5 N4 c5 w- a/ q3 w
5 e0 q' C. s; ]: g2 r6 g* I6 O0 q
记得 kerneld 并不是在 AWE 音效驱动程式模组上最好的解决
方案,因为核心程式载入这个模组也要花
时间,特别是如果你要使用 Wave Table 命成器来载入大的 Sound Font bank 时,你就必须在每一次插入模组时再载入一次。 因为 核心程式 会在设定内定值後约一分钟将不需要的模组给移除,所以以手动方式或在启动时将音效模组插入可能会较好些。还有,这麽做还可以预防 核心程式 在进入空□下来时移除它。你可以在同时间□插入音效模组并且使用 核心程式 。两种方法不会互相排斥,但是 模心程式 就不再管音效模组了。
2 G3 U, t4 z5 n
7 V, `& R8 x; ]1 _, p( P1 M8 q特别是你的混音器若是在移除或重安装模组时会受到干扰的话特别有效。这部份的
解决方案可在 Mixing章节□找到。 (它在叙述如何在音效模组被插入时自动启动你的混音器。)。然而,它要 核心程式 花时间来载入模组,来载入 sound font bank 并启动你的混音器,因为这样以及其他的理由,最好在启动系统时即安装音效模组,不要让 核心程式 移除它。
2 C- R, R$ [7 O, ~& j- e" G8 Q) \
/ |3 B5 T, e: s! W! a+ o7 ]2 Q4 |0 L; E/ t3 Q- k1 z
$ {- _. z8 q1 a
2.5 关於核心程式音效驱动程式的一般常识
1 K# O% Z) G2 P) u
) n9 P; X7 G- h5 H8 ?/ w" A你可以在核心程式中安装音效支援成内建的或是个可载入式模组。如果是 PnP 卡,你必须将音效支援安装成模组,因为 PnP 卡需要在模组被安装前使用 isapnptoo来初始它。
b# u+ Q: W* |& e, N$ t) g" @* e
6 i7 h. x q" H& y" s如你所想,你必须重编译核心程式。下面我会给你几个提示。现在,我们来谈谈核心原始程式 □对音效的支援。 在核心程式□有个免费 (精简版) 的 OSS (USS) 音效驱动程式版本,最新的 (3.5.4) 版并不完成支援 SB AWE ,但是支援部份 SB 16 。所以,你可以使用它你就可使用单纯的声音设备以及 OPL-2/OPL-3 合成器。但你却无法使用 Wave Table合成器来拨放 midi 档。
5 ]& V+ b+ k% s
3 y8 P9 h* T3 r- v% A' P: {
如果你要使用 Wave Table 设备,你可以从 4Front Technologies 买个商业版的音效驱动程式 (如果有人可以跟我确认它真的可以的话 ),或是用 Takashi Iwai的 AWE 32 Sound Driver Extension 来修补你的核心程式。前面那部份并不在本文件所谈的□围,我假设你想使用後者。
4 U! I8 B; u; N5 Q- ?" F* a6 P
[color=#FFFFFF']
% {* H9 D) O H' [8 U: ]! t: m
8 E3 x$ t8 s4 K" t+ J. Z
3 O, A) b8 @& H7 B这个 AWE32 Sound Driver Extension (请看 Sources这章节) 在 GNU
版权下提供让 SB AWE 卡的 EMU 8000 wave 合成器变成可用的工具。
, c$ k' @, [( F2 l0 |
; q% m( Z- x# C6 ]& l) p- H
而 awedrv 软体已经被包含到新的核心原始程式树□ (从一些 2.1.x 核心程式开始,也许你想升级你所使用的旧的模心程式树)。
* A0 t, W) L K- T+ F8 L# g/ J0 Q O9 f* v$ x: P
7 i1 B! G+ g8 q& r' d# n7 x7 ~
1 p: h3 Z$ S, ^3 k$ C$ l$ s8 Q- H0 g8 k
--------------------------------------------------------------------------------
7 [' |2 H* e! b
--------------------------------------------------------------------------------
& W# L2 H$ K+ e5 R
* H! I# F/ _. w3. 如何安装 SB AWE 音效支援
7 z3 [- w! V" Q2 u+ a! J' D
0 W/ b& ]+ x/ H9 ]# |2 m3 Z& r6 }* J, X- x# l
3.1 你需要的东东
; P |0 q/ S8 e8 O& g, l7 e. c4 @, z- i- i' I. q8 U
在 Linux 下使用 SB AWE 需要下列东东哦:
& W" U& R* W0 y* F. m/ d) {; [
1 O! A( o! |& [4 d6 q5 U
" t* I+ a( {* r
一个可使用的 Linux 系统 (例如 Debian GNU/Linux 版),
6 w, J5 j+ |8 z# y1 K
一个 SB AWE 32 或相容卡 (如 SB32, SB32 PnP, SB AWE64, ...),
* f$ \6 `. Z. BLinux 核心程式的原始程式,包含音效驱动程式 OSS/Free (正常都会附,请查看 /usr/src/Linux/drivers/sound/Readme),
' l; q2 p* ~/ U2 R5 \7 J还有 AWE 32 sound driver extensions.
; T# U; d5 L+ D/ z( n$ r! O7 F如果你有个 PnP 卡,你还需要:
& W# m& Z. T' g- J# k5 M b
: h+ Z& Y7 b4 P% D( k% ~3 |" }7 l) l Z
isapnptools 软体套件。
' }! F1 Z3 U# q9 }/ t
请看有关於如何取得这些程式的章节 Sources。
/ L( Y% D( H; |0 X/ n4 k# s4 u# P/ \; s: j. f
如果你有 Debian GNU/Linux 系统,那你需要 kernel-source-, awe-drv 套件,也许还需要 isapnptools这个,虽然并不需要但你可能想要一些 awe-* 套件,我强烈建议你采用 kernel-package 会更容易编译及安装核心程式。
8 t1 H% v0 n& M- N1 z
' ?8 d1 E* g% s5 z
" e- d9 k0 T$ D9 z
$ u# N5 o6 \" ?% t% q3.2 开始吧 !
3 J" R+ _0 Q% R9 C- I6 }# O
0 S) T3 ]6 K M) @6 C0 x# m& |2 a3 U
假设你已经正确地安装好音效卡到你的电脑的主机板上而且也在 DOS 以及 Windows环境上试过了。
- g3 Q3 @- z9 \% g) I% B8 w3 B# x+ p
) }0 w; S. d7 R3 B% e
然後,如果它是一张 PnP 卡的话我们必须在开机启动时初始化一下。请按照原始档套件的文件所说地去编译以及安装 isapnptools (或只需使用 Debian 的二进位码套件),然後以 root 的身份执行
; n* H# M+ `4 t6 k. w, w' A
+ u' o6 K/ g; o+ N9 L& ~% y# o
" `! q" { j% D) D5 p; W4 g# pnpdump %26gt; /etc/isapnp.conf
- T* A2 Q) o9 Z7 ]+ [/ c) j
. L! `7 k/ o$ |. W
2 D8 v) C) U- N ?1 P5 c
这样会产生一个为你的 PnP 卡量身订做的建构,但它会把所有的设备都注解起来。请再小心地修改这个档案,如果可能的话并比较 DMA频道、IO、插断等等的设定是否与它在 DOS 或 WINDOW 环境下不一样 (在 Win95 □,要看被介面卡所使用的资源可在 设备
管理员下的 资源 看)。如果你遇到问题,请小心地读一下和isapnptools 放一起的文件。
2 ]8 {* \: h3 [8 q" B+ P+ K# O. Z8 M/ R L" _. j
请注意: isapnptools 常无法侦测 SB AWE Wave Table 设备的三个 I/O 埠。请查明你的 isapnp.conf 内的 WaveTable 项目 against the example at the end of this HOWTO. 如果需要的话调整一下 I/O base 位址。
9 |8 H' f/ b/ J! u, u% V4 p[color=#FFFFFF']
! p3 b: N4 o- @5 |7 f9 g# g( `& L ~$ ~" f9 Z
4 E& p! B+ l+ O6 T+ [. T& T: Z# R' A; E6 }
注意: 根据e isapnp-faq,有时候 isapnp 会无法得知
逻辑设备的数目。如果你遭遇到像下面的错误讯息:
/ b0 N/ p; I; J8 k: }8 o m
( V7 j& L/ _) H4 p8 @# P7 @. P. J# r
% P$ K6 o2 c; }& G' x8 xError occurred executing request 'LD 2' on or around line...
/ ^6 ^* O$ e; i4 @
( ] W) j$ Q& S
那试看看加入 (VERIFYLD N) 到 isapnp.conf的上头。你必须使用至少是 1.10 版的才能这麽做。如果你无法使用 1.10 或是更新的版本。你也可以自已直接手动改逻辑设备的数量。请情请参考 isapnp-faq 。如果还是无法克服,请和我连络 (应该有人也会对 isapnp 有兴趣吧,我想)。
# `" k& x) K6 H$ S
3 h& g' y3 f7 }9 j; u/ ~
小心: 请确认最後那行是 (WAITFORKEY),有时候较旧的 pnpdump 版本会删除它。
1 O7 {2 m2 G8 o
8 J3 N+ l- c% t: S- ~- s' v6 M1 _在文件的後面有一个isapnp.conf 给单个 PnP 音效卡用的样本。 (请看章节 Sample isapnp.conf)。
% f* Z, k( y1 p+ p. L9 |2 C( f+ ?- [
如果你是用 Debian 系统就不用再做任何的其他调整。 /etc/init.d/boot 加上下面的命令手稿下,你就可以在开机时启动isapnp
' Q3 I* E- k3 f- T4 E8 W4 ~: t, O
* K& F% {. ~( l$ N9 A+ m--------------------------------------------------------------------------------
/ t" h+ c, l t2 H1 { E( L! {. J- i" ^5 R0 ]
# Configure the isa plug and play boards before loading
$ }- x) H2 X6 ? U7 _# modules. Need to do this before loading modules to get
. D( U( e0 f4 f8 u: @( M# a chance of configuring and starting PnP boards before
1 a) l. {( K$ B
# the drivers mess all this up.
' H! s& m+ |& n1 x% A. N4 W O+ Q
#
2 N1 B& j1 K; C3 ?! Z9 J3 g* y5 y
if [ -x /etc/init.d/isapnp ]
8 a6 I+ H: p. ]5 m% _6 s6 w
then
5 i; W" y2 K+ |# z0 z2 f# } /etc/init.d/isapnp start
0 `7 `5 S$ h* Y
fi
; w2 s v/ w; n0 o# w. d! v
; J+ ~3 s, n, j O* H- P
* S8 s0 D( I; g- {$ d0 x% x; V--------------------------------------------------------------------------------
! P. V% ~" z7 q8 Twhere /etc/init.d/isapnp is
7 C" E- a8 ?& U5 l5 u& x
--------------------------------------------------------------------------------
3 B" V* e4 I8 u
( I8 f- F( U$ I1 N/ l#! /bin/sh
4 t1 c' q9 {- [- D$ }, A
# /etc/init.d/isapnp: configure Plug and Play boards
1 s% q% l0 v% H3 e3 W& M, ktest -x /sbin/isapnp ││ exit 0
# O/ H U$ C6 Q% [2 E" g! u/sbin/isapnp /etc/isapnp.conf
* j* U: A$ f, h2 R* V8 ]exit 0
$ \$ H$ V8 v' w9 p" N: h2 S j% H8 q) F* D# L/ a9 R5 K
$ `9 h- C1 U3 s' o5 |- _8 k/ `8 l--------------------------------------------------------------------------------
4 d( E% E! r4 S9 P c+ @% t
1 u) G9 r2 F" W# P3 I1 X) B j如果你有其他的 Linux 供应商版本,你就要自已来了。我也不知道怎麽做 (有谁愿意提供更多的资讯吗?)。只要记得 isapnp 必须在所有模组被载入 之前 就被载入了 (请看下面)。
2 s! ^" B, ~1 P5 B2 P0 Q2 u
' s! h+ @7 ?/ [% ^* }* z8 k. E) Y9 g
8 G8 a' u$ i y% p
3.3 编译核心程式
S* o; ~) H3 K4 v1 X. B# Y
1 @/ D7 n* a6 g在编译核心程式之前,你必须有 AWE Driver Extension 套件来给音效驱动程式使用。就算你的核心原始程式目录□已经有 awedrv 延伸套件了 (请检查 /drivers/sound/lowlevel/ 看看),你可能想要升级 awedrv 软体。依照安装在 awedrv 原始目录□的指示。简单地说,你必须执行一个修补核心原始程式的安装命令手稿。
7 o. A; X% c3 Z( C: I
8 k0 x3 m7 V( e i* h- M0 {
请小心你已经在执行完安装命令手稿後已经升级了核心原始程式了。这个命令手稿只是在检查看看一些特定档案是否已经有了,如果有了,它不会有任何需要的修补
动作。你升级核心原始程式後在执行命令手稿前会被建议将 drivers/sound/lowlevel/awe_wav.c 档案移除。
4 q. K& Z" W: w; i
+ J/ T& K6 v- e7 |接下来你必须建构核心程式来支援音效。我希望你知道怎麽来编译核心程式;详情请参考 Sound HOWTO 以及 Kernel HOWTO。到核心原始程式的目录□, (例如 /usr/src/linux) 然後执行
+ @( R7 k. R; U' N
0 E- K w5 y. U- o$ {! d; j
. C: ?0 o4 q) T( S. t8 w# make config
, ]3 ~( s3 ] j: v* b7 a
7 w5 Y+ Q; w" r( b或是 make menuconfig 或 make xconfig。然後用标准的方式来建构你的核心程式。 利用这个机会来做个体积又小又强而有力的核心程式,特别是为你的系统量身订做的。记得在回答 Enable loadable module support 是选 Y,如果你想把音效驱动程式安装成可载入式模组的话 (如果你用的是 PnP 卡的话就 必须这麽做) ,但我知道你也会这麽做吧!
( D+ e/ O% Y0 S, V+ w, @! E9 A+ \5 z5 S
0 D# c" Z+ ~8 q5 _8 e3 |1 u你会在有个地方被问到是否需要音效卡支援。如果你没有 PnP卡的话你可以自由回答 Y 或 M ,如果你要做成模组的话而且是 PnP卡,必须 回答 M。你必须将 PnP 音效卡的支援编译成一个模组,因为在模组被载入前 PnP 卡必须先初始化。
+ [7 p W+ S6 l0 O3 v- e, I
" ` r% h& a1 e" e下列的问题你应该回答 Y,其馀回答 N:
! @+ U4 \) }/ k2 f7 C% |' z
: `" u( W0 _* Y
. n# I" p% V5 X0 Y
Y- Z- j& g- M. A% N--------------------------------------------------------------------------------
1 x; e1 Z' F. s6 E1 }7 J( v6 @, j/ g) ^
Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?]
0 d( z. i% }$ N1 q
Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?]
! A+ [6 w! s0 ?
/dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?]
# Z: e- ~$ H f( o2 I ]- W" zMIDI interface support (CONFIG_MIDI) [Y/n/?]
" n6 @! s: `9 d! z n! G0 m
FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?]
/ x* {8 g- b& h, N) b- z6 @
lowlevel sound driver support [Y/n/?]
. ?/ L8 c, o% D# M0 p
AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?]
) ?8 f" @" t Y/ w9 h2 i2 y9 B1 R; D4 [ v |) Y
8 z; v9 p( n5 q( O S7 W--------------------------------------------------------------------------------
) p% _8 U: k, N/ F% Z. A, }
, l; W8 V; R, @# B$ D4 a ^只有後面的是给 Wave Table 合成器用的。其馀是 OSS/Free 音效驱动程式给 SB 16 的选项。
. \" j' F& J N# _/ [2 Y0 _4 S0 j# D! J$ i+ ?
除此之外,你必须建构音效卡 I/O 埠。可参考 isapnp.conf 档会给你一些提示,如果你有这个档的话。对我来说,下面的内定值就够了。请注意:核心程式建构命令手稿的内定值也有可能是错的 (特别是 SBC_IRQ 和 SB_MPU_BASE 的值对大部份的卡来说好像都错了)。
4 n9 G% u$ @( H/ @2 C* |- x& ~: R) R- b4 }. _7 x
3 c/ B1 ~9 w6 X/ \" g4 `( L
8 J" @! {1 A& s0 @ _3 f--------------------------------------------------------------------------------
9 [4 E: |6 p- T* f& f% A) Z! U
8 V9 G0 c8 L) TI/O base for SB Check from manual of the card (SBC_BASE) [220]
2 k: I# Y0 v+ F4 a9 I' r% f+ @Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5]
m1 r. e% b/ i3 C; `+ X# F: ?
Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1]
6 k: j1 i3 d$ a8 ~Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7
: d8 k/ `4 S+ T- `
(use 1 for 8 bit cards) (SB_DMA2) [5]
[) e, I/ B/ X4 }1 X' {2 P
MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card
?6 m& d* i; v" j3 X( J) |5 n
(SB_MPU_BASE) [330]
1 @8 u5 q$ F( I L) U9 V" K
SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1]
9 E7 m1 D# y7 b+ p7 D" P
6 B& p* I, e' {0 V) }- |9 p5 ]4 O8 M# I- h
--------------------------------------------------------------------------------
+ O7 `+ j0 P' H1 v T
r3 B8 i% }" | }: O+ v好了,现在重新编译核心程式,Debian 的使用者要用 kernel-package指令。这个套件让我们编译核心程式就像安装 debian 的套件一样容易哦。请看 /usr/doc/kernel-package/□的文件。这□有个提示:
& {# w3 \! e5 x2 y
* o E7 ?4 K- V' y7 O9 B' B
8 Y' k# z3 G: f; A! z4 N- h0 y
# make-kpkg clean
5 y# ~7 s4 Y# j# @! M, |
# make-kpkg -revision custom.1.0 kernel_image
; f4 B" V5 L, C) E
3 u$ G8 \; n/ G$ B; Z, ]$ \. q1 T然後 dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb.
. P' ~ u2 K/ S1 T
# b8 c7 @' x2 z, r: R如果你的是其他的 Linux 供应商版本,请依照标准的方式来编译新的核心程式。不要忘了 make modules 以及 make modules_install。详情请看 Sound HOWTO 或 Kernel HOWTO。
* v6 x7 Z. w' u0 O$ n
0 c$ K7 H6 ~/ B, b% l- P8 `8 P8 ?+ i7 e( |$ H3 r5 L0 g1 m2 I% x
4 k0 `/ t1 S, y0 Z8 N& [% u* e3.4 重开机
0 c% N& {9 `3 [) O9 C% Q
: y' ?" Q+ k1 g* K安装完新核心程式後,你应该重新开机 (请记得你要有个可用的开机磁片在手上)。交叉著你的手指头等一下。
" h. W- f# J# V3 }0 Z9 s' }3 W1 N! c
i& v5 G0 l. |; ?/ }" N如果你有个 PnP 卡,请确认在开机启动命令手稿□或是手动地执行 isapnp (像上面所提的一样):
% G& |2 J% r* l
/ Q2 B9 j) B* ]& k5 [- I" _2 f; ]* F+ h6 }- _6 A7 Q% v( t, O
# /sbin/isapnp /etc/isapnp.conf
! w2 ?/ a* a# h+ B @7 `/ S4 }# Z4 I
Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e: CTL0048 Serial No 58128
) q8 b( [5 f7 w4 u- a
[checksum 74]
1 g" m0 Y* Y% a. P3 t4 Q6 O: l8 y) b% F7 l: w
现在你可以安装音效驱动程式了,如果你已把它编译成一个模组:
1 B* Y& u" x2 X' l7 q! e5 F# Z+ Y2 h
/ h9 A) x c6 s
7 ]3 H9 P* W% a! H, u. [# G2 u' @# modprobe -a sound
- G& V: A) U0 }: w) c
AWE32 Sound Driver v0.3.3e (DRAM 2048k)
- S6 {, i$ B; A! E# {) S- j1 H7 N- ]! f1 Q z7 i
如果你认为记忆体侦测有误 (有个人告诉我说他有张 AWE64 卡有 4096k,然而 ``侦测到'' 28672k !),请升级 awedrv 软体或是在 /usr/src/linux/drivers/sound/lowlevel/awe_config.h档案□指定记忆体,如:
- r. ?: }. f$ b5 k; g2 K8 e5 q
1 u# c' B. g6 H# J m
2 L4 Z0 ], |: ^( g1 J5 G& m+ B' t#define AWE_DEFAULT_MEM_SIZE 4096 /* kbytes */
& R9 e/ V" `- p2 t
4 Y8 ]: ?' R7 O8 D( i3 N0 s3 o
抱谦,你必须再重新编译核心程式 (也许编译这些模组就够了,但我不确定)。
7 I, g. T) q3 d3 C
: @4 q; t6 |1 ?5 u如果它成功动作了,你可能希望音效模组能自动载入。你可以使用 kerneld ( 在 1.4章节□有说明为何这是个坏点子) 或是在你的/etc/modules (Debian系统) □头加上一行包含 sound 或是加上 /sbin/modprobe -a sound 到你的启动命令手稿□。
6 c6 M7 _2 z. O3 U( B5 H9 t- D y s$ m+ d7 X2 J% Q4 _) Z
, g3 ^- c) L6 {% [
0 s5 s, ^3 Y1 C: l: r2 g--------------------------------------------------------------------------------
' C5 i* F! J( g6 z3 O: U--------------------------------------------------------------------------------
9 v2 F: K' h$ [( V
$ G% ~* j2 A$ P9 V: ^4. 测试安效驱动程式
; ]5 {6 b. ^# l2 }
( e9 b ~& G' P# Z0 X) C/ F' I
4 ?' Z. k! ?! u: Z" t4.1 /proc/devices, /dev/sndstat
5 ~' q$ H8 E) a) D- R/ }9 o
& a! Q9 G" w9 s' q% F如果你有内建的音效支援,你会在开机时收到一些有用的资讯。如果你的音效支援是安装成可载入式模组的,你也可以用下列方式得到一些资讯 (或许要先用 modprobe -r sound 将音效移除)。
+ @4 u3 ?1 ]9 r" k
9 `1 d; ^9 @) I
0 s8 Z. r( M' L% D# modprobe -a sound trace_init=1
k0 B# S9 x& C f1 m
Sound initialization started
# c* K) O6 s. X0 R- E1 A
$ s3 X+ V9 q3 t& w
at 0x220 irq 5 dma 1,5
/ k' Y4 o2 \& O! v$ q at 0x330 irq 5 dma 0
/ N( q/ s: D, j. y6 K. V( @% o
at 0x388
( Z& C2 X2 H: l9 h" D9 `+ `5 z
Sound initialization complete
) B; d6 K8 V0 D. Z1 tAWE32 Sound Driver v0.3.3e (DRAM 2048k)
% K) `% ^7 d, z
; F/ I4 m. I E4 ]如果你有 /proc 虚拟档案系统,你可以用下列方法看到第二个设备
- B3 ^0 `. t( Y8 {) _6 t
7 H Y0 J5 Q) T
, L+ J1 d4 Q! \+ q7 _9 u# cat /proc/devices
/ S! `5 s7 s8 R1 M) L+ |Character devices:
$ C- f) Z( N5 z, X b+ S, I1 J
[...]
" |/ p) R' l! g8 z
14 sound
% d3 `& W$ w% I) C[...]
6 R( X- [: }- u) X2 ?( O+ ?3 s, a7 s) R$ Z8 m7 [5 @3 n2 G+ a
接下来请认认你在 /dev/ 下有个已正确安装的设备。详情请看 Sound HOWTO 。然後执行 /dev/sndstat 可查询音效模组的状态。
; }; |! Z$ r& J) ~" D6 D( l) r1 W! l% Z4 o0 w
$ y' |' l4 S7 _6 f" q# cat /dev/sndstat
3 ]+ {( J1 b, x% P. M9 s( WSound Driver:3.5.4-960630 (Sat Oct 11 19:35:14 CEST 1997 root,
% U- t) E' q! c) \0 R8 [
Linux flora 2.0.29 #1 Sat Oct 11 19:12:56 CEST 1997 i586 unknown)
: D( u: q! e% p0 L8 v
Kernel: Linux flora 2.0.29 #1 Sat Oct 11 19:36:23 CEST 1997 i586
7 ?5 k h8 f! v' g- ~. z
Config options: 0
# m( n* X4 G. l1 W+ Y0 U. i% T
, S1 a5 z9 }) Z/ A, I4 |* ~Installed drivers:
2 w+ b4 W, `8 n( J2 q
Type 1: OPL-2/OPL-3 FM
2 g0 J& V1 i, z6 w OType 2: Sound Blaster
, y$ d/ |1 M8 _5 z# wType 7: SB MPU-401
2 R4 E0 u. j0 }$ _# s, Q
, A/ L: e# r- s' s. j6 fCard config:
y( o9 F: w- Y& _% Z- K/ x" zSound Blaster at 0x220 irq 5 drq 1,5
( `0 d1 h0 h# Z6 ]7 {SB MPU-401 at 0x330 irq 5 drq 0
7 e9 {8 ]/ y5 Z: b9 eOPL-2/OPL-3 FM at 0x388 drq 0
+ H g2 `4 l9 l0 L( O# {1 f8 j- U6 z" _% A. j) Z
Audio devices:
. b8 i3 M( Q# ?( ~6 ^5 H0: Sound Blaster 16 (4.13)
2 W+ H- V* S6 K/ X
. h# ], A9 m6 k0 u' Z5 _5 R5 WSynth devices:
' ~# I0 v3 \% Q2 a
0: Yamaha OPL-3
, A, y5 ?) x) H, ?/ ?( {# V1: AWE32 Driver v0.3.3e (DRAM 2048k)
& w% d7 F5 M* k; }. B
0 F. x' ]3 V+ N. bMidi devices:
- v6 G/ K8 ~: m' W
0: Sound Blaster 16
8 L8 ^7 L* {5 Z5 c% o* k
2 E% |- b$ }8 Q, l7 R
Timers:
' S* U9 ?1 ?. x R/ W6 T
0:
System clock
2 c2 I6 j+ _% l) M8 u
. M6 [2 h# E( K6 kMixers:
- S! P# D6 |) X1 ]2 K' g
0: Sound Blaster
- r1 w6 ^9 H% x; Z) T
1: AWE32 Equalizer
3 H2 D R* D& D8 e
( @% O$ @1 Y6 k如果你没有像这样的输出,也许在你的建构□有问题,继续找看看哪儿不能动,再回来 Getting Started,检查每一项。
. m) U4 O- `6 C5 Q, w- w7 g
+ \& K0 V* h& m8 s& _, m0 e5 `
( d/ f$ \; ~; r: [( C1 D! V$ X5 B
, P* M7 _8 `4 y3 C3 j4 R! w9 Z4.2 输出- Raw Audio Device
8 i. r* a! g, d% U
, u5 }* J# ~, t! x8 I
去取得一个 .au 档 (Sun workstation) 或样本档案,然後这样做:
# ?6 I: C" B: B! S: T# _
' N3 {: Q0 S9 V1 }. F/ J0 R- L* A2 `# E0 C& \: K' [, o9 T
# cat bell.au %26gt; /dev/audio
& s2 w1 o5 _% h7 ]9 B
4 R$ f. |" `/ D& ?: ]; Y* Uresp.
) @2 a# P/ v, O8 l4 j+ ^
- _) w0 X+ r; ]$ |
7 o N3 `7 r/ E9 G. @# cat sample %26gt; /dev/dsp
( a: d6 l0 ?( r h$ a9 m5 Q7 i
* ?" q! a( B _; h你会应该可以由 Audio Device 0: Sound Blaster 16 (4.3)听到这个档案的内容。
% P b$ j6 j% h% n- }$ s+ n9 c" [
( Y; }( ?4 P* z3 f' J
9 G5 l9 @0 i1 z1 X9 |) I% B$ |: }5 l9 Q+ I0 ~
4.3 输出 - OPL-2/OPL-3 Synthesis
^9 K6 U0 ^' @0 ]* K( w% s
* t' f+ ~ C! a( L如果你要使用 OPL-2/OPL-3 FM 合成器在你的音效卡上拨放 MIDI档案,请试看看 playmidi 这个程式(请看附录 B)。使用方法如下
5 z. y: @' m( E4 t1 x# \. m
- ?9 k/ R# ^0 J' v+ _; {
0 A6 b3 ]4 O8 F* _) t( f7 _
# playmidi -f dance.mid
4 V; B, ?* S( ~4 A# y1 L$ r
0 B. P! M! i* `9 W+ W% d) `2 c) i$ g7 v; H; O7 D
或是
+ F3 L& t, a& J% J5 i
; ^0 A5 Q5 d7 |- ]
4 R% S ~5 x, @/ k, P% G
. A6 l; i) P4 l6 u# playmidi -4 dance.mid
& p, U0 a0 @ u3 Y$ a
' n Y8 \2 ?" G: L4 ]3 F
前场会给你 OPL-2,後场会给你 OPL-3 MIDI 音乐。 如果你觉得这些声音听来很逊,不要怪 playmidi,那是因为 FM 合成器听起来很差啦。
+ w+ j: D- Q" q
" L+ m: C6 \6 Q- I: X6 R
您可以想像一下你只有一个 OSS/Free 音效驱动程式:那就是你所能得到的 MIDI音乐的品质了。 (与软体合成不同)。幸运的是,你有 SB AWE,你还可以使用 Wave Table 以及 AWE Sound Driver Extension了。
1 W1 h2 b# X/ `" J3 h+ w% f. ?/ c
0 H$ O, w% \6 L0 _- C1 |
$ k8 \6 \/ z& Z$ z- A' \! I$ Y5 o5 t: V! q+ t3 ~. Q
4.4 输出 - Wave Table Synthesis
/ b8 s, _& i8 c9 F0 {
% @7 [2 h; y5 s
在 AWE Driver Extension □有个很特别的工具程式 (awesfx) 可用来使用 EMU 8000 Wave Table 合成器。首先,你必须从你的音效卡□载入 Sound Font Bank -就算你想使用 ROM 的取样 ! 你可以从你的 Windows 的安装中取得这个档 -寻找附加档名为 *.sfb 或 *.sf2的档案。
7 D7 |' u1 _0 m' F
: c, z7 L; M/ N0 j* XROM 取样可以使用 SYNTHGM.SBK来载入, 真实的取样放在 SYNTHGS.SBK 及 SYNTHMT.SBK 以及 SAMPLE.SBK□。你也可以从 ftp或 www 来取得其他的 Sound Font Banksvia ,可以试试 Creative Labs 的 EMU 的网页, 有个 Chaos 取样,他们真的很棒 (请检查 AWE 驱动程式网站)。
+ Q+ Q O# l4 H: Q% A. r1 w5 ]# t+ j+ g \6 z
试看看载入标准的 GM (ROM) set ,使用
5 }. `& l/ T; t X
* b0 U- L$ Q6 @- Z& E0 h
9 ?. D0 e# W2 W7 z( R8 l# sfxload -i synthgm.sbk
$ G4 J( P1 B# J9 }
9 \& i/ E- _( B$ j然後拨放个伴随著你的 SB AWE 的 midi 档案:
$ @& O2 ?# Q |" p6 g% r, E4 o, f0 [3 L
' S H* P1 |& l7 T/ ]# A# drvmidi dance.mid
$ O8 {. p6 R& e$ l: V& \3 V
! N! Y9 G$ q* t6 ^7 V- J
5 R5 p1 j0 W8 G- B/ T
$ j$ r4 g. u" }" `4.5 混音
; l- c6 o) J/ X2 |' K+ m8 U" e
4 w3 i! t% ], s8 T. P) p2 N' _3 `
取得你最喜欢的混音器程式并执行它。在同一时间拨放一个音效取样以及两个 MIDI 档样本,然後试试混音器的设定。 拨一会儿,很容易的。以下有他们被称呼的设备列表:
7 w7 ~2 E- B7 [: r x# e
6 o' w5 s% K ? d' h, v
! z* v$ h& \, uYamaha OPL-3
. n7 _9 y, ~3 |7 e& ZSynth 或 FM
% e, m9 w7 j6 A% x
: b4 I% G7 ?" B" n* B5 OAWE32 Driver
5 i5 y6 X7 P" @2 |* x+ u6 [; z
Synth 或 FM (有人知道混音器是 a mixer were the last two are separated from each other?)
, s* E2 t0 B' _9 v( d7 _5 V) V2 z2 r, x6 G) s/ g% z* F6 D+ b' U! p
Sound Blaster 16 (4.13)
8 O% I3 r# n2 }9 ]# P; ~1 F, c
PCM 或 DSP
+ S* ~$ X- E& R9 h/ Y) W: y: i7 n" q, u* T4 w' F; ?$ M
PC Speaker (still alive)
0 h" h" X. ?' a7 C7 y& K5 w" h+ [Spkr
) i& d; \/ r. ^
% Y& ~% P5 p K6 V9 S
还有一些与 CD ROM 相关的混音器,可能连接著音效卡的有 Master Volume, Bass, Treble 和不同输入轨道的录音高低。 你可以指定哪些轨道应该被录音下来。
7 |7 ^* l1 s- l+ n( W
c1 e, ?9 \& T S) O6 H- C. P# U# J; E
4.6 输入-使用Raw Audio Device来取样
, k) ?- g0 P, `0 X
" o- {( `" Q: w9 }! V你可以录下不同的音源:相连的 CD ROM、与 mic 相连的麦克风,以及与 line in 相连接的任何音源。将混音器设定在适当的位置。拨放一个声音并将它录音成一个档案,再由 Raw Audio Device来读取,例如:
8 @5 M3 {" F y& Y7 S
" a F. u/ z& S# ~0 A0 o# Q0 o+ S9 ]1 Y# n
# cdplay
; N, T" I9 w% n$ n- P& W! c/ u# dd bs=8k count=5 music.au
# Y5 B9 Y% }! y
50 records in
. R# D" a4 A/ ?8 z, i
50 records out
( V! C5 {4 P. Z9 `; |1 y8 N
# cat music.au %26gt;/dev/dsp
, j% ~# F+ h% b- {( J
+ O: l3 t: V0 ?# `" r从输入设备来录音以及拨放 5 秒的声音。
6 Y# J: }( x, x: A
# ~( `* a- R- U0 ^8 [5 C
; H" B2 P+ N& {- p6 w* M( V4.7 MIDI 埠
) U3 k+ f6 p) ~% A7 z, u! Z
! X9 w2 Z; \* j; ?/ @ M' N抱谦,目前还没有关於 MIDI 埠的资讯!
" o2 {0 C" i; _" _7 o: F' Q+ {" {+ c+ Q; b
2 s5 b" d! a2 x" r6 R4 h6 W2 A
+ S' l, x- }8 o--------------------------------------------------------------------------------
1 P+ u3 V& R& A$ j$ r--------------------------------------------------------------------------------
! ~2 w& o0 h* u6 q" S
3 F* A+ d3 u: i# P6 N9 w: w
5. AWE 驱动程式软体
5 Q+ ~+ M, O. v+ _* t- a( ?0 h/ n# V+ N
- u% X8 Y0 h# y2 ?0 ~
5.1 sfxload
! g; w9 ~4 L: D( w% B1 |$ m/ C7 ^ f& i9 v% p# t
你可以使用 sfxload 工具来载入音效卡上的 DRAM 取样到。记得你只能在每个 bank □载入一个取样,内定为 bank 0。因此,在 sfxload synthgs.sbk 之後,在你的音效卡上唯一的取样就是 GS 取样。如果你要载入其他的 Sound Font Bank,请使用 -b 选项,例如:
/ u' D7 T% R* e* F4 a
/ m4 L5 U; [: }6 ^! @0 V" j7 d) }' A
# sfxload synthgs.sbk
' P- s Y0 ?2 k: G" [5 Z, Z$ p# c# sfxload -b1 sample.sbk
* G; M% |) P* K9 w4 O
# drvmidi sfx.mid
. B5 S1 a( H6 t" X3 o9 I% L6 y+ v
9 L x, h- n" w! ? f: j
也可以安装模组来自动载入内定的 Sound Font Bank。只需加上这一行
+ D& m5 Z3 ^" Z+ B$ ~( A. j. k/ M8 Q/ k4 c. y
) e8 X+ B1 n/ Q4 qpost-install sound /usr/bin/sfxload synthgm.sbk
7 P0 ?+ j& a9 O7 D8 b, b5 X! _: K0 `) |( S) w
到你的 /etc/conf.modules 档案□
# N" p: {" K1 G/ |
6 p$ Z2 n u5 p! n. U/ c2 Q
详情请看关於 sfxload 的文件
" v0 N, y( i0 C. ^8 m I, x: R. h3 T4 \* z
Z- M/ D/ L$ I% Z' v8 T! D. v5.2 drvmidi
# ` d1 K3 t, H& S. R) O6 M/ p5 X
使用 drvmidi 程式,你可以使用你的 AWE 驱动程式来演奏 MIDI 档案。只要在命令後面加上你的 midi 档名即可:
* \0 U" m6 {- @1 m8 |7 c( ]. a
& J1 y$ \3 m: I6 ?
U4 e/ K* j( t6 v% J# drvmidi waltz.mid
+ w7 t' G% I4 {/ X) S
( C0 x3 E# b; p1 e详情请看关於 drvmidi 的文件
+ B6 ~8 B" f5 w8 t4 X/ z
. ]. q6 t- {& B# U4 |6 B( y
3 u* U$ d X7 \6 k( p8 o
* }/ V- l8 U+ l/ ]; B--------------------------------------------------------------------------------
* r6 e" z! z9 ?% U0 w& t" G--------------------------------------------------------------------------------
7 ~2 w* L6 F: |/ ~
" _4 |7 r, j1 H r7 ~6. 附录
# @) ]( e- q& I# L+ w4 @
3 o' N' \' b7 p8 D5 M8 a/ g+ k v9 e' C
6.1 附加资讯
0 d7 |. m4 U# W: U+ q0 G" v; p3 m/ j0 W- p- j+ L
/ w$ ~% p! Z- O; Q5 q; a c
Linux Sound HOWTO
% U" z. l; h8 u/ |9 w作者: Jeff Tranter, %26lt; jeff_tranter@pobox.com%26gt;
- c# e1 z8 r t3 t6 b* E5 P# H
& g' Q5 p7 a' h: S' n0 E5 B) G, E
最新版: v1.17, 1997年 8月 4日
' U/ z. L& i* t! ]5 r
2 [$ h+ D! v" @2 o8 B
请好好阅读一下 Sound HOWTO (可从 sunsite.unc.edu 以及其他站取得)。它有很好的资讯关於编译核心程式来支援音效,并解释很多音效设备以及应用程式等等。
4 a$ I j. o/ B. f4 c/ T5 p: K J4 L9 d" U
I understand this HOWTO as an addition to the Sound HOWTO.
5 `: }# z' _3 V) z/ V5 n" K
, m* ]& t' O1 T
& c! k7 D# g1 a' s& rLinux Sound Playing HOWTO
' p+ E7 }* g7 B+ x3 i
作者: Yoo C. Chung, %26lt; wacko@laplace.snu.ac.kr%26gt;
' H! f- m( k6 M e6 H! v
. t( t* Y% o" G3 K8 n7 J
最新版: v1.4, 1997 年 5月 13日
# z* z" C& @ [* X* I- Q9 m
! t1 h4 I% i6 r4 d V你应该也阅读 Sound Playing HOWTO。它会告诉你很多各种声音格式以及演奏他们的应用程式。
8 D) M# G: u/ p
5 M! ]) m; ^# s1 t3 P5 ~
6 N/ D& F0 x% R4 a+ o/ {AWE 驱动程式 FAQ
) d! x3 X+ b( x" d
作者: Takashi Iwai %26lt; iwai@dragon.mm.t.u-tokyo.ac.jp%26gt;
6 R, j8 o. y. w( w& _
/ n) }/ H% U7 T2 p j. }2 x3 O G来源: http://bahamut.mm.t.u-tokyo.ac.jp/"iwai/awedrv/awedrv-faq.html
# J& A* T# G* x; f# `1 p5 \
2 w$ C& D- r# ]. j+ i如果你在安装 AWE 驱动程式时、或是使用你的 Sound Blaster 卡的 Wave Table 合成器,那就看这儿了。
4 J! ?+ W7 Q* u" N- E
" ~9 ?- V$ D- ^- I; l# s
c2 h8 e& {2 JISA PnP FAQ 常问集
, x: i4 y# i/ I' z9 _
作者: Peter Fox %26lt; fox@roestock.demon.co.uk%26gt;
- K9 `- h! n! ] W( Z6 \0 a8 `7 H) o
) Q% ~ M0 }# G7 ^: ~6 E R/ f来源: http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html
. M/ E8 E/ F: I, X& v1 x7 V. k6 _/ {+ l, }7 [8 l* N
如果你要安装 ISA PnP 卡,那就要看你自己了。
' o2 h$ c( b3 i3 ]* e' K' j
3 C9 R% U: W$ r2 {, A7 `1 ^+ |
+ U" p3 m% X" J6 {8 [" T, ]* u* L1 T3 M4 N1 H7 E7 N1 A
6.2 来源
/ ^* m# ?! t5 q6 \0 V/ Z4 ?& O* X
6 i% J h. }# [4 L0 y3 w
2 U# L% ~4 b, D# Z L" s% l2 K, e* e3 T" H( H& J; N. _
isapnptools
# e; P1 o! B4 C9 H
作者: Peter Fox %26lt; fox@roestock.demon.co.uk%26gt;
0 S/ R$ s* V o9 J$ G+ q3 H# |
, Y, n# B. I1 r4 L! e. k5 Z最近版本: 1.11
; o' [6 Q% n3 T( f9 i% `3 R& b2 X6 L1 r& L. y4 `5 P$ W
来源: http://www.roestock.demon.co.uk/isapnptools/index.html
) T }8 }" S- Z" t% U) D
) O1 Z) B! s9 Q/ }. `* c如果你要报告修补、臭虫或是议言,请在主题栏□面加上 'isapnp' ,并邮寄到 isapnp@roestock.demon.co.uk
" N9 i+ F1 h# Y* A
* c( |4 ^) p% p2 Z4 U* r: p6 Q) x
" x! J% {; f. Y
awedrv
! I4 Y: P" R0 o" X
作者: Takashi Iwai %26lt; iwai@dragon.mm.t.u-tokyo.ac.jp%26gt;
3 U+ m8 q- o7 _* [) g
& P* q% }1 ?4 t. \% {' A: F) P/ R/ ?最新版本: 0.4.2c
" f! @" a& B; Y, k. G' }
$ J1 c$ z4 |( o6 z来源: http://bahamut.mm.t.u-tokyo.ac.jp/"iwai/awedrv/
4 B/ e7 B+ i4 p4 U9 R2 e( c6 L
, G2 @% i$ H$ H7 x5 P- h3 C/ P1 }- `. C: x7 x' M* W& S
Linux kernel
# c4 g2 {' K$ Q作者: Linus Torvald and many other
J) f7 j) J8 J& a. l4 j! N4 m# W; J
最新版本: 在此刻,你可以用 2.0.29
9 C- B# F( L0 [' L# i
3 P, x* R; p$ C% H
来源: 到处都可以取得 Linux
3 x t) I/ r& y2 t7 b8 {/ h( K6 ?7 |% q. R
+ z8 A6 N0 e% G% s
( F+ \3 B1 A8 L' R* H
OSS/Free
: W4 [; h7 W* r+ n. R0 s
作者: Hannu Savolainen (Please check http://www.4front-tech.com/usslite before mailing me).
( G5 y) `0 i, ^3 o/ {
3 z% A$ f1 @6 z. g
最新版本: 我有 3.5.5-beta1 版
: Y. ]/ F0 A: Z3 U4 T5 ?
9 `7 T+ d: W) y. B8 O来源: 和 Linux 核心原始程式套件一起
, ~1 v- D7 \9 {+ D
' N9 m/ s/ B7 p- u# p4 H5 l7 @资讯: http://www.4front-tech.com/usslite or European mirror.
5 r9 h2 L. {1 r; D D$ w+ }
* H- s3 M* E7 n1 f# j/ N! L0 ?; j4 X( M
% i- P' m. \8 m' _
6.3 □本 isapnp.conf
- [( k$ L. S9 [* |
6 i7 H8 Q, u x0 W( b5 o) F: f* b由 pnpdump 所建立的 ISA PnP 建构档,你的 PnP 卡唯一出现的项目输出如下,有一张卡被侦测出 (音效卡),并有四个逻辑设备:
0 J4 F$ ~1 ]" G5 @7 x
0 P o! f/ S% K: i
6 L0 @4 t+ i( A# w" p1 n3 {LD 0: Audio Device
! F& v$ r* M8 Y4 \5 D' bLD 1: IDE Device
8 X; } X$ L5 C1 z" V9 T1 q- i& s
LD 2: WaveTable Device
o3 B8 Y' a7 u" W. S2 }+ t
LD 3: Gameport Device
; ~; j2 ]! [) p5 T/ F我解除 LD 1 的建构,因为我没有在音效卡的 IDE 埠上接著 CD ROM。如果你的 SB 没有 IDE 埠,那麽 LD 1 就是 Gameport 设备,而 LD 3 就不会出现了。
5 k# K2 h R( C
5 u% M* N% v, x4 Y9 s请参考 Getting started 这个章节□有更多的资讯 (很重要!)。
' O3 H5 d4 c% T7 C Z" {% [9 p; q0 r4 z- t1 m: B
# y6 F' q' H' [+ `
3 f E6 x+ d; f8 o& l. h$ Y$ i
--------------------------------------------------------------------------------
, R; B" T. u! a" j5 i
- `! E# m9 \ P3 a, U4 g9 H
# $Id: pnpdump.c,v 1.9 1997/06/10 21:37:32 fox Exp $
$ E9 d) x! }( ]; y7 X X: ~: B
# This is free software, see the sources for details.
! O! ~# S' W! [$ T* r0 b$ F! c# c# This software has NO WARRANTY, use at your OWN RISK
- R7 q! x0 j: o: e. v; H
#
$ }) l& J0 o) c' B2 Q6 \# C5 {# For details of this file format, see isapnp.conf(5)
% k# T4 ~. Z0 J3 y; ~
#
* E l1 B1 r& L+ z: o8 O5 O5 E7 o/ L
# For latest information on isapnp and pnpdump see:
: \) q; B, O; T- Z! I# http://www.roestock.demon.co.uk/isapnptools/
) x/ X3 A7 h5 |
#
# C+ ~: g5 l. U/ b i
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
8 ?, r4 \2 A& v
& Y+ r% ?0 K6 x* m3 l" E(READPORT 0x0203)
4 s; G! V$ r2 x1 M# J" Y2 ]- j$ { _$ ^(ISOLATE)
, w5 c( h8 K) W' Q, h0 l
(IDENTIFY *)
2 K6 x1 |& Y2 o+ N1 j
1 T+ H* t4 c2 w8 @" i5 S- F' K
# Try the following if you get error messages like
1 q. i5 v' l9 f5 i* K
# Error occurred executing request 'LD 2' on or around line...
/ h" h" W5 O* J
% Y% a# _& `4 q: f
#(VERIFYLD N)
! I+ \0 B3 o; c/ I& E& h
h$ B4 Z% C( ?" O# ANSI string --%26gt;Creative SB32 PnP%26lt;--
" \9 L7 n3 a- a5 f: ]0 w4 r$ c0 ~+ R8 h! a4 q: o+ P
(CONFIGURE CTL0048/58128 (LD 0
: E6 v, K5 n7 \. G' E- `# c# ANSI string --%26gt;Audio%26lt;--
1 z0 `; P: j+ m# _' S3 E# v% ?; m
3 h5 W0 O) M# D Z6 | (INT 0 (IRQ 5 (MODE E)))
8 n! k6 w1 B4 T) z9 ^$ O4 a/ { (DMA 0 (CHANNEL 1))
( ^4 P# `) ^ o9 Y: |7 l (DMA 1 (CHANNEL 5))
6 ^4 U( t& l- \ ` (IO 0 (BASE 0x0220))
9 x6 P7 v0 z+ L. A( s
(IO 1 (BASE 0x0330))
; `' I7 e# l7 L/ E( O (IO 2 (BASE 0x0388))
; L5 C B1 V2 x3 v5 n/ g
: A a- b% r2 Q# x; z. G! B: q (ACT Y)
9 E* ~4 L; u5 l% e, G))
- k% n) D4 H* q5 ]# d
4 B: Z9 `3 m* Q4 {7 z4 c3 e(CONFIGURE CTL0048/58128 (LD 1
" ^- \: x# x) B' k4 B! m! }. `# ANSI string --%26gt;IDE%26lt;--
9 Y1 r7 X/ t$ v) a& s, C" I+ O* _* z/ S$ A( V9 u0 w% z) r6 A
# (INT 0 (IRQ 10 (MODE E)))
$ ?: ]6 R8 r- b# `
# (IO 0 (BASE 0x0168))
' l/ _6 ^0 T5 R1 m
# (IO 1 (BASE 0x036e))
$ D9 T8 ?* b, i3 w
5 Y: G: H1 F3 c8 g$ R3 d# (ACT Y)
2 R& u8 o0 D# i+ f+ _* ?9 R% _
))
: I, S8 c. z, ]' t$ W" y
' I4 I/ X7 _! K, l(CONFIGURE CTL0048/58128 (LD 2
% ]- d; t/ U+ }! A$ @( B* F+ ^) \
# ANSI string --%26gt;WaveTable%26lt;--
" o& j8 G2 T: }% ]4 t4 \
, a+ u7 u; `: U6 N8 Z (IO 0 (BASE 0x0620))
% r' ]* C2 O1 P# s! g2 f6 P/ i (IO 1 (BASE 0x0A20))
4 T8 \3 B, q9 x5 i) X4 X4 N
(IO 2 (BASE 0x0E20))
T7 Q0 G6 c2 R2 [3 G
* s9 C% T( s3 y) J (ACT Y)
" J+ C; Y% C5 v6 r: q/ V$ B9 M))
z. a8 k; z& B. g3 n6 ?
$ T4 u9 ]0 G. l! c2 s+ N
(CONFIGURE CTL0048/58128 (LD 3
% M; |# x8 \9 t |
# ANSI string --%26gt;Game%26lt;--
4 Y/ @( p4 |% Z* ^; `7 \
~7 i3 H* i, C; g (IO 0 (BASE 0x0200))
" ?# A4 Q6 O* _: i$ l
(ACT Y)
, U* s* j/ R) c
))
6 y4 z) R) ]6 G* |4 F; z! |, I
8 W9 j% q3 L. r( z* `% b- m* ]
# Returns all cards to the "Wait for Key" state
! p. k& U; O' b4 U0 O% r
(WAITFORKEY)
1 c, t5 v* O* L- I: y: ?. K0 B3 t# I
5 W% g0 a6 P7 J$ b--------------------------------------------------------------------------------
9 j/ Q/ x/ s& T) M( P( b, _. v- m8 R
9 u# d8 ~- i# d- u/ T" d
译者按: 若您发现本文件内容有翻译不顺畅或错误的地方,请您来信告诉我,以做更正,谢谢。 linuxer.bbs@cis.nctu.edu.tw。译注:这份文件的中文版可在 http://www.linux.org.tw/LCDP/下取得。
( \. p; ]% m0 R. A' C. r6 G$ s
9 q. Y, b+ ~" E! F2 l. s. p" i
7 J1 Z+ @8 S# N* R! Z7 m' l
--------------------------------------------------------------------------------