\documentclass[letterpaper]{article}
\nonstopmode
\bkai
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[english]{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{The Linux Sound HOWTO -- Linux ­µ®Ä«ü¤Þ}
\author{§@ªÌ: Jeff\_Tranter, \onlynameurl{jeff\_tranter@pobox.com}\\ 
Ä¶ªÌ: ¥î¥Ã±d\onlynameurl{yorkwu@ms4.hinet.net}}
\date{¤¤¤åª© v1.20C¡A 1999 ¦~ 7 ¤ë 24 ¤é(­ì¤å v1.20, 24 March 1999)}
\abstract{¥»¤å¥ó´y­z¦bLinux¤UªºÃö©ó­µ®Äªº¤ä´©¡C ¥¦¦CÁ|¥X¤ä´©ªº­µ®ÄµwÅé³]³Æ¡A¤]¼g¨ì¤F¦p¦ó³]¦n®Ö¤ßÅX°Êµ{¦¡¡A¤Î±`¨£°ÝÃDªº¸Ñµª¡C §Æ±æÂÇ¥Ñ¥¦¡A¥i¥HÅý·s¤â§ó´£¦­¤W¸ô¡A¦P®É´î¤Ö¦bUsenet·s»D²Õ¤Î³q«H½×¾Â¶¡ªºÃe¤j "Äé¤ô¶q"¡C}


\begin{document}
\maketitle
\tableofcontents

\section{ºü½×}





³o¬OLinux Sound HOWTO¤å¥ó¡C ¥¦ªº¥D­n¥Ø¼Ð¬O´£¨Ñ¤@¤Á¦w¸Ë¤Î«Ø¸mLinux­µ®Ä¤ä´©©Ò»Ýª¾
ÃÑªº§Ö³t°Ñ¦Ò¸ê®Æ¡C §Ú­Ì¤@¤è­±¦^µªÃö©óLinux¤UÃö©ó­µ®Äªº±`¨£°ÝÃD¡A¥t¤@¤è­±¤]«ü¥X
Ãö©ó¹q¸£­µ®Ä/­µ¼Ö¤è­±ºØºØ¥DÃDªº°Ñ¦Ò¸ê®Æªº¨Ó·½¡C



¥»¤åªº½d³ò¶È¤Î©ó¾A¦X¥Î©ó Linux ªº­µ®Ä¥d¤è­±¡C
¹ï©ó­µ®Ä¥d¤Î¹q¸£­µ®Ä/­µ¼Ö­ì²zªº¸ê®Æ¡A½Ð°Ñ¾\{\itshape °Ñ¦Ò¤åÄm\/}¨º¸`¦C¥Xªº¤å¥ó¡C




\subsection{»ÊÁÂ}





³o¥÷¤å¥ó«Ü¦h¨Ó¦Û­µ®ÄÅX°Êµ{¦¡µ{¦¡½X©Òªþªº¤å¥ó(¥Ñ Hannu Savolainen(
\onlynameurl{hannu@voxware.pp.fi})¼¶¼g)¡C
ÁÂÁÂHannu¡AAlan Cox¡A¤Î¶}µo Linux ®Ö¤ß­µ®ÄÅX°Êµ{¦¡¡A
¥H¤Î¤½¥Îµ{¦¡ªº³\³\¦h¦h¨ä¥L¤H­Ì¡C



¥Ñ©ó¦³
\onlynameurl{SGML Tools}
®M¥ó¡A¨Ï±o¥»¤å¥ó¥i¥H¥Ñ¤@­Ó­ì©lÀÉ²£¥Í¥X´XºØ¤£¦P®æ¦¡¡C


\subsection{³Ì·sª©¥»¦ó³B´M}





¥»¤å¥ó¤§³Ì·sª©¥»±N©w´Á±i¶K©ó
\onlynameurl{comp.os.linux.answers}
·s»D²Õ; ¥¦¤]·|©ñ¨ì«Ü¦h«O¦s³oÃþ¸ê°Tªº°Î¦Wftp¯¸¡A½Ñ¦p
\nameurl{ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/}{}



¥»¤å¥ó¤Î¨ä¥¦ HOWTO ¤å¥óªº¶W¤å¦rª©¤]©ñ¦b«Ü¦h WWW ¯¸¥x¤W¡A¥]¬A
\nameurl{http://metalab.unc.edu/LDP/}{}
«Ü¦h Linux ªº CD-ROM ¦w¸Ë®M¥ó¤]¤º§t HOWTO ¤å¥ó¡A³q±`©ñ¦b
\url{/usr/doc/} ¥Ø¿ý¤U¡C ¦³®É¦bCD-ROM
¤Wªº¡A©Î¦C¦Lªº¡A©Î¦bftp¯¸¸Ìªº·|¬O¹L®Éªºª©¥»¡C ¦pªG¦b¥» HOWTO ¤Wªº¤é´Á¤w¶Z¤µ¶W¹L
¤»­Ó¤ë¡A¨º»ò¦bInternet¤W¥i¯à¤w¸g¦³·sª©¤F¡C

{\itshape ­n½Ð±zª`·Nªº¬O¡A¥Ñ©óºô»Úºô¸ôªº°ÊºA©Ê½è¡A¦b¥»¤å¥ó¤¤©Ò¦³ªº WWW ¤Î FTP
³sµ²³£¥i¯àµo¥Í§ïÅÜ¡C\/}

¥»¤å¥ó¥ç³QÂ½Ä¶¬°´X­Ó¤£¦P»y¨¥ªºª©¥»:

¤¤¤å: \nameurl{http://www.linux.org.tw/CLDP/Sound-HOWTO.html}{}

ªk¤å: \nameurl{http://www.freenix.org/unix/linux/HOWTO/}{}

¤é¤å: \nameurl{http://yebisu.ics.es.osaka-u.ac.jp/linux/}{}

Áú¤å: \nameurl{http://kldp.linux-kr.org/HOWTO/html/Sound/Sound-HOWTO.html}{}

«X¤å: \nameurl{http://www.phtd.tpu.edu.ru/~ott/russian/linux/howto-rus/Sound-HOWTO.html}{}

¦è¯Z¤ú¤å: \nameurl{ftp://ftp.insflug.org/es}{}



¦h¼Æ¥»¤å¥ó¤Î¨ä¥¦ªº Linux HOWTO ªºÂ½Ä¶ª©¤]¥i¥H¦b
\nameurl{http://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/}{} ¥H¤Î
\nameurl{ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/}{}§ä¨ì¡C
¦pªG±z±N¥»¤å¥óÂ½°µ¨ä¥¦»y¨¥¡A½Ð§i¶D§Ú¡A§Ú·|¦b³o¸Ì´À¥¦°µ­Ó³sµ²¡C




\subsection{¦^õX}



³o¥÷ HOWTO ¤å¥ó¡A»Ý­n¦U¦ìÅªªÌ¨ó§U¡A¤~¯à¶V¨Ó¶V¦n¥Î¡C ¦pªG±z¦³¥ô¦ó«ØÄ³¡A­×¥¿¡A
©Î·N¨£¡A½Ð§i¶D§@ªÌ(\onlynameurl{jeff\_tranter@pobox.com})¡C §Ú±N·|¦b¤U¤@ª©¸ÕµÛ¥[¤J³o¨Ç·N¨£¡C

(Ä¶ª`: ¹ï¥»¤¤¤åª©ªº·N¨£¡A½Ð§i¶D\onlynameurl{Ä¶ªÌ(yorkwu@ms4.hinet.net)}¡C)



§Ú¤]«Ü¼Ö·NºÉ§Ú¯à¤O¦^µªÃö©ó­µ®Ä¥d¤ÎLinuxªº¤@¯ë°ÝÃD¡C ¦ý¦b³o¤§«e¡A½Ð¥ý­@¤ßÅª§¹³o
¾ã½g HOWTO¡AµM«á¦Aµ¹§Ú©M³o°ÝÃD¬ÛÃöªº©Ò¦³²Ó¸`¸ê°T¡C ½Ð¤£­n°Ý§Ú¦b«DLinux§@·~¨t²Î
¤UÃö©ó­µ®Ä¥dªº°ÝÃD¡C



¦pªG±z¦b°ßÅª¥úºÐ¤W©Î¥Hµw«þ¨©§Î¦¡µo¦æ¦¹¤å¥ó¡AÅwªïªþ°e¤@¥÷¹L¨Ó¡C ½Ð±H¨ì§Úªº¦¬«H¦a
§}¡C ¤]½Ð¦Ò¼{¤@¤U¹ï Linux ¤å¥ó­pµe§@ÂI©^Äm¡A¥H¤ä«ù Linux ªº§K¶O¤å¥ó¡C ½Ð©MLinux
HOWTO ¨ó½Õ¤H Tim Bynum (
\nameurl{mailto:linux-howto@metalab.unc.edu}{}
)Ápµ¸¥H±o¨ì§ó¦h¸ê°T¡C




\subsection{´²¥¬®Éªºª`·N¨Æ¶µ}





Copyright (c) 1995-1999 by Jeff Tranter.

¤¤¤åª©ª©Åv¬°¥î¥Ã±d¤Î Jeff Tranter (1997-1999) ©Ò¦³¡C

This document may be
distributed under the terms set forth in the LDP license at \nameurl{http://metalab.unc.edu/LDP/COPYRIGHT.html}{}



¥»¤å¥ó±o¨Ì·Ó\nameurl{http://sunsite.unc.edu/LDP/COPYRIGHT.html}{}
©Ò°O¸ü¤§ LDP °õ·Óªº±ø´Úµo¦æ¡C




\section{­µ®Ä¥d§Þ³N}





¬°¤F¦³§U©ó±z¹ï¥»¤å«á­±Á¿¨ìªº¦³¨Ç¤F¸Ñ¡A³o¤@¸`Â²²¤¦a´£¤@¤U\idx{¹q¸£­µ®Ä}
§Þ³Nªº·§­n¡C ¦pªG·Q§ó¶i¤@¨B¤F¸Ñ¡A½Ð§ä¼Æ¦ì­µ°T©Î¼Æ¦ì«H¸¹³B²zªº¬ÛÃö®ÑÄy¡C



Án­µ¬O¤@ºØ{\itshape Ãþ¤ñ\/}ªº²{¶H(property); ¥¦¥i¯à¬O¦b³sÄò½d³ò¤ºªº¥ô·N­È¡C 
µM¦Ó¹q¸£«o¬O{\itshape ¼Æ¦ì\/}ªº¡A¥u¯àªí¥Ü½d³ò¤¤ªº´X­ÓÂI¡C ¬°¤FÅýÁn­µ¯à¦s¶i°O¾ÐÅé¡A
­µ®Ä¥d¥Î¤F¤@ºØ¥sÃþ¤ñ/¼Æ¦ìÂà´«¾¹(A/D©ÎADC)¡A±NÁnªi«H¸¹(¥H¹qÀ£ªí¥Ü)
Âà´«¦¨¼Æ¦r¥H¨ÑÀx¦s¡C ¥t¥~¤]¥Î¤@­Ó¼Æ¦ì/Ãþ¤ñÂà´«¾¹(D/A©ÎDAC)
±N¼Æ¦r¤Ï¹L¨ÓÂà´«¦¨¹qÀ£¡A°e¶i³â¥z¡Aµo¥XÁn­µ¡C



¥Ñ\idx{Ãþ¤ñÂà´«¦¨¼Æ¦ì}ªº¹Lµ{¡A¥s§@¨ú¼Ë¡A·|²£¥Í¤@¨Ç»~®t¡C
¦³¨â­Ó¦]¯À¨M©wÂà´«¹LªºÁn­µÂà±o¦h¦n¡C ¨ä¤@¬O{\itshape ¨ú¼Ë²v\/}¡A¬O¦b³æ¦ì®É¶¡¤º¡A
µwÅé¹ïÁn­µ§@´X¦¸¨ú¼Ë(³q±`¥Î¨C¬í´X¦¸©Î»®¯÷¬°³æ¦ì)¡C 
¸û§Cªº\idx{¨ú¼Ë²v}ªí¥ÜªºÃþ¤ñ«H¸¹´N¤ñ¸û¤£·Ç½T¡C ¨ä¤G¬O¼Ë¥»¤j¤p¡A
¬O¨C¤@¦¸¨ú¼Ëªº¦³®Ä½d³ò¡A³q±`¥Î bit ªí¥Ü¡C 
¦³®Ä½d³ò¶V¤j¡A´N¯à¨ú¥X¸û·Ç½Tªº¼Æ¦ì¤ÆÁn­µ¡C



­µ®Ä¥d¤@¯ë¥Î8©Î16 bit¨ú¼Ë¡A¨ú¼Ë²v«h¦b 4000-44000Hz ¤§¶¡¡C 
¨ú¼Ë¤]¤À¬°³æÁn¹D(³æ­µ)©ÎÂùÁn¹D(¥ßÅéÁn)¡C



{\itshape \idx{FM ¦X¦¨}\/}¬O²£¥ÍÁn­µªºÂÂ¤èªk¡C ¥¦§â¤£¦Pªºªi«¬
(¦p¥¿©¶ªi¡A¤èªi¡A¤T¨¤ªiµ¥)²Õ¦X°_¨Ó²£¥ÍÁn°T¡C \idx{FM
¦X¦¨}µwÅé¤W¤ñ¸ûÂ²³æ¡A
¦ý¬O¸ûÃøµ{¦¡¤Æ¡A¤]¸û¨S¼u©Ê¡C «Ü¦h­µ®Ä¥d¤´´£¨Ñ FM ¦X¦¨¥H©M¹L¥hªº­µ®Ä¥d¤Î³nÅé¬Û®e¡C
³q±`·|´£¨Ñ´X²Õ¿W¥ßªºÁn­µ²£¥Í¾¹¤Î{\itshape »y­µ\/}¡C



{\itshape \idx{ªi«¬ªí¦X¦¨}\/}µ²¦X¤F D/A Âà´«ªº¼u©Ê¤Î FM ¦X¦¨ªº¦hÀW¹D¯à¤O¡C
¥Î³oºØ¤èªk¡A¼Æ¦ì»y­µ¥i¥H¤U¸ü¨ì±M¥Îªº°O¾ÐÅé¤º¡A¦b¤£¤Ó»Ý­nCPU­t¸üªº±¡ªp¤U¼½©ñ¡A
¦X¨Ö¤Î­×§ï¡C ³Ì·s¾Uªº­µ®Ä¥d³£¤ä´©ªi«¬ªí¦X¦¨¡C



¦h¼Æ­µ®Ä¥d´£¨Ñ{\itshape ²V­µ\/}¯à¤O¡A¥i±N¤£¦P°T¸¹¨Ó·½ªºÁn­µ¥[¥H¦X¨Ö¡A¨Ã±±¨î¼W¯q
±j«×¡C



{\itshape \idx{MIDI}\/}¬O«ü¼Ö¾¹¼Æ¦ì¤¶­± (Musical Instrument Digital Interface)¡A
¬O¤@ºØ¥i¥HÅý¼Ö¾¹©¼¦¹·¾³qªº³nµwÅé¨ó©w¡C ¦b MIDI bus ¤W¶Ç°eªº¨Æ¥ó¥i¥H¦s¦¨ MIDI
ÀÉ¡A
¨Ñ¤é«á­×§ï¤Î­«¼½¡C «Ü¦h­µ®Ä¥d´£¨Ñ MIDI ¤¶­±¡A§Y¨Ï¨S¦³¡A¾a­µ®Ä¥d¥»¨­ªº¯à¤O¡A
¤´µM¥i¥H¼½©ñ MIDI ÀÉ¡C



{\itshape \idx{MODÀÉ}\/}¬O¹q¸£²£¥Íºq¦±±`¥Îªº®æ¦¡¡C °£¤F°O¿ý­µ²Å¥~¡A
ÀÉ®×¤]°O¿ý¤F¼Ö¾¹(©Î»y­µ)ªº¼Æ¦ì¨ú¼Ë¡C
MODÀÉ¬O¥ÑAmiga¹q¸£¨Óªº¡A¦ý¥u­n¦³¾A·íªº³nÅé¡A
¦b¥]¬ALinuxªº¨ä¥¦¨t²Î¤W¤]¯à¼½©ñ¡C




\section{¤ä´©ªºµwÅé}





³o¤@¸`¦C¥X¥Ø«e Linux ¤ä´©ªº\idx{­µ®Ä¥d}¤Î­µ®Ä¤¶­±¡A
¥H¼¶¼g®É³Ì·sªº Linux ®Ö¤ß¬°°ò·Ç¡A¦b¥»¤å¼¶¼g®É¬O 2.2.4¡C ³o¥÷¤å¥ó¥u¹ï¥]§t¦b¼Ð·Ç
Linux ®Ö¤ß½X¤¤ªº­µ®ÄÅX°Êµ{¦¡¦³®Ä¡C Linux
¤W©|¦³¨ä¥¦ªº­µ®ÄÅX°Êµ{¦¡¦s¦b(½Ð¬Ý«á­±Ãö©ó ¿ï¾Ü©Êªº­µ®ÄÅX°Êµ{¦¡ ¤@¸`)



Ãö©ó Linux ¤ä´©ªº­µ®Ä¥d¥H¤Î¥¦ªº¥\¯àªº³Ì·s®ø®§¡A½Ð¬Ý Linux
®Ö¤ß­ì©l½X¤¤ªºÀÉ®×¡A³q±`¸Ë¦b\url{/usr/src/linux/Documentation/sound}
¥Ø¿ý¤U¡C



¦b³o¥÷HOWTO¸Ìªº¸ê°T¹ïIntel¥­¥xªºLinux¦³®Ä¡C



­µ®Ä¥dÅX°Êµ{¦¡À³¸Ó¤]¯à¤ä´©\idx{Alpha}¥­¥x¤Wªº¦h¼Æ­µ®Ä¥d¡C
µM¦Ó¦³ªº¥dÁöµM¦b i386 ¥­¥x¤W¤u§@±o«Ü¦n¡A«o·|©M Alpha ¨t²Î¤Wªº¨ä¥¦³]³Æ¦ì§}¬Û½Ä¬ð¡C
©Ò¥H³q±`¨S¸Õ¹Lªº¸Ü¡A¨S¿ìªk±oª¾¤@¤ù¥d¨ì©³¯à¤£¯à¥Î¡C
©Ò¥H°£«D¿Ë¦Û¹Á¸Õ¹L¡A¤£µM¤]¤£¯à½T©w¤@¤ù­µ®Ä¥d¯à¤£¯à¥Î¡C



¦³³ø§iºÙ¦b\idx{PowerPC}¥­¥x¤Wªº Linux ­µ®ÄÅX°Êµ{¦¡ÁÙµLªk¨Ï¥Î¡A
¤£¹L±N¨ÓÀ³¸Ó·|¤ä´©¡C



¦bMIPS¥­¥xªºLinux¥i¥H±N­µ®ÄÅX°Êµ{¦¡±¾¶i®Ö¤ß¡A
¦³³¡¥÷\idx{MIPS}¾÷¾¹¦³EISA´¡¼Ñ¡A©ÎªÌ¤º«Øªºµo­µµwÅé¡C
Linux MIPS group §i¶D§Ú¡A¦b±N¨Ó¥L­Ì«Ü¦³¿³½ì¥[¤J¹ï­µ®Äªº¤ä´©¡C



Linux ®Ö¤ß¤]¬° Atari ¤Î Amiga ¥­¥xªº Linux ¤@­Ó¤À¶}ªºÅX°Êµ{¦¡¡A
¥¦¹B¥Î³o¨Ç¾÷¾¹¤º«ØµwÅé¡A¹ê§@¤F©M Intel ¥­¥x¤W Linux ¬Û®eªº¤l¶°¦X¡C



\idx{SPARC}¥­¥xªº Linux ¥Ø«e¦b¬Y¨Ç¾÷«¬¤W¤w¤ä´©­µ®Ä¡C
¦³¤H©M§Ú»¡¦b¥D¾÷ªO¤Wªº­µ®ÄµwÅé¤w¥i¥H¥Î¡A¦ý¥~³¡ DSP ­µ®Ä²°ÁÙ¥¼¤ä´©¡A¦]¬° Sun
¨Ã¨S¦³µ¹¬ÛÃö³W®æ¸ê®Æ¡C




\subsection{­µ®Ä¥d}





¥H¤U\idx{­µ®Ä¥d}¬° Linux ®Ö¤ßÅX°Êµ{¦¡¤ä´©¡C
¨ä¤¤¦³¨Ç¬O­µ®Ä´¹¤ù¦WºÙ¦Ó«D­µ®Ä¥d¦WºÙ¡C ³o­Ó¦Cªí¨Ã¤£¬O§¹¾ãªº¦Cªí¡A
¦]¬°¦³«Ü¦h¨ä¥¦¥d¬O©M¨ä¤¤ªº¤@¨Ç¥d¬Û®e¡C ¦³¨Ç¼t°Ó¹j¤@¬q®É¶¡´N§ïÅÜ³]­p¡A
¨Ï·s­µ®Ä¥d©MÂÂªº²£¥Í¤£¬Û®e©Ê¡A¦ý«oÁÙ¥ÎÂÂªº«¬¸¹¡A§ó¼W¥[¤F§xÂZ¡C

\begin{itemize}
\item 6850 UART MIDI Interface
\item AD1816/AD1816A based cards
\item ADSP-2115
\item ALS-007 based cards (Avance Logic)
\item ATI Stereo F/X (°±²£)
\item Acer FX-3D
\item AdLib (°±²£)
\item Audio Excel DSP 16
\item AudioDrive
\item CMI8330 ­µ®Ä´¹¤ù
\item Compaq Deskpro XL onboard sound
\item Corel Netwinder WaveArtist
\item Crystal CS423x
\item ESC614
\item ESS1688 ­µ®Ä´¹¤ù
\item ESS1788 ­µ®Ä´¹¤ù
\item ESS1868 ­µ®Ä´¹¤ù
\item ESS1869 ­µ®Ä´¹¤ù
\item ESS1887 ­µ®Ä´¹¤ù
\item ESS1888 ­µ®Ä´¹¤ù
\item ESS688 ­µ®Ä´¹¤ù
\item ES1370 ­µ®Ä´¹¤ù
\item ES1371 ­µ®Ä´¹¤ù
\item Ensoniq AudioPCI (ES1370)
\item Ensoniq AudioPCI 97 (ES1371)
\item Ensoniq SoundScape (¤Î¥ÑReveal©MSpea¥Í²£ªº¬Û®e¥d)
\item Gallant SC-6000
\item Gallant SC-6600
\item Gravis Ultrasound
\item Gravis Ultrasound ACE
\item Gravis Ultrasound Max
\item Gravis Ultrasound with 16 bit sampling option
\item HP Kayak
\item Highscreen Sound-Booster 32 Wave 3D
\item IBM MWAVE
\item Logitech Sound Man 16
\item Logitech SoundMan Games
\item Logitech SoundMan Wave
\item MAD16 Pro (OPTi 82C928¡A82C929¡A82C930¡A82C924 ´¹¤ù)
\item Media Vision Jazz16
\item MediaTriX AudioTriX Pro
\item Microsoft Windows Sound System (MSS/WSS)
\item MiroSOUND PCM12
\item Mozart (OAK OTI-601)
\item OPTi 82C931
\item Orchid SW32
\item Personal Sound System (PSS)
\item Pinnacle MultiSound
\item Pro Audio Spectrum 16
\item Pro Audio Studio 16
\item Pro Sonic 16
\item Roland MPU-401 MIDI interface
\item S3 SonicVibes
\item SY-1816
\item Sound Blaster 1.0 
\item Sound Blaster 2.0
\item Sound Blaster 16
\item Sound Blaster 16ASP
\item Sound Blaster 32
\item Sound Blaster 64
\item Sound Blaster AWE32
\item Sound Blaster AWE64
\item Sound Blaster PCI 128
\item Sound Blaster Pro
\item Sound Blaster Vibra16
\item Sound Blaster Vibra16X
\item TI TM4000M notebook
\item Terratec Base 1
\item Terratec Base 64
\item ThunderBoard
\item Turtle Beach Maui
\item Turtle Beach MultiSound Classic
\item Turtle Beach MultiSound Fiji
\item Turtle Beach MultiSound Hurricane
\item Turtle Beach MultiSound Monterey
\item Turtle Beach MultiSound Pinnacle
\item Turtle Beach MultiSound Tahiti
\item Turtle Beach WaveFront Maui
\item Turtle Beach WaveFront Tropez
\item Turtle Beach WaveFront Tropez+
\item VIA chip set
\item VIDC 16-bit sound
\item Yamaha OPL2 ­µ®Ä´¹¤ù
\item Yamaha OPL3 ­µ®Ä´¹¤ù
\item Yamaha OPL3-SA1 ­µ®Ä´¹¤ù
\item Yamaha OPL3-SA2 ­µ®Ä´¹¤ù
\item Yamaha OPL3-SA3 ­µ®Ä´¹¤ù
\item Yamaha OPL3-SAx ­µ®Ä´¹¤ù
\item Yamaha OPL4 ­µ®Ä´¹¤ù
\end{itemize}




¹ï"¬Û®e"¤@µü¦³¨Ç¸Ü¥ý»¡¦b«e: ÁöµM¤j¦h¼Æ­µ®Ä¥d¸¹ºÙ{\itshape ¬Û®e©óÁnÅQ¥d\/}¡A
¦ý¯à¥ÎLinuxªºÁnÅQ¥dÅX°Êµ{¦¡ªº¥d¤Ö¤§¤S¤Ö¡C
³o¨Ç¥d¦pªG¥Î MSS/WSS ©Î MAD16 ÅX°Êµ{¦¡³q±`·|§ó¦n¡C ¥u¦³¯u¥¿¥Ñ Creative 
Labs °µªºÁnÅQ¥d(¥Î Creative ªº´¹¤ù¡A¦p SoundBlaster16 Vibra)¡A©Î MV Jazz16 ¤Î
ESS688/1688 ªº¥d¤~¯àµL°ÝÃDªº¥ÎÁnÅQ¥dÅX°Êµ{¦¡¡C ¦b©Ò¿× "ÁnÅQ¥d¬Û®eªº16¦ì¤¸
­µ®Ä¥d" ¤W¥ÎÁnÅQ¥dÅX°Êµ{¦¡¥u¬O®ö¶O®É¶¡½}¤F¡C



Linux ®Ö¤ß¤]¤ä´©¦b­µ®Ä¥d¤Wªº SCSI ¤¶­±(ProAudioSpectrum 16)¤Î±MÄÝ¥úºÐ¾÷¤¶­±
(¦pÁnÅQ¥d Pro)¡C ½Ð¬Ý Linux \onlynameurl{SCSI HOWTO} ¤Î \onlynameurl{CDROM HOWTO} ¤å¥ó¥H§@§ó²`¤J¤F¸Ñ¡C

(Ä¶ª`: CDROM HOWTO ¤¤¤åª©¦b \nameurl{http://www.linux.org.tw/CLDP/CDROM-HOWTO.html}{http://www.linux.org.tw/CLDP/CDROM-HOWTO.html})



¦b­µ®Ä¥d¤W±`¨£ªº\idx{·n±ì}¤¶­±¡A¤]¦³­Ó®Ö¤ß¥i¸ü¤J¼Ò²Õ¤ä´©¡C

ª`·N³o¸Ì´£¨ìªºSCSI¡ACD-ROM¡A·n±ì¤Î­µ®ÄÅX°Êµ{¦¡©¼¦¹¬OµLÃöªº¡C




\subsection{¿ï¾Ü©Êªº­µ®ÄÅX°Êµ{¦¡}



Linux ®Ö¤ßªº­µ®Ä¥dÅX°Êµ{¦¡³Ì¦­¬O¥Ñ Hannu Savolainen ¼gªº¡C Hannu «á¨ÓÄ~Äò¶}µo
Open Sound System¡A¤@­Ó¥Ñ 4Front Technologies ¥X°â¡A¤ä´©¦hºØ Unix
¨t²Îªº°Ó·~ª©¥»­µ®ÄÅX°Êµ{¦¡¡C Red Hat Software «á¨Ó¸ê§U Alan Cox
¨Ó¼W±j®Ö¤ß­µ®ÄÅX°Êµ{¦¡¡A¨Ï¥¦­Ì§¹¥þ¼Ò²Õ¤Æ¡C «Ü¦h¨ä¥L¤H¤]¨ó§U°£¿ù¡A
¥H¤Îµo®i·s­µ®Ä¥dªºÃB¥~ÅX°Êµ{¦¡¡C ³o¨Ç­×§ï¹LªºÅX°Êµ{¦¡¥Ñ Red Hat ¦b¥L­Ìªº 5.0
¨ì 5.2 ª©µo¦æ®M¥ó¤¤¨Ï¥Î¡C ¥Ø«e³o¨Ç§ïÅÜ¤w¸g¦b 2.0 ª©¾ã¦X¶i¼Ð·Ç®Ö¤ß¤¤¡C Alan Cox
¬O²{¦b¼Ð·Ç®Ö¤ß­µ®ÄÅX°Êµ{¦¡ªººûÅ@¤H¡AÁöµM Hannu
¨C¹j¨Ç®É­Ô¤´·|±a¶i¤@¨Ç¥Ñ°Ó·~ª©¤À³Î¥X¨Óªºµ{¦¡½X¶i¨Ó¡C



°Ó·~ª©¥»ªº Open Sound System ÅX°Êµ{¦¡(¥Ñ 4Front Technologies
µo®i)¤ñ¸û°_¨Ó®e©ö³]©w¡A¤]¤ä´©¸û¦hªº¥d¡A¯S§O¬O·sªº­µ®Ä¥d¡C
¥¦¤]©M¹ï¼Ð·Ç®Ö¤ßÅX°Êµ{¦¡¼gªºÀ³¥Îµ{¦¡¬Û®e¡C ¯ÊÂI¬O±z­nªá¿ú¡A¤]¤£·|±o¨ì­ì©l½X¡C
±z¥i¦b¨M©w­n¤£­n¶R¥H«e¥ý¤U¸ü§K¶O¸Õ¥Îª©¡C §ó¸Ô²Óªº¸ê°T¥i¦b\idx{4Front
Technologies}ªººô¯¸\nameurl{http://www.opensound.com}{}¨ú±o¡C



Jaroslav Kysela¤Î¨ä¥L¤H¬°Gravis UltraSound­µ®Ä¥d¼g¤F¥i¿ïªºÅX°Êµ{¦¡¡C
³o­Ó­pµe«á¨Ó§ï¦W¬°{\itshape Advanced Linux Sound Architecture\/}(¥ý¶i Linux
­µ®Ä¬[ºc¡AALSA)¡A²£¥Í¤F¤@­Ó¥L­Ì»{¬°§ó¥[¤@¯ë¥i¥Î¡A
¥B¥i¥Î¨Ó¨ú¥N®Ö¤ß¤¤ªº­µ®ÄÅX°Êµ{¦¡¡C ALSA ÅX°Êµ{¦¡¤ä´©³\¦h±`¨£ªº­µ®Ä¥d¡A
¦Ó¥B¬O¥þÂù¤u¡A¥þ¼Ò²Õ¤Æ¡A©M²{¦s®Ö¤ß¤¤ªº­µ®Ä¬[ºc¬Û®e¡C ALSA ­pµeªº¥D­nºô¯¸¦b
\nameurl{http://www.alsa-project.org}{}¡C ¦³­Ó¥t¥~ªº
"Alsa-sound-mini-HOWTO"¡A
¸Ì­±¥D­n¬O¦p¦ó½sÄ¶¤Î¦w¸Ë³o¨ÇÅX°Êµ{¦¡¡C



Markus Mummert (\onlynameurl{mum@mmk.e-technik.tu-muenchen.de}¼g¤Fµ¹ Turtle Beach MultiSound(classic)
¡ATahiti¡A¤ÎMonterey­µ®Ä¥d¥ÎªºÅX°Êµ{¦¡¡A¤å¥ó¤¤´£¨ì:

\begin{quotation}
"It is designed for high quality hard disk recording/playback without
losing sync even on a busy system¡C Other features such as wave
synthesis¡AMIDI and digital signal processor (DSP) cannot be
used¡C Also¡Arecording and playback at the same time is not
possible¡C It currently replaces VoxWare and was tested on several
kernel versions ranging from 1.0.9 to 1.2.1¡C Also¡Ait is installable
on UN*X SysV386R3.2 systems."\\ 
(¥¦¬O¬°°ª«~½èµwºÐ¿ý©ñ­µ³]­p¡A§Y¨Ï¨t²Î­t¸ü¤j¡A¤]¤£·|±¼­µ¡C ¨ä¥¦¦pªi§Î¦X¦¨¡A
MIDI ¤Î¼Æ¦ì«H¸¹³B²z¾¹ (DSP) «h¤£¯à¨Ï¥Î¡C ¤]¤£¯à¦P®É¿ý©ñ­µ¡C ¥¦¥Ø«e¥i¨ú¥N VoxWare
¡A¨Ã¦b1.0.9¨ì1.2.1ª©®Ö¤ß´ú¸Õ¹L¡C ¥¦¤]¥i¥H¸Ë¦b UN*X SysV386R3.2 ¨t²Î¤W¡C)
\end{quotation}




¥i¦b\nameurl{http://www.cs.colorado.edu/~mccreary/tbeach}{}§ä¨ì¡C



Kim Burgaard (\onlynameurl{burgaard@daimi.aau.dk}
¼g¤Fµ¹ MPU-401 \idx{MIDI} ¤¶­±¥ÎªºÅX°Êµ{¦¡¤Î¤½¥Îµ{¦¡¡C Linux Software Map
µ¹¤©¦p¤Uªº¤¶²Ð:

\begin{quotation}
"A device driver for true Roland MPU-401 compatible MIDI interfaces
(including Roland SCC-1 and RAP-10/ATW-10)¡C Comes with a useful
collection of utilities including a Standard MIDI File player and
recorder.\\ 
(¤@­Óµ¹©M MPU-401§¹¥þ¬Û®eªº MIDI ¤¶­±(¥]¬A Roland SCC-1¤ÎRAP-10/ATW-10) ¥Î
ªºÅX°Êµ{¦¡¡C ¤]ªþ±a¤F¦n¥Îªº¤½¥Îµ{¦¡¡A¥]¬A¼Ð·Çªº MIDI ÀÉ¼½©ñ¾¹¤Î¿ý»sµ{¦¡¡C)
\end{quotation}


\begin{quotation}
Numerous improvements have been made since version 0.11a¡C Among other
things¡Athe driver now features IRQ sharing policy and complies with
the new kernel module interface¡C Metronome functionality¡Apossibility
for synchronizing e.g¡C graphics on a per beat basis without losing
precision¡Aadvanced replay/record/overdub interface and much¡Amuch
more."\\ 
(±q 0.11a ª©°_¡A¤S¶i¦æ¤F¦h¶µ§ï¶i¡C ¨ä¤¤¥]¬A¤F IRQ ¦@¥Î¡AÁÙ¦³¥i½sÄ¶¬°®Ö¤ß¼Ò²Õ¡C
¸`©ç¾¹¥\¯à¥i¹F¨ì¨C¤@©ç³£¦P¨B¦Ó¤£³à¥¢·Ç«×¡A§ï¨}ªº­«¼½/¿ý­µ¤Îoverdub(?)
¤¶­±¤Î«Ü¦h«Ü¦h¡C)
\end{quotation}




¥i¦b\nameurl{ftp://metalab.unc.edu/pub/Linux/kernel/sound/mpu401-0.2.tar.gz}{}
§ä¨ì¡C



­µ®Ä¥d¦bLinux¤UÁÙ¦³¤@­Ó·s©_¥Î³~ -- ·í§@·~¾l\idx{µL½u¹q}ªº½ÕÅÜ¾¹¡C
2.1.x ª©¤Î¥H«áªº®Ö¤ß¥]§t¤F¤@­Ó§Q¥ÎÁnÅQ¥d¤Î Windows Sound System ¬Û®e¥d¨Ó¹ê§@
1200 bps AFSK ¤Î 9600 bps FSK «Ê¥]¨ó©wªºÅX°Êµ{¦¡¡C
¸Ô±¡½Ð¨£ Linux AX25 HOWTO¡C (§Ú(§@ªÌ)¤]¬O­Ó¤õ»L±Ú¡A¥N¸¹ VE3ICH)




\subsection{PC³â¥z}





¥t¥~ÁÙ¦³¤@­Ó¤£­nÃB¥~µwÅéªºÅX°Êµ{¦¡¡A¥¦§Q¥Î\idx{PC³â¥z}¡C
¥¦©M­µ®ÄÅX°Êµ{¦¡³nÅé¤W¤jÅé¬Û®e¡A¦ý¥i¥H·Q¨£ªº¡A¥¦ªº­µ½è®t¦h¤F¡ACPU­t¾á¤]°ª¦h¤F¡C
¥¦²£¥Íªºµ²ªGµø¦U§O³â¥zªº¯S©Ê¦Ó¦³«Ü¤j®t§O¡C ½Ð¬Ý¤ºªþªº¤å¥ó¥H§ó²`ªº¤F¸Ñ¡C



³o­Ó³nÅé¤w¦³¤@¬q®É¶¡¨S¦³§ó·s¤F¡A¥i¦b
\nameurl{ftp://ftp.infomatik.hu-berlin.de/pub/os/linux/hu-sound/}{}§ä¨ì¡C




\subsection{¥­¦æ(¦Lªí¾÷)°ð}





ÁÙ¦³­Ó¿ï¾Ü¡A´N¬O¥Î¥­¦æ°ð¥[¤W¤@¨ÇªF¦è°µ¼Æ¦ì/Ãþ¤ñÂà´«¡C ¥¦ªº­µ½è¤ñ PC ³â¥z¦n¡A¦ý
CPU ­t¸ü¤´¶û°ª¡C «e¤@¤p¸`´£¨ìªº³â¥zÅX°Êµ{¦¡¦³¤ä´©¡A¥¦ÁÙ¥]§t¤F»s³y©Ò»ÝµwÅéªº»¡©ú¡C




\section{¦w¸Ë}





­n¦bLinux¤U¤ä´©­µ®Ä¡A¥²¶·¥ý¶i¦æ¥H¤U¨BÆJ:

\begin{enumerate}
\item ¦w¸Ë­µ®Ä¥d
\item ³]©wÀH´¡§Y¥Î(Plug and Play)(¦pªG¥i¥H/»Ý­nªº¸Ü)
\item «Ø³y®Ö¤ß¡A¨Ï¤§¤ä´©­µ®Ä
\item «Ø³y³]³ÆÀÉ
\item ±Ò°ÊLinux®Ö¤ß¡A¨Ã´ú¸Õ
\end{enumerate}


¦pªG±z¨Ï¥Î Red Hat Linux¡A¸Ì­±¦³­Ó¤½¥Îµ{¦¡¥s {\ttfamily sndconfig}¡A
¦b¦h¼Æ±¡§Î¤U¯à¦Û°Ê°»´ú±zªº­µ®Ä¥d¡A¨Ã³]©w©Ò»Ýªº³]©wÀÉ¡A¸ü¤J©Ò»ÝªºÅX°Êµ{¦¡¡C
¦pªG±z¨Ï¥Î Red Hat §Ú«ØÄ³±z¸Õ¸Õ¥¦¡C ¦pªG¥¦¦¨¥\¤F¡A¥»³¹«á­±ªº«ü¥Ü´N¥i¥H¸õ¹L¡C

¦pªG {\ttfamily sndconfig} ¥¢±Ñ¤F¡A©Î±z¨Ï¥Î§Oªºµo¦æ®M¥ó¡A
©Î±z·Q­n¸g¥Ñ¤â°Ê³]©w§ó¶i¤@¨B¤F¸Ñ¾ã­Ó¹B§@¹Lµ{¡A©³¤U±N·|¸Ô¥[¸Ñ»¡¨C¤@¨BÆJ¡C




\subsection{¦w¸Ë­µ®Ä¥d}





«ö·Ó»¡©ú®Ñªº«ü¥Ü¡A¦w¸ËµwÅé¡A©Î¬O½Ð¼t°Ó¨Ó¸Ë¡C



ÂÂªº­µ®Ä¥d³q±`¦³¶}Ãö©Î\idx{¸õ½u}¡A¥H³]©wIRQ¡ADMA³q¹Dµ¥¡A½Ð§â³o¨Ç³]©w°O¤U¨Ó¡C
¦pªG±z¤£½T©w­n«ç»ò½Õ¡A´N·Ó¥X¼t­È¡C
¥i¯àªº¸Ü¡AÁ×§K©M¨ä¥¦³]³Æ(¦pºô¸ô¥d¡ASCSI¥d¡A
¥­¦æ¤Î¦ê¦C°ð)¬Û½Ä¡C



­Y±z¦bDOS¤U¦³¨Ï¥Î­µ®Ä¥d¡A³q±`À³¸Ó³]¦¨©MDOS¤U¤@¼Ë¡C ¤£¹L¦³¨Ç±¡ªp¤U(¯S§O¬OPnPªº
¥d)¤]¥i¯à­n³]¦¨©MDOS¤£¤@¼Ëªº­È¡C ³o®É¥i¯à­n¹êÅç¤@¤U¡C




\subsection{³]©wÀH´¡§Y¥Î}



²{¦b¦h¼Æ­µ®Ä¥d¥ÎÀH´¡§Y¥Î¨ó©w¨Ó³]©w I/O ¦ì§}¡A¤¤Â_¤Î DMA ³q¹D¸¹½X¡C
¦pªG±z¨Ï¥Îªº¬O³]©w­È©T©wªº©Î¬O¦³¸õ½u½Õ¾ãªº¡A¨º»ò±z¥i¥H¸õ¹L³o¤@¸`¡C

¦b 2.2 ª©®Ö¤ß¤¤¡A¤´µMÁÙ¨S¦³§¹¥þ¤ä´©ÀH´¡§Y¥Î¡C ¸û¦nªº¸Ñ¨M¤§¹D¬O¨Ï¥Î³\¦h Linux
µo¦æ®M¥ó¤¤©Òªþ isapnp ¤u¨ã(©Î±z¤]¥i¥H±q Red Hat ªººô¯¸\nameurl{http://www.redhat.com/}{}¤U¸ü)¡C

­º¥ý¬d¬Ý±zªº Linux ¦w¸Ë®M¥ó¤¤ªº¤å¥ó¡C ¥¦¥i¯à¦­À°±z³]©w¦nÀH´¡§Y¥Î¤F¡A
©ÎªÌ¥i¯à©M©³¤UÁ¿ªº²¤¦³¤£¦P¡C ¦pªG±z­n¤â°Ê³]©w¡Aisapnp ¤u¨ãªº²Ó¸`¥i¥H¦b man
page ¤¤§ä¨ì¡C Â²³æªº»¡¡A±z­n¸g¾úªºµ{§Ç¦³:

\begin{itemize}
\item ¨Ï¥Î {\ttfamily pnpdump} ¨Ó§ì¨ú©Ò¦³±zªºÀH´¡§Y¥Î³]³Æªº¥i¯à³]©w¡A§âµ²ªG¦s¦¨
\url{/etc/isapnp.conf}¡C
\item ¥Ñ¨ä¤¤¿ï¾Ü©M¨ä¥¦³]³Æ¤£¬Û½Ä¬ðªº³]©w¡A¨Ã±N¦b
\url{/etc/isapnp.conf} ¤¤ªº¬Û¹ïÀ³¦æ³]¦¨¦³®Ä¦æ(uncomment)¡C
§O§Ñ¤F§â±µªñÀÉ§Àªº{\ttfamily (ACT Y)}«eªºµù¸Ñ²Å¸¹®ø±¼¡C
\item ½T©w¶}¾÷®É·|°õ¦æ¨ì {\ttfamily isapnp}¡A³o³q±`¥Ñ¶}¾÷°õ¦æªº©R¥O½Z¤§¤@§¹¦¨¡C
­«¶}¾÷©Î¤â°Ê°õ¦æ {\ttfamily isapnp}¡C
\end{itemize}


¦pªG¬°¤F¤@¨Ç²z¥Ñ±zµLªk©Î¤£·Q¨Ï¥Î isapnp ¤u¨ã¡AÁÙ¦³´XºØ¿ï¾Ü¡C ¦pªG±z¦b
Microsoft Windows 95 ©Î 98¡A±z¥i¥H§Q¥Î¸Ë¸mºÞ²z­û¨Ó³]©w¥d¡AµM«á¥Î loadlin
·x¶}¾÷¶i¤J Linux¡C ½T©w Linux ¤Î Windows ¨Ï¥Î¬Û¦Pªº³]©w°Ñ¼Æ¡C

¦pªG±z¦b DOS ¤U¨Ï¥Î³o¤ù¥d¡A±z¥i¥H¥Î SoundBlaster16 PnP ¥dªþªº {\ttfamily icu}
¤½¥Îµ{¦¡¡AµM«á¥Î LOADLIN ·x¶}¾÷¶i Linux¡C ¤@¼Ë¡A½T©w DOS ©M Linux
¥Î¤@¼Ëªº³]©w¡C

¦³¨Ç­µ®Ä¥dÅX°Êµ{¦¡»Ý­n³nÅé¨Óªì©l¤Æ¥dªºÀH´¡§Y¥Î¥\¯à¡C
½Ð¬Ý¥dªºÅX°Êµ{¦¡ªº»¡©ú¤å¥ó±o¨ì§ó¸Ô²Ó¸ê°T¡C




\subsection{³]©w®Ö¤ß}





¦w¸Ë®É±z¥Îªº¬O¹w¥ý½sÄ¶¹Lªº®Ö¤ß¡A¥¦­Ì³q±`¬O¤£¤ä´©­µ®Äªº¡C ©Ò¥H³Ì¦n¦Û¤v½sÄ¶¾A¦X¦Û
¤v¥Îªº®Ö¤ß¡C ¦Ó¥B¡A±z¤]¥i¯à·Q­nÂÇ¦¹¨Ó¤É¯Å¨ì§ó·sª©ªº®Ö¤ß¡A©Î¬OÁY¤p®Ö¤ßÅé¿n¡A¼W¥[
¥i¥Îªº°O¾ÐÅé¡C µM«á¡A·í±zªº­µ®Ä¥d¯à¨Ï¥Î«á¡A±z¥i¯à·Q­««Ø®Ö¤ß¡A
§â­µ®ÄÅX°Êµ{¦¡°µ¦¨¼Ò²Õ¡C



¦b¦p¦ó«Ø³y®Ö¤ß¤è­±¡A±zÀ³¸Ó°Ñ¦Ò
\onlynameurl{Linux Kernel HOWTO}¡C §Ú¦b³o¸Ì¥u´£©M­µ®Ä¥d¬ÛÃöªº³¡¥÷¡C
(Ä¶ª`: ¤¤¤åª©¦b\nameurl{http://www.linux.org.tw/CLDP/Kernel-HOWTO.html}{http://www.linux.org.tw/CLDP/Kernel-HOWTO.html}



¦pªG±zÁÙ¨S¦³½sÄ¶®Ö¤ß¡A¥[¤J­µ®Ä¤ä´©ªº¸gÅç¡A¥ýÅª¤@¤U®Ö¤ßÅX°Êµ{¦¡¸Ìªº¬ÛÃö¤å¥ó
(¯S§O¬OÃö©ó±zªº­µ®Ä¥dªº³¡¥÷)¬O­Ó¤£¿ùªº¥D·N¡C
³o¨ÇÀÉ®×¥i¥H¦b®Ö¤ß¤å¥ó¥Ø¿ý¤¤§ä¨ì¡A³q±`¦b
\url{/usr/src/linux/Documentation/sound}¡C ¦pªG¨S¦³³o­Ó¥Ø¿ý¡A
±z¥i¯àÁÙ¦b¨Ï¥Î«D±`ÂÂªº®Ö¤ß¡A©Î¬O®Ú¥»¨S¸Ë®Ö¤ß­ì©l½X¡C



·Ó¤@¯ë³y®Ö¤ßªºµ{§Ç¨Ó´N¦n¡C ¥Ø«e³]©w®Ö¤ß¦³¤TºØ¤¶­±¥i¿ï¾Ü¡C ¥Î "make xconfig
" ¥i¥s¥X¦bX11¤Uªº¹Ï§Î³]©w¤¶­±; ¥Î "make menuconfig" «h¬O¤å¦r
¼Ò¦¡ªº¿ï³æ¤¶­±; ³Ì­ì©lªº¤èªk¡A«h¬O¥Î "make config"¡A´£¨Ñ¤FÂ²³æªº¤å
¦r°Ýµª¤¶­±¡C



·í³]©w®Ö¤ß®É¡A¦b¿ï¾Ü±zªº­µ®Ä¥d¤ÎÅX°Êµ{¦¡¿ï¶µ®É·|¦³«Ü¦h¿ï¾Ü¡C
¦b³]©w¤u¨ã¤¤ªº½u¤W¨D§UÀ³¸Ó¥i¥H¬°±z¸ÑÄÀ¨C¤@­Ó¿ï¶µ¬O¤°»ò¡C ¨Ì·Ó±z©Òª¾ªº¡A
¿ï¾Ü³Ì¾A·íªº¿ï¶µ¡C 

¦b³]©w§¹©Ò¦³¿ï¶µ«á¡A±zÀ³¸Ó·Ó Kernel HOWTO ¨Ó­«·s½sÄ¶¨Ã¦w¸Ë®Ö¤ß¡C




\subsection{«Ø¥ß³]³ÆÀÉ}





¬°¤F¥¿±`ªº¾Þ§@¡A¥²¶·¬°¦U­µ®Ä³]³Æ«Ø¥ß³]³ÆÀÉ¡C ¥¿±`ª¬ªp¤U¦b±z¸Ë Linux ®É´N¤w¸g
«Ø¦n¤F¡A¥i¥H¥Î¤U¦Cªº©R¥O§Ö³tÀË¬d¤@¤U¡C ¦pªG¿é¥Xµ²ªG©M¤U­±«Ü¹³(¤é´Á¤£¤@¼Ë
¨SÃö«Y)¡A¨º»ò³]³ÆÀÉ®t¤£¦h¬O³]©w¥¿½T¤F¡C

\begin{tscreen}
\begin{verbatim}
% ls -l /dev/sndstat
crw-rw-rw-   1 root     root      14¡A  6 Apr 25  1995 /dev/sndstat
\end{verbatim}
\end{tscreen}




ª`·N¦³¤F¥¿½Tªº³]³ÆÀÉ¨Ã¤£«OÃÒ¤@¤Á§¹¬ü¤F¡C ¦b³]³Æ¯à¥Î¥H«e¡AÁÙ¬O­n¥ý¸ü¤J©Î¥[¶i
®Ö¤ßÅX°Êµ{¦¡(µy«á¦A¸Ô­z)¡C

¦b·¥¤Ö¼Æ±¡ªp¡A¦pªG±z½T«H³]³ÆÀÉ³]¿ù¡A±z¥i¥H­««Ø¥¦­Ì¡C ¦h¼Æ Linux
µo¦æ®M¥ó¦³¦³­Ó {\ttfamily /dev/MAKEDEV} ©R¥O½Z¥i¥H¥Î¨Ó°µ³o¨Æ¡C




\subsection{°_°ÊLinux¤Î´ú¸Õ}





±z¦Ü¦¹À³¸Ó¥i¥H·Ç³Æ°_°Ê·s®Ö¤ß¡A´ú¸ÕÅX°Êµ{¦¡¤F¡C ·ÓµÛ±z¥­®É¦w¸Ë¤Î­«±Ò°Ê·s®Ö¤ßªº¨B
ÆJ¥h°µ(·íµM¡A«O¯d¤@¥÷ÂÂ®Ö¤ß¥H¨¾¸U¤@)¡C



¦b°_°Ê¤¤¡AÀË¬d¤@¤U¦³¨S¦³Ãþ¦ü¥H¤Uªº°T®§:(¦pªG°T®§±²°Ê¤Ó§Ö¡A±z¥i¥H¥Î{\ttfamily dmesg}
©R¥O¦^¹L¨Ó¬d¬Ý¡C)

\begin{tscreen}
\begin{verbatim}
Sound initialization started
<Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
<Sound Blaster 16> at 0x330 irq 5 dma 0
<Yamaha OPL3 FM> at 0x388
Sound initialization complete
\end{verbatim}
\end{tscreen}




³oÀ³¸Ó©M±zªº­µ®Ä¥d¤Î¸õ½u³]©w(¦pªG¦³ªº¸Ü)¤@­P¡C



¦pªG±z¥Î¥i¸ü¤J¼Ò²Õ¡A¥H¤W°T®§´N¤£·|Åã¥Ü¥X¨Ó(°£«D±z¸ü¤J¥¦®É¡A¥Î
{\ttfamily insmod sound trace\_init=1})



·í­µ®ÄÅX°Êµ{¦¡¸ü¤J®Ö¤ß¤¤®É¡AÀ³¸Ó·|Åã¥Ü{\ttfamily Sound initialization started}
¤Î{\ttfamily Sound initialization complete}°T®§¡C ¦pªG¨S¦³¡Aªí¥Ü­µ®ÄÅX
°Êµ{¦¡¨S¦³¸ü¤J¡A³o®É±zÀ³¸ÓÀË¬d¤@¤U¥Ø«e°_°Êªº®Ö¤ß¦³¨S¦³¥[¤J­µ®ÄÅX°Êµ{¦¡¤ä´©¡C



¦pªG¦b{\ttfamily Sound initialization started}¤Î
{\ttfamily Sound initialization complete}¶¡¨S¦³¦L¥X¤°»òªF¦è¡A
¨ºªí¥Ü¨S¦³°»´ú¨ì­µ®Ä³]³Æ¡C ³o³Ì¥i¯àªº­ì¦]¬O±z¨S¦³¨Ï¥Î
¥¿½TªºÅX°Êµ{¦¡¡A¥d¨S³Q¤ä´©¡AI/O¦ì§}¤£¹ï©Î±z¥Î¤FÁÙ¨S¦³³]©w¹Lªº PnP ¥d¡C



ÅX°Êµ{¦¡°_°Ê¤¤¥ç¥i¯à¦L¥X¿ù»~¤ÎÄµ§i°T®§¡C ¦b³]©w§¹ÅX°Êµ{¦¡«á¡A­«±Ò°Ê®É¡Aª`·N³o
¨Ç°T®§¡C



¦A¨Ó¬OÀË¬d\url{/dev/sndstat}³]³ÆÀÉ¡C
Åª¨ú³o­Óª¬ºAÀÉ¥i¥H±oª¾ÃB¥~ªº¸ê°T¡A
©Î¬O­µ®Ä¥dÅX°Êµ{¦¡¬O¤£¬O¥¿½T±Ò°Ê¤F¡C ¿é¥X½d¨Ò¦p¤U:

\begin{tscreen}
\begin{verbatim}
% cat /dev/sndstat
Sound Driver:3.5.4-960630 (Sat Jan 4 23:56:57 EST 1997 root,
Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586)
Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586
Config options: 0

Installed drivers: 
Type 1: OPL-2/OPL-3 FM
Type 2: Sound Blaster
Type 7: SB MPU-401

Card config: 
Sound Blaster at 0x220 irq 5 drq 1,5
SB MPU-401 at 0x330 irq 5 drq 0
OPL-2/OPL-3 FM at 0x388 drq 0

Audio devices:
0: Sound Blaster 16 (4.13)

Synth devices:
0: Yamaha OPL-3

Midi devices:
0: Sound Blaster 16

Timers:
0: System clock

Mixers:
0: Sound Blaster
\end{verbatim}
\end{tscreen}




¥H¤Wªº©R¥O¤]¥i¯à¦^³ø¿ù»~°T®§¡C "No such file or directory" ªí¥Ü±zÁÙ
¨S«Ø³]³ÆÀÉ(°Ñ¦Ò4.3¸`)¡C "No such device" ªí¥Ü­µ®Äµ{¦¡¨S¦³¸ü¤J¡A©Î¨S
¦³³sµ²¶i®Ö¤ß¸Ì¡C ½Ð¦^¨ì 4.2 ¸`¥H­×¥¿¤§¡C



¦pªG {\ttfamily /dev/sndstat} ÀÉ¤¤¡A¦b"Card config:"¬qªº´X¦æ¼g¦b¬A¸¹¸Ì (´N¹³"
(SoundBlaster at 0x220 irq 5 drq 1,5)")¡A¥¦ªí¥Ü³]³Æ¤w¸g³]©w¤F¡A¦ý¬O¨S¦³°»
´ú¨ì¡C



²{¦b±zÀ³¸Ó¥i¥H¸Õ¸Õ©ñÂ²³æªº­µ®ÄÀÉ¤F¡C §ì½d¨Ò­µ®ÄÀÉ¡A§â¥¦¥á¨ì³]³ÆÀÉ¨ÓÀË¬d¡C

\begin{tscreen}
\begin{verbatim}
% cat endoftheworld >/dev/dsp
% cat crash.au >/dev/audio
\end{verbatim}
\end{tscreen}




(½T©w±z¨S¦³¬Ù²¤±¼¤j©ó²Å¸¹)



ª`·N¡A¦b¥­®É¥Î{\ttfamily cat}¤£¬O©ñ­µ®ÄÀÉªº¶K¤Á¤èªk¡A³o¥u¬O¬°¤FÀË¬d½}¤F¡C
¥h§ì¦X¾Aªº©ñ­µµ{¦¡(«á­±¸Ô­z)¥i¥H°µ±o§ó¦n¡C



¥u¦³¦b \url{/dev/sndstat} ¤ºªº audio devices
³o¬q¦Ü¤Ö¦C¥X¤@­Ó³]³Æªº±¡§Î¤U¡A
¥H¤W©R¥O¤~·|¦³®Ä¡C ¦pªG³o¬q¨S¦C¥X¥ô¦óªF¦è¡A±zÀ³¸ÓÀË¬d¤@¤U¬°¦ó³]³Æ¨S°»´ú¨ì¡C



¦pªG¥H¤W©R¥O¦^³ø"I/O error"¡A±z¥i¥H¥Î "dmesg"©R¥OÀË¬d
®Ö¤ß°T®§ªº§À³¡¡A¦b¨º«Ü¥i¯à·|¦³¦L¥X¿ù»~°T®§¡A¦Ó¥B¸g±`¬O "Sound: DMA (output)
timed out - IRQ/DRQ config error?"¡C ³o­Ó°T®§¬O«üÅX°Êµ{¦¡¨S¦³±q­µ®Ä¥d±o¨ìÀ³
¸Óµo¥Íªº¤¤Â_¡C ³Ì¦³¥i¯àªº­ì¦]¬O¡AIRQ ©M DMA ªº³]©w¨S¦³§@¥Î¡C 
¸Ñ¨M³o°ÝÃDªº³Ì¦n¤èªk´N¬O¤gªk·Ò¿û¡A§â©Ò¦³³o±i¥d¯à³]¨ìªº DMA ©M IRQ ·f°t³£¸Õ¸Õ¬Ý¡C



¥t¤@ºØ¥i¯à­ì¦]¬OÅX°Êµ{¦¡©M¥d¤£¬Û®e¡C ³o´X¥G¤@©w¬O©Ò¿× "ÁnÅQ¥d(Pro/16)¬Û®e¥d
" ©MÁnÅQ¥dÅX°Êµ{¦¡·f¤£°_¨Ó¡C ³oºØª¬ªp¤U±z­n§ä¥X©M±zªº¥d¯à·f°tªºÅX°Êµ{¦¡¤~
¦æ¡C(¨Ò¦p¡A¥i¥H§ë®Ñ¨ìcomp.os.linux.hardware°Q½×°Ï°Ý°Ý)



¤@¨Ç­µ®Ä½d¨ÒÀÉ¥i¦b
\nameurl{ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.Z}{}
§ì¨ì¡C



²{¦b±z¥i¥H¸Õ¸Õ¿ý­µ¤F¡C ¦pªG±zªº¥d¦³¿ý­µ¯à¤O¡A±z¥i¥H¥Î¥H¤U©R¥O¨Ó§Ö³t´ú¸Õ¤@¤U:

\begin{tscreen}
\begin{verbatim}
# ±q³Á§J­·¿ý¶i 4 ¬íÁn­µ
EDT% dd bs=8k count=4 < /dev/audio >sample.au
4+0 records in
4+0 records out
# §â­è­è¿ýªº©ñ¥X¨Ó
% cat sample.au > /dev/audio
\end{verbatim}
\end{tscreen}




ÅãµM±z¥²»Ý­n¦³³s±µ­µ®Ä¥dªº³Á§J­·¡AÁÙ­n¹ïµÛ¥¦Á¿¸Ü¡A¤~¯à¸Õ¥X¦³¨S¦³®Ä¡C ±z¤]³\¤]»Ý
­n§Ë¨ì¤@­Ó²V­µµ{¦¡¡A³]©w³Á§J­·¬°¿é¤J¸Ë¸m¡A¨Ã³]©w¨ä¿ý­µªº¼W¯q¡C



¦pªG¥H¤W´ú¸Õ³£³q¹L¤F¡A±z´N¦³²z¥Ñ¬Û«H­µ®ÄD/A¤ÎA/DµwÅé©M³nÅé³£«Ü¥¿±`¡C ¦pªG±z¸I¨ì
°ÝÃD¡A°Ñ¦Ò¤U¤@¤p¸`¡C




\subsection{°ÝÃD»P¸Ñ¨M}





¦pªG±z¶i¦æ¤F¥H¤W³¡ÆJ¡A¤´µM¦³°ÝÃD¡A¨º»ò¥i¥HÀË¬d´X­Ó¦a¤è¡C ³o¨ÇÀË¬d¥ÑÂ²³æ¨ì½ÆÂø
¨Ì§Ç±Æ¦C¡A¦pªGÀË¬d¥X°ÝÃD¡A¥ý¸Ñ¨M¡A¦A¶i¦æ¤U¤@¹DÀË¬d¡C




\subsubsection{²Ä¤@¨B: ½T©w±z¥Î±z¦Û¤v½sÄ¶ªº®Ö¤ß°_°Ê¡C}





±z¥i¥H¥Î®Ö¤ßªº¤é´ÁÂW°O¨ÓÃÑ§O¬O¤£¬O±z½sÄ¶ªº¨º­Ó¦³¤ä´©­µ®Äªº®Ö¤ß¡C ±z¥i¥H¥Î
{\ttfamily uname}©R¥O¨Ó§@:

\begin{tscreen}
\begin{verbatim}
% uname -a
Linux fizzbin 2.2.4 #1 Tue Mar 23 11:23:21 EST 1999 i586 unknown
\end{verbatim}
\end{tscreen}




©ÎÅã¥Ü\url{/proc/version}ÀÉ¤º®e:

\begin{tscreen}
\begin{verbatim}
% cat /proc/version
Linux version 2.2.4 (root@fizzbin) (gcc version 2.7.2.3) #1 Tue Mar 23 11:23:21 
EST 1999
\end{verbatim}
\end{tscreen}




¦pªG¤é´ÁÂW°O¤£¬O±z½sÄ¶®Ö¤ßªº®É¶¡¡A¨º±z¥Î¤FÂÂªº®Ö¤ß¡C ±z¯uªº­«¶}¾÷¤F¶Ü? ¦pªG±z¥Î
LILO¡A¬O¤£¬O¦³­«¸Ë©O(¥­±`¥Î\url{lilo})? ¦pªG¬O³nºÐ°_°Ê¡A±z¯uªº
°µ¤F·s¶}¾÷¤ù¡A¨Ã¥Î¥¦¶}¾÷¶Ü?




\subsubsection{²Ä¤G¨B: ½T©w®Ö¤ß­µ®ÄÅX°Êµ{¦¡¦³½s¶i¥h¡C}





³ÌÂ²³æªº¤èªk´N¬O«e­±´£¹Lªº¡AÀË¬d "/dev/sndstat"ªº¿é¥X¡C ¦pªG¦³¦a¤è¤£¹ï¡A
¨º»ò®Ö¤ß³]©w©Î«Ø¥ß¤@©w¦³°ÝÃD¡C ¦A­«·s³]©w¤Î«Ø¥ß¡A¦w¸Ë·s®Ö¤ßªºµ{§Ç¡C




\subsubsection{²Ä¤T¨B: ®Ö¤ß°_°Ê®É¦³°»´ú¨ì±zªº­µ®Ä¥d¶Ü?}





½T©w®Ö¤ß±Ò°Ê®É±zªº¥d¦³³Q°»´ú¨ì¡C ±zÀ³¸Ó¬Ý¹L¶}¾÷°T®§¤F¡A¦pªG¥¦±²±o¹L§Ö¡A±z³q±`¥i
¥Î {\ttfamily dmesg} ©R¥O¥s¦^¨Ó:

\begin{tscreen}
\begin{verbatim}
% dmesg
\end{verbatim}
\end{tscreen}

©Î
\begin{tscreen}
\begin{verbatim}
% tail /var/adm/messages
\end{verbatim}
\end{tscreen}




¦pªG±zªº¥d¨S°»´ú¨ì¡A´N¬O¬Y¤@³B¥X°ÝÃD¡C ½T©w¨º±i¥d¯uªº¸Ë¤F¡C ¦pªG¨º±i¥d¦bDOS¤U¤u
§@±o«Ü¦n¡A¨º±z´N¦³²z¥Ñ¬Û«HµwÅé¬O¥¿±`ªº¡C ¤£¬O±z§â­µ®Ä¥d³]¿ù«¬¦¡¡A¤U¿ù°Ñ¼Æ¡A´N¬O
±zªº­µ®Ä¥d©M®Ö¤ß­µ®ÄÅX°Êµ{¦¡¤£¬Û®e¡C



¤@ºØ¥i¯à´N¬O»Ý­n¯S®íDOSÅX°Êµ{¦¡¨ÓÅX°Êªº"¬Û®e"¥d¡C ¸ÕµÛ°_°Ê DOS¡A¸ü¤J
¼t°Óµ¹ªºÅX°Êµ{¦¡¡AµM«á«ö{\ttfamily Control-Alt-Delete}·x¶}¾÷¶iLinux¡C ½T©w¥dªºI/O¦ì
§}¡ADMA¤ÎIRQ³]©w³£©MDOS¤@¼Ë¡C Åª¦b­µ®ÄÅX°Êµ{¦¡­ì©l½X¤¤ªº
\url{Readme.cards} ÀÉ¥H±o¨ìÃö©ó³]©w±zªº³o«¬¥dªº´£¥Ü°T®§¡C



¦pªG±zªº¥d¨Ã¨S¦³¦b¥»¤å¥ó¤¤¦C¥X¡A¥i¯à¬OLinuxÅX°Êµ{¦¡¨S¤ä´©ªºÃö«Y¡C ±z¥i¥H°Ñ¦Ò¥»¤å
¥½ªº°Ñ¦Ò¤åÄm¨Ó¨D§U¡C




\subsubsection{²Ä¥|¨B: ±z¯à±qdsp³]³ÆÅª¥X¸ê®Æ¶Ü?}





¸Õ¸Õ¥Î«e­±´£¹Lªº {\ttfamily dd} ©R¥OÅª¨ú \url{/dev/audio}¡C
³o­Ó©R¥OÀ³¸Ó¤£·|¦³¿ù»~¤~¹ï¡C



¦pªG¤£¦æ¡A¨º¥i¯à¬O IRQ/DMA ½Ä¨ì¡A©Î¬YºØµwÅé¤£¬Û®e(³]³Æ¤£¬° Linux ¤ä´©¡A©Î¥Î¿ùÅX
°Êµ{¦¡)¡C



ÁÙ¦³¤@­Ó¤Ö¨£ªº¥i¯à¬O¤£¨}ªºµwÅé¡C ¥i¯àªº¸Ü¡A¦bDOS¤U´ú¸Õ¤@¤U¡A®ø¥h³oºØ¥i¯à©Ê¡C




\subsubsection{­n¬O³o¨Ç³£¨S¥Î©O?}





¦pªG±zÁÙ¬O¦³°ÝÃD¡A³o¸Ì´£¨Ñ³Ì«á´X©Û¸Õ¸Õ:

\begin{itemize}
\item ¤p¤ß­«Åª³o¥÷HOWTO¤å¥ó
\item Åª¥»¤å¥ó«á¦Cªº°Ñ¦Ò¤åÄm¡A¤Î¬ÛÃöªº®Ö¤ß­ì©l½X¤¤ªº¤å¥ó¡C
\item ¨ì {\ttfamily comp.os.linux} ©Î¨ä¥¦Usenet°Q½×°Ï
(comp.os.linux.hardware ¬O­Ó¦n¦a¤è; ¦]¬°³o¨àÄé¤ô¶q¦h¡A
³Ì¦n¦b¼ÐÃDÄæµù©ú "sound"¡A³o¼Ë¾A¦Xªº±M®a¤~·|§ä¨ì¥¦¡C)
\item ¥ÎWeb/Usenet·j´M¤ÞÀº¡A¥[¤W¦³´¼¼zªº·j´M±ø¥ó¡A«Ü§Ö´N¯à§ä¨ì«Ü¦nªºµ²ªG¡C 
¤@­Ó¦n¿ï¾Ü¬O\nameurl{http://www.altavista.digital.com}{}¡C
\item ¥Î³Ì·sªºLinux®Ö¤ß¡C(¦ý¬O¥u¦b³Ì«áÃöÀY¤~¥Î¡A³Ì·sªºµo®i¥Î®Ö¤ß¥i¯à«Ü¤£Ã­)
\item µo«Ê«Hµ¹­µ®ÄÅX°Êµ{¦¡§@ªÌ
\item µo«Ê«Hµ¹Sound HOWTOªº§@ªÌ
\item ¥s¥Xemacs¡A¿é¤J{\ttfamily Esc-x doctor} :-)
\end{itemize}




(Ä¶ª`: ·íµM³Ì«á¤@¶µ¬O¶}ª±¯ºªº)




\section{¤ä´©­µ®ÄªºÀ³¥Î³nÅé}





¦pªG±z¦bLinux¤U¯à¥Î­µ®Ä¥d¡A
§Ú¦b³o¸Ì´£¥X¤@¨Ç±z¥i¯à·|·Q­nªº\idx{À³¥Î³nÅé}¡C ±z¥i¥H¬d¤@¤U
Linux Software Map¡Aºô»Úºô¸ôÀÉ®×®w¡A©Î¬O±zªºLinux CD-ROM ¥H§ä¥X³Ì·s¸ê°T¡C



±z³Ì¤Ö·|·Q­n¥H¤Uªº­µ®Ä³nÅé:

\begin{itemize}
\item ­µ®ÄÀÉÀÉ®×®æ¦¡Âà´«³nÅé (¦p {\ttfamily Sox})
\item ²V­µµ{¦¡ (¦p {\ttfamily aumix} ©Î {\ttfamily xmix})
\item ­µ®ÄÀÉ¼½©ñ³nÅé (¦p {\ttfamily play} ©Î {\ttfamily wavplay})
\item MOD ÀÉ®×¼½©ñ³nÅé (¦p {\ttfamily tracker})
\item MIDI ÀÉ®×¼½©ñ³nÅé (¦p {\ttfamily playmidi})
\end{itemize}




³oÃþ¤u¨ã¦³¤å¦r«¬¦¡ªº¡A¤]¦³GUI«¬¦¡ªº¡C ¤]¦³¤@¨Ç¤ñ¸û©_²§¤@ÂIªºÀ³¥Î
(¹³»y­µ¤ÀªR¤Î¿ëÃÑ)¡A±z¥i¯à·|·Qª±ª±¬Ý¡C




\section{±`¨£°ÝÃD»P¸Ñµª}





³o¤@¸`¦^µª¸g±`¦bUsenet°Q½×°Ï¤Î³q«H½×¾Â±`³Q°Ý¨ìªº°ÝÃD¡C



¥i¥H¦bOSS­µ®ÄÅX°Êµ{¦¡ªººô¯¸¬Ý¨ì§ó¦h°ÝÃDªº¸Ñµª¡C




\subsection{³o¤@°ï­µ®Ä³]³ÆÀÉ¦U¥Nªí¤°»ò?}





¥H¤U¬O³Ì¼Ð·Çªº³]³ÆÀÉÀÉ¦W¡AÁöµM¦³¨Ç Linux ¦w¸Ë®M¥ó¥i¯à¥Î¤£¤Ó¤@¼Ëªº¦WºÙ¡C

\begin{description}
\item[/dev/audio] \mbox{}

¤@¯ë¬O³s¨ì {\ttfamily /dev/audio0}



\item[/dev/audio0] \mbox{}

©MSun¤u§@¯¸¬Û®eªºÁn°T³]³Æ (¥u§@¤F³¡¥÷¡A¨Ã¤£¤ä´© Sun ªº
ioctl ¤¶­±¡A¥u¦³ u-law ½s½X)



\item[/dev/audio1] \mbox{}

²Ä¤G­Ó­µ°T³]³Æ (¦pªG­µ®Ä¥d¤ä´©¡A©Î¤£¥u¦³¤@±i­µ®Ä¥dªº¸Ü)



\item[/dev/dsp] \mbox{}

¤@¯ë³s¨ì {\ttfamily /dev/dsp0}



\item[/dev/dsp0] \mbox{}

²Ä³ü¼Æ¦ì¨ú¼Ë³]³Æ



\item[/dev/dsp1] \mbox{}

²Ä¶L¼Æ¦ì¨ú¼Ë³]³Æ



\item[/dev/mixer] \mbox{}

³q±`³sµ²¨ì {\ttfamily /dev/mixer0}



\item[/dev/mixer0] \mbox{}

²Ä³ü²V­µ¾¹



\item[/dev/mixer1] \mbox{}

²Ä¶L²V­µ¾¹



\item[/dev/music] \mbox{}

°ª¶¥½s¦±¾¹¤¶­±



\item[/dev/sequencer] \mbox{}

§C¶¥ MIDI¡AFM¡A¤Î GUS ¦s¨ú¥Î



\item[/dev/sequencer2] \mbox{}

³q±`³sµ²¨ì {\ttfamily /dev/music}



\item[/dev/midi00] \mbox{}

²Ä³ü­ì¥Í(raw)MIDI°ð



\item[/dev/midi01] \mbox{}

²Ä¶L­ì¥ÍMIDI°ð



\item[/dev/midi02] \mbox{}

²Ä°Ñ­ì¥ÍMIDI°ð



\item[/dev/midi03] \mbox{}

²Ä¸v­ì¥ÍMIDI°ð



\item[/dev/sndstat] \mbox{}

Åª¨ú®É¡AÅã¥Ü­µ®ÄÅX°Êµ{¦¡ªºª¬ºA(/proc/sound
¤]¬O¤@¼Ëªº)



\end{description}




PC³â¥zÅX°Êµ{¦¡´£¨Ñ¥H¤U³]³Æ:

\begin{description}
\item[/dev/pcaudio] \mbox{}

©M /dev/audio ¦P¼Ë

\item[/dev/pcsp] \mbox{}

©M /dev/dsp ¤@¼Ë

\item[/dev/pcmixer] \mbox{}

©M /dev/mixer ¤@¼Ë

\end{description}





\subsection{«ç¼Ë¼½©ñ­µ®ÄÀÉ®×?}





Sun ¤u§@¯¸ªº­µ®ÄÀÉ(.au)¥i¥H¥á¨ì \url{/dev/audio} ¨Ó©ñ¥X¡A
­ì©l¨ú¼ËÀÉ¥i¥H¥á¨ì \url{/dev/dsp}¡AÁöµM³o¼Ë¤@¯ë¨Ó»¡·|²£¥Í«Ü®tªº¿é¥X¡C
¨Ï¥Î¹³ {\ttfamily play} ³o¼Ëªºµ{¦¡¤ñ¸û¦n¡A¦Ó¥BÁÙ¯à¿ë§O­µ®ÄÀÉ®æ¦¡¡A
³]©w¥¿½Tªº¨ú¼Ë²vµ¥¡C



¨Ï¥Î¹³ wavplay ©Î vplay (¦b snd-util ®M¥ó¤¤)ªºµ{¦¡¼½©ñ WAV ÀÉ¬O³Ì¦nªº¤F¡A
µM¦Ó¥¦­ÌµLªk¿ëÃÑ Microsoft \idx{ADPCM}À£ÁY¹Lªº WAV ÀÉ¡C ¦P®É¡AÂÂª©ªº play
(¦b Lsox ®M¥ó¤¤)¹ï 16 ¦ì¤¸ªº WAV ÀÉ³B²z±o¨Ã¤£¦n¡C



¦b snd-util ¤¤ªº splay ©R¥O¦pªG¥H¤â°Ê¿é¤J¾A¤Áªº°Ñ¼Æ¡A¥i¥H¥Î¨Ó¼½©ñ¦h¼Æ­µ®ÄÀÉ¡C




\subsection{«ç¼Ë¿ý»s­µ®ÄÀÉ?}





¥i¥H±q \url{/dev/audio} ©Î \url{/dev/dsp} ¤¤Åª¨ú¨ú¼Ë¹Lªº¸ê®Æ¡A
¥i¥HÂà¦V¨ìÀÉ®×¥h¡C ¹³ {\ttfamily vrec} ³o¼Ëªºµ{¦¡¥i¥H¸ûÂ²³æ¦a±±¨î¨ú¼Ë²v¤Î®É¶¡µ¥¡C
±z¤]»Ý­n²V­µ¾¹¡A¥H«K¿ï¾Ü·Q­nªº¿é¤J¨Ó·½¡C




\subsection{§Ú¥i¥H¦³¤£¥u¤@¤ù­µ®Ä¥d¶Ü?}





²{¦bªº­µ®ÄÅX°Êµ{¦¡¤¹³\±z¸Ë¦n´X¤ùÁnÅQ¥d¡AÁnÅQ¥d Pro¡AÁnÅQ¥d 16¡AMPU-401 ©Î MSS 
¥d¡C  ¸Ë¨â¤ùÁnÅQ¥d¬O¥i¯àªº¡A¤£¹L­n¤â°Ê½s¿è \url{local.h}¡A
©w¸qSB2\_BASE¡ASB2\_IRQ¡ASB2\_DMA ¤Î SB2\_DMA2(¦³¨Ç±¡§Î¤U¤~­n)¡C 
¤]¥i¥H¦P®É¸Ë¤@¤ùÁnÅQ¥d¤Î¤@¤ù PAS16¡C



­Y¬O±z¥Îmake config¨Ó³]©w¸û·sªº2.0.xª©®Ö¤ßªº­µ®Äªº¸Ü¡A±zÀ³¸Ó½s¿è\url{/usr/include/linux/autoconf.h}¦Ó«D\url{local.h}¡C ±z·|¬Ý¨ì´X¦æ:

\begin{tscreen}
\begin{verbatim}
#define SBC_BASE 0x220
#define SBC_IRQ (5)
#define SBC_DMA (1)
#define SB_DMA2 (5)
#define SB_MPU_BASE 0x0
#define SB_MPU_IRQ (-1)
\end{verbatim}
\end{tscreen}


¦b¥¦­Ì«á­±¥[¤J´X¦æ(¼Æ­È¨Ì·Ó±zªº¨t²Î³]©w)

\begin{tscreen}
\begin{verbatim}
#define SB2_BASE 0x330
#define SB2_IRQ (7)
#define SB2_DMA (2)
#define SB2_DMA2 (2)
\end{verbatim}
\end{tscreen}




¥H¤UÅX°Êµ{¦¡¤£­ã±z¸Ë¦h¤ù¥d:

\begin{itemize}
\item GUS (ÅX°Êµ{¦¡­­¨î)
\item MAD16 (µwÅé­­¨î)
\item AudioTrix Pro (µwÅé­­¨î)
\item CS4232 (µwÅé­­¨î)
\end{itemize}





\subsection{­µ®Ä³]³Æµo¥Í¿ù»~: No such file or directory}





±z­n¥ý«Ø¥ß³]³ÆÀÉ¡C ½Ð°Ñ¨£«e­±«Ø¥ß³]³ÆÀÉªº³¡¥÷¡C ¦pªG±z½T¹ê¦³³]³ÆÀÉ¡A
ÀË¬d¥D½s¸¹¤Î¦¸½s¸¹¬O§_¥¿½T¡C (¤@¨ÇÂÂ¤@ÂIªº CD-ROM Linux 
¦w¸Ë®M¥ó¥i¯à¤£·|¦b¦w¸Ë®É«Ø¥ß¥¿½Tªº³]³ÆÀÉ) 




\subsection{­µ®Ä³]³Æµo¥Í¿ù»~: No such device}





±zªº®Ö¤ß¨Ã¤£¤ä´©­µ®ÄÅX°Êµ{¦¡¡A©Î¬OI/O¦ì§}³]©w©MµwÅé¤£¤@­P¡C ÀË¬d±z¬O§_¥Î·s³yªº
®Ö¤ß¶}¾÷¡A¨Ã½T»{¨ä³]©w©MµwÅé¬O¤@­Pªº¡C




\subsection{­µ®Ä³]³Æµo¥Í¿ù»~: No space left on device}





¦pªG±z¨S¦³«Ø¥ß¥²­nªº³]³ÆÀÉ¡A´N§â¸ê®Æ¥á¶i \url{/dev/audio} ©Î
\url{/dev/dsp}¡A´N·|µo¥Í³oºØ±¡ªp¡C ³o®É³o¨Ç"³]³ÆÀÉ"¨ä¹ê¥u¬O´¶³qÀÉ®×¡A
¦Ó¥B§â±zªººÏºÐ¶ëº¡¤F¡C ±z¥²¶··Ó¥»¤å¥ó¤¤{\itshape «Ø¥ß³]³ÆÀÉ\/}
³o¤@¤p¸`ªº«ü¤Þ¥h°õ¦æ¨º­Ó©R¥O½Z¡C



¦b Linux 2.0 ©Î¤§«á¡A·í³]³Æ¶}±Ò¡A¨t²Î«o¨S¦³¨¬°÷ªº RAM ®É¥ç·|µo¥Í¡C 
¹ï¨C­Ó DMA ³q¹D¡A­µ®ÄÅX°Êµ{¦¡¦Ü¤Ö»Ý­n¨â­¶ (8K) ³sÄò°O¾ÐÅé°Ï¶ô¡C 
³oºØ±¡«¬¦b¤£¨¬ 16M ªº RAM ©Î¤w¸g±Ò°Ê«Ü¤[ªº¨t²Î¤W¥i¯àµo¥Í¡C 
¦b¦A¶}±Ò³]³ÆÀÉ¥H«e¡A¤]³\¥i¥H¥ý½sÄ¶¤Î°õ¦æ¥H¤Uªº C µ{¦¡¡A¥HªÅ¥X¤@¨Ç RAM ¥X¨Ó¡C

\begin{tscreen}
\begin{verbatim}
main() {
  int i;
  char mem[500000];
  for (i = 0; i < 500000; i++)
    mem[i] = 0;
  exit(0);
}
\end{verbatim}
\end{tscreen}





\subsection{­µ®Ä³]³Æµo¥Í¿ù»~: Device busy}





¤@­Ó­µ®Ä³]³Æ¤@¦¸¥u¯àµ¹¤@­Óµ{§Ç¥Î¡C ¦b³o°ÝÃD¤¤¡A
³Ì¥i¯àªº±¡§Î´N¬O¦³§Oªºµ{§Ç¥¿¦b¨Ï¥Î³o­Ó³]³Æ¡C 
½T©wªº¤èªk¤§¤@¬O¥Î {\ttfamily fuser} ©R¥O:

\begin{tscreen}
\begin{verbatim}
% fuser -v /dev/dsp
/dev/dsp:             USER       PID ACCESS COMMAND
                      tranter    265 f....  tracker
\end{verbatim}
\end{tscreen}




¦b¤W¨Ò¤¤¡A{\ttfamily fuser} ©R¥OÅã¥Ü 265 ¸¹µ{§Ç¶}±Ò¤F¸Ó³]³Æ¡C 
¥i¥H¿ï¾Üµ¥¥¦§¹¦¨©Î§â¥¦¬å±¼¡A³o¼Ë­µ®Ä³]³Æ´N¤S¯à¨Ï¥Î¤F¡C
±zÀ³¸Ó¥H root ¨­¥÷°õ¦æ {\ttfamily fuser} ©R¥O¡A³o¼Ë¤~·|¦C¥X°£¤F±z¥H¥~ªº¨Ï¥ÎªÌ¡C




\subsection{ÁÙ¬O°k¤£¤F'device busy'ªº¿ù»~!}





®Ú¾Ú Brian Gough ªº»¡ªk¡A¨Ï¥Î¤@¸¹ DMA ³q¹DªºÁnÅQ¥d·|©M¦P¼Ë¤]¦û¥Î DMA 1 ªº
QIC-02 ºÏ±a¾÷ÅX°Êµ{¦¡¬Û½Ä¡A³y¦¨ "device busy" ¿ù»~¡C ¦pªG±z¨Ï¥ÎFTAPE¡A
±z¥i¯à¦³¥[¶i³o­ÓºÏ±aªºÅX°Êµ{¦¡¡C ®Ú¾Ú FTAPE-HOWTO¡AQIC-02 ÅX°Êµ{¦¡¦b¨Ï¥Î FTAPE
®É¤£¬O¥²­nªº; ¥u¦³ QIC-117 ¤~¥²­n¡C ­«³y®Ö¤ß¡A¨Ï¥Î QIC-117 ÅX°Êµ{¦¡¡A
¨ú®ø QIC-02¡A³o¼Ë FTAPE ¤Î­µ®ÄÅX°Êµ{¦¡´N¯à¦@¦s¤F¡C




\subsection{­µ®ÄÀÉ©ñ¨ì¤@¥b´N°±¤F}





³oºØ¯gª¬¡A³q±`¬O¥ý¼½©ñ¤@¬í¥ª¥k¡AµM«á§¹¥þ°±¤î¡A©Î¦L¥X "missing IRQ"
©Î "DMA timeout" °T®§¡C ¤K¦¨¬O±zªº IRQ ©Î DMA ³]¿ù¤F¡C ®Ö¹ï¤@¤U¡A±z¦b®Ö¤ß¤¤
ªº³]©w¬O¤£¬O©MµwÅé¸õ½uªº¤@¼Ë¡A¦Ó¥B¨Ã¨S¦³©M§Oªº¥d¬Û½Ä¡C



¥t¤@ºØ¯gª¬¬OÁn­µ¤@ª½­«ÂÐ¡C ³o³q±`¾É¦]©ó IRQ ½Ä¬ð¡C




\subsection{¼½©ñ MOD ÀÉÂ_Â_ÄòÄò}





­n¼½©ñ\idx{MODÀÉ}¡A»Ý­n¥iÆ[ªº CPU ¯à¤O¡C 
±z¥i¯à¶]¤Ó¦hµ{¦¡¾É­P¨t²Î¤ÏÀ³¹LºC¡AµLªk¤Î®É©ñ­µ¡C ¦³¤U­±´XºØ¸Ñªk:

\begin{itemize}
\item ¥Î¸û§Cªº¨ú¼Ë²v¡A©Î¥u©ñ³æÁn¹D
\item §â¨ä¥¦°õ¦æ¤¤µ{¦¡·F±¼
\item ¶R§ó§Öªº¹q¸£
\item ¶R§ó±jªº­µ®Ä¥d(¹³ Gravis UltraSound)
\end{itemize}




¦pªG±z¦³¥Î Gravis UltraSound ­µ®Ä¥d¡A±zÀ³¸Ó¨Ï¥Î±M¬° GUS ³]­pªº MOD ¼½©ñµ{¦¡
(¦p {\ttfamily gmod})




\subsection{½sÄ¶­µ®Ä³nÅé®É¥X¿ù}





1.0cª©¥H«á©M¥H«eªº­µ®ÄÅX°Êµ{¦¡¥Î§¹¥þ¤£¦P¥B¤£¬Û®eªº {\ttfamily ioctl()} ¤è¦¡¡C
§ì·sª©ªº­ì©l½X¡A©Î°µ¥²­n§ïÅÜ¡A§â¥¦²¾´Ó¨ì¾A¦X·sª©ÅX°Êµ{¦¡¥Î¡C
¸Ô¨£­µ®ÄÅX°Êµ{¦¡ªº {\ttfamily Readme} ÀÉ¡C



¤]½Ð½T©w½sÄ¶À³¥Îµ{¦¡®É¡A±z¨Ï¥Î³Ì·sªº \url{soundcard.h} ¤Î
\url{ultrasound.h}¡C ½Ð¨£¥»¤å¶}ÀY³B¸Ìªº¦w¸Ë«ü¤Þ¡C




\subsection{¥H«e¶]«Ü¦nªº³nÅé¡A«o¥X²{ SEGV ¿ù»~}





³o©M¤W­Ó°ÝÃD¥i¯à¬O¤@¼Ëªº¡C




\subsection{­µ®ÄÅX°Êµ{¦¡¦³¦ó¤wª¾ªº­­¨î¤Î bug?}





½Ð¬Ý®Ö¤ß­µ®ÄÅX°Êµ{¦¡¸ÌªºÀÉ®×¡C




\subsection{Ãö©ó­µ®ÄÅX°Êµ{¦¡ªº ioctl µ¥¡A­þ¸Ì¦³°O¸ü?}



¥Ø«e°£­ì©l½X¥H¥~³Ì¨Îªº¤å¥ó¦b 4Front Technologies ªººô¯¸
\nameurl{http://www.opensound.com}{}¡C ¥t¤@­Ó¨Ó·½¬O {\itshape Linux Multimedia
Guide\/}¡A¦b°Ñ¦Ò¤åÄm¨º¤@³¹¦³¸Ô­z¡C




\subsection{­n§¹¥þ¥­¶¶¦a¿ý©ñ­µ¡A»Ý­n¦h±jªºCPU¤~¯à¿ì¨ì?}





³o°ÝÃD¤£¦n¦^µª¡A¥¦¨ú¨M©ó:

\begin{itemize}
\item ¨Ï¥Î PCM ¨ú¼ËÁÙ¬O FM ¦X¦¨
\item ¨ú¼Ë²v¤Î¼Ë¥»¤j¤p
\item ¥Î­þ­Óµ{¦¡¿ý©ñ­µ
\item ­µ®Ä¥dµwÅé
\item ºÏºÐ¶Ç¿é³t²v¡ACPU ®É¯ßÀW²v¡A§Ö¨ú¤j¤pµ¥
\end{itemize}




¤@¯ë¨Ó»¡¡A¥ô¦ó 386 ¥H¤W¾÷¾¹À³¸Ó³£¥i¥H¦b 8 ¦ì¤¸­µ®Ä¥d¤W¼½©ñ­µ®Ä¡A©Î¥Î FM 
¦X¦¨©ñ­µ¼Ö¡C



µM¦Ó¡A©ñ MOD ÀÉ»Ý­n¥iÆ[ªº CPU ¸ê·½¡C ¤@¨Ç¹êÅç©Êªº´ú¶qÅã¥Ü¡A­n¥H 44KHz ¼½©ñ¡A
­n®ø¯Ó¤@Áû 486/50 CPU ªº 40\% ¯à¤O; 386/25 ´X¥G¤£¥i¯à©ñ¤ñ 22KHz §ó°ªªº¨ú¼Ë²v¡C
(¥H8¦ì¤¸­µ®Ä¥d¡A¦pÁnÅQ¥d¡A©Ò´ú±o) ¤@¨Ç¹³ Gravis UltraSound
ªº¥dµwÅé´£¨Ñ§ó¦h¥\¯à¡A
»Ý­nªºCPU¸ê·½´N¸û¤Ö¡C



³o¨Ç¬O°²³]¹q¸£¨S¦³¦b¶]¨ä¥¦¯ÓCPU¯à¤Oªº¤u§@¡C



¦pªG±zªº¹q¸£¦³\idx{¼Æ¾Ç»²§U³B²z¾¹} (©Î CPU ¤º³¡¦³ FPU)¡A
¥Î¹³ {\ttfamily sox} ³o¼Ëªºµ{¦¡°µ­µ®ÄÂà´«©Î¼W¥[®ÄªG·|§Ö¤£¤Ö¡C
ÁöµM®Ö¤ßÅX°Êµ{¦¡¥»¨­¬O¨S¦³¥Î¨ì¯BÂI¹Bºâ¡C




\subsection{PAS16 ©M Adaptec 1542 SCSI ¥dªº·f°t°ÝÃD}





(¥H¤U¸ÑÄÀ¥Ñ{\ttfamily seeker@indirect.com}´£¨Ñ)



Linux ¥u¯à»{¥X¦b 330(¹w³]­È)©Î 334 ¦ì§}¤Wªº 1542¡A¦Ó PAS ¥u¯à±N MPU-401
¼ÒÀÀ³]¦b 330¡C §Y¨Ï±z¥Î³nÅé®ø¥h MPU-401 ¥\¯à¡A¦pªG³oµwÅéÁÙ¦b³o­Ó¹w³]¦ì§}¤W¡A
¤´µM·|©M 1542 ¬Û½Ä¡C §â 1542 ²¾¨ì 334 ´N¤°»ò³£¸Ñ¨M¤F¡C



¥t¥~¡A1542 ©M PAS-16 ³£¦³¥Î¨ì 16 ¦ì¤¸ DMA¡A©Ò¥H¦pªG±z¤@­±¥H 16 ¦ì¤¸¡A44KHz
¥ßÅéÁn¿ý­µ¡A¤@­±±NÀÉ®×¦s¨ì±¾¦b 1542 ¤WªºµwºÐªº¸Ü¡A³Â·Ð´N¨Ó¤F¡C ¨â²Õ DMA
·|¦Y¦P¤@¶ô°O¾ÐÅé¡A¾É­P RAM ¨S¦³®É¶¡¥R¹q¡AµM«á´N·|¥X²{­P©Rªº 
"PARITY ERROR - SYSTEM HALTED" ªº°T®§¡A±z¬Æ¦ÜÁÙ¨Ó¤£¤Îª¾¹D«ç»ò·íªº¡C
§óÁV¿|ªº¬O¦³¨Ç QIC-117 ºÏ±aªº¨ó¤O¼t°Ó«ØÄ³³]©w¶×¬y±Æ¶}/Ãö®É¶¡¡A
¨Ï 1542 ¦û¶×¬y±Æ§ó¤[¡C ±q Adaptec ªº BBS ©Î Internet ªº¨ä¥¦¦a¤è§ì
SCSISEL.EXE µ{¦¡¡A´î¤Ö BUS ON ®É¶¡©Î¼W¥[ BUS OFF ®É¶¡¡Aª½¨ì³o°ÝÃD§¹¥þ®ø¥¢¡C
SCSISEL ·|§ïÅÜ EEPROM ªº³]©w¡A©Ò¥H¤ñ¦b CONFIG.SYS ¤¤¸ü¤Jªº DOS ÅX°Êµ{¦¡®Ä¤O§ó
«ù¤[¡A¶}¾÷´Nª½±µ¶i Linux ¤]¦³®Ä(¤£¹³ DOS ­×¸Éµ{¦¡)¡C ¤S¸Ñ¨M¤F¤@­Ó°ÝÃD¡C



³Ì«á¤@­Ó°ÝÃD - ÂÂªº Symphony ´¹¤ù²Õ¼@¯P¦a­°§C I/O ©P´Á®É¶¡¡A¥[§Ö¶×¬y±Æ¦s¨ú¡C
§Ú©Òª±¹Lªº¦UºØ¥d¤¤¡A°£¤F PAS-16 ¥H¥~¡A¨S¦³¤@¤ù¥d¦b­°§C©P´Á®É¦³¥X²{¹L
{\itshape ¥ô¦ó\/}°ÝÃD¡C Media Vision ªº BBS ¦³­Ó SYMPFIX.EXE ¥i¥H±N Symphony
ªº¶×¬y±Æ±±¨î¾¹ªº¶EÂ_¦ì¤¸¤¬½Õ¡Aªv¦n³oºØ¯gª¬¡A¦ý³o¨Ã¤£¯àºâ¦³¤Oªº«OÃÒ¡C ±z¤]³\­n:

\begin{itemize}
\item §ä¥D¾÷ªO¸g¾P°Ó¡A´«±¼ÂÂª©ªº´¹¤ù
\item ´«¥D¾÷ªO¡A©Î
\item ¶R§OµPªº­µ®Ä¥d¡C
\end{itemize}




Young Microsystems Ä@·N¥H \$30(¬üª÷)ªº¥N»ù¬°¥L­Ì»sªºªO¤l¤É¯Å; 
¦pªG±z¯àÁ¿¥X½Ö»sªº©Î½Ö¶i¤fªºªO¤l¡A§Oªº¼t°Ó¤]¥i¯à·|³o¼Ë(¯¬±z¦n¹B)¡C 
¾Ú§Ú©Òª¾³o°ÝÃD¥X©ó ProAudio ªº¶×¬y±Æ¤¶­±´¹¤ù; 
{\itshape ¨S¦³¤H\/}·|ªá \$120 ¶R­µ®Ä¥d¡AµM«á§â¥¦´¡¦b 6MHz ªº AT ¤W¡C 
¦h¼Æ¤H·|¤É¯Å¨ì 25-40MHz ªº 386/486¡A¦Ó¦pªG³]­p¥¿½T¡A
¦Ü¤Ö¯à©Ó¨ü 12MHz ¥H¤Wªº¶×¬y±ÆÀW²v¡C Á¿§¹¤F¡A¤U¥x¤@Áù°`¡C



²Ä¤@­Ó°ÝÃD©M±zªº¥D¾÷ªO´¹¤ù²Õ¡A¶×¬y±Æ³t²v¡A¤Î¨ä¥¦ BIOS ³]©w¡AÁÙ¦³¤ë«Gªº¶ê¯Ê¦³Ãö¡C
(?)
²Ä¤G­Ó°ÝÃD²o¯A¨ì±zªº°O¾ÐÅé¥R¹q¤è¦¡ (ÁôÂÃ¦¡©Î¦P¨B¦¡)¡A1542 DMA ÀW²v¤Î¶×¬y±Æ 
I/O ³t²v(¥i¯à¦³Ãö)¡C ²Ä¤T­Ó°ÝÃD¡A¥i¥H¥´¹q¸Ü¨ì Media Vision¡A°Ý¥L­Ì­þ¨Ç
Symphony ´¹¤ù²ÕªººC³t³]­p©M¥L­Ìªº¥d¤£¬Û®e¡C ¦b¦¹Äµ§i¤@¤U¡A
§Ú°Ý¹Lªº¥|¦ì"¤uµ{®v"¤¤¡A´N¦³¤T­ÓÀY´ßÃa¥h¡C Å¥¥L­ÌÁ¿§O¤HªºµwÅéÁ¿±oÔ£¤@¼Ë¡A
¨ä¹ê¥L­Ì¬Æ¦Ü³s¦Û¤vªº³£·d¤£²M·¡¡C



Ä¶ª`: ³o¤@¬q¥i¯à©M­ì¤å·N«ä®t«Ü¦h¡A¦³«ØÄ³½Ð¤£§[´£¨Ñ¡C




\subsection{¥i¤£¥i¥H¦P®É¿ý©ñ­µ?}





¤@¨Ç¥dªºÅX°Êµ{¦¡¯à¤ä´©³o¥\¯à¡C ½Ð¬Ý¦b 4Front Technologies ªººô¯¸¤¤ªº¤å¥ó¡A
¤F©j¦p¦ó¥Î¥¦¡C




\subsection{§ÚªºÁnÅQ¥d 16 ¬O³] IRQ 2¡A¥i¬OÅX°Êµ{¦¡¤£­ã§Ú³]³o­Ó­È}





¦b '286 ¤Î¥H«áªº¾÷¾¹¡AIRQ2 ¤¤Â_³s±µ¤F²Ä¤G­Ó¤¤Â_±±¨î¾¹¡C ¥¦µ¥¦P©óIRQ 9¡C




\subsection{§ÚÂ÷¶} Linux¡A°_°Ê DOS¡AµM«á¦³¨Ç³nÅéµoÁn¤£¥¿±`}





³o¦b·x¶}¾÷¶i DOS «áµo¥Í¡C ¦³®É¿ù»~°T®§·|»~¾É±z¡A¥H¬°¬O
\url{CONFIG.SYS} ÀÉ­þ¸Ì¼g¿ù¤F¡C



¦h¼Æ²{¦bªº­µ®Ä¥d¦³³nÅé³]©wªº IRQ ¤Î DMA ³]©w¡C ¦pªG±zªº¥d¦b Linux ¤U¤Î
MSDOS/Windows ¤U³]©w­È¤£¤@¼Ëªº¸Ü¡A¥i¯à·|³y¦¨°ÝÃD¡C ¦³¨Ç­µ®Ä¥d¤£­ã³]·s°Ñ¼Æ¡A
°£«D§¹¥þ reset¡C (¦p§â¹q·½Ãö±¼¦A¥´¶}¡A©Î¨Ï¥ÎµwÅé¤Wªºreset¶s)



Â²³æ¹ï¥I¤èªk´N¬O«ö¤UresetÁä¡A©Î§â¶}ÃöÃö¤F¦A¶}¡A¤£­n¥Î·x¶}¾÷(§Y Ctrl-Alt-Del)¡C



¥¿¸Ñ«h¬O½T«O±z¦bMS-DOS¤ÎLinux¤U³£¥Î¦P¼ËªºIRQ¤ÎDMA³]©w (©Î°®¯Ü¤£­n¥ÎDOS :-)¡C




\subsection{¦b Linux ¤U¶] DOOM ¥X°ÝÃD}





·Qª± ID software ¥Xªº \idx{DOOM} ¹CÀ¸¤§ Linux ª©ªºª±®a­Ì¡A
¥i¯à¹ï³o­Ó¦³¿³½ì¡C



­n¥¿½Tªº­µ®Ä¿é¥X¡A±z¥²»Ý¨Ï¥Î 2.90 ª©©Î¥H«áªº­µ®ÄÅX°Êµ{¦¡; ¥¦¤ä´©¤F§Y®Éªº
{\ttfamily DOOM¼Ò¦¡}¡C



­µ®Ä¼Ë¥»¬O16 bit¡C ¦pªG±z¥Î8 bit­µ®Ä¥d¡A±z¤´µM¥i¥H¥Î¤@¨Ç¥i¦b
\nameurl{ftp://metalab.unc.edu/pub/Linux/games/doom}{}¤¤§ä¨ìªº¤@¨Çµ{¦¡¡AÅýÁn­µ
¥X²{¡C



¦pªGDOOM°Ê§@¤£¬yºZ¡A§â­µ®Ä¨ú®ø(§â {\ttfamily sndserver} ÀÉ§ï¦W)·|¦³¤@¨Ç§ï¶i¡C



DOOM ¹w³]¤£¤ä´©­µ¼Ö(¤£¹³ DOS ª©)¡C {\ttfamily musserver} µ{¦¡±N¼W¥[Linux¤Uªº
­µ¼Ö¤ä´©¡C ¥¦¥i¥H¦b\nameurl{ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz}{}
¤¤§ä¨ì¡C




\subsection{«ç¼Ë­°§C­µ®Ä¥d²£¥ÍªºÂø­µ?}





¥Î°ª«~½èªº«Ì½ª¹qÆl¡A´«­Ó´¡¼Ñ´¡¡A¥i¯à¦³§U©ó´î§C\idx{Âø­µ}¡C 
¦pªG­µ®Ä¥d¦³­µ¶q½Õ¾ã¶s¡A±z¥i¥H¸Õ¸Õ¤£¦Pªº³]©w(³Ì¤jÁn¥i¯à³Ì¦n)¡C
±z¥i¥H¥Î\idx{²V­µµ{¦¡}¡A±N¤£·Q­nªº¿é¤J(¦p³Á§J­·)½Õ¦¨¹s¼W¯q¡C

Philipp Braunbeck ³ø§i¥Lªº ESS-1868 ­µ®Ä¥d¤W¦³­Ó¸õ½u¥Î¨ÓÃö³¬¤º«Ø¼W¯q¾¹ªº¡A
¦pªG¸Ë¤W¡A¯àÀ°§U­°§CÂø­µ¡C



¦b¤@¥x 386 ¹q¸£¤W¡A§Úµo²{®Ö¤ß©R¥O¦C¦³­Ó¿ï¶µ{\ttfamily no-hlt}¥i¥H­°§CÂø°T¡C 
³o­Ó¿ï¶µ¥s®Ö¤ß¦b¶]¶¢¸m°j°é®É¤£­n¥Î HLT «ü¥O¡C ±z¥i¥H¶}¾÷®É¤â°Ê¸Õ¸Õ¡A
©Î¦b LILO ³]©wÀÉ¤¤¥[¤W{\ttfamily append="no-hlt"}



¦³¨Ç­µ®Ä¥d°½¤u´î®Æ¡A¨S¦³¦nªº¾B½ª¤Î±µ¦a¡A®e©ö²£¥ÍÂø­µ




\subsection{¯à©ñ­µ¡A¤£¯à¿ý­µ}





¦pªG±z¯à©ñ­µ¡A«o¤£¯à¿ý­µ¡A¸Õ¸Õ:
\begin{itemize}
\item ¨Ï¥Î²V­µµ{¦¡¿ï¾Ü¾A·í¨Ó·½(¦p³Á§J­·)
\item ¨Ï¥Î²V­µµ{¦¡±N¸Ó¨Ó·½ªº¼W¯q½Õ¨ì³Ì¤j
\item ¥i¥Hªº¸Ü¡A¦bMS-DOS¤U´ú¸Õ¡A¬Ý¬Ý¬O¤£¬OµwÅé¤è­±ªº°ÝÃD
\end{itemize}




¦³®É¿ý­µ¤Î©ñ­µ¥Îªº DMA ³q¹D¬O¤£¦Pªº¡C ³oºØ±¡ªp¤U¤K¦¨¬O¿ý­µ¥Î DMA ³]©w¤£¹ï¡C




\subsection{¥²¶·¥ý¶i DOS ¶]ÅX°Êµ{¦¡¡A¤£µM§Úªº"¬Û®e¥d"¨Sªk¥Î}





¦h¼Æ±¡ªp¤U¡A"ÁnÅQ¥d¬Û®e" ¥d¦b Linux ¤U­Y±ËÁnÅQ¥dÅX°Êµ{¦¡¤£¥Î¦Ó§ï¥Î
§OªºÅX°Êµ{¦¡¡A·|§ó¦n¡C ¦h¼Æ¸¹ºÙ¬Û®e(¦p "16 ¦ì¤¸ SB Pro ¬Û®e" ©Î SB ¬Û®eªº
"16¦ì¤¸")ªº¥d¡A¥¦ªºÁnÅQ¥d¬Û®e¼Ò¦¡¬O´£¨Ñ DOS ¹CÀ¸ªº¬Û®e©Ê©Ò°µªº¡C 
¦h¼Æ¥d¦Û¤vªº 16 ¦ì¤¸¼Ò¦¡¥i¯à¦b³Ìªñªº Linux(2.0.1¥H«á) ·|¤ä´©¡C



¥u¦³¤@¨Ç(³q±`«ÜÂÂ)ªº¥d¥²¶·¹Á¸Õ¥ÎÁnÅQ¥d¼Ò¦¡¹B§@¡C ·s¥d¤¤¥u¦³¤@­Ó¨Ò¥~¡A¨º´N¬O¥Î
Mwave¬°¥Dªº¥d¡C




\subsection{§Úªº 16 ¦ì¤¸ÁnÅQ¥d¬Û®e¥d¦b Linux ¤U¥u¯à¥Î 8 ¦ì¤¸¼Ò¦¡}





¸¹ºÙ©MÁnÅQ¥d¬Û®eªº 16 ¦ì¤¸­µ®Ä¥d¨ä¹ê¥u©M 8 ¦ì¤¸ªºÁnÅQ¥d Pro ¬Û®e¦Ó¤w¡C 
¥¦­Ì¦³©MÁnÅQ¥d 16 ¤£¬Û®eªº 16 ¦ì¤¸¼Ò¦¡¡A©M Linux ­µ®ÄÅX°Êµ{¦¡¤£¬Û®e¡C



¤]³\§ï¥Î MAD16 ©Î MSS/WSS ÅX°Êµ{¦¡«á¡A±z´N¯à¥Î 16 ¦ì¤¸¼Ò¦¡¤F¡C




\subsection{¦b­þ¸Ì§ä±o¨ì Linux ªº­µ®ÄÀ³¥Î³nÅé?}





³o¸Ì¦³¤@¨Ç¦nªºÀÉ®×®w¡A¥i¥H·j´M Linux ±M¥Îªº­µ®ÄÀ³¥Î³nÅé:
\begin{itemize}
\item  \nameurl{ftp://metalab.unc.edu/pub/Linux/kernel/sound/}{}
\item  \nameurl{ftp://metalab.unc.edu/pub/Linux/apps/sound/}{}
\item  \nameurl{ftp://tsx-11.mit.edu/pub/linux/packages/sound/}{}
\item  \nameurl{ftp://nic.funet.fi/pub/OS/Linux/util/sound/}{}
\item  \nameurl{ftp://nic.funet.fi/pub/OS/Linux/xtra/snd-kit/}{}
\item  \nameurl{ftp://nic.funet.fi/pub/OS/Linux/ALPHA/sound/}{}
\end{itemize}





\subsection{­µ®ÄÅX°Êµ{¦¡¥i¤£¥i¥H½sÄ¶¦¨¥i¸ü¤J¼Ò²Õ?}





³Ì·sªº®Ö¤ß¸Ìªº­µ®ÄÅX°Êµ{¦¡¥i¥H°µ¦¨¥i¸ü¤J¼Ò²Õ¡C

¸Ô±¡½Ð°Ñ¦Ò¦b \url{/usr/src/linux/Documentation/sound} ¸ÌªºÀÉ®×¡A
¤×¨ä¬O \url{Introduction} ¤Î \url{README.modules}¡C




\subsection{§Ú¯à§â¥D±±¥xªº¹Í¹ÍÁn§ï¥Î­µ®Ä¥dµo¥X¶Ü?}





¸Õ¸Õ{\ttfamily oplbeep}µ{¦¡¡A¥i¦b
\nameurl{ftp://metalab.unc.edu/pub/Linux/apps/sound/oplbeep-2.3.tar.gz}{}
¤¤§ä¨ì¡C



¥t¤@­ÓÅÜºØ¡A¥s {\ttfamily beep} µ{¦¡¡A¥i¦b\nameurl{ftp://metalab.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgz}{}
¤¤§ä¨ì¡C



{\ttfamily modutils} ®M¥ó¦³­Ó½d¨Òµ{¦¡¤Î®Ö¤ß­×¸É¡A¤ä´©¦b®Ö¤ß­n¨D®É¡A
°õ¦æ¥~³¡µ{¦¡¡A²£¥ÍÁn­µ¡C



¥t¥~¦b¤@¨Ç­µ®Ä¥d¤W¡A±z¥i¥H±NPC³â¥z¿é¥X¨ì­µ®Ä¥d¤W¡A³o¼Ë©Ò¦³Án­µ´N³£¥Ñ­µ®Ä¥d
µo¥X¨Ó¤F¡C




\subsection{VoxWare¬O¤°»ò?}





 ¥Ñ 4Front Technologies
¥X°âªº°Ó·~ª©­µ®ÄÅX°Êµ{¦¡¥H«e¦³¹³{\itshape VoxWare\/}¡A
{\itshape USS\/}(Unix Sound System)¡A¬Æ¦Ü{\itshape TASD\/}(¼È¥BµL¦Wªº­µ®ÄÅX°Êµ{¦¡)
¤§Ãþ¦WºÙ¡C ²{¦b³o­ÓÅX°Êµ{¦¡ªº¥«³õ¤W¥s {\itshape OSS\/}(\idx{Open Sound
System})¡C ¦b Linux ®Ö¤ß¤¤¥]§tªº¦³®É¥s°µ{\itshape OSS/Free\/}¡C



­n§ó¦h¸ê°T¡A½Ð¤W 4Front Technologies ºô¯¸
(¦b\nameurl{http://www.opensound.com/}{})¡C §Ú¦b \onlynameurl{Linux Journal} 1997 ¦~¤»¤ë¸¹¦³¼g¤@½g
¹ï OSS/Linux ªºµû½×¤å³¹¡C




\subsection{Sox/Play/Vplay ¦^³ø "invalid block size 1024"}





¦b 1.3.67 ª©®Ö¤ß¤¤ªº§ïÅÜ(¿ù»~ªº)¨ÏÀË¬d SNDCTL\_DSP\_GETBLKSIZE ioctl
¬O§_¶Ç¦^¤j©ó 4096 ªº©ñ­µ³nÅé¥¢®Ä¡C ³Ì·sªºÅX°Êµ{¦¡¤w­×¥¿¡AÁ×§K°t¸m¤p©ó 4096
bytes ªº¸H¶ô¡A¸Ñ¨M¤FÂÂ¤½¥Îµ{¦¡ªº°ÝÃD¡C




\subsection{§Ú¸ü¤J­µ®ÄÅX°Êµ{¦¡¼Ò²Õ«á¡A²V­µ³]©w´N³Q­«³]¤F}





±z¥i¥H±N­µ®ÄÅX°Êµ{¦¡°µ¦¨¥i¸ü¤J¼Ò²Õ¡A¨Ã¨Ï¥Î {\ttfamily kerneld} ¦Û°Ê¸ü¤J¤Î°£¥h¡C 
µM¦Ó³o³y¦¨¤F¤@­Ó°ÝÃD - ·í¼Ò²Õ­«·s¸ü¤J®É¡A\idx{²V­µ¾¹} ³]©w¤S¦^Âk¹w©wªº­È¡C
¹ï¦³¨Ç­µ®Ä¥d¨Ó»¡¡A³o·|¤Ó¤jÁn(¦pÁnÅQ¥d16)©Î¤Ó¤pÁn¡C Markus Gutschke
({\ttfamily gutschk@uni-muenster.de})µo²{¤F³o°ÝÃDªº¸Ñ¨M¤§¹D¡A¦b±zªº
\url{/etc/conf.modules} ÀÉ¤¤¥[¤J¦p¤Uªº¤@¦æ:

\begin{tscreen}
\begin{verbatim}
options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75
\end{verbatim}
\end{tscreen}




³o·|¦b­µ®ÄÅX°Êµ{¦¡¸ü¤J«á¥ß¨è°õ¦æ±zªº²V­µµ{¦¡(¦b½d¨Ò¤¤¬O¥Î {\ttfamily setmixer} )¡C {\ttfamily dma\_buffsize} °Ñ¼Æ¨S¦³·N¸q¡A¦ý¬O¬O¥²»Ýªº¡A¦]¬°³o­Ó©R¥O
»Ý­n¤@¨Ç©R¥O¦Cªº¿ï¶µ¡C §â¤W­±¨º¦æ§ï¦¨±z·Q­nªº²V­µ¤Î¼W¯q³]©w­È¡C



¦pªG±z±N­µ®ÄÅX°Êµ{¦¡³s¶i®Ö¤ß¡A¦Ó·Q¦b¶}¾÷«á´N¦Û°Ê³]©w­µ¶q¡A±z¥i¥H¦b¶}¾÷¦Û°Ê°õ¦æ
ÀÉ{\ttfamily /etc/rc.d/rc.local}¤¤±N²V­µµ{¦¡¥[¶i¥h¡C




\subsection{¥u¦³ root ¯à¿ý­µ}





¦b Readme.linux ¤¤ªº©R¥O½Z¹w³]·|±N­µ®Ä³]³ÆÀÉ³]¦¨¶È¦³ {\ttfamily root} ¥iÅª¡A
³o¬O¬°¤F¶ñ¸É¦w¥þ¤Wªºº|¬}¡C ¦bºô¸ôÀô¹Ò¸Ì¡A
¥~­±ªº¨Ï¥ÎªÌ¥i¥H»·ºÝ³s¶i¦³­µ®Ä¥d¤Î³Á§J­·ªºLinux¨t²Î¨ÃÅÑÅ¥¡C
¦pªG±z¤£¾á¤ß³o­Ó¡A±z¥i¥H§ïÅÜ³o­Ó©R¥O½Z¤¤ªºÅv­­¡C



¦b¹w³]ªº¦w¸Ëªk¡A¤@¯ë¨Ï¥ÎªÌ¤´µM¥i¥H¼½©ñ­µ®ÄÀÉ¡C ³o¤£·|³y¦¨¦w¥þ¤Wªº­·ÀI¡A
¤Ï¦Ó¥i¥H¬Ù±¼«Ü¦h³Â·Ð¡C




\subsection{¦bIBM ThinkPad¤Wªº­µ®ÄµwÅé¥i¥H¤ä´©¶Ü?}





Ãö©ó¦p¦ó¦b Linux ¤U¨Ï¥Î IBM ThinkPad ¤Wªº mwave ­µ®Ä¥d¤§¸ê°T¡A¥i¦b
\url{/usr/src/linux/Documentation/sound/mwave}ÀÉ¤¤§ä¨ì¡A
¥¦¤]¬O®Ö¤ß­ì©l½Xªº¤@³¡¥÷¡C




\subsection{¦]¬°§Úªº­µ®Ä¥d¨S¦³²V­µ¾¹¡A©Ò¥HÀ³¥Îµ{¦¡¤£Åý§Ú¥Î}



¤@¨ÇÂÂªº 8 ¦ì¤¸ÁnÅQ¥d¨S¦³²V­µ¾¹¹q¸ô¡C
¦³¨Ç­µ®ÄÀ³¥Îµ{¦¡­n¨D­n¯à¶}±Ò²V­µ¾¹³]³Æ¡A
¦b³o¨Ç¥d¤W´N·|¥¢®Ä¡C Jens Werner (\onlynameurl{werner@bert.emv.ing.tu-bs.de}
³ø§i¤F¤@­Ó¸Ñªk¡A§â \url{/dev/mixer} ³s¨ì \url{/dev/null}«á¡A
¤@¤ÁÀ³¸Ó³£«Ü¦n¤F¡C




\subsection{SB16 CT4170 ªº°ÝÃD}



¥H¤U¥Ñ Scott Manley(\onlynameurl{spm@star.arm.ac.uk})´£¨Ñ:

\begin{quotation}
¬Ý°_¨Ó¦³¤@ºØ·sªºÁnÅQ¥d -- ¥¦¥H SB16 ªº¦W¸q½æµ¹§Ú­Ì¡A¸Ó¥dªº«¬¦¡¬O CT4170¡C
³oª±·N¥u¦³¤@²Õ DMA ³q¹D¡A©Ò¥H·í±z¸ÕµÛ³]©w¥¦®É¡A®Ö¤ß¦s¨ú 16 ¦ì¤¸ DMA
·|¦³³Â·Ð¡C ¸Ñ¨M¤§¹D¬O§â²Ä¤G²Õ DMA ³]¦¨ 1¡A³o¼Ë³o±i¥d´N©M¼s§i¤WÁ¿ªº¬Û²Å¤F¡C
\end{quotation}





\subsection{«ç¼Ë±N MIDI keyboard ³s±µ¨ì­µ®Ä¥d¤W?}

¥H¤U¥Ñ Kim G¡C S¡C OEyhus (\onlynameurl{kim@pvv.ntnu.no})´£¨Ñ:

\begin{quotation}
§Ú¨ìºô»Úºô¸ô¤W¥H¤Î­µ®Ä¥d¤å¥ó¨ì³B·j´MÃö©ó¦p¦ó§â¥D keyboard ªº MIDI output
³s±µ¨ì­µ®Ä¥dªº MIDI input ³o»òÂ²³æªº¨Æªº¤èªk¡Aµ²ªG§Ú¤°»ò³£¨S§ä¨ì¡C
°ÝÃD¬O¥¦­Ì³£¨Ï¥Î¦P¤@³]³Æ¡A/dev/midi¡A¦Ü¤Ö¦b OSS ­µ®Ä¨t²Î¤W¬O¦p¦¹¡C
©Ò¥H§Ú§ä¨ì¤F¤@ºØ¤èªk¡A§Æ±æ©M¤j®a¤À¨É¡C ³o¼Ë´N³y¥X¤F¤@­ÓÂ²³æªº¦X¦¨¾¹¡A¨Ã¦³§¹¾ã
MIDI ¤ä´©:
\end{quotation}


\begin{quotation}
¥Î MIDI ª½±µ±N MIDI ¥D KEYBOARD ³s±µ¨ì­µ®Ä¥d
\end{quotation}


\begin{quotation}
MIDI ¥D keyboard ¬O¤@­Ó¨S¦³¦X¦¨¾¹ªº keyboard¡A¤W­±¥u¦³¤@­Ó MIDI out ´¡®y¡C
³o¥i¥H³z¹L¾A·íªº³s±µ½u³s¤W­µ®Ä¥d¤Wªº 15 pin D-SUB ³s±µ°ð¡C
\end{quotation}


\begin{quotation}
³o­Ó keyboard ¥i¥H¥Î¨Ó±±¨î­µ®Ä¥d¤Wªº¦X¦¨³]³Æ¡A°µ¥X¤F¤@­ÓÂ²³æ¥Î keyboard
±±¨îªº¦X¦¨¾¹¡C
\end{quotation}


\begin{quotation}
¤§«á¦A½sÄ¶¥H¤Uµ{¦¡¡A¦p¥Î 'gcc -o prog prog.c' ¨Ã°õ¦æ¥¦:
\end{quotation}


\begin{tscreen}
\begin{verbatim}
#include <fcntl.h>

main()
{
  int fil¡Aa;
  char b[256];

  fil=open("/dev/midi"¡AO_RDWR);
  for(;;)
    {
      a=read(fil¡Ab¡A256);
      write(fil¡Ab¡Aa);
    }
}
\end{verbatim}
\end{tscreen}





\subsection{IRQ 15 ¥H¤Î Ensoniq PCI 128 ¤§¶¡ªº°ÝÃD}



¥H¤U¥Ñ Matthew Inger (\onlynameurl{mattinger@mindless.com}) ´£¨Ñ:

\begin{quotation}
¦p¦óÅý Ensoniq PCI 128 ¥i¥Îªº¸ê°T¡C
\end{quotation}


\begin{quotation}
³o®i²{ªº°ÝÃD¬O¥¦¹w³]­È¬O¥Î IRQ 15¡C(³oÂI Plug and Pray ±o­t°_³d¥ô)¡C
³o­Ó¤¤Â_¤]¬O²Ä¤G²Õ IDE ±±¨î¾¹¥Î¨ìªº¡A¦Ó¥B¤£¯à©M¨ä¥¦³]³Æ¦@¨É¡C ±z¥²¶·±j­¢
es1370 ¨Ï¥Î¨ä¥¦¤¤Â_(´N¹³¦b Windows ¤U¥i¥H¥Î IRQ 11 ¤@¼Ë)¡C
\end{quotation}


\begin{quotation}
«H¤£«H¥Ñ§A¡A§Ú¦Û¦æ§ä¨ì¤F³o°ÝÃDªº¸Ñ¨M¤§¹D¡C
\end{quotation}


\begin{quotation}
§Ú©Ò°µªº¨Æ:
\end{quotation}


\begin{quotation}
a) ¦b BIOS ¤¤¡A±z¥²¶·§iª¾¹q¸£±z¨S¦³ ÀH´¡§Y¥Î OS¡A§Ú¬Û«H³o¦b§Úªº BIOS ¤¤ªº
advanced options ¸Ì¡C
\end{quotation}


\begin{quotation}
b) ¦b BIOS ¤¤ªº PCI ³]©w¡A­n¹q¸£«O¯d¤¤Â_ 15 µ¹ ISA³]³Æ¡C ¦b§Úªº BIOS¡A¦b
Advanced Options ¤¤¡A¦³¤@³¡¥÷¬O³]©w PCI ªº¡A¦b¨º¸Ì¥i¥H±Æ°£¤@¨Ç¸ê·½¤£Åý PCI
¥Î¡A´N¦b¨º¸Ì³]©w¡C
\end{quotation}


\begin{quotation}
·í±z­«¶}¾÷¶i Linux «á±z´N¯àÅ¥¨ìÁn­µ¤F¡C (§Ú¤£°O±o¥¦¬O¤£¬O·Ó±`Åã¥Ü¶}¾÷°T®§¤F)
¬°¦w¥þ°_¨£¡A§Ú¦A°õ¦æ¤@¹M sndconfig¡A¥¦·|©ñ¥X´ú¸Õ­µ®Ä¡AÅ¥°_¨Ó¤£«ç»ò¼Ë¡A
¦ý¥¦µo¥XÁn­µ¤F¡C µM¦Ó§Ú©ñ CD ®É¡AÅ¥°_¨Ó¯u¬O´Î·¥¤F¡C
\end{quotation}


\begin{quotation}
Windows ¨ºÃä´N¬Ç¾á¤ß¤F¡A§Ú¸Õ¤F¨â±i¥d¡A¤@±i¬O ISA Modem¡A¥t¤@±i¬O­µ®Ä¥d¡A
¨â­Ó³£¹B¦æµLÃª¡C
\end{quotation}


\begin{quotation}
±zªº BIOS ©M§Úªº¥i¯à¤£¦P¡A¤£¹L±z¥u­n·d²M·¡«e­±Á¿ªº¨â­Ó³]©w¦b­þ´N¦n¡C ¯¬¦n¹B¡C
\end{quotation}





\subsection{§Ú¦b­þ¨à¥i¥H§ì¨ì¥i¦Û¥Ñ´²¥¬ªº MIDI patch¡A¨Óµ¹ SoftOSS ¨Ï¥Î?}



SoftOSS ¬O©M Gravis UltraSound ¥d¬Û®e¡A
¥]§t¦b®Ö¤ß­µ®ÄÅX°Êµ{¦¡ªº³nÅéªi§Îªí¦X¦¨¾¹(¤]¥i¥H»¡¬O³nÅé­µ·½)¡C
­n¨Ï¥Î³o­ÓÅX°Êµ{¦¡¡A»Ý­n GUS ¬Û®eªº MIDI patch ÀÉ¡C ¤å¥ó¤Wªº»¡ªk¬O
"public domain MIDIA patchset available from several ftp sites"
(¤½¶}ªº MIDIA patch ¶°¥i¦b´X­Ó ftp ¯¸§ä¨ì)

¦p¦P 4Front Technologies ºô¯¸¤W»¡ªº(\nameurl{http://www.opensound.com/softoss.html}{})¡A¥¦­Ì¥i¦b \nameurl{ftp://archive.cs.umbc.edu/pub/midia/instruments.tar.gz}{} ¤U¸ü¡C




\section{°Ñ¦Ò¤åÄm}





¦pªG±z¦³¤ù¤ä´© CD-ROM ©Î SCSI ¤¶­±ªº­µ®Ä¥d¡A°Ñ¾\
\nameurl{ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/unmaintained/SCSI-HOWTO}{SCSI HOWTO} ¥H¤Î Linux \onlynameurl{CD-ROM HOWTO}
¥i¯à¥i¥Hµ¹±z§ó¦h¦³¥Îªº¸ê°T¡C
(Ä¶ª`: CDROM HOWTO ¤¤¤åª©¦b
\nameurl{http://www.linux.org.tw/CLDP/CDROM-HOWTO.html}{http://www.linux.org.tw/CLDP/CDROM-HOWTO.html})



\onlynameurl{Sound Playing HOWTO} «h¹ï¦p¦ó¦bLinux¤U¼½©ñ¦UºØ¤£¦Pªº­µ®Ä¤Î­µ¼ÖÀÉ¦³©Ò¤¶²Ð¡C
(Ä¶ª`: ¤¤¤åª©¦b
\nameurl{http://www.linux.org.tw/CLDP/Sound-Playing-HOWTO.html}{http://www.linux.org.tw/CLDP/Sound-Playing-HOWTO.html})

\onlynameurl{Linux SoundBlaster AWE32/64 Mini-HOWTO}´y­z¦p¦ó¦b Linux ¤U¨Ï¥ÎÁnÅQ¥d
32 ©Î 64¡C
(Ä¶ª`: ¤¤¤åª©¦b
\nameurl{http://www.linux.org.tw/CLDP/mini/Soundblaster-AWE.html}{http://www.linux.org.tw/CLDP/mini/Soundblaster-AWE.html})

µ{¦¡³]­p¸ê°T¥i¥Ñ 4Front Technologies ºô¯¸ \nameurl{http://www.opensound.com/pguide}{}¨ú±o¡C



¥H¤UªºFAQ©w´Á±i¶K©ó\idx{Usenet}°Q½×°Ï\onlynameurl{news.announce}
¥H¤ÎÀÉ®×®w\nameurl{ftp://rtfm.mit.edu/pub/usenet/news.answers}{}¤¤:
\begin{itemize}
\item  PCsoundcards/generic-faq (Generic PC Soundcard FAQ)
\item  PCsoundcards/soundcard-faq (comp.sys.ibm.pc.soundcard FAQ)
\item  PCsoundcards/gravis-ultrasound/faq (Gravis UltraSound FAQ)
\item  audio-fmts/part1 (Audio file format descriptions)
\item  audio-fmts/part2 (Audio file format descriptions)
\end{itemize}




³o¨Ç\idx{FAQ}¤]¦C¥X¤@¨Ç©M²£«~¬ÛÃöªº³q«H½×¾Â¤ÎÀÉ®×®w¡C ¥H¤UªºUsenet°Q½×°Ï¥D­n°Q½×­µ®Ä¤Î
­µ¼Ö¬ÛÃöªºÃD§÷:

\begin{itemize}
\item  \onlynameurl{alt.binaries.sounds.*}
(±i¶K­µ®ÄÀÉ¡A«Ü¦h¸s²Õ)
\item  \onlynameurl{alt.binaries.multimedia}
(±i¶K¦h´CÅéÀÉ®×¥Î)
\item  \onlynameurl{alt.sb.programmer}
(©MÁnÅQ¥dµ{¦¡³]­p¦³Ãö)
\item  \onlynameurl{comp.multimedia}
(¦h´CÅé±MÃD)
\item  \onlynameurl{comp.music}
(¹q¸£­µ¼Ö²z½×¤Î¬ã¨s)
\item  \onlynameurl{comp.sys.ibm.pc.soundcard.*}
(¦UºØIBM PC­µ®Ä¥dªº¸s²Õ)
\end{itemize}




¦b\nameurl{http://viswiz.gmd.de/MultimediaInfo/}{}¦³­Ó\idx{¦h´CÅé}
±Mªù¯¸¥x¡C Creative Labs ªººô¯¸«h¦b\nameurl{http://www.creaf.com/}{}¡C
MediaTrix ªººô¯¸¦b\nameurl{http://www.mediatrix.com/}{}



Linux\idx{³q«H½×¾Â}¦³³\¦hÃö©ó¤£¦P¥DÃD(¥]¬A­µ®Ä)ªºÀW¹D¡C
·Qª¾¹D¦p¦ó°Ñ¥[¡A
±H¤@«Ê¤º®e¬° "help" ªº«H¨ì \onlynameurl{majordomo@vger.rutgers.edu}¡C
³Ì¦n¤£­n¥Î¥¦¨Ó°Ý¦p¦ó³]©w­µ®Ä¥d³oÃþ°ÝÃD¡A
¥¦­Ì¬O¬°¶}µoªÌ°Q½×¥Îªº¡C



«e­±´£¹L¦n´X¦¸¤F¡A­µ®ÄÅX°Êµ{¦¡¥]§t«Ü¦h\url{Readme}ÀÉ¡A
¸Ì­±¦³«Ü¦h©MÅX°Êµ{¦¡¬ÛÃöªº¸ê°T¡C ¥¦­Ì±`±`©ñ¦b
\url{/usr/src/linux/drivers/sound}¥Ø¿ý¸Ì¡C



¦b\idx{4Front Technologies}ºô¯¸\nameurl{http://www.opensound.com/}{}
¤W¡A¥i¥H¬Ý¨ì Linux ¤Î¨ä¥¦ Unix ¬Û®e§@·~¨t²Î¥Îªº°Ó·~ª©­µ®ÄÅX°Êµ{¦¡OSSªº¸ê°T¡C



{\itshape \idx{Linux Software Map}\/}¬O·j¯ÁLinux³nÅéªº·¥¨Î°Ñ¦Ò¡C ¥ÎÃöÁä¦r¹³
{\itshape sound\/} ·j´M LSM ¬OÃÑ§OÃö©ó­µ®ÄµwÅéªºÀ³¥Îµ{¦¡¤§¦n¿ìªk¡C LSM
¥i¦b«Ü¦h°Î¦WÀÉ®×®w¡A¥]¬A 
\nameurl{ftp://metalab.unc.edu/pub/Linux/docs/LSM/}{}(¥ý«e¦W¬° sunsite) ¤¤§ä¨ì¡C
¤]¦³¨Çºô¯¸ºûÅ@ Linux À³¥Îµ{¦¡ªº¸ê®Æ®w¡A\nameurl{http://www.freshmeat.net}{}
¬O¨ä¤¤¤§¤@¡C



Linux ¤å¥ó­pµe(LDP)»s§@¤F¦n´X¥» Linux ªº\idx{®Ñ}¡A¥]¬A
{\itshape Linux Installation and Getting Started\/}¡C ³o¨Ç¥i±q¥D­nªº Linux FTP
ÀÉ®×®w§K¶O¨ú±o¡A©Î¬Oªá¿ú¶Rµw«þ¨©«¬¦¡ªº¤å¥ó¡C



³Ì«á©O¡AÁöµM¦³¨Ç¦Ñ¤ý½æ¥Ê¤§¶û¡A¤£¹LÁÙ¬O®e§Ú¦b¦¹¥´¥´¤p¼s§i: 
¦pªG±z·Q¾Ç¾Ç§ó¦hÃö©ó¦b Linux ¤Uªº¦h´CÅé 
(¯S§O¬OÃö©ó CD-ROM ¤Î­µ®Ä¥dÀ³¥Î¤Îµ{¦¡³]­pªº)¡A¨ì®Ñ©±§ä§ä§Ú½sµÛªº
{\itshape \idx{Linux Multimedia Guide}\/}¡AISBN 1-56592-219-0¡A¥Ñ 
O'Reilly and Associates ¤½¥q¥Xª©¡C °£¤F­ì©lªº­^¤åª©¥~¡A
ªk¤åª©©M¤é¤åª©¤]¥¿¥I¦L¤¤¡C ­Y¦b¥_¬ü¬w¡A½Ð¹q 800-998-9938¡C ©Î¬O¥úÅU¥H¤U¯¸¥x:
\nameurl{http://www.ora.com/catalog/multilinux/noframes.html}{}
©Î¥»¤Hªººô§}\nameurl{http://www.pobox.com/~tranter/}{}



\end{document}
