\documentclass[letterpaper]{article}
\nonstopmode
\akai
\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}\\ 
ÒëÕß: ÎéÓÀ¿µ\onlynameurl{yorkwu@ms4.hinet.net}}
\date{ÖÐÎÄ°æ v1.20C£¬ 1999 Äê 7 ÔÂ 24 ÈÕ(Ô­ÎÄ v1.20, 24 March 1999)}
\abstract{±¾ÎÄ¼þÃèÊöÔÚLinuxÏÂµÄ¹Øì¶ÒôÐ§µÄÖ§Ô®¡£ ËüÁÐ¾Ù³öÖ§Ô®µÄÒôÐ§Ó²ÌåÉè±¸£¬Ò²Ð´µ½ÁËÈçºÎÉèºÃºËÐÄÇý¶¯³ÌÊ½£¬¼°³£¼ûÎÊÌâµÄ½â´ð¡£ Ï£Íû½åÓÉËü£¬¿ÉÒÔÈÃÐÂÊÖ¸üÌáÔçÉÏÂ·£¬Í¬Ê±¼õÉÙÔÚUsenetÐÂÎÅ×é¼°Í¨ÐÅÂÛÌ³¼äµÄÅÓ´ó "¹àË®Á¿"¡£}


\begin{document}
\maketitle
\tableofcontents

\section{Ð÷ÂÛ}





ÕâÊÇLinux Sound HOWTOÎÄ¼þ¡£ ËüµÄÖ÷ÒªÄ¿±êÊÇÌá¹©Ò»ÇÐ°²×°¼°½¨ÖÃLinuxÒôÐ§Ö§Ô®ËùÐèÖª
Ê¶µÄ¿ìËÙ²Î¿¼×ÊÁÏ¡£ ÎÒÃÇÒ»·½Ãæ»Ø´ð¹Øì¶LinuxÏÂ¹Øì¶ÒôÐ§µÄ³£¼ûÎÊÌâ£¬ÁíÒ»·½ÃæÒ²Ö¸³ö
¹Øì¶µçÄÔÒôÐ§/ÒôÀÖ·½ÃæÖÖÖÖÖ÷ÌâµÄ²Î¿¼×ÊÁÏµÄÀ´Ô´¡£



±¾ÎÄµÄ¡õÎ§½ö¼°ì¶ÊÊºÏÓÃì¶ Linux µÄÒôÐ§¿¨·½Ãæ¡£
¶Ôì¶ÒôÐ§¿¨¼°µçÄÔÒôÐ§/ÒôÀÖÔ­ÀíµÄ×ÊÁÏ£¬Çë²ÎÔÄ{\itshape ²Î¿¼ÎÄÏ×\/}ÄÇ½ÚÁÐ³öµÄÎÄ¼þ¡£




\subsection{ÃúÐ»}





Õâ·ÝÎÄ¼þºÜ¶àÀ´×ÔÒôÐ§Çý¶¯³ÌÊ½³ÌÊ½ÂëËù¸½µÄÎÄ¼þ(ÓÉ Hannu Savolainen(
\onlynameurl{hannu@voxware.pp.fi})×«Ð´)¡£
Ð»Ð»Hannu£¬Alan Cox£¬¼°¿ª·¢ Linux ºËÐÄÒôÐ§Çý¶¯³ÌÊ½£¬
ÒÔ¼°¹«ÓÃ³ÌÊ½µÄÐíÐí¶à¶àÆäËûÈËÃÇ¡£



ÓÉì¶ÓÐ
\onlynameurl{SGML Tools}
Ì×¼þ£¬Ê¹µÃ±¾ÎÄ¼þ¿ÉÒÔÓÉÒ»¸öÔ­Ê¼µµ²úÉú³ö¼¸ÖÖ²»Í¬¸ñÊ½¡£


\subsection{×îÐÂ°æ±¾ºÎ´¦Ñ°}





±¾ÎÄ¼þÖ®×îÐÂ°æ±¾½«¶¨ÆÚÕÅÌùì¶
\onlynameurl{comp.os.linux.answers}
ÐÂÎÅ×é; ËüÒ²»á·Åµ½ºÜ¶à±£´æÕâÀà×ÊÑ¶µÄÄäÃûftpÕ¾£¬ÖîÈç
\nameurl{ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/}{}



±¾ÎÄ¼þ¼°ÆäËü HOWTO ÎÄ¼þµÄ³¬ÎÄ×Ö°æÒ²·ÅÔÚºÜ¶à WWW Õ¾Ì¨ÉÏ£¬°üÀ¨
\nameurl{http://metalab.unc.edu/LDP/}{}
ºÜ¶à Linux µÄ CD-ROM °²×°Ì×¼þÒ²ÄÚº¬ HOWTO ÎÄ¼þ£¬Í¨³£·ÅÔÚ
\url{/usr/doc/} Ä¿Â¼ÏÂ¡£ ÓÐÊ±ÔÚCD-ROM
ÉÏµÄ£¬»òÁÐÓ¡µÄ£¬»òÔÚftpÕ¾ÀïµÄ»áÊÇ¹ýÊ±µÄ°æ±¾¡£ Èç¹ûÔÚ±¾ HOWTO ÉÏµÄÈÕÆÚÒÑ¾à½ñ³¬¹ý
Áù¸öÔÂ£¬ÄÇ÷áÔÚInternetÉÏ¿ÉÄÜÒÑ¾­ÓÐÐÂ°æÁË¡£

{\itshape ÒªÇëÄú×¢ÒâµÄÊÇ£¬ÓÉì¶Íø¼ÊÍøÂ·µÄ¶¯Ì¬ÐÔÖÊ£¬ÔÚ±¾ÎÄ¼þÖÐËùÓÐµÄ WWW ¼° FTP
Á¬½á¶¼¿ÉÄÜ·¢Éú¸Ä±ä¡£\/}

±¾ÎÄ¼þÒà±»·­ÒëÎª¼¸¸ö²»Í¬ÓïÑÔµÄ°æ±¾:

ÖÐÎÄ: \nameurl{http://www.linux.org.tw/CLDP/Sound-HOWTO.html}{}

·¨ÎÄ: \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}{}

¶íÎÄ: \nameurl{http://www.phtd.tpu.edu.ru/~ott/russian/linux/howto-rus/Sound-HOWTO.html}{}

Î÷°àÑÀÎÄ: \nameurl{ftp://ftp.insflug.org/es}{}



¶àÊý±¾ÎÄ¼þ¼°ÆäËüµÄ Linux HOWTO µÄ·­Òë°æÒ²¿ÉÒÔÔÚ
\nameurl{http://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/}{} ÒÔ¼°
\nameurl{ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/}{}ÕÒµ½¡£
Èç¹ûÄú½«±¾ÎÄ¼þ·­×öÆäËüÓïÑÔ£¬Çë¸æËßÎÒ£¬ÎÒ»áÔÚÕâÀïÌæËü×ö¸öÁ¬½á¡£




\subsection{»ØÀ¡}



Õâ·Ý HOWTO ÎÄ¼þ£¬ÐèÒª¸÷Î»¶ÁÕßÐ­Öú£¬²ÅÄÜÔ½À´Ô½ºÃÓÃ¡£ Èç¹ûÄúÓÐÈÎºÎ½¨Òé£¬ÐÞÕý£¬
»òÒâ¼û£¬Çë¸æËß×÷Õß(\onlynameurl{jeff\_tranter@pobox.com})¡£ ÎÒ½«»áÔÚÏÂÒ»°æÊÔÖø¼ÓÈëÕâÐ©Òâ¼û¡£

(Òë×¢: ¶Ô±¾ÖÐÎÄ°æµÄÒâ¼û£¬Çë¸æËß\onlynameurl{ÒëÕß(yorkwu@ms4.hinet.net)}¡£)



ÎÒÒ²ºÜÀÖÒâ¾¡ÎÒÄÜÁ¦»Ø´ð¹Øì¶ÒôÐ§¿¨¼°LinuxµÄÒ»°ãÎÊÌâ¡£ µ«ÔÚÕâÖ®Ç°£¬ÇëÏÈÄÍÐÄ¶ÁÍêÕâ
ÕûÆª HOWTO£¬È»ááÔÙ¸øÎÒºÍÕâÎÊÌâÏà¹ØµÄËùÓÐÏ¸½Ú×ÊÑ¶¡£ Çë²»ÒªÎÊÎÒÔÚ·ÇLinux×÷ÒµÏµÍ³
ÏÂ¹Øì¶ÒôÐ§¿¨µÄÎÊÌâ¡£



Èç¹ûÄúÔÚÎ¨¶Á¹âµúÉÏ»òÒÔÓ²¿½±´ÐÎÊ½·¢ÐÐ´ËÎÄ¼þ£¬»¶Ó­¸½ËÍÒ»·Ý¹ýÀ´¡£ Çë¼Äµ½ÎÒµÄÊÕÐÅµØ
Ö·¡£ Ò²Çë¿¼ÂÇÒ»ÏÂ¶Ô Linux ÎÄ¼þ¼Æ»­×÷µã·îÏ×£¬ÒÔÖ§³Ö Linux µÄÃâ·ÑÎÄ¼þ¡£ ÇëºÍLinux
HOWTO Ð­µ÷ÈË Tim Bynum (
\nameurl{mailto:linux-howto@metalab.unc.edu}{}
)ÁªÂçÒÔµÃµ½¸ü¶à×ÊÑ¶¡£




\subsection{É¢²¼Ê±µÄ×¢ÒâÊÂÏî}





Copyright (c) 1995-1999 by Jeff Tranter.

ÖÐÎÄ°æ°æÈ¨ÎªÎéÓÀ¿µ¼° Jeff Tranter (1997-1999) ËùÓÐ¡£

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



±¾ÎÄ¼þµÃÒÀÕÕ\nameurl{http://sunsite.unc.edu/LDP/COPYRIGHT.html}{}
Ëù¼ÇÔØÖ® LDP Ö´ÕÕµÄÌõ¿î·¢ÐÐ¡£




\section{ÒôÐ§¿¨¼¼Êõ}





ÎªÁËÓÐÖúì¶Äú¶Ô±¾ÎÄááÃæ½²µ½µÄÓÐÐ©ÁË½â£¬ÕâÒ»½Ú¼òÂÔµØÌáÒ»ÏÂ\idx{µçÄÔÒôÐ§}
¼¼ÊõµÄ¸ÅÒª¡£ Èç¹ûÏë¸ü½øÒ»²½ÁË½â£¬ÇëÕÒÊýÎ»ÒôÑ¶»òÊýÎ»ÐÅºÅ´¦ÀíµÄÏà¹ØÊé¼®¡£



ÉùÒôÊÇÒ»ÖÖ{\itshape Àà±È\/}µÄÏÖÏó(property); Ëü¿ÉÄÜÊÇÔÚÁ¬Ðø¡õÎ§ÄÚµÄÈÎÒâÖµ¡£ 
È»¶øµçÄÔÈ´ÊÇ{\itshape ÊýÎ»\/}µÄ£¬Ö»ÄÜ±íÊ¾¡õÎ§ÖÐµÄ¼¸¸öµã¡£ ÎªÁËÈÃÉùÒôÄÜ´æ½ø¼ÇÒäÌå£¬
ÒôÐ§¿¨ÓÃÁËÒ»ÖÖ½ÐÀà±È/ÊýÎ»×ª»»Æ÷(A/D»òADC)£¬½«Éù²¨ÐÅºÅ(ÒÔµçÑ¹±íÊ¾)
×ª»»³ÉÊý×ÖÒÔ¹©´¢´æ¡£ ÁíÍâÒ²ÓÃÒ»¸öÊýÎ»/Àà±È×ª»»Æ÷(D/A»òDAC)
½«Êý×Ö·´¹ýÀ´×ª»»³ÉµçÑ¹£¬ËÍ½øÀ®°È£¬·¢³öÉùÒô¡£



ÓÉ\idx{Àà±È×ª»»³ÉÊýÎ»}µÄ¹ý³Ì£¬½Ð×÷È¡Ñù£¬»á²úÉúÒ»Ð©Îó²î¡£
ÓÐÁ½¸öÒòËØ¾ö¶¨×ª»»¹ýµÄÉùÒô×ªµÃ¶àºÃ¡£ ÆäÒ»ÊÇ{\itshape È¡ÑùÂÊ\/}£¬ÊÇÔÚµ¥Î»Ê±¼äÄÚ£¬
Ó²Ìå¶ÔÉùÒô×÷¼¸´ÎÈ¡Ñù(Í¨³£ÓÃÃ¿Ãë¼¸´Î»òºÕ×ÈÎªµ¥Î»)¡£ 
½ÏµÍµÄ\idx{È¡ÑùÂÊ}±íÊ¾µÄÀà±ÈÐÅºÅ¾Í±È½Ï²»×¼È·¡£ Æä¶þÊÇÑù±¾´óÐ¡£¬
ÊÇÃ¿Ò»´ÎÈ¡ÑùµÄÓÐÐ§¡õÎ§£¬Í¨³£ÓÃ bit ±íÊ¾¡£ 
ÓÐÐ§¡õÎ§Ô½´ó£¬¾ÍÄÜÈ¡³ö½Ï×¼È·µÄÊýÎ»»¯ÉùÒô¡£



ÒôÐ§¿¨Ò»°ãÓÃ8»ò16 bitÈ¡Ñù£¬È¡ÑùÂÊÔòÔÚ 4000-44000Hz Ö®¼ä¡£ 
È¡ÑùÒ²·ÖÎªµ¥ÉùµÀ(µ¥Òô)»òË«ÉùµÀ(Á¢ÌåÉù)¡£



{\itshape \idx{FM ºÏ³É}\/}ÊÇ²úÉúÉùÒôµÄ¾É·½·¨¡£ Ëü°Ñ²»Í¬µÄ²¨ÐÍ
(ÈçÕýÏÒ²¨£¬·½²¨£¬Èý½Ç²¨µÈ)×éºÏÆðÀ´²úÉúÉùÑ¶¡£ \idx{FM
ºÏ³É}Ó²ÌåÉÏ±È½Ï¼òµ¥£¬
µ«ÊÇ½ÏÄÑ³ÌÊ½»¯£¬Ò²½ÏÃ»µ¯ÐÔ¡£ ºÜ¶àÒôÐ§¿¨ÈÔÌá¹© FM ºÏ³ÉÒÔºÍ¹ýÈ¥µÄÒôÐ§¿¨¼°ÈíÌåÏàÈÝ¡£
Í¨³£»áÌá¹©¼¸×é¶ÀÁ¢µÄÉùÒô²úÉúÆ÷¼°{\itshape ÓïÒô\/}¡£



{\itshape \idx{²¨ÐÍ±íºÏ³É}\/}½áºÏÁË D/A ×ª»»µÄµ¯ÐÔ¼° FM ºÏ³ÉµÄ¶àÆµµÀÄÜÁ¦¡£
ÓÃÕâÖÖ·½·¨£¬ÊýÎ»ÓïÒô¿ÉÒÔÏÂÔØµ½×¨ÓÃµÄ¼ÇÒäÌåÄÚ£¬ÔÚ²»Ì«ÐèÒªCPU¸ºÔØµÄÇé¿öÏÂ²¥·Å£¬
ºÏ²¢¼°ÐÞ¸Ä¡£ ×îÐÂÈñµÄÒôÐ§¿¨¶¼Ö§Ô®²¨ÐÍ±íºÏ³É¡£



¶àÊýÒôÐ§¿¨Ìá¹©{\itshape »ìÒô\/}ÄÜÁ¦£¬¿É½«²»Í¬Ñ¶ºÅÀ´Ô´µÄÉùÒô¼ÓÒÔºÏ²¢£¬²¢¿ØÖÆÔöÒæ
Ç¿¶È¡£



{\itshape \idx{MIDI}\/}ÊÇÖ¸ÀÖÆ÷ÊýÎ»½éÃæ (Musical Instrument Digital Interface)£¬
ÊÇÒ»ÖÖ¿ÉÒÔÈÃÀÖÆ÷±Ë´Ë¹µÍ¨µÄÈíÓ²ÌåÐ­¶¨¡£ ÔÚ MIDI bus ÉÏ´«ËÍµÄÊÂ¼þ¿ÉÒÔ´æ³É MIDI
µµ£¬
¹©ÈÕááÐÞ¸Ä¼°ÖØ²¥¡£ ºÜ¶àÒôÐ§¿¨Ìá¹© MIDI ½éÃæ£¬¼´Ê¹Ã»ÓÐ£¬¿¿ÒôÐ§¿¨±¾ÉíµÄÄÜÁ¦£¬
ÈÔÈ»¿ÉÒÔ²¥·Å MIDI µµ¡£



{\itshape \idx{MODµµ}\/}ÊÇµçÄÔ²úÉú¸èÇú³£ÓÃµÄ¸ñÊ½¡£ ³ýÁË¼ÇÂ¼Òô·ûÍâ£¬
µµ°¸Ò²¼ÇÂ¼ÁËÀÖÆ÷(»òÓïÒô)µÄÊýÎ»È¡Ñù¡£
MODµµÊÇÓÉAmigaµçÄÔÀ´µÄ£¬µ«Ö»ÒªÓÐÊÊµ±µÄÈíÌå£¬
ÔÚ°üÀ¨LinuxµÄÆäËüÏµÍ³ÉÏÒ²ÄÜ²¥·Å¡£




\section{Ö§Ô®µÄÓ²Ìå}





ÕâÒ»½ÚÁÐ³öÄ¿Ç° Linux Ö§Ô®µÄ\idx{ÒôÐ§¿¨}¼°ÒôÐ§½éÃæ£¬
ÒÔ×«Ð´Ê±×îÐÂµÄ Linux ºËÐÄÎª»ù×¼£¬ÔÚ±¾ÎÄ×«Ð´Ê±ÊÇ 2.2.4¡£ Õâ·ÝÎÄ¼þÖ»¶Ô°üº¬ÔÚ±ê×¼
Linux ºËÐÄÂëÖÐµÄÒôÐ§Çý¶¯³ÌÊ½ÓÐÐ§¡£ Linux
ÉÏÉÐÓÐÆäËüµÄÒôÐ§Çý¶¯³ÌÊ½´æÔÚ(Çë¿´ááÃæ¹Øì¶ Ñ¡ÔñÐÔµÄÒôÐ§Çý¶¯³ÌÊ½ Ò»½Ú)



¹Øì¶ Linux Ö§Ô®µÄÒôÐ§¿¨ÒÔ¼°ËüµÄ¹¦ÄÜµÄ×îÐÂÏûÏ¢£¬Çë¿´ Linux
ºËÐÄÔ­Ê¼ÂëÖÐµÄµµ°¸£¬Í¨³£×°ÔÚ\url{/usr/src/linux/Documentation/sound}
Ä¿Â¼ÏÂ¡£



ÔÚÕâ·ÝHOWTOÀïµÄ×ÊÑ¶¶ÔIntelÆ½Ì¨µÄLinuxÓÐÐ§¡£



ÒôÐ§¿¨Çý¶¯³ÌÊ½Ó¦¸ÃÒ²ÄÜÖ§Ô®\idx{Alpha}Æ½Ì¨ÉÏµÄ¶àÊýÒôÐ§¿¨¡£
È»¶øÓÐµÄ¿¨ËäÈ»ÔÚ i386 Æ½Ì¨ÉÏ¹¤×÷µÃºÜºÃ£¬È´»áºÍ Alpha ÏµÍ³ÉÏµÄÆäËüÉè±¸Î»Ö·Ïà³åÍ»¡£
ËùÒÔÍ¨³£Ã»ÊÔ¹ýµÄ»°£¬Ã»°ì·¨µÃÖªÒ»Æ¬¿¨µ½µ×ÄÜ²»ÄÜÓÃ¡£
ËùÒÔ³ý·ÇÇ××Ô³¢ÊÔ¹ý£¬²»È»Ò²²»ÄÜÈ·¶¨Ò»Æ¬ÒôÐ§¿¨ÄÜ²»ÄÜÓÃ¡£



ÓÐ±¨¸æ³ÆÔÚ\idx{PowerPC}Æ½Ì¨ÉÏµÄ Linux ÒôÐ§Çý¶¯³ÌÊ½»¹ÎÞ·¨Ê¹ÓÃ£¬
²»¹ý½«À´Ó¦¸Ã»áÖ§Ô®¡£



ÔÚMIPSÆ½Ì¨µÄLinux¿ÉÒÔ½«ÒôÐ§Çý¶¯³ÌÊ½¹Ò½øºËÐÄ£¬
ÓÐ²¿·Ý\idx{MIPS}»úÆ÷ÓÐEISA²å²Û£¬»òÕßÄÚ½¨µÄ·¢ÒôÓ²Ìå¡£
Linux MIPS group ¸æËßÎÒ£¬ÔÚ½«À´ËûÃÇºÜÓÐÐËÈ¤¼ÓÈë¶ÔÒôÐ§µÄÖ§Ô®¡£



Linux ºËÐÄÒ²Îª Atari ¼° Amiga Æ½Ì¨µÄ Linux Ò»¸ö·Ö¿ªµÄÇý¶¯³ÌÊ½£¬
ËüÔËÓÃÕâÐ©»úÆ÷ÄÚ½¨Ó²Ìå£¬Êµ×÷ÁËºÍ Intel Æ½Ì¨ÉÏ Linux ÏàÈÝµÄ×Ó¼¯ºÏ¡£



\idx{SPARC}Æ½Ì¨µÄ Linux Ä¿Ç°ÔÚÄ³Ð©»úÐÍÉÏÒÑÖ§Ô®ÒôÐ§¡£
ÓÐÈËºÍÎÒËµÔÚÖ÷»ú°åÉÏµÄÒôÐ§Ó²ÌåÒÑ¿ÉÒÔÓÃ£¬µ«Íâ²¿ DSP ÒôÐ§ºÐ»¹Î´Ö§Ô®£¬ÒòÎª Sun
²¢Ã»ÓÐ¸øÏà¹Ø¹æ¸ñ×ÊÁÏ¡£




\subsection{ÒôÐ§¿¨}





ÒÔÏÂ\idx{ÒôÐ§¿¨}Îª Linux ºËÐÄÇý¶¯³ÌÊ½Ö§Ô®¡£
ÆäÖÐÓÐÐ©ÊÇÒôÐ§¾§Æ¬Ãû³Æ¶ø·ÇÒôÐ§¿¨Ãû³Æ¡£ Õâ¸öÁÐ±í²¢²»ÊÇÍêÕûµÄÁÐ±í£¬
ÒòÎªÓÐºÜ¶àÆäËü¿¨ÊÇºÍÆäÖÐµÄÒ»Ð©¿¨ÏàÈÝ¡£ ÓÐÐ©³§ÉÌ¸ôÒ»¶ÎÊ±¼ä¾Í¸Ä±äÉè¼Æ£¬
Ê¹ÐÂÒôÐ§¿¨ºÍ¾ÉµÄ²úÉú²»ÏàÈÝÐÔ£¬µ«È´»¹ÓÃ¾ÉµÄÐÍºÅ£¬¸üÔö¼ÓÁËÀ§ÈÅ¡£

\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ºÍSpeaÉú²úµÄÏàÈÝ¿¨)
\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£¬82C929£¬82C930£¬82C924 ¾§Æ¬)
\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}




¶Ô"ÏàÈÝ"Ò»´ÊÓÐÐ©»°ÏÈËµÔÚÇ°: ËäÈ»´ó¶àÊýÒôÐ§¿¨ºÅ³Æ{\itshape ÏàÈÝì¶Éù°Ô¿¨\/}£¬
µ«ÄÜÓÃLinuxµÄÉù°Ô¿¨Çý¶¯³ÌÊ½µÄ¿¨ÉÙÖ®ÓÖÉÙ¡£
ÕâÐ©¿¨Èç¹ûÓÃ MSS/WSS »ò MAD16 Çý¶¯³ÌÊ½Í¨³£»á¸üºÃ¡£ Ö»ÓÐÕæÕýÓÉ Creative 
Labs ×öµÄÉù°Ô¿¨(ÓÃ Creative µÄ¾§Æ¬£¬Èç SoundBlaster16 Vibra)£¬»ò MV Jazz16 ¼°
ESS688/1688 µÄ¿¨²ÅÄÜÎÞÎÊÌâµÄÓÃÉù°Ô¿¨Çý¶¯³ÌÊ½¡£ ÔÚËùÎ½ "Éù°Ô¿¨ÏàÈÝµÄ16Î»Ôª
ÒôÐ§¿¨" ÉÏÓÃÉù°Ô¿¨Çý¶¯³ÌÊ½Ö»ÊÇÀË·ÑÊ±¼ä°ÕÁË¡£



Linux ºËÐÄÒ²Ö§Ô®ÔÚÒôÐ§¿¨ÉÏµÄ SCSI ½éÃæ(ProAudioSpectrum 16)¼°×¨Êô¹âµú»ú½éÃæ
(ÈçÉù°Ô¿¨ Pro)¡£ Çë¿´ Linux \onlynameurl{SCSI HOWTO} ¼° \onlynameurl{CDROM HOWTO} ÎÄ¼þÒÔ×÷¸üÉîÈëÁË½â¡£

(Òë×¢: CDROM HOWTO ÖÐÎÄ°æÔÚ \nameurl{http://www.linux.org.tw/CLDP/CDROM-HOWTO.html}{http://www.linux.org.tw/CLDP/CDROM-HOWTO.html})



ÔÚÒôÐ§¿¨ÉÏ³£¼ûµÄ\idx{Ò¡¡õ}½éÃæ£¬Ò²ÓÐ¸öºËÐÄ¿ÉÔØÈëÄ£×éÖ§Ô®¡£

×¢ÒâÕâÀïÌáµ½µÄSCSI£¬CD-ROM£¬Ò¡¡õ¼°ÒôÐ§Çý¶¯³ÌÊ½±Ë´ËÊÇÎÞ¹ØµÄ¡£




\subsection{Ñ¡ÔñÐÔµÄÒôÐ§Çý¶¯³ÌÊ½}



Linux ºËÐÄµÄÒôÐ§¿¨Çý¶¯³ÌÊ½×îÔçÊÇÓÉ Hannu Savolainen Ð´µÄ¡£ Hannu ááÀ´¼ÌÐø¿ª·¢
Open Sound System£¬Ò»¸öÓÉ 4Front Technologies ³öÊÛ£¬Ö§Ô®¶àÖÖ Unix
ÏµÍ³µÄÉÌÒµ°æ±¾ÒôÐ§Çý¶¯³ÌÊ½¡£ Red Hat Software ááÀ´×ÊÖú Alan Cox
À´ÔöÇ¿ºËÐÄÒôÐ§Çý¶¯³ÌÊ½£¬Ê¹ËüÃÇÍêÈ«Ä£×é»¯¡£ ºÜ¶àÆäËûÈËÒ²Ð­Öú³ý´í£¬
ÒÔ¼°·¢Õ¹ÐÂÒôÐ§¿¨µÄ¶îÍâÇý¶¯³ÌÊ½¡£ ÕâÐ©ÐÞ¸Ä¹ýµÄÇý¶¯³ÌÊ½ÓÉ Red Hat ÔÚËûÃÇµÄ 5.0
µ½ 5.2 °æ·¢ÐÐÌ×¼þÖÐÊ¹ÓÃ¡£ Ä¿Ç°ÕâÐ©¸Ä±äÒÑ¾­ÔÚ 2.0 °æÕûºÏ½ø±ê×¼ºËÐÄÖÐ¡£ Alan Cox
ÊÇÏÖÔÚ±ê×¼ºËÐÄÒôÐ§Çý¶¯³ÌÊ½µÄÎ¬»¤ÈË£¬ËäÈ» Hannu
Ã¿¸ôÐ©Ê±ºòÈÔ»á´ø½øÒ»Ð©ÓÉÉÌÒµ°æ·Ö¸î³öÀ´µÄ³ÌÊ½Âë½øÀ´¡£



ÉÌÒµ°æ±¾µÄ Open Sound System Çý¶¯³ÌÊ½(ÓÉ 4Front Technologies
·¢Õ¹)±È½ÏÆðÀ´ÈÝÒ×Éè¶¨£¬Ò²Ö§Ô®½Ï¶àµÄ¿¨£¬ÌØ±ðÊÇÐÂµÄÒôÐ§¿¨¡£
ËüÒ²ºÍ¶Ô±ê×¼ºËÐÄÇý¶¯³ÌÊ½Ð´µÄÓ¦ÓÃ³ÌÊ½ÏàÈÝ¡£ È±µãÊÇÄúÒª»¨Ç®£¬Ò²²»»áµÃµ½Ô­Ê¼Âë¡£
Äú¿ÉÔÚ¾ö¶¨Òª²»ÒªÂòÒÔÇ°ÏÈÏÂÔØÃâ·ÑÊÔÓÃ°æ¡£ ¸üÏêÏ¸µÄ×ÊÑ¶¿ÉÔÚ\idx{4Front
Technologies}µÄÍøÕ¾\nameurl{http://www.opensound.com}{}È¡µÃ¡£



Jaroslav Kysela¼°ÆäËûÈËÎªGravis UltraSoundÒôÐ§¿¨Ð´ÁË¿ÉÑ¡µÄÇý¶¯³ÌÊ½¡£
Õâ¸ö¼Æ»­ááÀ´¸ÄÃûÎª{\itshape Advanced Linux Sound Architecture\/}(ÏÈ½ø Linux
ÒôÐ§¼Ü¹¹£¬ALSA)£¬²úÉúÁËÒ»¸öËûÃÇÈÏÎª¸ü¼ÓÒ»°ã¿ÉÓÃ£¬
ÇÒ¿ÉÓÃÀ´È¡´úºËÐÄÖÐµÄÒôÐ§Çý¶¯³ÌÊ½¡£ ALSA Çý¶¯³ÌÊ½Ö§Ô®Ðí¶à³£¼ûµÄÒôÐ§¿¨£¬
¶øÇÒÊÇÈ«Ë«¹¤£¬È«Ä£×é»¯£¬ºÍÏÖ´æºËÐÄÖÐµÄÒôÐ§¼Ü¹¹ÏàÈÝ¡£ ALSA ¼Æ»­µÄÖ÷ÒªÍøÕ¾ÔÚ
\nameurl{http://www.alsa-project.org}{}¡£ ÓÐ¸öÁíÍâµÄ
"Alsa-sound-mini-HOWTO"£¬
ÀïÃæÖ÷ÒªÊÇÈçºÎ±àÒë¼°°²×°ÕâÐ©Çý¶¯³ÌÊ½¡£



Markus Mummert (\onlynameurl{mum@mmk.e-technik.tu-muenchen.de}Ð´ÁË¸ø Turtle Beach MultiSound(classic)
£¬Tahiti£¬¼°MontereyÒôÐ§¿¨ÓÃµÄÇý¶¯³ÌÊ½£¬ÎÄ¼þÖÐÌáµ½:

\begin{quotation}
"It is designed for high quality hard disk recording/playback without
losing sync even on a busy system¡£ Other features such as wave
synthesis£¬MIDI and digital signal processor (DSP) cannot be
used¡£ Also£¬recording and playback at the same time is not
possible¡£ It currently replaces VoxWare and was tested on several
kernel versions ranging from 1.0.9 to 1.2.1¡£ Also£¬it is installable
on UN*X SysV386R3.2 systems."\\ 
(ËüÊÇÎª¸ßÆ·ÖÊÓ²µúÂ¼·ÅÒôÉè¼Æ£¬¼´Ê¹ÏµÍ³¸ºÔØ´ó£¬Ò²²»»áµôÒô¡£ ÆäËüÈç²¨ÐÎºÏ³É£¬
MIDI ¼°ÊýÎ»ÐÅºÅ´¦ÀíÆ÷ (DSP) Ôò²»ÄÜÊ¹ÓÃ¡£ Ò²²»ÄÜÍ¬Ê±Â¼·ÅÒô¡£ ËüÄ¿Ç°¿ÉÈ¡´ú VoxWare
£¬²¢ÔÚ1.0.9µ½1.2.1°æºËÐÄ²âÊÔ¹ý¡£ ËüÒ²¿ÉÒÔ×°ÔÚ UN*X SysV386R3.2 ÏµÍ³ÉÏ¡£)
\end{quotation}




¿ÉÔÚ\nameurl{http://www.cs.colorado.edu/~mccreary/tbeach}{}ÕÒµ½¡£



Kim Burgaard (\onlynameurl{burgaard@daimi.aau.dk}
Ð´ÁË¸ø MPU-401 \idx{MIDI} ½éÃæÓÃµÄÇý¶¯³ÌÊ½¼°¹«ÓÃ³ÌÊ½¡£ Linux Software Map
¸øÓèÈçÏÂµÄ½éÉÜ:

\begin{quotation}
"A device driver for true Roland MPU-401 compatible MIDI interfaces
(including Roland SCC-1 and RAP-10/ATW-10)¡£ Comes with a useful
collection of utilities including a Standard MIDI File player and
recorder.\\ 
(Ò»¸ö¸øºÍ MPU-401ÍêÈ«ÏàÈÝµÄ MIDI ½éÃæ(°üÀ¨ Roland SCC-1¼°RAP-10/ATW-10) ÓÃ
µÄÇý¶¯³ÌÊ½¡£ Ò²¸½´øÁËºÃÓÃµÄ¹«ÓÃ³ÌÊ½£¬°üÀ¨±ê×¼µÄ MIDI µµ²¥·ÅÆ÷¼°Â¼ÖÆ³ÌÊ½¡£)
\end{quotation}


\begin{quotation}
Numerous improvements have been made since version 0.11a¡£ Among other
things£¬the driver now features IRQ sharing policy and complies with
the new kernel module interface¡£ Metronome functionality£¬possibility
for synchronizing e.g¡£ graphics on a per beat basis without losing
precision£¬advanced replay/record/overdub interface and much£¬much
more."\\ 
(´Ó 0.11a °æÆð£¬ÓÖ½øÐÐÁË¶àÏî¸Ä½ø¡£ ÆäÖÐ°üÀ¨ÁË IRQ ¹²ÓÃ£¬»¹ÓÐ¿É±àÒëÎªºËÐÄÄ£×é¡£
½ÚÅÄÆ÷¹¦ÄÜ¿É´ïµ½Ã¿Ò»ÅÄ¶¼Í¬²½¶ø²»É¥Ê§×¼¶È£¬¸ÄÁ¼µÄÖØ²¥/Â¼Òô¼°overdub(?)
½éÃæ¼°ºÜ¶àºÜ¶à¡£)
\end{quotation}




¿ÉÔÚ\nameurl{ftp://metalab.unc.edu/pub/Linux/kernel/sound/mpu401-0.2.tar.gz}{}
ÕÒµ½¡£



ÒôÐ§¿¨ÔÚLinuxÏÂ»¹ÓÐÒ»¸öÐÂÆæÓÃÍ¾ -- µ±×÷ÒµâÅ\idx{ÎÞÏßµç}µÄµ÷±äÆ÷¡£
2.1.x °æ¼°ÒÔááµÄºËÐÄ°üº¬ÁËÒ»¸öÀûÓÃÉù°Ô¿¨¼° Windows Sound System ÏàÈÝ¿¨À´Êµ×÷
1200 bps AFSK ¼° 9600 bps FSK ·â°üÐ­¶¨µÄÇý¶¯³ÌÊ½¡£
ÏêÇéÇë¼û Linux AX25 HOWTO¡£ (ÎÒ(×÷Õß)Ò²ÊÇ¸ö»ðÍÈ×å£¬´úºÅ VE3ICH)




\subsection{PCÀ®°È}





ÁíÍâ»¹ÓÐÒ»¸ö²»Òª¶îÍâÓ²ÌåµÄÇý¶¯³ÌÊ½£¬ËüÀûÓÃ\idx{PCÀ®°È}¡£
ËüºÍÒôÐ§Çý¶¯³ÌÊ½ÈíÌåÉÏ´óÌåÏàÈÝ£¬µ«¿ÉÒÔÏë¼ûµÄ£¬ËüµÄÒôÖÊ²î¶àÁË£¬CPU¸ºµ£Ò²¸ß¶àÁË¡£
Ëü²úÉúµÄ½á¹ûÊÓ¸÷±ðÀ®°ÈµÄÌØÐÔ¶øÓÐºÜ´ó²î±ð¡£ Çë¿´ÄÚ¸½µÄÎÄ¼þÒÔ¸üÉîµÄÁË½â¡£



Õâ¸öÈíÌåÒÑÓÐÒ»¶ÎÊ±¼äÃ»ÓÐ¸üÐÂÁË£¬¿ÉÔÚ
\nameurl{ftp://ftp.infomatik.hu-berlin.de/pub/os/linux/hu-sound/}{}ÕÒµ½¡£




\subsection{Æ½ÐÐ(Ó¡±í»ú)²º}





»¹ÓÐ¸öÑ¡Ôñ£¬¾ÍÊÇÓÃÆ½ÐÐ²º¼ÓÉÏÒ»Ð©¶«Î÷×öÊýÎ»/Àà±È×ª»»¡£ ËüµÄÒôÖÊ±È PC À®°ÈºÃ£¬µ«
CPU ¸ºÔØÈÔÏÓ¸ß¡£ Ç°Ò»Ð¡½ÚÌáµ½µÄÀ®°ÈÇý¶¯³ÌÊ½ÓÐÖ§Ô®£¬Ëü»¹°üº¬ÁËÖÆÔìËùÐèÓ²ÌåµÄËµÃ÷¡£




\section{°²×°}





ÒªÔÚLinuxÏÂÖ§Ô®ÒôÐ§£¬±ØÐëÏÈ½øÐÐÒÔÏÂ²½Öè:

\begin{enumerate}
\item °²×°ÒôÐ§¿¨
\item Éè¶¨Ëæ²å¼´ÓÃ(Plug and Play)(Èç¹û¿ÉÒÔ/ÐèÒªµÄ»°)
\item ½¨ÔìºËÐÄ£¬Ê¹Ö®Ö§Ô®ÒôÐ§
\item ½¨ÔìÉè±¸µµ
\item Æô¶¯LinuxºËÐÄ£¬²¢²âÊÔ
\end{enumerate}


Èç¹ûÄúÊ¹ÓÃ Red Hat Linux£¬ÀïÃæÓÐ¸ö¹«ÓÃ³ÌÊ½½Ð {\ttfamily sndconfig}£¬
ÔÚ¶àÊýÇéÐÎÏÂÄÜ×Ô¶¯Õì²âÄúµÄÒôÐ§¿¨£¬²¢Éè¶¨ËùÐèµÄÉè¶¨µµ£¬ÔØÈëËùÐèµÄÇý¶¯³ÌÊ½¡£
Èç¹ûÄúÊ¹ÓÃ Red Hat ÎÒ½¨ÒéÄúÊÔÊÔËü¡£ Èç¹ûËü³É¹¦ÁË£¬±¾ÕÂááÃæµÄÖ¸Ê¾¾Í¿ÉÒÔÌø¹ý¡£

Èç¹û {\ttfamily sndconfig} Ê§°ÜÁË£¬»òÄúÊ¹ÓÃ±ðµÄ·¢ÐÐÌ×¼þ£¬
»òÄúÏëÒª¾­ÓÉÊÖ¶¯Éè¶¨¸ü½øÒ»²½ÁË½âÕû¸öÔË×÷¹ý³Ì£¬µ×ÏÂ½«»áÏê¼Ó½âËµÃ¿Ò»²½Öè¡£




\subsection{°²×°ÒôÐ§¿¨}





°´ÕÕËµÃ÷ÊéµÄÖ¸Ê¾£¬°²×°Ó²Ìå£¬»òÊÇÇë³§ÉÌÀ´×°¡£



¾ÉµÄÒôÐ§¿¨Í¨³£ÓÐ¿ª¹Ø»ò\idx{ÌøÏß}£¬ÒÔÉè¶¨IRQ£¬DMAÍ¨µÀµÈ£¬Çë°ÑÕâÐ©Éè¶¨¼ÇÏÂÀ´¡£
Èç¹ûÄú²»È·¶¨ÒªÔõ÷áµ÷£¬¾ÍÕÕ³ö³§Öµ¡£
¿ÉÄÜµÄ»°£¬±ÜÃâºÍÆäËüÉè±¸(ÈçÍøÂ·¿¨£¬SCSI¿¨£¬
Æ½ÐÐ¼°´®ÁÐ²º)Ïà³å¡£



ÈôÄúÔÚDOSÏÂÓÐÊ¹ÓÃÒôÐ§¿¨£¬Í¨³£Ó¦¸ÃÉè³ÉºÍDOSÏÂÒ»Ñù¡£ ²»¹ýÓÐÐ©Çé¿öÏÂ(ÌØ±ðÊÇPnPµÄ
¿¨)Ò²¿ÉÄÜÒªÉè³ÉºÍDOS²»Ò»ÑùµÄÖµ¡£ ÕâÊ±¿ÉÄÜÒªÊµÑéÒ»ÏÂ¡£




\subsection{Éè¶¨Ëæ²å¼´ÓÃ}



ÏÖÔÚ¶àÊýÒôÐ§¿¨ÓÃËæ²å¼´ÓÃÐ­¶¨À´Éè¶¨ I/O Î»Ö·£¬ÖÐ¶Ï¼° DMA Í¨µÀºÅÂë¡£
Èç¹ûÄúÊ¹ÓÃµÄÊÇÉè¶¨Öµ¹Ì¶¨µÄ»òÊÇÓÐÌøÏßµ÷ÕûµÄ£¬ÄÇ÷áÄú¿ÉÒÔÌø¹ýÕâÒ»½Ú¡£

ÔÚ 2.2 °æºËÐÄÖÐ£¬ÈÔÈ»»¹Ã»ÓÐÍêÈ«Ö§Ô®Ëæ²å¼´ÓÃ¡£ ½ÏºÃµÄ½â¾öÖ®µÀÊÇÊ¹ÓÃÐí¶à Linux
·¢ÐÐÌ×¼þÖÐËù¸½ isapnp ¹¤¾ß(»òÄúÒ²¿ÉÒÔ´Ó Red Hat µÄÍøÕ¾\nameurl{http://www.redhat.com/}{}ÏÂÔØ)¡£

Ê×ÏÈ²é¿´ÄúµÄ Linux °²×°Ì×¼þÖÐµÄÎÄ¼þ¡£ Ëü¿ÉÄÜÔç°ïÄúÉè¶¨ºÃËæ²å¼´ÓÃÁË£¬
»òÕß¿ÉÄÜºÍµ×ÏÂ½²µÄÂÔÓÐ²»Í¬¡£ Èç¹ûÄúÒªÊÖ¶¯Éè¶¨£¬isapnp ¹¤¾ßµÄÏ¸½Ú¿ÉÒÔÔÚ man
page ÖÐÕÒµ½¡£ ¼òµ¥µÄËµ£¬ÄúÒª¾­ÀúµÄ³ÌÐòÓÐ:

\begin{itemize}
\item Ê¹ÓÃ {\ttfamily pnpdump} À´×¥È¡ËùÓÐÄúµÄËæ²å¼´ÓÃÉè±¸µÄ¿ÉÄÜÉè¶¨£¬°Ñ½á¹û´æ³É
\url{/etc/isapnp.conf}¡£
\item ÓÉÆäÖÐÑ¡ÔñºÍÆäËüÉè±¸²»Ïà³åÍ»µÄÉè¶¨£¬²¢½«ÔÚ
\url{/etc/isapnp.conf} ÖÐµÄÏà¶ÔÓ¦ÐÐÉè³ÉÓÐÐ§ÐÐ(uncomment)¡£
±ðÍüÁË°Ñ½Ó½üµµÎ²µÄ{\ttfamily (ACT Y)}Ç°µÄ×¢½â·ûºÅÏûµô¡£
\item È·¶¨¿ª»úÊ±»áÖ´ÐÐµ½ {\ttfamily isapnp}£¬ÕâÍ¨³£ÓÉ¿ª»úÖ´ÐÐµÄÃüÁî¸åÖ®Ò»Íê³É¡£
ÖØ¿ª»ú»òÊÖ¶¯Ö´ÐÐ {\ttfamily isapnp}¡£
\end{itemize}


Èç¹ûÎªÁËÒ»Ð©ÀíÓÉÄúÎÞ·¨»ò²»ÏëÊ¹ÓÃ isapnp ¹¤¾ß£¬»¹ÓÐ¼¸ÖÖÑ¡Ôñ¡£ Èç¹ûÄúÔÚ
Microsoft Windows 95 »ò 98£¬Äú¿ÉÒÔÀûÓÃ×°ÖÃ¹ÜÀíÔ±À´Éè¶¨¿¨£¬È»ááÓÃ loadlin
Å¯¿ª»ú½øÈë Linux¡£ È·¶¨ Linux ¼° Windows Ê¹ÓÃÏàÍ¬µÄÉè¶¨²ÎÊý¡£

Èç¹ûÄúÔÚ DOS ÏÂÊ¹ÓÃÕâÆ¬¿¨£¬Äú¿ÉÒÔÓÃ SoundBlaster16 PnP ¿¨¸½µÄ {\ttfamily icu}
¹«ÓÃ³ÌÊ½£¬È»ááÓÃ LOADLIN Å¯¿ª»ú½ø Linux¡£ Ò»Ñù£¬È·¶¨ DOS ºÍ Linux
ÓÃÒ»ÑùµÄÉè¶¨¡£

ÓÐÐ©ÒôÐ§¿¨Çý¶¯³ÌÊ½ÐèÒªÈíÌåÀ´³õÊ¼»¯¿¨µÄËæ²å¼´ÓÃ¹¦ÄÜ¡£
Çë¿´¿¨µÄÇý¶¯³ÌÊ½µÄËµÃ÷ÎÄ¼þµÃµ½¸üÏêÏ¸×ÊÑ¶¡£




\subsection{Éè¶¨ºËÐÄ}





°²×°Ê±ÄúÓÃµÄÊÇÔ¤ÏÈ±àÒë¹ýµÄºËÐÄ£¬ËüÃÇÍ¨³£ÊÇ²»Ö§Ô®ÒôÐ§µÄ¡£ ËùÒÔ×îºÃ×Ô¼º±àÒëÊÊºÏ×Ô
¼ºÓÃµÄºËÐÄ¡£ ¶øÇÒ£¬ÄúÒ²¿ÉÄÜÏëÒª½å´ËÀ´Éý¼¶µ½¸üÐÂ°æµÄºËÐÄ£¬»òÊÇËõÐ¡ºËÐÄÌå»ý£¬Ôö¼Ó
¿ÉÓÃµÄ¼ÇÒäÌå¡£ È»áá£¬µ±ÄúµÄÒôÐ§¿¨ÄÜÊ¹ÓÃáá£¬Äú¿ÉÄÜÏëÖØ½¨ºËÐÄ£¬
°ÑÒôÐ§Çý¶¯³ÌÊ½×ö³ÉÄ£×é¡£



ÔÚÈçºÎ½¨ÔìºËÐÄ·½Ãæ£¬ÄúÓ¦¸Ã²Î¿¼
\onlynameurl{Linux Kernel HOWTO}¡£ ÎÒÔÚÕâÀïÖ»ÌáºÍÒôÐ§¿¨Ïà¹ØµÄ²¿·Ý¡£
(Òë×¢: ÖÐÎÄ°æÔÚ\nameurl{http://www.linux.org.tw/CLDP/Kernel-HOWTO.html}{http://www.linux.org.tw/CLDP/Kernel-HOWTO.html}



Èç¹ûÄú»¹Ã»ÓÐ±àÒëºËÐÄ£¬¼ÓÈëÒôÐ§Ö§Ô®µÄ¾­Ñé£¬ÏÈ¶ÁÒ»ÏÂºËÐÄÇý¶¯³ÌÊ½ÀïµÄÏà¹ØÎÄ¼þ
(ÌØ±ðÊÇ¹Øì¶ÄúµÄÒôÐ§¿¨µÄ²¿·Ý)ÊÇ¸ö²»´íµÄÖ÷Òâ¡£
ÕâÐ©µµ°¸¿ÉÒÔÔÚºËÐÄÎÄ¼þÄ¿Â¼ÖÐÕÒµ½£¬Í¨³£ÔÚ
\url{/usr/src/linux/Documentation/sound}¡£ Èç¹ûÃ»ÓÐÕâ¸öÄ¿Â¼£¬
Äú¿ÉÄÜ»¹ÔÚÊ¹ÓÃ·Ç³£¾ÉµÄºËÐÄ£¬»òÊÇ¸ù±¾Ã»×°ºËÐÄÔ­Ê¼Âë¡£



ÕÕÒ»°ãÔìºËÐÄµÄ³ÌÐòÀ´¾ÍºÃ¡£ Ä¿Ç°Éè¶¨ºËÐÄÓÐÈýÖÖ½éÃæ¿ÉÑ¡Ôñ¡£ ÓÃ "make xconfig
" ¿É½Ð³öÔÚX11ÏÂµÄÍ¼ÐÎÉè¶¨½éÃæ; ÓÃ "make menuconfig" ÔòÊÇÎÄ×Ö
Ä£Ê½µÄÑ¡µ¥½éÃæ; ×îÔ­Ê¼µÄ·½·¨£¬ÔòÊÇÓÃ "make config"£¬Ìá¹©ÁË¼òµ¥µÄÎÄ
×ÖÎÊ´ð½éÃæ¡£



µ±Éè¶¨ºËÐÄÊ±£¬ÔÚÑ¡ÔñÄúµÄÒôÐ§¿¨¼°Çý¶¯³ÌÊ½Ñ¡ÏîÊ±»áÓÐºÜ¶àÑ¡Ôñ¡£
ÔÚÉè¶¨¹¤¾ßÖÐµÄÏßÉÏÇóÖúÓ¦¸Ã¿ÉÒÔÎªÄú½âÊÍÃ¿Ò»¸öÑ¡ÏîÊÇÊ²÷á¡£ ÒÀÕÕÄúËùÖªµÄ£¬
Ñ¡Ôñ×îÊÊµ±µÄÑ¡Ïî¡£ 

ÔÚÉè¶¨ÍêËùÓÐÑ¡Ïîáá£¬ÄúÓ¦¸ÃÕÕ Kernel HOWTO À´ÖØÐÂ±àÒë²¢°²×°ºËÐÄ¡£




\subsection{½¨Á¢Éè±¸µµ}





ÎªÁËÕý³£µÄ²Ù×÷£¬±ØÐëÎª¸÷ÒôÐ§Éè±¸½¨Á¢Éè±¸µµ¡£ Õý³£×´¿öÏÂÔÚÄú×° Linux Ê±¾ÍÒÑ¾­
½¨ºÃÁË£¬¿ÉÒÔÓÃÏÂÁÐµÄÃüÁî¿ìËÙ¼ì²éÒ»ÏÂ¡£ Èç¹ûÊä³ö½á¹ûºÍÏÂÃæºÜÏñ(ÈÕÆÚ²»Ò»Ñù
Ã»¹ØÏµ)£¬ÄÇ÷áÉè±¸µµ²î²»¶àÊÇÉè¶¨ÕýÈ·ÁË¡£

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




×¢ÒâÓÐÁËÕýÈ·µÄÉè±¸µµ²¢²»±£Ö¤Ò»ÇÐÍêÃÀÁË¡£ ÔÚÉè±¸ÄÜÓÃÒÔÇ°£¬»¹ÊÇÒªÏÈÔØÈë»ò¼Ó½ø
ºËÐÄÇý¶¯³ÌÊ½(ÉÔááÔÙÏêÊö)¡£

ÔÚ¼«ÉÙÊýÇé¿ö£¬Èç¹ûÄúÈ·ÐÅÉè±¸µµÉè´í£¬Äú¿ÉÒÔÖØ½¨ËüÃÇ¡£ ¶àÊý Linux
·¢ÐÐÌ×¼þÓÐÓÐ¸ö {\ttfamily /dev/MAKEDEV} ÃüÁî¸å¿ÉÒÔÓÃÀ´×öÕâÊÂ¡£




\subsection{Æð¶¯Linux¼°²âÊÔ}





ÄúÖÁ´ËÓ¦¸Ã¿ÉÒÔ×¼±¸Æð¶¯ÐÂºËÐÄ£¬²âÊÔÇý¶¯³ÌÊ½ÁË¡£ ÕÕÖøÄúÆ½Ê±°²×°¼°ÖØÆô¶¯ÐÂºËÐÄµÄ²½
ÖèÈ¥×ö(µ±È»£¬±£ÁôÒ»·Ý¾ÉºËÐÄÒÔ·ÀÍòÒ»)¡£



ÔÚÆð¶¯ÖÐ£¬¼ì²éÒ»ÏÂÓÐÃ»ÓÐÀàËÆÒÔÏÂµÄÑ¶Ï¢:(Èç¹ûÑ¶Ï¢¾í¶¯Ì«¿ì£¬Äú¿ÉÒÔÓÃ{\ttfamily dmesg}
ÃüÁî»Ø¹ýÀ´²é¿´¡£)

\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}




ÕâÓ¦¸ÃºÍÄúµÄÒôÐ§¿¨¼°ÌøÏßÉè¶¨(Èç¹ûÓÐµÄ»°)Ò»ÖÂ¡£



Èç¹ûÄúÓÃ¿ÉÔØÈëÄ£×é£¬ÒÔÉÏÑ¶Ï¢¾Í²»»áÏÔÊ¾³öÀ´(³ý·ÇÄúÔØÈëËüÊ±£¬ÓÃ
{\ttfamily insmod sound trace\_init=1})



µ±ÒôÐ§Çý¶¯³ÌÊ½ÔØÈëºËÐÄÖÐÊ±£¬Ó¦¸Ã»áÏÔÊ¾{\ttfamily Sound initialization started}
¼°{\ttfamily Sound initialization complete}Ñ¶Ï¢¡£ Èç¹ûÃ»ÓÐ£¬±íÊ¾ÒôÐ§Çý
¶¯³ÌÊ½Ã»ÓÐÔØÈë£¬ÕâÊ±ÄúÓ¦¸Ã¼ì²éÒ»ÏÂÄ¿Ç°Æð¶¯µÄºËÐÄÓÐÃ»ÓÐ¼ÓÈëÒôÐ§Çý¶¯³ÌÊ½Ö§Ô®¡£



Èç¹ûÔÚ{\ttfamily Sound initialization started}¼°
{\ttfamily Sound initialization complete}¼äÃ»ÓÐÓ¡³öÊ²÷á¶«Î÷£¬
ÄÇ±íÊ¾Ã»ÓÐÕì²âµ½ÒôÐ§Éè±¸¡£ Õâ×î¿ÉÄÜµÄÔ­ÒòÊÇÄúÃ»ÓÐÊ¹ÓÃ
ÕýÈ·µÄÇý¶¯³ÌÊ½£¬¿¨Ã»±»Ö§Ô®£¬I/OÎ»Ö·²»¶Ô»òÄúÓÃÁË»¹Ã»ÓÐÉè¶¨¹ýµÄ PnP ¿¨¡£



Çý¶¯³ÌÊ½Æð¶¯ÖÐÒà¿ÉÄÜÓ¡³ö´íÎó¼°¾¯¸æÑ¶Ï¢¡£ ÔÚÉè¶¨ÍêÇý¶¯³ÌÊ½áá£¬ÖØÆô¶¯Ê±£¬×¢ÒâÕâ
Ð©Ñ¶Ï¢¡£



ÔÙÀ´ÊÇ¼ì²é\url{/dev/sndstat}Éè±¸µµ¡£
¶ÁÈ¡Õâ¸ö×´Ì¬µµ¿ÉÒÔµÃÖª¶îÍâµÄ×ÊÑ¶£¬
»òÊÇÒôÐ§¿¨Çý¶¯³ÌÊ½ÊÇ²»ÊÇÕýÈ·Æô¶¯ÁË¡£ Êä³ö¡õÀýÈçÏÂ:

\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}




ÒÔÉÏµÄÃüÁîÒ²¿ÉÄÜ»Ø±¨´íÎóÑ¶Ï¢¡£ "No such file or directory" ±íÊ¾Äú»¹
Ã»½¨Éè±¸µµ(²Î¿¼4.3½Ú)¡£ "No such device" ±íÊ¾ÒôÐ§³ÌÊ½Ã»ÓÐÔØÈë£¬»òÃ»
ÓÐÁ¬½á½øºËÐÄÀï¡£ Çë»Øµ½ 4.2 ½ÚÒÔÐÞÕýÖ®¡£



Èç¹û {\ttfamily /dev/sndstat} µµÖÐ£¬ÔÚ"Card config:"¶ÎµÄ¼¸ÐÐÐ´ÔÚÀ¨ºÅÀï (¾ÍÏñ"
(SoundBlaster at 0x220 irq 5 drq 1,5)")£¬Ëü±íÊ¾Éè±¸ÒÑ¾­Éè¶¨ÁË£¬µ«ÊÇÃ»ÓÐÕì
²âµ½¡£



ÏÖÔÚÄúÓ¦¸Ã¿ÉÒÔÊÔÊÔ·Å¼òµ¥µÄÒôÐ§µµÁË¡£ ×¥¡õÀýÒôÐ§µµ£¬°ÑËü¶ªµ½Éè±¸µµÀ´¼ì²é¡£

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




(È·¶¨ÄúÃ»ÓÐÊ¡ÂÔµô´óì¶·ûºÅ)



×¢Òâ£¬ÔÚÆ½Ê±ÓÃ{\ttfamily cat}²»ÊÇ·ÅÒôÐ§µµµÄÌùÇÐ·½·¨£¬ÕâÖ»ÊÇÎªÁË¼ì²é°ÕÁË¡£
È¥×¥ºÏÊÊµÄ·ÅÒô³ÌÊ½(ááÃæÏêÊö)¿ÉÒÔ×öµÃ¸üºÃ¡£



Ö»ÓÐÔÚ \url{/dev/sndstat} ÄÚµÄ audio devices
Õâ¶ÎÖÁÉÙÁÐ³öÒ»¸öÉè±¸µÄÇéÐÎÏÂ£¬
ÒÔÉÏÃüÁî²Å»áÓÐÐ§¡£ Èç¹ûÕâ¶ÎÃ»ÁÐ³öÈÎºÎ¶«Î÷£¬ÄúÓ¦¸Ã¼ì²éÒ»ÏÂÎªºÎÉè±¸Ã»Õì²âµ½¡£



Èç¹ûÒÔÉÏÃüÁî»Ø±¨"I/O error"£¬Äú¿ÉÒÔÓÃ "dmesg"ÃüÁî¼ì²é
ºËÐÄÑ¶Ï¢µÄÎ²²¿£¬ÔÚÄÇºÜ¿ÉÄÜ»áÓÐÓ¡³ö´íÎóÑ¶Ï¢£¬¶øÇÒ¾­³£ÊÇ "Sound: DMA (output)
timed out - IRQ/DRQ config error?"¡£ Õâ¸öÑ¶Ï¢ÊÇÖ¸Çý¶¯³ÌÊ½Ã»ÓÐ´ÓÒôÐ§¿¨µÃµ½Ó¦
¸Ã·¢ÉúµÄÖÐ¶Ï¡£ ×îÓÐ¿ÉÄÜµÄÔ­ÒòÊÇ£¬IRQ ºÍ DMA µÄÉè¶¨Ã»ÓÐ×÷ÓÃ¡£ 
½â¾öÕâÎÊÌâµÄ×îºÃ·½·¨¾ÍÊÇÍÁ·¨Á¶¸Ö£¬°ÑËùÓÐÕâÕÅ¿¨ÄÜÉèµ½µÄ DMA ºÍ IRQ ´îÅä¶¼ÊÔÊÔ¿´¡£



ÁíÒ»ÖÖ¿ÉÄÜÔ­ÒòÊÇÇý¶¯³ÌÊ½ºÍ¿¨²»ÏàÈÝ¡£ Õâ¼¸ºõÒ»¶¨ÊÇËùÎ½ "Éù°Ô¿¨(Pro/16)ÏàÈÝ¿¨
" ºÍÉù°Ô¿¨Çý¶¯³ÌÊ½´î²»ÆðÀ´¡£ ÕâÖÖ×´¿öÏÂÄúÒªÕÒ³öºÍÄúµÄ¿¨ÄÜ´îÅäµÄÇý¶¯³ÌÊ½²Å
ÐÐ¡£(ÀýÈç£¬¿ÉÒÔÍ¶Êéµ½comp.os.linux.hardwareÌÖÂÛÇøÎÊÎÊ)



Ò»Ð©ÒôÐ§¡õÀýµµ¿ÉÔÚ
\nameurl{ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.Z}{}
×¥µ½¡£



ÏÖÔÚÄú¿ÉÒÔÊÔÊÔÂ¼ÒôÁË¡£ Èç¹ûÄúµÄ¿¨ÓÐÂ¼ÒôÄÜÁ¦£¬Äú¿ÉÒÔÓÃÒÔÏÂÃüÁîÀ´¿ìËÙ²âÊÔÒ»ÏÂ:

\begin{tscreen}
\begin{verbatim}
# ´ÓÂó¿Ë·çÂ¼½ø 4 ÃëÉùÒô
EDT% dd bs=8k count=4 < /dev/audio >sample.au
4+0 records in
4+0 records out
# °Ñ¸Õ¸ÕÂ¼µÄ·Å³öÀ´
% cat sample.au > /dev/audio
\end{verbatim}
\end{tscreen}




ÏÔÈ»Äú±ØÐèÒªÓÐÁ¬½ÓÒôÐ§¿¨µÄÂó¿Ë·ç£¬»¹Òª¶ÔÖøËü½²»°£¬²ÅÄÜÊÔ³öÓÐÃ»ÓÐÐ§¡£ ÄúÒ²ÐíÒ²Ðè
ÒªÅªµ½Ò»¸ö»ìÒô³ÌÊ½£¬Éè¶¨Âó¿Ë·çÎªÊäÈë×°ÖÃ£¬²¢Éè¶¨ÆäÂ¼ÒôµÄÔöÒæ¡£



Èç¹ûÒÔÉÏ²âÊÔ¶¼Í¨¹ýÁË£¬Äú¾ÍÓÐÀíÓÉÏàÐÅÒôÐ§D/A¼°A/DÓ²ÌåºÍÈíÌå¶¼ºÜÕý³£¡£ Èç¹ûÄúÅöµ½
ÎÊÌâ£¬²Î¿¼ÏÂÒ»Ð¡½Ú¡£




\subsection{ÎÊÌâÓë½â¾ö}





Èç¹ûÄú½øÐÐÁËÒÔÉÏ²¿Öè£¬ÈÔÈ»ÓÐÎÊÌâ£¬ÄÇ÷á¿ÉÒÔ¼ì²é¼¸¸öµØ·½¡£ ÕâÐ©¼ì²éÓÉ¼òµ¥µ½¸´ÔÓ
ÒÀÐòÅÅÁÐ£¬Èç¹û¼ì²é³öÎÊÌâ£¬ÏÈ½â¾ö£¬ÔÙ½øÐÐÏÂÒ»µÀ¼ì²é¡£




\subsubsection{µÚÒ»²½: È·¶¨ÄúÓÃÄú×Ô¼º±àÒëµÄºËÐÄÆð¶¯¡£}





Äú¿ÉÒÔÓÃºËÐÄµÄÈÕÆÚ´Á¼ÇÀ´Ê¶±ðÊÇ²»ÊÇÄú±àÒëµÄÄÇ¸öÓÐÖ§Ô®ÒôÐ§µÄºËÐÄ¡£ Äú¿ÉÒÔÓÃ
{\ttfamily uname}ÃüÁîÀ´×÷:

\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}µµÄÚÈÝ:

\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}




Èç¹ûÈÕÆÚ´Á¼Ç²»ÊÇÄú±àÒëºËÐÄµÄÊ±¼ä£¬ÄÇÄúÓÃÁË¾ÉµÄºËÐÄ¡£ ÄúÕæµÄÖØ¿ª»úÁËÂð? Èç¹ûÄúÓÃ
LILO£¬ÊÇ²»ÊÇÓÐÖØ×°ÄØ(Æ½³£ÓÃ\url{lilo})? Èç¹ûÊÇÈíµúÆð¶¯£¬ÄúÕæµÄ
×öÁËÐÂ¿ª»úÆ¬£¬²¢ÓÃËü¿ª»úÂð?




\subsubsection{µÚ¶þ²½: È·¶¨ºËÐÄÒôÐ§Çý¶¯³ÌÊ½ÓÐ±à½øÈ¥¡£}





×î¼òµ¥µÄ·½·¨¾ÍÊÇÇ°ÃæÌá¹ýµÄ£¬¼ì²é "/dev/sndstat"µÄÊä³ö¡£ Èç¹ûÓÐµØ·½²»¶Ô£¬
ÄÇ÷áºËÐÄÉè¶¨»ò½¨Á¢Ò»¶¨ÓÐÎÊÌâ¡£ ÔÙÖØÐÂÉè¶¨¼°½¨Á¢£¬°²×°ÐÂºËÐÄµÄ³ÌÐò¡£




\subsubsection{µÚÈý²½: ºËÐÄÆð¶¯Ê±ÓÐÕì²âµ½ÄúµÄÒôÐ§¿¨Âð?}





È·¶¨ºËÐÄÆô¶¯Ê±ÄúµÄ¿¨ÓÐ±»Õì²âµ½¡£ ÄúÓ¦¸Ã¿´¹ý¿ª»úÑ¶Ï¢ÁË£¬Èç¹ûËü¾íµÃ¹ý¿ì£¬ÄúÍ¨³£¿É
ÓÃ {\ttfamily dmesg} ÃüÁî½Ð»ØÀ´:

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

»ò
\begin{tscreen}
\begin{verbatim}
% tail /var/adm/messages
\end{verbatim}
\end{tscreen}




Èç¹ûÄúµÄ¿¨Ã»Õì²âµ½£¬¾ÍÊÇÄ³Ò»´¦³öÎÊÌâ¡£ È·¶¨ÄÇÕÅ¿¨ÕæµÄ×°ÁË¡£ Èç¹ûÄÇÕÅ¿¨ÔÚDOSÏÂ¹¤
×÷µÃºÜºÃ£¬ÄÇÄú¾ÍÓÐÀíÓÉÏàÐÅÓ²ÌåÊÇÕý³£µÄ¡£ ²»ÊÇÄú°ÑÒôÐ§¿¨Éè´íÐÍÊ½£¬ÏÂ´í²ÎÊý£¬¾ÍÊÇ
ÄúµÄÒôÐ§¿¨ºÍºËÐÄÒôÐ§Çý¶¯³ÌÊ½²»ÏàÈÝ¡£



Ò»ÖÖ¿ÉÄÜ¾ÍÊÇÐèÒªÌØÊâDOSÇý¶¯³ÌÊ½À´Çý¶¯µÄ"ÏàÈÝ"¿¨¡£ ÊÔÖøÆð¶¯ DOS£¬ÔØÈë
³§ÉÌ¸øµÄÇý¶¯³ÌÊ½£¬È»áá°´{\ttfamily Control-Alt-Delete}Å¯¿ª»ú½øLinux¡£ È·¶¨¿¨µÄI/OÎ»
Ö·£¬DMA¼°IRQÉè¶¨¶¼ºÍDOSÒ»Ñù¡£ ¶ÁÔÚÒôÐ§Çý¶¯³ÌÊ½Ô­Ê¼ÂëÖÐµÄ
\url{Readme.cards} µµÒÔµÃµ½¹Øì¶Éè¶¨ÄúµÄÕâÐÍ¿¨µÄÌáÊ¾Ñ¶Ï¢¡£



Èç¹ûÄúµÄ¿¨²¢Ã»ÓÐÔÚ±¾ÎÄ¼þÖÐÁÐ³ö£¬¿ÉÄÜÊÇLinuxÇý¶¯³ÌÊ½Ã»Ö§Ô®µÄ¹ØÏµ¡£ Äú¿ÉÒÔ²Î¿¼±¾ÎÄ
Ä©µÄ²Î¿¼ÎÄÏ×À´ÇóÖú¡£




\subsubsection{µÚËÄ²½: ÄúÄÜ´ÓdspÉè±¸¶Á³ö×ÊÁÏÂð?}





ÊÔÊÔÓÃÇ°ÃæÌá¹ýµÄ {\ttfamily dd} ÃüÁî¶ÁÈ¡ \url{/dev/audio}¡£
Õâ¸öÃüÁîÓ¦¸Ã²»»áÓÐ´íÎó²Å¶Ô¡£



Èç¹û²»ÐÐ£¬ÄÇ¿ÉÄÜÊÇ IRQ/DMA ³åµ½£¬»òÄ³ÖÖÓ²Ìå²»ÏàÈÝ(Éè±¸²»Îª Linux Ö§Ô®£¬»òÓÃ´íÇý
¶¯³ÌÊ½)¡£



»¹ÓÐÒ»¸öÉÙ¼ûµÄ¿ÉÄÜÊÇ²»Á¼µÄÓ²Ìå¡£ ¿ÉÄÜµÄ»°£¬ÔÚDOSÏÂ²âÊÔÒ»ÏÂ£¬ÏûÈ¥ÕâÖÖ¿ÉÄÜÐÔ¡£




\subsubsection{ÒªÊÇÕâÐ©¶¼Ã»ÓÃÄØ?}





Èç¹ûÄú»¹ÊÇÓÐÎÊÌâ£¬ÕâÀïÌá¹©×îáá¼¸ÕÐÊÔÊÔ:

\begin{itemize}
\item Ð¡ÐÄÖØ¶ÁÕâ·ÝHOWTOÎÄ¼þ
\item ¶Á±¾ÎÄ¼þááÁÐµÄ²Î¿¼ÎÄÏ×£¬¼°Ïà¹ØµÄºËÐÄÔ­Ê¼ÂëÖÐµÄÎÄ¼þ¡£
\item µ½ {\ttfamily comp.os.linux} »òÆäËüUsenetÌÖÂÛÇø
(comp.os.linux.hardware ÊÇ¸öºÃµØ·½; ÒòÎªÕâ¶ù¹àË®Á¿¶à£¬
×îºÃÔÚ±êÌâÀ¸×¢Ã÷ "sound"£¬ÕâÑùÊÊºÏµÄ×¨¼Ò²Å»áÕÒµ½Ëü¡£)
\item ÓÃWeb/UsenetËÑÑ°ÒýÇæ£¬¼ÓÉÏÓÐÖÇ»ÛµÄËÑÑ°Ìõ¼þ£¬ºÜ¿ì¾ÍÄÜÕÒµ½ºÜºÃµÄ½á¹û¡£ 
Ò»¸öºÃÑ¡ÔñÊÇ\nameurl{http://www.altavista.digital.com}{}¡£
\item ÓÃ×îÐÂµÄLinuxºËÐÄ¡£(µ«ÊÇÖ»ÔÚ×îáá¹ØÍ·²ÅÓÃ£¬×îÐÂµÄ·¢Õ¹ÓÃºËÐÄ¿ÉÄÜºÜ²»ÎÈ)
\item ·¢·âÐÅ¸øÒôÐ§Çý¶¯³ÌÊ½×÷Õß
\item ·¢·âÐÅ¸øSound HOWTOµÄ×÷Õß
\item ½Ð³öemacs£¬ÊäÈë{\ttfamily Esc-x doctor} :-)
\end{itemize}




(Òë×¢: µ±È»×îááÒ»ÏîÊÇ¿ªÍæÐ¦µÄ)




\section{Ö§Ô®ÒôÐ§µÄÓ¦ÓÃÈíÌå}





Èç¹ûÄúÔÚLinuxÏÂÄÜÓÃÒôÐ§¿¨£¬
ÎÒÔÚÕâÀïÌá³öÒ»Ð©Äú¿ÉÄÜ»áÏëÒªµÄ\idx{Ó¦ÓÃÈíÌå}¡£ Äú¿ÉÒÔ²éÒ»ÏÂ
Linux Software Map£¬Íø¼ÊÍøÂ·µµ°¸¿â£¬»òÊÇÄúµÄLinux CD-ROM ÒÔÕÒ³ö×îÐÂ×ÊÑ¶¡£



Äú×îÉÙ»áÏëÒªÒÔÏÂµÄÒôÐ§ÈíÌå:

\begin{itemize}
\item ÒôÐ§µµµµ°¸¸ñÊ½×ª»»ÈíÌå (Èç {\ttfamily Sox})
\item »ìÒô³ÌÊ½ (Èç {\ttfamily aumix} »ò {\ttfamily xmix})
\item ÒôÐ§µµ²¥·ÅÈíÌå (Èç {\ttfamily play} »ò {\ttfamily wavplay})
\item MOD µµ°¸²¥·ÅÈíÌå (Èç {\ttfamily tracker})
\item MIDI µµ°¸²¥·ÅÈíÌå (Èç {\ttfamily playmidi})
\end{itemize}




ÕâÀà¹¤¾ßÓÐÎÄ×ÖÐÍÊ½µÄ£¬Ò²ÓÐGUIÐÍÊ½µÄ¡£ Ò²ÓÐÒ»Ð©±È½ÏÆæÒìÒ»µãµÄÓ¦ÓÃ
(ÏñÓïÒô·ÖÎö¼°±æÊ¶)£¬Äú¿ÉÄÜ»áÏëÍæÍæ¿´¡£




\section{³£¼ûÎÊÌâÓë½â´ð}





ÕâÒ»½Ú»Ø´ð¾­³£ÔÚUsenetÌÖÂÛÇø¼°Í¨ÐÅÂÛÌ³³£±»ÎÊµ½µÄÎÊÌâ¡£



¿ÉÒÔÔÚOSSÒôÐ§Çý¶¯³ÌÊ½µÄÍøÕ¾¿´µ½¸ü¶àÎÊÌâµÄ½â´ð¡£




\subsection{ÕâÒ»¶ÑÒôÐ§Éè±¸µµ¸÷´ú±íÊ²÷á?}





ÒÔÏÂÊÇ×î±ê×¼µÄÉè±¸µµµµÃû£¬ËäÈ»ÓÐÐ© Linux °²×°Ì×¼þ¿ÉÄÜÓÃ²»Ì«Ò»ÑùµÄÃû³Æ¡£

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

Ò»°ãÊÇÁ¬µ½ {\ttfamily /dev/audio0}



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

ºÍSun¹¤×÷Õ¾ÏàÈÝµÄÉùÑ¶Éè±¸ (Ö»×÷ÁË²¿·Ý£¬²¢²»Ö§Ô® Sun µÄ
ioctl ½éÃæ£¬Ö»ÓÐ u-law ±àÂë)



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

µÚ¶þ¸öÒôÑ¶Éè±¸ (Èç¹ûÒôÐ§¿¨Ö§Ô®£¬»ò²»Ö»ÓÐÒ»ÕÅÒôÐ§¿¨µÄ»°)



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

Ò»°ãÁ¬µ½ {\ttfamily /dev/dsp0}



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

µÚÒ¼ÊýÎ»È¡ÑùÉè±¸



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

µÚ·¡ÊýÎ»È¡ÑùÉè±¸



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

Í¨³£Á¬½áµ½ {\ttfamily /dev/mixer0}



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

µÚÒ¼»ìÒôÆ÷



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

µÚ·¡»ìÒôÆ÷



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

¸ß½×±àÇúÆ÷½éÃæ



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

µÍ½× MIDI£¬FM£¬¼° GUS ´æÈ¡ÓÃ



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

Í¨³£Á¬½áµ½ {\ttfamily /dev/music}



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

µÚÒ¼Ô­Éú(raw)MIDI²º



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

µÚ·¡Ô­ÉúMIDI²º



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

µÚ²ÎÔ­ÉúMIDI²º



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

µÚËÁÔ­ÉúMIDI²º



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

¶ÁÈ¡Ê±£¬ÏÔÊ¾ÒôÐ§Çý¶¯³ÌÊ½µÄ×´Ì¬(/proc/sound
Ò²ÊÇÒ»ÑùµÄ)



\end{description}




PCÀ®°ÈÇý¶¯³ÌÊ½Ìá¹©ÒÔÏÂÉè±¸:

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

ºÍ /dev/audio Í¬Ñù

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

ºÍ /dev/dsp Ò»Ñù

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

ºÍ /dev/mixer Ò»Ñù

\end{description}





\subsection{ÔõÑù²¥·ÅÒôÐ§µµ°¸?}





Sun ¹¤×÷Õ¾µÄÒôÐ§µµ(.au)¿ÉÒÔ¶ªµ½ \url{/dev/audio} À´·Å³ö£¬
Ô­Ê¼È¡Ñùµµ¿ÉÒÔ¶ªµ½ \url{/dev/dsp}£¬ËäÈ»ÕâÑùÒ»°ãÀ´Ëµ»á²úÉúºÜ²îµÄÊä³ö¡£
Ê¹ÓÃÏñ {\ttfamily play} ÕâÑùµÄ³ÌÊ½±È½ÏºÃ£¬¶øÇÒ»¹ÄÜ±æ±ðÒôÐ§µµ¸ñÊ½£¬
Éè¶¨ÕýÈ·µÄÈ¡ÑùÂÊµÈ¡£



Ê¹ÓÃÏñ wavplay »ò vplay (ÔÚ snd-util Ì×¼þÖÐ)µÄ³ÌÊ½²¥·Å WAV µµÊÇ×îºÃµÄÁË£¬
È»¶øËüÃÇÎÞ·¨±æÊ¶ Microsoft \idx{ADPCM}Ñ¹Ëõ¹ýµÄ WAV µµ¡£ Í¬Ê±£¬¾É°æµÄ play
(ÔÚ Lsox Ì×¼þÖÐ)¶Ô 16 Î»ÔªµÄ WAV µµ´¦ÀíµÃ²¢²»ºÃ¡£



ÔÚ snd-util ÖÐµÄ splay ÃüÁîÈç¹ûÒÔÊÖ¶¯ÊäÈëÊÊÇÐµÄ²ÎÊý£¬¿ÉÒÔÓÃÀ´²¥·Å¶àÊýÒôÐ§µµ¡£




\subsection{ÔõÑùÂ¼ÖÆÒôÐ§µµ?}





¿ÉÒÔ´Ó \url{/dev/audio} »ò \url{/dev/dsp} ÖÐ¶ÁÈ¡È¡Ñù¹ýµÄ×ÊÁÏ£¬
¿ÉÒÔ×ªÏòµ½µµ°¸È¥¡£ Ïñ {\ttfamily vrec} ÕâÑùµÄ³ÌÊ½¿ÉÒÔ½Ï¼òµ¥µØ¿ØÖÆÈ¡ÑùÂÊ¼°Ê±¼äµÈ¡£
ÄúÒ²ÐèÒª»ìÒôÆ÷£¬ÒÔ±ãÑ¡ÔñÏëÒªµÄÊäÈëÀ´Ô´¡£




\subsection{ÎÒ¿ÉÒÔÓÐ²»Ö»Ò»Æ¬ÒôÐ§¿¨Âð?}





ÏÖÔÚµÄÒôÐ§Çý¶¯³ÌÊ½ÔÊÐíÄú×°ºÃ¼¸Æ¬Éù°Ô¿¨£¬Éù°Ô¿¨ Pro£¬Éù°Ô¿¨ 16£¬MPU-401 »ò MSS 
¿¨¡£  ×°Á½Æ¬Éù°Ô¿¨ÊÇ¿ÉÄÜµÄ£¬²»¹ýÒªÊÖ¶¯±à¼­ \url{local.h}£¬
¶¨ÒåSB2\_BASE£¬SB2\_IRQ£¬SB2\_DMA ¼° SB2\_DMA2(ÓÐÐ©ÇéÐÎÏÂ²ÅÒª)¡£ 
Ò²¿ÉÒÔÍ¬Ê±×°Ò»Æ¬Éù°Ô¿¨¼°Ò»Æ¬ PAS16¡£



ÈôÊÇÄúÓÃmake configÀ´Éè¶¨½ÏÐÂµÄ2.0.x°æºËÐÄµÄÒôÐ§µÄ»°£¬ÄúÓ¦¸Ã±à¼­\url{/usr/include/linux/autoconf.h}¶ø·Ç\url{local.h}¡£ Äú»á¿´µ½¼¸ÐÐ:

\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}


ÔÚËüÃÇááÃæ¼ÓÈë¼¸ÐÐ(ÊýÖµÒÀÕÕÄúµÄÏµÍ³Éè¶¨)

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




ÒÔÏÂÇý¶¯³ÌÊ½²»×¼Äú×°¶àÆ¬¿¨:

\begin{itemize}
\item GUS (Çý¶¯³ÌÊ½ÏÞÖÆ)
\item MAD16 (Ó²ÌåÏÞÖÆ)
\item AudioTrix Pro (Ó²ÌåÏÞÖÆ)
\item CS4232 (Ó²ÌåÏÞÖÆ)
\end{itemize}





\subsection{ÒôÐ§Éè±¸·¢Éú´íÎó: No such file or directory}





ÄúÒªÏÈ½¨Á¢Éè±¸µµ¡£ Çë²Î¼ûÇ°Ãæ½¨Á¢Éè±¸µµµÄ²¿·Ý¡£ Èç¹ûÄúÈ·ÊµÓÐÉè±¸µµ£¬
¼ì²éÖ÷±àºÅ¼°´Î±àºÅÊÇ·ñÕýÈ·¡£ (Ò»Ð©¾ÉÒ»µãµÄ CD-ROM Linux 
°²×°Ì×¼þ¿ÉÄÜ²»»áÔÚ°²×°Ê±½¨Á¢ÕýÈ·µÄÉè±¸µµ) 




\subsection{ÒôÐ§Éè±¸·¢Éú´íÎó: No such device}





ÄúµÄºËÐÄ²¢²»Ö§Ô®ÒôÐ§Çý¶¯³ÌÊ½£¬»òÊÇI/OÎ»Ö·Éè¶¨ºÍÓ²Ìå²»Ò»ÖÂ¡£ ¼ì²éÄúÊÇ·ñÓÃÐÂÔìµÄ
ºËÐÄ¿ª»ú£¬²¢È·ÈÏÆäÉè¶¨ºÍÓ²ÌåÊÇÒ»ÖÂµÄ¡£




\subsection{ÒôÐ§Éè±¸·¢Éú´íÎó: No space left on device}





Èç¹ûÄúÃ»ÓÐ½¨Á¢±ØÒªµÄÉè±¸µµ£¬¾Í°Ñ×ÊÁÏ¶ª½ø \url{/dev/audio} »ò
\url{/dev/dsp}£¬¾Í»á·¢ÉúÕâÖÖÇé¿ö¡£ ÕâÊ±ÕâÐ©"Éè±¸µµ"ÆäÊµÖ»ÊÇÆÕÍ¨µµ°¸£¬
¶øÇÒ°ÑÄúµÄ´ÅµúÈûÂúÁË¡£ Äú±ØÐëÕÕ±¾ÎÄ¼þÖÐ{\itshape ½¨Á¢Éè±¸µµ\/}
ÕâÒ»Ð¡½ÚµÄÖ¸ÒýÈ¥Ö´ÐÐÄÇ¸öÃüÁî¸å¡£



ÔÚ Linux 2.0 »òÖ®áá£¬µ±Éè±¸¿ªÆô£¬ÏµÍ³È´Ã»ÓÐ×ã¹»µÄ RAM Ê±Òà»á·¢Éú¡£ 
¶ÔÃ¿¸ö DMA Í¨µÀ£¬ÒôÐ§Çý¶¯³ÌÊ½ÖÁÉÙÐèÒªÁ½Ò³ (8K) Á¬Ðø¼ÇÒäÌåÇø¿é¡£ 
ÕâÖÖÇéÐÍÔÚ²»×ã 16M µÄ RAM »òÒÑ¾­Æô¶¯ºÜ¾ÃµÄÏµÍ³ÉÏ¿ÉÄÜ·¢Éú¡£ 
ÔÚÔÙ¿ªÆôÉè±¸µµÒÔÇ°£¬Ò²Ðí¿ÉÒÔÏÈ±àÒë¼°Ö´ÐÐÒÔÏÂµÄ C ³ÌÊ½£¬ÒÔ¿Õ³öÒ»Ð© RAM ³öÀ´¡£

\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{ÒôÐ§Éè±¸·¢Éú´íÎó: Device busy}





Ò»¸öÒôÐ§Éè±¸Ò»´ÎÖ»ÄÜ¸øÒ»¸ö³ÌÐòÓÃ¡£ ÔÚÕâÎÊÌâÖÐ£¬
×î¿ÉÄÜµÄÇéÐÎ¾ÍÊÇÓÐ±ðµÄ³ÌÐòÕýÔÚÊ¹ÓÃÕâ¸öÉè±¸¡£ 
È·¶¨µÄ·½·¨Ö®Ò»ÊÇÓÃ {\ttfamily fuser} ÃüÁî:

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




ÔÚÉÏÀýÖÐ£¬{\ttfamily fuser} ÃüÁîÏÔÊ¾ 265 ºÅ³ÌÐò¿ªÆôÁË¸ÃÉè±¸¡£ 
¿ÉÒÔÑ¡ÔñµÈËüÍê³É»ò°ÑËü¿³µô£¬ÕâÑùÒôÐ§Éè±¸¾ÍÓÖÄÜÊ¹ÓÃÁË¡£
ÄúÓ¦¸ÃÒÔ root Éí·ÝÖ´ÐÐ {\ttfamily fuser} ÃüÁî£¬ÕâÑù²Å»áÁÐ³ö³ýÁËÄúÒÔÍâµÄÊ¹ÓÃÕß¡£




\subsection{»¹ÊÇÌÓ²»ÁË'device busy'µÄ´íÎó!}





¸ù¾Ý Brian Gough µÄËµ·¨£¬Ê¹ÓÃÒ»ºÅ DMA Í¨µÀµÄÉù°Ô¿¨»áºÍÍ¬ÑùÒ²Õ¼ÓÃ DMA 1 µÄ
QIC-02 ´Å´ø»úÇý¶¯³ÌÊ½Ïà³å£¬Ôì³É "device busy" ´íÎó¡£ Èç¹ûÄúÊ¹ÓÃFTAPE£¬
Äú¿ÉÄÜÓÐ¼Ó½øÕâ¸ö´Å´øµÄÇý¶¯³ÌÊ½¡£ ¸ù¾Ý FTAPE-HOWTO£¬QIC-02 Çý¶¯³ÌÊ½ÔÚÊ¹ÓÃ FTAPE
Ê±²»ÊÇ±ØÒªµÄ; Ö»ÓÐ QIC-117 ²Å±ØÒª¡£ ÖØÔìºËÐÄ£¬Ê¹ÓÃ QIC-117 Çý¶¯³ÌÊ½£¬
È¡Ïû QIC-02£¬ÕâÑù FTAPE ¼°ÒôÐ§Çý¶¯³ÌÊ½¾ÍÄÜ¹²´æÁË¡£




\subsection{ÒôÐ§µµ·Åµ½Ò»°ë¾ÍÍ£ÁË}





ÕâÖÖÖ¢×´£¬Í¨³£ÊÇÏÈ²¥·ÅÒ»Ãë×óÓÒ£¬È»ááÍêÈ«Í£Ö¹£¬»òÓ¡³ö "missing IRQ"
»ò "DMA timeout" Ñ¶Ï¢¡£ °Ë³ÉÊÇÄúµÄ IRQ »ò DMA Éè´íÁË¡£ ºË¶ÔÒ»ÏÂ£¬ÄúÔÚºËÐÄÖÐ
µÄÉè¶¨ÊÇ²»ÊÇºÍÓ²ÌåÌøÏßµÄÒ»Ñù£¬¶øÇÒ²¢Ã»ÓÐºÍ±ðµÄ¿¨Ïà³å¡£



ÁíÒ»ÖÖÖ¢×´ÊÇÉùÒôÒ»Ö±ÖØ¸²¡£ ÕâÍ¨³£µ¼Òòì¶ IRQ ³åÍ»¡£




\subsection{²¥·Å MOD µµ¶Ï¶ÏÐøÐø}





Òª²¥·Å\idx{MODµµ}£¬ÐèÒª¿É¹ÛµÄ CPU ÄÜÁ¦¡£ 
Äú¿ÉÄÜÅÜÌ«¶à³ÌÊ½µ¼ÖÂÏµÍ³·´Ó¦¹ýÂý£¬ÎÞ·¨¼°Ê±·ÅÒô¡£ ÓÐÏÂÃæ¼¸ÖÖ½â·¨:

\begin{itemize}
\item ÓÃ½ÏµÍµÄÈ¡ÑùÂÊ£¬»òÖ»·Åµ¥ÉùµÀ
\item °ÑÆäËüÖ´ÐÐÖÐ³ÌÊ½¸Éµô
\item Âò¸ü¿ìµÄµçÄÔ
\item Âò¸üÇ¿µÄÒôÐ§¿¨(Ïñ Gravis UltraSound)
\end{itemize}




Èç¹ûÄúÓÐÓÃ Gravis UltraSound ÒôÐ§¿¨£¬ÄúÓ¦¸ÃÊ¹ÓÃ×¨Îª GUS Éè¼ÆµÄ MOD ²¥·Å³ÌÊ½
(Èç {\ttfamily gmod})




\subsection{±àÒëÒôÐ§ÈíÌåÊ±³ö´í}





1.0c°æÒÔááºÍÒÔÇ°µÄÒôÐ§Çý¶¯³ÌÊ½ÓÃÍêÈ«²»Í¬ÇÒ²»ÏàÈÝµÄ {\ttfamily ioctl()} ·½Ê½¡£
×¥ÐÂ°æµÄÔ­Ê¼Âë£¬»ò×ö±ØÒª¸Ä±ä£¬°ÑËüÒÆÖ²µ½ÊÊºÏÐÂ°æÇý¶¯³ÌÊ½ÓÃ¡£
Ïê¼ûÒôÐ§Çý¶¯³ÌÊ½µÄ {\ttfamily Readme} µµ¡£



Ò²ÇëÈ·¶¨±àÒëÓ¦ÓÃ³ÌÊ½Ê±£¬ÄúÊ¹ÓÃ×îÐÂµÄ \url{soundcard.h} ¼°
\url{ultrasound.h}¡£ Çë¼û±¾ÎÄ¿ªÍ·´¦ÀïµÄ°²×°Ö¸Òý¡£




\subsection{ÒÔÇ°ÅÜºÜºÃµÄÈíÌå£¬È´³öÏÖ SEGV ´íÎó}





ÕâºÍÉÏ¸öÎÊÌâ¿ÉÄÜÊÇÒ»ÑùµÄ¡£




\subsection{ÒôÐ§Çý¶¯³ÌÊ½ÓÐºÎÒÑÖªµÄÏÞÖÆ¼° bug?}





Çë¿´ºËÐÄÒôÐ§Çý¶¯³ÌÊ½ÀïµÄµµ°¸¡£




\subsection{¹Øì¶ÒôÐ§Çý¶¯³ÌÊ½µÄ ioctl µÈ£¬ÄÄÀïÓÐ¼ÇÔØ?}



Ä¿Ç°³ýÔ­Ê¼ÂëÒÔÍâ×î¼ÑµÄÎÄ¼þÔÚ 4Front Technologies µÄÍøÕ¾
\nameurl{http://www.opensound.com}{}¡£ ÁíÒ»¸öÀ´Ô´ÊÇ {\itshape Linux Multimedia
Guide\/}£¬ÔÚ²Î¿¼ÎÄÏ×ÄÇÒ»ÕÂÓÐÏêÊö¡£




\subsection{ÒªÍêÈ«Æ½Ë³µØÂ¼·ÅÒô£¬ÐèÒª¶àÇ¿µÄCPU²ÅÄÜ°ìµ½?}





ÕâÎÊÌâ²»ºÃ»Ø´ð£¬ËüÈ¡¾öì¶:

\begin{itemize}
\item Ê¹ÓÃ PCM È¡Ñù»¹ÊÇ FM ºÏ³É
\item È¡ÑùÂÊ¼°Ñù±¾´óÐ¡
\item ÓÃÄÄ¸ö³ÌÊ½Â¼·ÅÒô
\item ÒôÐ§¿¨Ó²Ìå
\item ´Åµú´«ÊäËÙÂÊ£¬CPU Ê±ÂöÆµÂÊ£¬¿ìÈ¡´óÐ¡µÈ
\end{itemize}




Ò»°ãÀ´Ëµ£¬ÈÎºÎ 386 ÒÔÉÏ»úÆ÷Ó¦¸Ã¶¼¿ÉÒÔÔÚ 8 Î»ÔªÒôÐ§¿¨ÉÏ²¥·ÅÒôÐ§£¬»òÓÃ FM 
ºÏ³É·ÅÒôÀÖ¡£



È»¶ø£¬·Å MOD µµÐèÒª¿É¹ÛµÄ CPU ×ÊÔ´¡£ Ò»Ð©ÊµÑéÐÔµÄ²âÁ¿ÏÔÊ¾£¬ÒªÒÔ 44KHz ²¥·Å£¬
ÒªÏûºÄÒ»¿Å 486/50 CPU µÄ 40\% ÄÜÁ¦; 386/25 ¼¸ºõ²»¿ÉÄÜ·Å±È 22KHz ¸ü¸ßµÄÈ¡ÑùÂÊ¡£
(ÒÔ8Î»ÔªÒôÐ§¿¨£¬ÈçÉù°Ô¿¨£¬Ëù²âµÃ) Ò»Ð©Ïñ Gravis UltraSound
µÄ¿¨Ó²ÌåÌá¹©¸ü¶à¹¦ÄÜ£¬
ÐèÒªµÄCPU×ÊÔ´¾Í½ÏÉÙ¡£



ÕâÐ©ÊÇ¼ÙÉèµçÄÔÃ»ÓÐÔÚÅÜÆäËüºÄCPUÄÜÁ¦µÄ¹¤×÷¡£



Èç¹ûÄúµÄµçÄÔÓÐ\idx{ÊýÑ§¸¨Öú´¦ÀíÆ÷} (»ò CPU ÄÚ²¿ÓÐ FPU)£¬
ÓÃÏñ {\ttfamily sox} ÕâÑùµÄ³ÌÊ½×öÒôÐ§×ª»»»òÔö¼ÓÐ§¹û»á¿ì²»ÉÙ¡£
ËäÈ»ºËÐÄÇý¶¯³ÌÊ½±¾ÉíÊÇÃ»ÓÐÓÃµ½¸¡µãÔËËã¡£




\subsection{PAS16 ºÍ Adaptec 1542 SCSI ¿¨µÄ´îÅäÎÊÌâ}





(ÒÔÏÂ½âÊÍÓÉ{\ttfamily seeker@indirect.com}Ìá¹©)



Linux Ö»ÄÜÈÏ³öÔÚ 330(Ô¤ÉèÖµ)»ò 334 Î»Ö·ÉÏµÄ 1542£¬¶ø PAS Ö»ÄÜ½« MPU-401
Ä£ÄâÉèÔÚ 330¡£ ¼´Ê¹ÄúÓÃÈíÌåÏûÈ¥ MPU-401 ¹¦ÄÜ£¬Èç¹ûÕâÓ²Ìå»¹ÔÚÕâ¸öÔ¤ÉèÎ»Ö·ÉÏ£¬
ÈÔÈ»»áºÍ 1542 Ïà³å¡£ °Ñ 1542 ÒÆµ½ 334 ¾ÍÊ²÷á¶¼½â¾öÁË¡£



ÁíÍâ£¬1542 ºÍ PAS-16 ¶¼ÓÐÓÃµ½ 16 Î»Ôª DMA£¬ËùÒÔÈç¹ûÄúÒ»ÃæÒÔ 16 Î»Ôª£¬44KHz
Á¢ÌåÉùÂ¼Òô£¬Ò»Ãæ½«µµ°¸´æµ½¹ÒÔÚ 1542 ÉÏµÄÓ²µúµÄ»°£¬Âé·³¾ÍÀ´ÁË¡£ Á½×é DMA
»á³ÔÍ¬Ò»¿é¼ÇÒäÌå£¬µ¼ÖÂ RAM Ã»ÓÐÊ±¼ä³äµç£¬È»áá¾Í»á³öÏÖÖÂÃüµÄ 
"PARITY ERROR - SYSTEM HALTED" µÄÑ¶Ï¢£¬ÄúÉõÖÁ»¹À´²»¼°ÖªµÀÔõ÷áµ±µÄ¡£
¸üÔã¸âµÄÊÇÓÐÐ© QIC-117 ´Å´øµÄÐ­Á¦³§ÉÌ½¨ÒéÉè¶¨»ãÁ÷ÅÅ¿ª/¹ØÊ±¼ä£¬
Ê¹ 1542 Õ¼»ãÁ÷ÅÅ¸ü¾Ã¡£ ´Ó Adaptec µÄ BBS »ò Internet µÄÆäËüµØ·½×¥
SCSISEL.EXE ³ÌÊ½£¬¼õÉÙ BUS ON Ê±¼ä»òÔö¼Ó BUS OFF Ê±¼ä£¬Ö±µ½ÕâÎÊÌâÍêÈ«ÏûÊ§¡£
SCSISEL »á¸Ä±ä EEPROM µÄÉè¶¨£¬ËùÒÔ±ÈÔÚ CONFIG.SYS ÖÐÔØÈëµÄ DOS Çý¶¯³ÌÊ½Ð§Á¦¸ü
³Ö¾Ã£¬¿ª»ú¾ÍÖ±½Ó½ø Linux Ò²ÓÐÐ§(²»Ïñ DOS ÐÞ²¹³ÌÊ½)¡£ ÓÖ½â¾öÁËÒ»¸öÎÊÌâ¡£



×îááÒ»¸öÎÊÌâ - ¾ÉµÄ Symphony ¾§Æ¬×é¾çÁÒµØ½µµÍ I/O ÖÜÆÚÊ±¼ä£¬¼Ó¿ì»ãÁ÷ÅÅ´æÈ¡¡£
ÎÒËùÍæ¹ýµÄ¸÷ÖÖ¿¨ÖÐ£¬³ýÁË PAS-16 ÒÔÍâ£¬Ã»ÓÐÒ»Æ¬¿¨ÔÚ½µµÍÖÜÆÚÊ±ÓÐ³öÏÖ¹ý
{\itshape ÈÎºÎ\/}ÎÊÌâ¡£ Media Vision µÄ BBS ÓÐ¸ö SYMPFIX.EXE ¿ÉÒÔ½« Symphony
µÄ»ãÁ÷ÅÅ¿ØÖÆÆ÷µÄÕï¶ÏÎ»Ôª»¥µ÷£¬ÖÎºÃÕâÖÖÖ¢×´£¬µ«Õâ²¢²»ÄÜËãÓÐÁ¦µÄ±£Ö¤¡£ ÄúÒ²ÐíÒª:

\begin{itemize}
\item ÕÒÖ÷»ú°å¾­ÏúÉÌ£¬»»µô¾É°æµÄ¾§Æ¬
\item »»Ö÷»ú°å£¬»ò
\item Âò±ðÅÆµÄÒôÐ§¿¨¡£
\end{itemize}




Young Microsystems Ô¸ÒâÒÔ \$30(ÃÀ½ð)µÄ´ú¼ÛÎªËûÃÇÖÆµÄ°å×ÓÉý¼¶; 
Èç¹ûÄúÄÜ½²³öË­ÖÆµÄ»òË­½ø¿ÚµÄ°å×Ó£¬±ðµÄ³§ÉÌÒ²¿ÉÄÜ»áÕâÑù(×£ÄúºÃÔË)¡£ 
¾ÝÎÒËùÖªÕâÎÊÌâ³öì¶ ProAudio µÄ»ãÁ÷ÅÅ½éÃæ¾§Æ¬; 
{\itshape Ã»ÓÐÈË\/}»á»¨ \$120 ÂòÒôÐ§¿¨£¬È»áá°ÑËü²åÔÚ 6MHz µÄ AT ÉÏ¡£ 
¶àÊýÈË»áÉý¼¶µ½ 25-40MHz µÄ 386/486£¬¶øÈç¹ûÉè¼ÆÕýÈ·£¬
ÖÁÉÙÄÜ³ÐÊÜ 12MHz ÒÔÉÏµÄ»ãÁ÷ÅÅÆµÂÊ¡£ ½²ÍêÁË£¬ÏÂÌ¨Ò»¾Ï¹ª¡£



µÚÒ»¸öÎÊÌâºÍÄúµÄÖ÷»ú°å¾§Æ¬×é£¬»ãÁ÷ÅÅËÙÂÊ£¬¼°ÆäËü BIOS Éè¶¨£¬»¹ÓÐÔÂÁÁµÄÔ²È±ÓÐ¹Ø¡£
(?)
µÚ¶þ¸öÎÊÌâÇ£Éæµ½ÄúµÄ¼ÇÒäÌå³äµç·½Ê½ (Òþ²ØÊ½»òÍ¬²½Ê½)£¬1542 DMA ÆµÂÊ¼°»ãÁ÷ÅÅ 
I/O ËÙÂÊ(¿ÉÄÜÓÐ¹Ø)¡£ µÚÈý¸öÎÊÌâ£¬¿ÉÒÔ´òµç»°µ½ Media Vision£¬ÎÊËûÃÇÄÄÐ©
Symphony ¾§Æ¬×éµÄÂýËÙÉè¼ÆºÍËûÃÇµÄ¿¨²»ÏàÈÝ¡£ ÔÚ´Ë¾¯¸æÒ»ÏÂ£¬
ÎÒÎÊ¹ýµÄËÄÎ»"¹¤³ÌÊ¦"ÖÐ£¬¾ÍÓÐÈý¸öÍ·¿Ç»µÈ¥¡£ ÌýËûÃÇ½²±ðÈËµÄÓ²Ìå½²µÃÉ¶Ò»Ñù£¬
ÆäÊµËûÃÇÉõÖÁÁ¬×Ô¼ºµÄ¶¼¸ã²»Çå³þ¡£



Òë×¢: ÕâÒ»¶Î¿ÉÄÜºÍÔ­ÎÄÒâË¼²îºÜ¶à£¬ÓÐ½¨ÒéÇë²»ÁßÌá¹©¡£




\subsection{¿É²»¿ÉÒÔÍ¬Ê±Â¼·ÅÒô?}





Ò»Ð©¿¨µÄÇý¶¯³ÌÊ½ÄÜÖ§Ô®Õâ¹¦ÄÜ¡£ Çë¿´ÔÚ 4Front Technologies µÄÍøÕ¾ÖÐµÄÎÄ¼þ£¬
ÁË½ãÈçºÎÓÃËü¡£




\subsection{ÎÒµÄÉù°Ô¿¨ 16 ÊÇÉè IRQ 2£¬¿ÉÊÇÇý¶¯³ÌÊ½²»×¼ÎÒÉèÕâ¸öÖµ}





ÔÚ '286 ¼°ÒÔááµÄ»úÆ÷£¬IRQ2 ÖÐ¶ÏÁ¬½ÓÁËµÚ¶þ¸öÖÐ¶Ï¿ØÖÆÆ÷¡£ ËüµÈÍ¬ì¶IRQ 9¡£




\subsection{ÎÒÀë¿ª Linux£¬Æð¶¯ DOS£¬È»ááÓÐÐ©ÈíÌå·¢Éù²»Õý³£}





ÕâÔÚÅ¯¿ª»ú½ø DOS áá·¢Éú¡£ ÓÐÊ±´íÎóÑ¶Ï¢»áÎóµ¼Äú£¬ÒÔÎªÊÇ
\url{CONFIG.SYS} µµÄÄÀïÐ´´íÁË¡£



¶àÊýÏÖÔÚµÄÒôÐ§¿¨ÓÐÈíÌåÉè¶¨µÄ IRQ ¼° DMA Éè¶¨¡£ Èç¹ûÄúµÄ¿¨ÔÚ Linux ÏÂ¼°
MSDOS/Windows ÏÂÉè¶¨Öµ²»Ò»ÑùµÄ»°£¬¿ÉÄÜ»áÔì³ÉÎÊÌâ¡£ ÓÐÐ©ÒôÐ§¿¨²»×¼ÉèÐÂ²ÎÊý£¬
³ý·ÇÍêÈ« reset¡£ (Èç°ÑµçÔ´¹ØµôÔÙ´ò¿ª£¬»òÊ¹ÓÃÓ²ÌåÉÏµÄresetÅ¥)



¼òµ¥¶Ô¸¶·½·¨¾ÍÊÇ°´ÏÂreset¼ü£¬»ò°Ñ¿ª¹Ø¹ØÁËÔÙ¿ª£¬²»ÒªÓÃÅ¯¿ª»ú(¼´ Ctrl-Alt-Del)¡£



Õý½âÔòÊÇÈ·±£ÄúÔÚMS-DOS¼°LinuxÏÂ¶¼ÓÃÍ¬ÑùµÄIRQ¼°DMAÉè¶¨ (»òÇ¬´à²»ÒªÓÃDOS :-)¡£




\subsection{ÔÚ Linux ÏÂÅÜ DOOM ³öÎÊÌâ}





ÏëÍæ ID software ³öµÄ \idx{DOOM} ÓÎÏ·Ö® Linux °æµÄÍæ¼ÒÃÇ£¬
¿ÉÄÜ¶ÔÕâ¸öÓÐÐËÈ¤¡£



ÒªÕýÈ·µÄÒôÐ§Êä³ö£¬Äú±ØÐèÊ¹ÓÃ 2.90 °æ»òÒÔááµÄÒôÐ§Çý¶¯³ÌÊ½; ËüÖ§Ô®ÁË¼´Ê±µÄ
{\ttfamily DOOMÄ£Ê½}¡£



ÒôÐ§Ñù±¾ÊÇ16 bit¡£ Èç¹ûÄúÓÃ8 bitÒôÐ§¿¨£¬ÄúÈÔÈ»¿ÉÒÔÓÃÒ»Ð©¿ÉÔÚ
\nameurl{ftp://metalab.unc.edu/pub/Linux/games/doom}{}ÖÐÕÒµ½µÄÒ»Ð©³ÌÊ½£¬ÈÃÉùÒô
³öÏÖ¡£



Èç¹ûDOOM¶¯×÷²»Á÷³©£¬°ÑÒôÐ§È¡Ïû(°Ñ {\ttfamily sndserver} µµ¸ÄÃû)»áÓÐÒ»Ð©¸Ä½ø¡£



DOOM Ô¤Éè²»Ö§Ô®ÒôÀÖ(²»Ïñ DOS °æ)¡£ {\ttfamily musserver} ³ÌÊ½½«Ôö¼ÓLinuxÏÂµÄ
ÒôÀÖÖ§Ô®¡£ Ëü¿ÉÒÔÔÚ\nameurl{ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz}{}
ÖÐÕÒµ½¡£




\subsection{ÔõÑù½µµÍÒôÐ§¿¨²úÉúµÄÔÓÒô?}





ÓÃ¸ßÆ·ÖÊµÄÆÁ±ÎµçÀÂ£¬»»¸ö²å²Û²å£¬¿ÉÄÜÓÐÖúì¶¼õµÍ\idx{ÔÓÒô}¡£ 
Èç¹ûÒôÐ§¿¨ÓÐÒôÁ¿µ÷ÕûÅ¥£¬Äú¿ÉÒÔÊÔÊÔ²»Í¬µÄÉè¶¨(×î´óÉù¿ÉÄÜ×îºÃ)¡£
Äú¿ÉÒÔÓÃ\idx{»ìÒô³ÌÊ½}£¬½«²»ÏëÒªµÄÊäÈë(ÈçÂó¿Ë·ç)µ÷³ÉÁãÔöÒæ¡£

Philipp Braunbeck ±¨¸æËûµÄ ESS-1868 ÒôÐ§¿¨ÉÏÓÐ¸öÌøÏßÓÃÀ´¹Ø±ÕÄÚ½¨ÔöÒæÆ÷µÄ£¬
Èç¹û×°ÉÏ£¬ÄÜ°ïÖú½µµÍÔÓÒô¡£



ÔÚÒ»Ì¨ 386 µçÄÔÉÏ£¬ÎÒ·¢ÏÖºËÐÄÃüÁîÁÐÓÐ¸öÑ¡Ïî{\ttfamily no-hlt}¿ÉÒÔ½µµÍÔÓÑ¶¡£ 
Õâ¸öÑ¡Ïî½ÐºËÐÄÔÚÅÜ¡õÖÃ»ØÈ¦Ê±²»ÒªÓÃ HLT Ö¸Áî¡£ Äú¿ÉÒÔ¿ª»úÊ±ÊÖ¶¯ÊÔÊÔ£¬
»òÔÚ LILO Éè¶¨µµÖÐ¼ÓÉÏ{\ttfamily append="no-hlt"}



ÓÐÐ©ÒôÐ§¿¨Íµ¹¤¼õÁÏ£¬Ã»ÓÐºÃµÄÕÚ±Î¼°½ÓµØ£¬ÈÝÒ×²úÉúÔÓÒô




\subsection{ÄÜ·ÅÒô£¬²»ÄÜÂ¼Òô}





Èç¹ûÄúÄÜ·ÅÒô£¬È´²»ÄÜÂ¼Òô£¬ÊÔÊÔ:
\begin{itemize}
\item Ê¹ÓÃ»ìÒô³ÌÊ½Ñ¡ÔñÊÊµ±À´Ô´(ÈçÂó¿Ë·ç)
\item Ê¹ÓÃ»ìÒô³ÌÊ½½«¸ÃÀ´Ô´µÄÔöÒæµ÷µ½×î´ó
\item ¿ÉÒÔµÄ»°£¬ÔÚMS-DOSÏÂ²âÊÔ£¬¿´¿´ÊÇ²»ÊÇÓ²Ìå·½ÃæµÄÎÊÌâ
\end{itemize}




ÓÐÊ±Â¼Òô¼°·ÅÒôÓÃµÄ DMA Í¨µÀÊÇ²»Í¬µÄ¡£ ÕâÖÖÇé¿öÏÂ°Ë³ÉÊÇÂ¼ÒôÓÃ DMA Éè¶¨²»¶Ô¡£




\subsection{±ØÐëÏÈ½ø DOS ÅÜÇý¶¯³ÌÊ½£¬²»È»ÎÒµÄ"ÏàÈÝ¿¨"Ã»·¨ÓÃ}





¶àÊýÇé¿öÏÂ£¬"Éù°Ô¿¨ÏàÈÝ" ¿¨ÔÚ Linux ÏÂÈôÉáÉù°Ô¿¨Çý¶¯³ÌÊ½²»ÓÃ¶ø¸ÄÓÃ
±ðµÄÇý¶¯³ÌÊ½£¬»á¸üºÃ¡£ ¶àÊýºÅ³ÆÏàÈÝ(Èç "16 Î»Ôª SB Pro ÏàÈÝ" »ò SB ÏàÈÝµÄ
"16Î»Ôª")µÄ¿¨£¬ËüµÄÉù°Ô¿¨ÏàÈÝÄ£Ê½ÊÇÌá¹© DOS ÓÎÏ·µÄÏàÈÝÐÔËù×öµÄ¡£ 
¶àÊý¿¨×Ô¼ºµÄ 16 Î»ÔªÄ£Ê½¿ÉÄÜÔÚ×î½üµÄ Linux(2.0.1ÒÔáá) »áÖ§Ô®¡£



Ö»ÓÐÒ»Ð©(Í¨³£ºÜ¾É)µÄ¿¨±ØÐë³¢ÊÔÓÃÉù°Ô¿¨Ä£Ê½ÔË×÷¡£ ÐÂ¿¨ÖÐÖ»ÓÐÒ»¸öÀýÍâ£¬ÄÇ¾ÍÊÇÓÃ
MwaveÎªÖ÷µÄ¿¨¡£




\subsection{ÎÒµÄ 16 Î»ÔªÉù°Ô¿¨ÏàÈÝ¿¨ÔÚ Linux ÏÂÖ»ÄÜÓÃ 8 Î»ÔªÄ£Ê½}





ºÅ³ÆºÍÉù°Ô¿¨ÏàÈÝµÄ 16 Î»ÔªÒôÐ§¿¨ÆäÊµÖ»ºÍ 8 Î»ÔªµÄÉù°Ô¿¨ Pro ÏàÈÝ¶øÒÑ¡£ 
ËüÃÇÓÐºÍÉù°Ô¿¨ 16 ²»ÏàÈÝµÄ 16 Î»ÔªÄ£Ê½£¬ºÍ Linux ÒôÐ§Çý¶¯³ÌÊ½²»ÏàÈÝ¡£



Ò²Ðí¸ÄÓÃ MAD16 »ò MSS/WSS Çý¶¯³ÌÊ½áá£¬Äú¾ÍÄÜÓÃ 16 Î»ÔªÄ£Ê½ÁË¡£




\subsection{ÔÚÄÄÀïÕÒµÃµ½ Linux µÄÒôÐ§Ó¦ÓÃÈíÌå?}





ÕâÀïÓÐÒ»Ð©ºÃµÄµµ°¸¿â£¬¿ÉÒÔËÑÑ° Linux ×¨ÓÃµÄÒôÐ§Ó¦ÓÃÈíÌå:
\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{ÒôÐ§Çý¶¯³ÌÊ½¿É²»¿ÉÒÔ±àÒë³É¿ÉÔØÈëÄ£×é?}





×îÐÂµÄºËÐÄÀïµÄÒôÐ§Çý¶¯³ÌÊ½¿ÉÒÔ×ö³É¿ÉÔØÈëÄ£×é¡£

ÏêÇéÇë²Î¿¼ÔÚ \url{/usr/src/linux/Documentation/sound} ÀïµÄµµ°¸£¬
ÓÈÆäÊÇ \url{Introduction} ¼° \url{README.modules}¡£




\subsection{ÎÒÄÜ°ÑÖ÷¿ØÌ¨µÄßÙßÙÉù¸ÄÓÃÒôÐ§¿¨·¢³öÂð?}





ÊÔÊÔ{\ttfamily oplbeep}³ÌÊ½£¬¿ÉÔÚ
\nameurl{ftp://metalab.unc.edu/pub/Linux/apps/sound/oplbeep-2.3.tar.gz}{}
ÖÐÕÒµ½¡£



ÁíÒ»¸ö±äÖÖ£¬½Ð {\ttfamily beep} ³ÌÊ½£¬¿ÉÔÚ\nameurl{ftp://metalab.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgz}{}
ÖÐÕÒµ½¡£



{\ttfamily modutils} Ì×¼þÓÐ¸ö¡õÀý³ÌÊ½¼°ºËÐÄÐÞ²¹£¬Ö§Ô®ÔÚºËÐÄÒªÇóÊ±£¬
Ö´ÐÐÍâ²¿³ÌÊ½£¬²úÉúÉùÒô¡£



ÁíÍâÔÚÒ»Ð©ÒôÐ§¿¨ÉÏ£¬Äú¿ÉÒÔ½«PCÀ®°ÈÊä³öµ½ÒôÐ§¿¨ÉÏ£¬ÕâÑùËùÓÐÉùÒô¾Í¶¼ÓÉÒôÐ§¿¨
·¢³öÀ´ÁË¡£




\subsection{VoxWareÊÇÊ²÷á?}





 ÓÉ 4Front Technologies
³öÊÛµÄÉÌÒµ°æÒôÐ§Çý¶¯³ÌÊ½ÒÔÇ°ÓÐÏñ{\itshape VoxWare\/}£¬
{\itshape USS\/}(Unix Sound System)£¬ÉõÖÁ{\itshape TASD\/}(ÔÝÇÒÎÞÃûµÄÒôÐ§Çý¶¯³ÌÊ½)
Ö®ÀàÃû³Æ¡£ ÏÖÔÚÕâ¸öÇý¶¯³ÌÊ½µÄÊÐ³¡ÉÏ½Ð {\itshape OSS\/}(\idx{Open Sound
System})¡£ ÔÚ Linux ºËÐÄÖÐ°üº¬µÄÓÐÊ±½Ð×ö{\itshape OSS/Free\/}¡£



Òª¸ü¶à×ÊÑ¶£¬ÇëÉÏ 4Front Technologies ÍøÕ¾
(ÔÚ\nameurl{http://www.opensound.com/}{})¡£ ÎÒÔÚ \onlynameurl{Linux Journal} 1997 ÄêÁùÔÂºÅÓÐÐ´Ò»Æª
¶Ô OSS/Linux µÄÆÀÂÛÎÄÕÂ¡£




\subsection{Sox/Play/Vplay »Ø±¨ "invalid block size 1024"}





ÔÚ 1.3.67 °æºËÐÄÖÐµÄ¸Ä±ä(´íÎóµÄ)Ê¹¼ì²é SNDCTL\_DSP\_GETBLKSIZE ioctl
ÊÇ·ñ´«»Ø´óì¶ 4096 µÄ·ÅÒôÈíÌåÊ§Ð§¡£ ×îÐÂµÄÇý¶¯³ÌÊ½ÒÑÐÞÕý£¬±ÜÃâÅäÖÃÐ¡ì¶ 4096
bytes µÄËé¿é£¬½â¾öÁË¾É¹«ÓÃ³ÌÊ½µÄÎÊÌâ¡£




\subsection{ÎÒÔØÈëÒôÐ§Çý¶¯³ÌÊ½Ä£×éáá£¬»ìÒôÉè¶¨¾Í±»ÖØÉèÁË}





Äú¿ÉÒÔ½«ÒôÐ§Çý¶¯³ÌÊ½×ö³É¿ÉÔØÈëÄ£×é£¬²¢Ê¹ÓÃ {\ttfamily kerneld} ×Ô¶¯ÔØÈë¼°³ýÈ¥¡£ 
È»¶øÕâÔì³ÉÁËÒ»¸öÎÊÌâ - µ±Ä£×éÖØÐÂÔØÈëÊ±£¬\idx{»ìÒôÆ÷} Éè¶¨ÓÖ»Ø¹éÔ¤¶¨µÄÖµ¡£
¶ÔÓÐÐ©ÒôÐ§¿¨À´Ëµ£¬Õâ»áÌ«´óÉù(ÈçÉù°Ô¿¨16)»òÌ«Ð¡Éù¡£ Markus Gutschke
({\ttfamily gutschk@uni-muenster.de})·¢ÏÖÁËÕâÎÊÌâµÄ½â¾öÖ®µÀ£¬ÔÚÄúµÄ
\url{/etc/conf.modules} µµÖÐ¼ÓÈëÈçÏÂµÄÒ»ÐÐ:

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




Õâ»áÔÚÒôÐ§Çý¶¯³ÌÊ½ÔØÈëááÁ¢¿ÌÖ´ÐÐÄúµÄ»ìÒô³ÌÊ½(ÔÚ¡õÀýÖÐÊÇÓÃ {\ttfamily setmixer} )¡£ {\ttfamily dma\_buffsize} ²ÎÊýÃ»ÓÐÒâÒå£¬µ«ÊÇÊÇ±ØÐèµÄ£¬ÒòÎªÕâ¸öÃüÁî
ÐèÒªÒ»Ð©ÃüÁîÁÐµÄÑ¡Ïî¡£ °ÑÉÏÃæÄÇÐÐ¸Ä³ÉÄúÏëÒªµÄ»ìÒô¼°ÔöÒæÉè¶¨Öµ¡£



Èç¹ûÄú½«ÒôÐ§Çý¶¯³ÌÊ½Á¬½øºËÐÄ£¬¶øÏëÔÚ¿ª»úáá¾Í×Ô¶¯Éè¶¨ÒôÁ¿£¬Äú¿ÉÒÔÔÚ¿ª»ú×Ô¶¯Ö´ÐÐ
µµ{\ttfamily /etc/rc.d/rc.local}ÖÐ½«»ìÒô³ÌÊ½¼Ó½øÈ¥¡£




\subsection{Ö»ÓÐ root ÄÜÂ¼Òô}





ÔÚ Readme.linux ÖÐµÄÃüÁî¸åÔ¤Éè»á½«ÒôÐ§Éè±¸µµÉè³É½öÓÐ {\ttfamily root} ¿É¶Á£¬
ÕâÊÇÎªÁËÌî²¹°²È«ÉÏµÄÂ©¶´¡£ ÔÚÍøÂ·»·¾³Àï£¬
ÍâÃæµÄÊ¹ÓÃÕß¿ÉÒÔÔ¶¶ËÁ¬½øÓÐÒôÐ§¿¨¼°Âó¿Ë·çµÄLinuxÏµÍ³²¢ÇÔÌý¡£
Èç¹ûÄú²»µ£ÐÄÕâ¸ö£¬Äú¿ÉÒÔ¸Ä±äÕâ¸öÃüÁî¸åÖÐµÄÈ¨ÏÞ¡£



ÔÚÔ¤ÉèµÄ°²×°·¨£¬Ò»°ãÊ¹ÓÃÕßÈÔÈ»¿ÉÒÔ²¥·ÅÒôÐ§µµ¡£ Õâ²»»áÔì³É°²È«ÉÏµÄ·çÏÕ£¬
·´¶ø¿ÉÒÔÊ¡µôºÜ¶àÂé·³¡£




\subsection{ÔÚIBM ThinkPadÉÏµÄÒôÐ§Ó²Ìå¿ÉÒÔÖ§Ô®Âð?}





¹Øì¶ÈçºÎÔÚ Linux ÏÂÊ¹ÓÃ IBM ThinkPad ÉÏµÄ mwave ÒôÐ§¿¨Ö®×ÊÑ¶£¬¿ÉÔÚ
\url{/usr/src/linux/Documentation/sound/mwave}µµÖÐÕÒµ½£¬
ËüÒ²ÊÇºËÐÄÔ­Ê¼ÂëµÄÒ»²¿·Ý¡£




\subsection{ÒòÎªÎÒµÄÒôÐ§¿¨Ã»ÓÐ»ìÒôÆ÷£¬ËùÒÔÓ¦ÓÃ³ÌÊ½²»ÈÃÎÒÓÃ}



Ò»Ð©¾ÉµÄ 8 Î»ÔªÉù°Ô¿¨Ã»ÓÐ»ìÒôÆ÷µçÂ·¡£
ÓÐÐ©ÒôÐ§Ó¦ÓÃ³ÌÊ½ÒªÇóÒªÄÜ¿ªÆô»ìÒôÆ÷Éè±¸£¬
ÔÚÕâÐ©¿¨ÉÏ¾Í»áÊ§Ð§¡£ Jens Werner (\onlynameurl{werner@bert.emv.ing.tu-bs.de}
±¨¸æÁËÒ»¸ö½â·¨£¬°Ñ \url{/dev/mixer} Á¬µ½ \url{/dev/null}áá£¬
Ò»ÇÐÓ¦¸Ã¶¼ºÜºÃÁË¡£




\subsection{SB16 CT4170 µÄÎÊÌâ}



ÒÔÏÂÓÉ Scott Manley(\onlynameurl{spm@star.arm.ac.uk})Ìá¹©:

\begin{quotation}
¿´ÆðÀ´ÓÐÒ»ÖÖÐÂµÄÉù°Ô¿¨ -- ËüÒÔ SB16 µÄÃûÒåÂô¸øÎÒÃÇ£¬¸Ã¿¨µÄÐÍÊ½ÊÇ CT4170¡£
ÕâÍæÒâÖ»ÓÐÒ»×é DMA Í¨µÀ£¬ËùÒÔµ±ÄúÊÔÖøÉè¶¨ËüÊ±£¬ºËÐÄ´æÈ¡ 16 Î»Ôª DMA
»áÓÐÂé·³¡£ ½â¾öÖ®µÀÊÇ°ÑµÚ¶þ×é DMA Éè³É 1£¬ÕâÑùÕâÕÅ¿¨¾ÍºÍ¹ã¸æÉÏ½²µÄÏà·ûÁË¡£
\end{quotation}





\subsection{ÔõÑù½« MIDI keyboard Á¬½Óµ½ÒôÐ§¿¨ÉÏ?}

ÒÔÏÂÓÉ Kim G¡£ S¡£ OEyhus (\onlynameurl{kim@pvv.ntnu.no})Ìá¹©:

\begin{quotation}
ÎÒµ½Íø¼ÊÍøÂ·ÉÏÒÔ¼°ÒôÐ§¿¨ÎÄ¼þµ½´¦ËÑÑ°¹Øì¶ÈçºÎ°ÑÖ÷ keyboard µÄ MIDI output
Á¬½Óµ½ÒôÐ§¿¨µÄ MIDI input Õâ÷á¼òµ¥µÄÊÂµÄ·½·¨£¬½á¹ûÎÒÊ²÷á¶¼Ã»ÕÒµ½¡£
ÎÊÌâÊÇËüÃÇ¶¼Ê¹ÓÃÍ¬Ò»Éè±¸£¬/dev/midi£¬ÖÁÉÙÔÚ OSS ÒôÐ§ÏµÍ³ÉÏÊÇÈç´Ë¡£
ËùÒÔÎÒÕÒµ½ÁËÒ»ÖÖ·½·¨£¬Ï£ÍûºÍ´ó¼Ò·ÖÏí¡£ ÕâÑù¾ÍÔì³öÁËÒ»¸ö¼òµ¥µÄºÏ³ÉÆ÷£¬²¢ÓÐÍêÕû
MIDI Ö§Ô®:
\end{quotation}


\begin{quotation}
ÓÃ MIDI Ö±½Ó½« MIDI Ö÷ KEYBOARD Á¬½Óµ½ÒôÐ§¿¨
\end{quotation}


\begin{quotation}
MIDI Ö÷ keyboard ÊÇÒ»¸öÃ»ÓÐºÏ³ÉÆ÷µÄ keyboard£¬ÉÏÃæÖ»ÓÐÒ»¸ö MIDI out ²å×ù¡£
Õâ¿ÉÒÔÍ¸¹ýÊÊµ±µÄÁ¬½ÓÏßÁ¬ÉÏÒôÐ§¿¨ÉÏµÄ 15 pin D-SUB Á¬½Ó²º¡£
\end{quotation}


\begin{quotation}
Õâ¸ö keyboard ¿ÉÒÔÓÃÀ´¿ØÖÆÒôÐ§¿¨ÉÏµÄºÏ³ÉÉè±¸£¬×ö³öÁËÒ»¸ö¼òµ¥ÓÃ keyboard
¿ØÖÆµÄºÏ³ÉÆ÷¡£
\end{quotation}


\begin{quotation}
Ö®ááÔÙ±àÒëÒÔÏÂ³ÌÊ½£¬ÈçÓÃ 'gcc -o prog prog.c' ²¢Ö´ÐÐËü:
\end{quotation}


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

main()
{
  int fil£¬a;
  char b[256];

  fil=open("/dev/midi"£¬O_RDWR);
  for(;;)
    {
      a=read(fil£¬b£¬256);
      write(fil£¬b£¬a);
    }
}
\end{verbatim}
\end{tscreen}





\subsection{IRQ 15 ÒÔ¼° Ensoniq PCI 128 Ö®¼äµÄÎÊÌâ}



ÒÔÏÂÓÉ Matthew Inger (\onlynameurl{mattinger@mindless.com}) Ìá¹©:

\begin{quotation}
ÈçºÎÈÃ Ensoniq PCI 128 ¿ÉÓÃµÄ×ÊÑ¶¡£
\end{quotation}


\begin{quotation}
ÕâÕ¹ÏÖµÄÎÊÌâÊÇËüÔ¤ÉèÖµÊÇÓÃ IRQ 15¡£(Õâµã Plug and Pray µÃ¸ºÆðÔðÈÎ)¡£
Õâ¸öÖÐ¶ÏÒ²ÊÇµÚ¶þ×é IDE ¿ØÖÆÆ÷ÓÃµ½µÄ£¬¶øÇÒ²»ÄÜºÍÆäËüÉè±¸¹²Ïí¡£ Äú±ØÐëÇ¿ÆÈ
es1370 Ê¹ÓÃÆäËüÖÐ¶Ï(¾ÍÏñÔÚ Windows ÏÂ¿ÉÒÔÓÃ IRQ 11 Ò»Ñù)¡£
\end{quotation}


\begin{quotation}
ÐÅ²»ÐÅÓÉÄã£¬ÎÒ×ÔÐÐÕÒµ½ÁËÕâÎÊÌâµÄ½â¾öÖ®µÀ¡£
\end{quotation}


\begin{quotation}
ÎÒËù×öµÄÊÂ:
\end{quotation}


\begin{quotation}
a) ÔÚ BIOS ÖÐ£¬Äú±ØÐë¸æÖªµçÄÔÄúÃ»ÓÐ Ëæ²å¼´ÓÃ OS£¬ÎÒÏàÐÅÕâÔÚÎÒµÄ BIOS ÖÐµÄ
advanced options Àï¡£
\end{quotation}


\begin{quotation}
b) ÔÚ BIOS ÖÐµÄ PCI Éè¶¨£¬ÒªµçÄÔ±£ÁôÖÐ¶Ï 15 ¸ø ISAÉè±¸¡£ ÔÚÎÒµÄ BIOS£¬ÔÚ
Advanced Options ÖÐ£¬ÓÐÒ»²¿·ÝÊÇÉè¶¨ PCI µÄ£¬ÔÚÄÇÀï¿ÉÒÔÅÅ³ýÒ»Ð©×ÊÔ´²»ÈÃ PCI
ÓÃ£¬¾ÍÔÚÄÇÀïÉè¶¨¡£
\end{quotation}


\begin{quotation}
µ±ÄúÖØ¿ª»ú½ø Linux ááÄú¾ÍÄÜÌýµ½ÉùÒôÁË¡£ (ÎÒ²»¼ÇµÃËüÊÇ²»ÊÇÕÕ³£ÏÔÊ¾¿ª»úÑ¶Ï¢ÁË)
Îª°²È«Æð¼û£¬ÎÒÔÙÖ´ÐÐÒ»±é sndconfig£¬Ëü»á·Å³ö²âÊÔÒôÐ§£¬ÌýÆðÀ´²»Ôõ÷áÑù£¬
µ«Ëü·¢³öÉùÒôÁË¡£ È»¶øÎÒ·Å CD Ê±£¬ÌýÆðÀ´ÕæÊÇ°ô¼«ÁË¡£
\end{quotation}


\begin{quotation}
Windows ÄÇ±ß¾Í±Âµ£ÐÄÁË£¬ÎÒÊÔÁËÁ½ÕÅ¿¨£¬Ò»ÕÅÊÇ ISA Modem£¬ÁíÒ»ÕÅÊÇÒôÐ§¿¨£¬
Á½¸ö¶¼ÔËÐÐÎÞ°­¡£
\end{quotation}


\begin{quotation}
ÄúµÄ BIOS ºÍÎÒµÄ¿ÉÄÜ²»Í¬£¬²»¹ýÄúÖ»Òª¸ãÇå³þÇ°Ãæ½²µÄÁ½¸öÉè¶¨ÔÚÄÄ¾ÍºÃ¡£ ×£ºÃÔË¡£
\end{quotation}





\subsection{ÎÒÔÚÄÄ¶ù¿ÉÒÔ×¥µ½¿É×ÔÓÉÉ¢²¼µÄ MIDI patch£¬À´¸ø SoftOSS Ê¹ÓÃ?}



SoftOSS ÊÇºÍ Gravis UltraSound ¿¨ÏàÈÝ£¬
°üº¬ÔÚºËÐÄÒôÐ§Çý¶¯³ÌÊ½µÄÈíÌå²¨ÐÎ±íºÏ³ÉÆ÷(Ò²¿ÉÒÔËµÊÇÈíÌåÒôÔ´)¡£
ÒªÊ¹ÓÃÕâ¸öÇý¶¯³ÌÊ½£¬ÐèÒª GUS ÏàÈÝµÄ MIDI patch µµ¡£ ÎÄ¼þÉÏµÄËµ·¨ÊÇ
"public domain MIDIA patchset available from several ftp sites"
(¹«¿ªµÄ MIDIA patch ¼¯¿ÉÔÚ¼¸¸ö ftp Õ¾ÕÒµ½)

ÈçÍ¬ 4Front Technologies ÍøÕ¾ÉÏËµµÄ(\nameurl{http://www.opensound.com/softoss.html}{})£¬ËüÃÇ¿ÉÔÚ \nameurl{ftp://archive.cs.umbc.edu/pub/midia/instruments.tar.gz}{} ÏÂÔØ¡£




\section{²Î¿¼ÎÄÏ×}





Èç¹ûÄúÓÐÆ¬Ö§Ô® CD-ROM »ò SCSI ½éÃæµÄÒôÐ§¿¨£¬²ÎÔÄ
\nameurl{ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/unmaintained/SCSI-HOWTO}{SCSI HOWTO} ÒÔ¼° Linux \onlynameurl{CD-ROM HOWTO}
¿ÉÄÜ¿ÉÒÔ¸øÄú¸ü¶àÓÐÓÃµÄ×ÊÑ¶¡£
(Òë×¢: CDROM HOWTO ÖÐÎÄ°æÔÚ
\nameurl{http://www.linux.org.tw/CLDP/CDROM-HOWTO.html}{http://www.linux.org.tw/CLDP/CDROM-HOWTO.html})



\onlynameurl{Sound Playing HOWTO} Ôò¶ÔÈçºÎÔÚLinuxÏÂ²¥·Å¸÷ÖÖ²»Í¬µÄÒôÐ§¼°ÒôÀÖµµÓÐËù½éÉÜ¡£
(Òë×¢: ÖÐÎÄ°æÔÚ
\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}ÃèÊöÈçºÎÔÚ Linux ÏÂÊ¹ÓÃÉù°Ô¿¨
32 »ò 64¡£
(Òë×¢: ÖÐÎÄ°æÔÚ
\nameurl{http://www.linux.org.tw/CLDP/mini/Soundblaster-AWE.html}{http://www.linux.org.tw/CLDP/mini/Soundblaster-AWE.html})

³ÌÊ½Éè¼Æ×ÊÑ¶¿ÉÓÉ 4Front Technologies ÍøÕ¾ \nameurl{http://www.opensound.com/pguide}{}È¡µÃ¡£



ÒÔÏÂµÄFAQ¶¨ÆÚÕÅÌùì¶\idx{Usenet}ÌÖÂÛÇø\onlynameurl{news.announce}
ÒÔ¼°µµ°¸¿â\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}




ÕâÐ©\idx{FAQ}Ò²ÁÐ³öÒ»Ð©ºÍ²úÆ·Ïà¹ØµÄÍ¨ÐÅÂÛÌ³¼°µµ°¸¿â¡£ ÒÔÏÂµÄUsenetÌÖÂÛÇøÖ÷ÒªÌÖÂÛÒôÐ§¼°
ÒôÀÖÏà¹ØµÄÌâ²Ä:

\begin{itemize}
\item  \onlynameurl{alt.binaries.sounds.*}
(ÕÅÌùÒôÐ§µµ£¬ºÜ¶àÈº×é)
\item  \onlynameurl{alt.binaries.multimedia}
(ÕÅÌù¶àÃ½Ìåµµ°¸ÓÃ)
\item  \onlynameurl{alt.sb.programmer}
(ºÍÉù°Ô¿¨³ÌÊ½Éè¼ÆÓÐ¹Ø)
\item  \onlynameurl{comp.multimedia}
(¶àÃ½Ìå×¨Ìâ)
\item  \onlynameurl{comp.music}
(µçÄÔÒôÀÖÀíÂÛ¼°ÑÐ¾¿)
\item  \onlynameurl{comp.sys.ibm.pc.soundcard.*}
(¸÷ÖÖIBM PCÒôÐ§¿¨µÄÈº×é)
\end{itemize}




ÔÚ\nameurl{http://viswiz.gmd.de/MultimediaInfo/}{}ÓÐ¸ö\idx{¶àÃ½Ìå}
×¨ÃÅÕ¾Ì¨¡£ Creative Labs µÄÍøÕ¾ÔòÔÚ\nameurl{http://www.creaf.com/}{}¡£
MediaTrix µÄÍøÕ¾ÔÚ\nameurl{http://www.mediatrix.com/}{}



Linux\idx{Í¨ÐÅÂÛÌ³}ÓÐÐí¶à¹Øì¶²»Í¬Ö÷Ìâ(°üÀ¨ÒôÐ§)µÄÆµµÀ¡£
ÏëÖªµÀÈçºÎ²Î¼Ó£¬
¼ÄÒ»·âÄÚÈÝÎª "help" µÄÐÅµ½ \onlynameurl{majordomo@vger.rutgers.edu}¡£
×îºÃ²»ÒªÓÃËüÀ´ÎÊÈçºÎÉè¶¨ÒôÐ§¿¨ÕâÀàÎÊÌâ£¬
ËüÃÇÊÇÎª¿ª·¢ÕßÌÖÂÛÓÃµÄ¡£



Ç°ÃæÌá¹ýºÃ¼¸´ÎÁË£¬ÒôÐ§Çý¶¯³ÌÊ½°üº¬ºÜ¶à\url{Readme}µµ£¬
ÀïÃæÓÐºÜ¶àºÍÇý¶¯³ÌÊ½Ïà¹ØµÄ×ÊÑ¶¡£ ËüÃÇ³£³£·ÅÔÚ
\url{/usr/src/linux/drivers/sound}Ä¿Â¼Àï¡£



ÔÚ\idx{4Front Technologies}ÍøÕ¾\nameurl{http://www.opensound.com/}{}
ÉÏ£¬¿ÉÒÔ¿´µ½ Linux ¼°ÆäËü Unix ÏàÈÝ×÷ÒµÏµÍ³ÓÃµÄÉÌÒµ°æÒôÐ§Çý¶¯³ÌÊ½OSSµÄ×ÊÑ¶¡£



{\itshape \idx{Linux Software Map}\/}ÊÇËÑË÷LinuxÈíÌåµÄ¼«¼Ñ²Î¿¼¡£ ÓÃ¹Ø¼ü×ÖÏñ
{\itshape sound\/} ËÑÑ° LSM ÊÇÊ¶±ð¹Øì¶ÒôÐ§Ó²ÌåµÄÓ¦ÓÃ³ÌÊ½Ö®ºÃ°ì·¨¡£ LSM
¿ÉÔÚºÜ¶àÄäÃûµµ°¸¿â£¬°üÀ¨ 
\nameurl{ftp://metalab.unc.edu/pub/Linux/docs/LSM/}{}(ÏÈÇ°ÃûÎª sunsite) ÖÐÕÒµ½¡£
Ò²ÓÐÐ©ÍøÕ¾Î¬»¤ Linux Ó¦ÓÃ³ÌÊ½µÄ×ÊÁÏ¿â£¬\nameurl{http://www.freshmeat.net}{}
ÊÇÆäÖÐÖ®Ò»¡£



Linux ÎÄ¼þ¼Æ»­(LDP)ÖÆ×÷ÁËºÃ¼¸±¾ Linux µÄ\idx{Êé}£¬°üÀ¨
{\itshape Linux Installation and Getting Started\/}¡£ ÕâÐ©¿É´ÓÖ÷ÒªµÄ Linux FTP
µµ°¸¿âÃâ·ÑÈ¡µÃ£¬»òÊÇ»¨Ç®ÂòÓ²¿½±´ÐÍÊ½µÄÎÄ¼þ¡£



×îááÄØ£¬ËäÈ»ÓÐÐ©ÀÏÍõÂô¹ÏÖ®ÏÓ£¬²»¹ý»¹ÊÇÈÝÎÒÔÚ´Ë´ò´òÐ¡¹ã¸æ: 
Èç¹ûÄúÏëÑ§Ñ§¸ü¶à¹Øì¶ÔÚ Linux ÏÂµÄ¶àÃ½Ìå 
(ÌØ±ðÊÇ¹Øì¶ CD-ROM ¼°ÒôÐ§¿¨Ó¦ÓÃ¼°³ÌÊ½Éè¼ÆµÄ)£¬µ½ÊéµêÕÒÕÒÎÒ±àÖøµÄ
{\itshape \idx{Linux Multimedia Guide}\/}£¬ISBN 1-56592-219-0£¬ÓÉ 
O'Reilly and Associates ¹«Ë¾³ö°æ¡£ ³ýÁËÔ­Ê¼µÄÓ¢ÎÄ°æÍâ£¬
·¨ÎÄ°æºÍÈÕÎÄ°æÒ²Õý¸¶Ó¡ÖÐ¡£ ÈôÔÚ±±ÃÀÖÞ£¬Çëµç 800-998-9938¡£ »òÊÇ¹â¹ËÒÔÏÂÕ¾Ì¨:
\nameurl{http://www.ora.com/catalog/multilinux/noframes.html}{}
»ò±¾ÈËµÄÍøÖ·\nameurl{http://www.pobox.com/~tranter/}{}



\end{document}
