\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{Alsa-sound-mini-HOWTO}
\author{Valentijn Sessink {\ttfamily valentyn@alsa-project.org}\\ 
Ä¶ªÌ: ¥î¥Ã±d {\ttfamily yorkwu@ms4.hinet.net}}
\date{¤¤¤åª©v0.2, 2000¦~6¤ë15¤é (­ìv0.2, 18 May 1999)}
\abstract{¥»¤å´y­z Linux ªº AKSA ­µ®ÄÅX°Êµ{¦¡ªº¦w¸Ë.
¥Ñ©ó¥¦­Ì¬Û®e. ³o­Ó­µ®ÄÅX°Êµ{¦¡¥i¥H¥Î¨Ó¨ú¥N¥­±`¥Îªº­µ®ÄÅX°Êµ{¦¡.}


\begin{document}
\maketitle
\tableofcontents

\section{Introduction}

³o¬O ALSA ­µ®ÄÅX°Êµ{¦¡ªº mini HOWTO. ¥¦´£¨Ñ±zÃö©ó¦w¸Ë¤Î¨Ï¥Î ALSA
­µ®ÄÅX°Êµ{¦¡ªº¸ê°T. ALSA ÅX°Êµ{¦¡¬O§¹¥þ¼Ò²Õ¤Æ, ¨Ã¤ä´© kerneld ¤Î kmod.
¥¦©M OSS API ¬Û®e, ¦ý¶W¶V¤F¨ä¥i¯à©Ê. ¤@¥y¸Ü: ¬Û®e, ¦ý§ó¦n.




\subsection{»ÊÁÂ}

¥»¤å¥ó¥]§t¤F§Ú±q ALSA ÅX°Êµ{¦¡ºô¯¸±o¨ìªº¸ê°T. ¨äµ²ºc¬O¥Ñ SB-mini-HOWTO
¤À¨Óªº, ¥D­n¬O¥¦ªºµ²ºc©M§Ú²z·Q¤¤ªº«Ü±µªñ. ·PÁÂ¦³ 
\onlynameurl{SGML}Tools ³nÅé,
¨Ï±o¥» HOWTO ¥u¥Î¤@­Ó¦@¥Îªº­ì©lÀÉ, ¥i¥H²£¥Í¦hºØ®æ¦¡. ÁÂÁÂ Erik Warmelink
®Õ¾\(proof reading), ÁÙ¦³ Alfred Munnikes ´£¨Ñ«Ü¦h°ÝÃD©M¦³§Uªº«Ø¨¥, Yamahata
Isaku Â½Ä¶¦¨¤é¤å, ¥H¤Î Miodrag Vallat Â½¦¨ªk¤å. ±µ¤U¨Ó, Steve Crowd
«Ü¦nªº®Õ­q¤F¥þ¤å, ¥H¤Î Marc-Aur`ele Darche, Piotr Ingling, Juergen Kahrs
¤Î Tim Pearce ´£¨Ñ¦³¥Îªº¤p§Þ¥©(tip)¤Î¼W¸É.




\subsection{ª©¥»ªu­²}

1.4 ª© - 1999 ¦~ 5 ¤ë 18 ¤é. ¥[¤J¤Fªk¤åª©ªº URL, §ï¤F§ó¦h URL.

1.3 ª© - 1999 ¦~ 5 ¤ë 16 ¤é. ÁÂÁÂ Jaroslav, ¦b ALSA ­pµeºô¯¸«Ø¤F¥» HOWTO
ªº·s®a. ¦]¦¹, ¹q¶l¤Îºô¯¸¦ì§}¦³¤F¨Ç§ïÅÜ.

1.2 ª© - 1999 ¦~ 5 ¤ë 11 ¤é. ´X³B§ó·s.

1.1 ª© - 1999 ¦~ 3 ¤ë 11 ¤é. ¦b·sªº 0.3
ª©ÅX°Êµ{¦¡¤¤¥[¤J¤F¤@¨Ç­µ®Ä¥dªºÅX°Êµ{¦¡. ¼g¤F¤@ÂIÃö©ó 2.2 ª©®Ö¤ßªº³¡¥÷.

1.0 ª© - 1999 ¦~ 2 ¤ë 8 ¤é. ¦b°ÝÃD¸Ñ¨M¨º¸`¥[¶i¤F¨ÇªF¦è, ¬Ý¨ÓÆZ§¹¾ã¤F.

0.3 beta ª© - 1999 ¦~ 1 ¤ë 20 ¤é. ¦b ALSA ºô¯¸¤W¦³¤F³sµ². «¢!
²×©ó¬O¥¿¦¡ªº¤F!

0.2 alpha ª©. 1999 ¦~ 1 ¤ë¤¤. ²Ä¤@­Ó sgml ª©.

0.1 alpha ª©. 1999 ¦~ 1 ¤ë. ²Ä¤@ª©, ¦h¼Æ¬O HTML. 

Still: please submit any patches in plain English, you native speakers!
ÁÙ¦³: ¨Ï¥Î­^»yªº¦U¦ì, ½Ð¦h±H¯Â­^¤åªº patch!




\subsection{¥»¤å¥óªº·sª©¥»¦b­þ?}

³Ì·sª©¥»¥i¦b\onlynameurl{http://www.alsa-project.org./\~{}valentyn}§ä¨ì.

¨ä¥¦®æ¦¡(¥þ³¡ªº html, sgml, txt)¦b \onlynameurl{other-formats} ¥Ø¿ý¤U.

Yamahata Isaku Â½Ä¶¤F¤é¤åª©, ±N·|©ñ¦b¤é¥» ALSA ºô¯¸, \onlynameurl{http://plaza21.mbn.or.jp/\~{}momokuri/alsa/index.html}

Miodrag Vallat Â½¤Fªk¤åª©, ¥i¦b 
\onlynameurl{http://www.freenix.fr/unix/linux/HOWTO/mini/Alsa.html}§ä¨ì.

¦pªG±z±N¥»¤å¥óÂ½¦¨¨ä¥¦»y¨¥, ½ÐÅý§Úª¾¹D, §Ú±N¦b³o¨à°µ­Ó³sµ².




\subsection{¦^õX}

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



½Ðª`·N: §ÚÁÙ¨S¦¬¨ì«Ü¦hÃö©ó ALSA ÅX°Êµ{¦¡ªº«H¥ó, ¥ô¦ó¼W¥[³£«ÜÅwªï. §Y¨Ï¬O
"ÁÂÁÂ§A..." ³£¦n. ¤]³\¤å¤¤¥[¤J "§ÚªY½à¤j¥b¤º®e" ©Î "³o¸Ì§ÚÁÙ¬O¬Ý¤£¤ÓÀ´"
³o¨Ç¸Ü¨Ã¤£¬O«Ü§xÃø§a! (?)
(­ì¤å¬O
Please note: I do not get a lot of mail about the ALSA drivers and any addition is welcome. Even a 
``thank you for'' is appreciated - maybe it's not too much work to add a ``I appreciated most'' or 
``this-or-that was not immediately clear to me''-section.
)



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




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

Copyright 1998/1999 Valentijn Sessink

¥»¤¤¤åª©¤§ª©Åv¬° Valentijn Sessink ¤Î ¥î¥Ã±d ©Ò¦³ (1999)

(ª©Åv«Å¨¥­ì¤å·Óµn)



This HOWTO is free documentation; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.



¥» HOWTO ¬O¦Û¥Ñ¤å¥ó; ±z¥i¥H¦b¦X¥G¥Ñ¦Û¥Ñ³nÅé°òª÷·|¥Xª©ªº GNU
¤@¯ë¤½¶}°õ·Ó©Ò¸üªº±ø¥ó¤U­«·s´²¥¬¤Î/©Î­×§ï¥¦.
±z¥i¥H¿ï¥Î¸Ó°õ·Ó¤§²Ä¤Gª©©Î(¥ô±z¿ï)¨ä«áªºª©¥».



This document is distributed in the hope that it will be useful, but
{\bfseries without
any warranty}; without even the implied warranty of
{\bfseries merchantability}
or {\bfseries fitness for a particular purpose}. See the GNU General Public
License for more details.



¥»¤å¥ó¤§´²¥¬, ¬O§Æ±æ¯à¦³¥Î, ¦ý{\bfseries ¤£´£¨Ñ¥ô¦ó«OÃÒ}; §Y¨Ï¬O
{\bfseries °Ó·~¤W} ©Î {\bfseries ¦X©ó¯S©w¥Î³~} ªºÁô§t«OÃÒ¥çµL. ¸Ô±¡½Ð¬Ý GNU
¤@¯ë¤½¶}°õ·Ó.



You can obtain a copy of the GNU General Public License by writing to
the \onlynameurl{Free Software Foundation}, Inc., 675
Mass Ave, Cambridge, MA 02139, USA.



±z¥i¥H¼g«H¨ì\onlynameurl{¦Û¥Ñ³nÅé°òª÷·|},
¦a§}¬O  675 Mass Ave, Cambridge, MA 02139, USA. ¨Ó¨ú±o GNU ¤@¯ë¤½¶}°õ·Ó.






\section{¦b¶}°Ê¤§«e}






\subsection{ºü½×}

¥»¤å¥ó¹Á¸ÕÀ°§U±z¦b Linux ¤U¦w¸Ë¤Î¨Ï¥Î ALSA ­µ®ÄÅX°Êµ{¦¡. °Ñ¦Ò¨t²Î¨Ï¥Î AMD/K6
(x86 ¬Û®e)ªº¾÷¾¹, ¸Ë Slackware 3.5 µo¦æ®M¥ó. ¤£¹LÀ³¸Ó¸Ë¦b¥ô¦ó¨ä¥¦ Linux
µo¦æ®M¥ó³£¤£¦¨°ÝÃD. ¥Ñ¤å¥ó¤¤ ALSA ÅX°Êµ{¦¡¬O§_¥i¦b¨ä¥¦¥­¥x¨Ï¥Î¤£±o¦Óª¾.
Alpha ¤w¸g´ú¸ÕÃÒ©ú¥i¥Î. §Ú³o¨à¥u¦³ x86 PC, ©Ò¥H±z­n¬O¦³¥ô¦ó¦hªº¸ê®Æ³£«ÜÅwªï.

Åª Linux Sound HOWTO(½Ð¬Ý¨ä¥¦ HOWTO ¨º¤@¸`)¥i¯à§ó¦³À°§U, ¦ý¨º­Ó HOWTO
¥D­n¬O¦b°Q½×®Ö¤ß¤º«Øªº­µ®ÄÅX°Êµ{¦¡.


\subsection{Ãö©ó ALSA ÅX°Êµ{¦¡ªº¤@¯ë¸ê°T}

ALSA ­µ®ÄÅX°Êµ{¦¡­ì¥»¬O¼g¨Ó¨ú¥N Gravis UltraSound ¥dªº Linux ®Ö¤ßÅX°Êµ{¦¡ªº.
·í¹êÃÒ³o¨ú¥N±o«Ü¦¨¥\, §@ªÌ«K¶}©l ALSA ­pµe, ¥H§¹¥þ¼Ò²Õªº³]­p, 
¼g¤@­Óµ¹´XºØ­µ®Ä´¹¤ùªº¤@¯ëÅX°Êµ{¦¡.

¥¦©M OSS/Free ¤Î OSS/Linux ­µ®ÄÅX°Êµ{¦¡¬Û®e(®Ö¤ßªºÅX°Êµ{¦¡), ¦ý¥¦¦³¤ñ OSS
Âß°Êµ{¦¡§ó¦nªº¥»¨­¤¶­±. ¤@¨ÇÀuÂI¥i¥H¦b\onlynameurl{http://www.alsa-project.org/intro.html}¬Ý¨ì.

ALSA ­pµe¥Dºô­¶¦b \onlynameurl{http://www.alsa-project.org/}




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

ALSA ÅX°Êµ{¦¡¶È¤ä´©³¡¥÷ªº­µ®Ä¥d. ¦b¥»¤å¼g§@®É, ¥H¤Uªº¥d¦³³Q¤ä´©:
\begin{itemize}
\item ¨Ï¥Î Trident 4D Wave DX/NX ´¹¤ùªº¥d, ·PÁÂ Trident Microsystem ´£¨Ñ¤F ALSA
"²Ä¤@¤â" GPL ÅX°Êµ{¦¡(¶È MIXER ¤Î PCM ³]³Æ), ¥H¤Î¥L­Ìªº 4D Wave PCI
­µ®Ä´¹¤ùªº¤å¥ó.

½Ð¬Ý http://www.tridentmicro.com/HTML/products\%20folder/audio.htm 
±o¨ì§ó¦h¸ê°T. ³oÅX°Êµ{¦¡²{¤w¦b CVS, ±N¦b ALSA 0.3.0-pre5 ¤¤¥[¤J.
\item Gravis Ultrasound (GUS): "PnP",~ Extreme, Classic/ACE, MAX
\item ¨Ï¥Î GUS ´¹¤ùªº¥d: Dynasonic 3-D, STB Sound Rage 32, UltraSound
32-Pro (STB)
\item ÁnÅQ¥d: 1.0, 2.0, Pro, 16, AWE32/64, PCI64
\item ESS AudioDrive ESx688
\item ESS ES18xx (chipsets). ½Ðª`·N§Ú­Ó¤H¦b ESS1888 ¤W¸g¾ú¹L«Ü¦h³Â·Ð.
³o­ÓÅX°Êµ{¦¡ªº¶}µoªÌ¤wºÉ¤O¤F, but to no avail.
\item ESS Solo-1 ES1938
\item Yamaha: OPL3-SA2, OPL3-SA3 (´¹¤ù²Õ)
\item OAK Mozart
\item Schubert 32 PCI (PINE, S3 SonicVibes PCI ´¹¤ù²Õ)
\item Ensoniq AudioPCI ES1370/1371 PCI ­µ®Ä¥d (Soundblaster PCI64)
\item SonicVibes PCI ­µ®Ä¥d (PINE Schubert 32 PCI)
\end{itemize}

±µµÛ¤@¤j²¼ªº Crystal Semiconductors ªº¥d³£¤ä´©. ³o¨Ç´¹¤ù¥i¦b«Ü¦hµwÅé¤W¬Ý¨ì,
¦³¦b­µ®Ä¥d¤Wªº(¦p Philips PCA ¨t¦C), ¤]¦³¥D¾÷ªO¤º«Øªº(¦p IBM Aptiva, Dell
computers) ¥H¤Uªº´¹¤ù²Õ¦³¤ä´©.
\begin{itemize}
\item 4232
\item 4232A
\item 4235
\item 4236B
\item 4237B
\item 4238B
\item 4239
\end{itemize}

§ó·sªº¦Cªí¦bÅX°Êµ{¦¡®M¥ó¤¤ªº doc/SOUNDCARDS ¤¤¥i§ä¨ì.


\subsection{¨ä¥¦ HOWTO}

ALSA-sound-mini-HOWTO ¥u¬O°g§Aª©. ¦³¨Ç±¡§Î¤U³o½g´N¦³ÂIÂ²²¤¤F, ¬Ý¨ä¥¦ HOWTO
¥i¯à¹ï±z¦³À°§U. §Ú·|ÂI¥X±z¹Á¸Õ¦w¸Ë ALSA ÅX°Êµ{¦¡®É¥i¯à·|¸I¤Wªº¤@¨Çª¬ªp.
¤@¯ë¨Ó»¡, HOWTO ¥i¥H¦b metalab(¥ý«eªº
sunsite)ªºÃè®g¯¸ (mirror site)§ä¨ì. ¦]¦¹½Ð¥ý§ä§ä\onlynameurl{http://metalab.unc.edu/LDP/mirrors.html}, ¥hÂ÷§A³ÌªñªºÃè®g¯¸¾\Åª.
±z¥i¥H¦b LDP/HOWTO ¥Ø¿ý¤U§ä¨ì HOWTO ¤å¥ó. ½Ðª`·N: ¥»¤å¥óªº³sµ²¬O¬Û¹ï©ó
/LDP/HOWTO/mini ªº. ¦pªG±z±qÃè®g±o«Ü¤@­Pªº¯¸¥x¬Ý, ±z´N¯à§ä¨ì³o¨Ç HOWTO.

¥t¥~¹ï 2.2.x ®Ö¤ß§@ÂI¸É¥R. ¦b 2.2.x ¨t¦C®Ö¤ß¸Ì, ­µ®Ä¤ä´©´N¦p¦P¨ä¥¦¤ä´©¤@¯ë,
¥¦ÁÙ¯à¥Î, ¦ý©M±z²ßºDªº¥Îªk¤£¦P. ¥» HOWTO (´N¹³¨ä¥¦ HOWTO ¤@¼Ë) ¥H 2.0
¨t¦C®Ö¤ß¬°¥D, ¤£¹L§Ú·|¸ÕµÛ«ü©ú¨âªÌ¤§¤£¦PÂI. §Ú±N«Ü°ª¿³¥[¤J¥ô¦ó¨Ï¥» HOWTO
¯à¸ò¤W 2.2 ¨t¦CªºªF¦è.




\subsubsection{­µ®Ä¥d}

¤]³\±z¤w¸g¶R¤F¤ù­µ®Ä¥d, ¬Æ¦Ü¤w¸g¸Ë¦b±zªº¹q¸£¦n´X¦~¤F. ²{¦b±z¥i¥H¥Î¥¦¤F!
¥i¥H¥ý¬Ý¬Ý \onlynameurl{Sound-HOWTO},
¬Ý¬Ý¬O¤£¬O­È±o«_³o­Ó­·ÀI. (±z¤]³\·Q¶R·sªº¤°»ò Mega-Rumble-Blaster ªº¥d, ¸Õ¸Õ
ALSA ÅX°Êµ{¦¡.




\subsubsection{ÀH´¡§Y¥Îªº¥d}



¦h¼Æ¦b Intel ¥­¥xªº·s­µ®Ä¥d¬O ISA PnP ¥d, ¬O "Plug and Play" ªºÁY¼g.
¨ä·N¬O«ü³o±i¥d¥²¶·¸g¥Ñ§@·~¨t²Î³]©w. ³o¥²¶·¦b¶}¾÷®É¸g¥Ñ¤@­Óµ{§Ç§¹¦¨.
±z¤]³\»Ý­n¹B¥Î PnP-utils ®M¥ó¨Ó§¹¦¨³]©w. ³Ìªñªº¨CºØ Linux
µo¦æ®M¥ó³£¥]§t³o¨Ç¤u¨ã. ¥Îªk½Ð°Ñ·Ó
\onlynameurl{Plug-and-Play-HOWTO}

ALSA ÅX°Êµ{¦¡¦ü¥G¹ï¤@¨Ç¥d¦³°µ¤@¨Ç¦Û¤vªº ISA ÀH´¡§Y¥Î¤ä´©. µM¦Ó¤£©¯ªº, ¦]¬°§Ú
µLªk§ä¨ì¬ÛÃö¤å¥ó, §ÚµLªk¦V±z»¡©ú«ç»ò°µ. ¦pªG¦³¤H·Q¸Õ ALSA ­µ®Ä¤ä´©¦ý¤£·Q¥Î
ISA-PnP-tools, ½Ðµ¹§Ú¤@ÂI»¡©ú. 




\subsubsection{¥i¸ü¤J¼Ò²Õ}

ALSA ­µ®ÄÅX°Êµ{¦¡¬O«Ø¬°¼Ò²Õªº. ±z¥i¥H¦b \onlynameurl{Kernel-HOWTO} ¤¤±o¨ìÃö©ó¼Ò²Õªº§ó¦h¸ê°T. ¤]¦³­Ó module-HOWTO, ¦ý¥Ø«e¤w
µL¤HºûÅ@; ½Ð¦b Howto-HOWTO ¨º¸Ì¬Ý¬ÝµL¤HºûÅ@ªº¤å¥ó¨º¤p¸`. ¦³­Ó
\onlynameurl{Modules-mini-HOWTO}
©Î³\¦³¥Î. (?)




\subsubsection{Kerneld}

¥t¥~¦³¤@­Ó¹ï¬Y¨Ç¤H¦³¥Îªº HOWTO ¬O \onlynameurl{Kerneld-mini-HOWTO}. Kerneld ¬O­Ó¦b»Ý­n®É¤~¦w¸Ë¤Î²¾°£®Ö¤ß¼Ò²Õªº
±`¾nµ{¦¡(daemon). (µ§ªÌ¹ï¦¹¨S¦³¸gÅç, ©Ò¥HÅwªï´£¨Ñ¥ô¦ó¸ê°T. ALSA ÅX°Êµ{¦¡¤å¥ó
¥]§t¤F¤@¨ÇÃö©ó³]©w kerneld ªº¸ê°T, ¨Ã¤w¥]§t©ó¥» mini-HOWTO.)




\section{¦p¦ó¦w¸Ë ALSA ­µ®ÄÅX°Êµ{¦¡}






\subsection{±z»Ý­n¤°»ò}



\begin{itemize}
\item ¤@®M¯à°Êªº Linux ¨t²Î(¦p Slackware µo¦æ®M¥ó), ¨Ã¦³¦w¸Ë¶}µo¤u¨ã®M¥ó(¹³ gcc, 
make µ¥).)
\item ¤ä´©ªº­µ®Ä¥d
\item ¤@¨Ç Linux ªºª¾ÃÑ(±zÁ`­n¾å±o "ls", "cd", "tar" µ¥«ç»ò¥Î. )
\item root ±b¸¹
\end{itemize}

¦pªG±z¦³ PnP ¥d, ±z¤]»Ý­n:
\begin{itemize}
\item isapnptools ³nÅé®M¥ó
\end{itemize}

¦bÅXµ{¦¡¥Ø¿ý¤¤ªº INSTALL ÀÉ¤º¤å´£¨ì¹ï¦³¨Ç¥dÅX°Êµ{¦¡¤º¤w¸g¯à³B²z PnP ªº¤ä´©.
§Ú¤]±q Jaroslav ¨º¨à±o¨ì¤@¼Ëªº½×ÂI. ¦pªG§Ú±N¨Ó±o¨ì§ó¦h¸ê°T, §Ú·|±N¥¦­Ì¥[¶i¥»
mini-HOWTO.
(­ì¤å¬O
The INSTALL text in the driver directory suggests that for some cards, PnP
support is native. I also received a suggestion from Jaroslav about this.
When I get further information about this topic I will add it to this
mini-HOWTO.
$\}$

½Ðª`·N¦pªG±z·Q¨Ï¥Î ALSA ÅX°Êµ{¦¡, ¨º»ò±z¤£À³¸Ó¥ý¸ü¤J¥ô¦ó¨ä¥¦­µ®ÄÅX°Êµ{¦¡.
¦pªG±zªº®Ö¤ß¤¤¤º§t­µ®ÄÅX°Êµ{¦¡, ¨º»ò¦³¥²­n­«½sÄ¶®Ö¤ß. ¦pªG±z¥¿¦b¨Ï¥ÎÂÂªº
sound.o ¼Ò²Õ, ±z¥²¶·¸Ñ°£¥¦. ¦pªG±z¨Ï¥Î kerneld, ³o¥i¯à´N¬O­n±z§R¥h
/lib/modules/{$<$}®Ö¤ßª©¥»{$>$}/misc ¥Ø¿ý¤Uªº sound.o. ·sªº RedHat
¨t²Îªº­µ®ÄÅX°Êµ{¦¡²ÕÂ´¤è¦¡¤£¤Ó¤@¼Ë, ­n¸ü¤J¦n´X­Ó¼Ò²Õ, ³oºØ±¡ªp±z»Ý­n¸Ñ°£¥þ
³¡ªº¼Ò²Õ. 

2.2 ª©®Ö¤ß¹ï­µ®Ä«h±Ä¥Î¤F·sªº¤è¦¡. ±zÀ³¸Ó­n¥]§t­µ®Äªº¤ä´©! ¬Oªº, ¨S¦³»¡¿ù,
±z¦b®Ö¤ß¤¤¥[¤J¤F¹ï­µ®Äªº¤ä´©, ¦ý¨S¦³¥]§t¥ô¦ó­µ®Ä¥dªº³¡¥÷.
µM«á­«½sÄ¶¤Î¦w¸Ë®Ö¤ß, ±µµÛ½sÄ¶ ALSA ÅX°Êµ{¦¡.




\subsection{¨ú±oÅX°Êµ{¦¡}

ALSA ÅX°Êµ{¦¡¥i¦b \onlynameurl{ftp://ftp.alsa-project.org/pub} §ä¨ì, ¨Ã¥B¦b \onlynameurl{ftp://linux.a2000.nl/alsa}
¦³¤@¥÷Ãè®g(mirror). ­n¦w¸Ë ALSA ªº§¹¾ã¥\¯à, ±z»Ý­nÅX°Êµ{¦¡,
¨ç¦¡®w¤Î¤@¨Ç¤½¥Îµ{¦¡; ¤]´N¬O»¡¦pªG±z¥ÑÃè®g¯¸§ì±zÀ³¸Ó \onlynameurl{ftp://linux.a2000.nl/alsa/driver/}alsa-driver-0.3.0-pre4.tar.gz, 
\onlynameurl{ftp://linux.a2000.nl/alsa/lib/}alsa-lib-0.3.0pre4.tar.gz, ÁÙ¦³
\onlynameurl{ftp://linux.a2000.nl/alsa/utils/}alsa-utils-0.3.0-pre4.tar.gz. (³á,
¤W­±ªº¤£¬O§¹¾ãªº³sµ², ±z³Ì¦n¨ì­ì¦aÂI¬Ý¬Ý¦³¨S¦³·sª©, ¨Ã§ì³Ì·sªº.)




\subsection{¸Ñ¶}ÅX°Êµ{¦¡}

¥Î¦X²zªº©R¥O¹³  tar -zxf $<$file$>$ ¸Ñ¶}ÅX°Êµ{¦¡.
¥H¤Uªº¬O¼gµ¹·s¤â©Î±`§Ñ°Oªº¤H:
(You extract the drivers by some reasonable command, like the all-time tar
-zxf $<$file{$>$}. For newbies and for those with amnesia:)

\begin{tscreen}
\begin{verbatim}
cd /usr/src
\end{verbatim}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
tar -zxf /alsa-driver-0.3.0-pre4.tar.gz
\end{verbatim}
\end{tscreen}


(¦pªG¦¨¥\¤F, ±z¥i¯à¤@ª½¨Ï¥Î root ¨­¥÷¶i¨t²Î, ³o¬O¤£¹ïªº, °±¤U¨Ó¨ÃÅª¤@¤U
DOS/Win95-to-Linux-HOWTO. ¤£¬O³o¼Ëªº¸Ü,
±z¤w¸gª¾¹D³o¬OÃö©ó¨t²ÎºÞ²z(administrative)ªº¨Æ, ±z»Ý­n superuser/root Åv­­.
©Ò¥H, ±z»Ý­n root Åv­­, ¿é¤J su ¥H¤Î±K½X.

\begin{tscreen}
\begin{verbatim}
tar -zxf /alsa-lib-0.3.0pre4.tar.gz
\end{verbatim}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
tar -zxf /alsa-utils-0.3.0-pre4.tar.gz
\end{verbatim}
\end{tscreen}


¤U³o¼Ëªº©R¥O¤]¥i¥H, ¥B§ó¦³½ì: find \~{} -name alsa* -exec tar -zxf $\{$$\}$ $\backslash$;
(«Ä¤l, ¤£­n¦b®a¸Õ³o­Ó, ³o¥u¬O­Ó½d¨Ò¦Ó¤w. )ª`·N¦pªG±z¨Ï¥Î Netscape
¤U¸üÅX°Êµ{¦¡, ±z¥i¯à§ì¤Uªº¬O¸Ñ¶}¹Lªº, ¦ý©µ¦ùÀÉ¦WÁÙ¬O .tgz. ¦pªG tar
©ê«èÀÉ®×®æ¦¡¤£¹ï, §â tar ©R¥O¤¤ªº "z" ¿ï¶µ¥h±¼, ¥i¥H±o¨ì¸û¦nªºµ²ªG.




\subsection{½sÄ¶}

¦b±z¥i¥H½sÄ¶¤Î¨Ï¥Î¨ç¦¡®w¥H«e, ±z»Ý­n¥ý¦³ÅX°Êµ{¦¡.
¦Ó¦³¤F¨ç¦¡®w«á¤~¥i¥H½sÄ¶¨Ï¥Î¤½¥Îµ{¦¡. ©Ò¥H§Ú­Ì¶}©l§a:

\begin{tscreen}
\begin{verbatim}
cd alsa-driver-0.3.0-pre4
\end{verbatim}
\end{tscreen}


(µ¹¨º¨Ç¤£¤Ó¦³¸gÅçªº: ¦b "alsa-d" «á±µµÛ«ö $<$tab{$>$} ("tab" Áä). 
³o¼Ë´N·|¥s¥X {\itshape ©R¥O¦C¦Û°Ê¸É§¹(command line completion)\/}.)

(Ä¶ª`: ¦³§ó¦nªºÂ½ªk¶Ü?)

\begin{tscreen}
\begin{verbatim}
./configure
\end{verbatim}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
make
\end{verbatim}
\end{tscreen}


²{¦b±z»Ý­n¥Î root ¨­¥÷¦w¸ËªFªF(¥i¯à±z¤w¸g¬O root ¤F)
\begin{tscreen}
\begin{verbatim}
make install
\end{verbatim}
\end{tscreen}


¦pªG¥¦¦^À³¹³ "version.h" ÀÉ§ä¤£¨ì¤§Ãþªº, ±z¥i¯à¨S¦³§´µ½¦w¸Ë®Ö¤ß­ì©l½X.
­n½sÄ¶ ALSA ÅX°Êµ{¦¡»Ý­n®Ö¤ß­ì©l½X¤¤ªº¤@¨ÇÀÉ®×, ©Ò¥H±z§â·Q¥Îªº
linux-2.x.y.tar.gz ¦b /usr/src ¤U¸Ñ¶}, ¨Ã¤U {\ttfamily make menuconfig} ©R¥O.
(¹ê»Ú¤W, {\ttfamily make symlinks} ¥i¯à´N°÷¤F). ²{¦b½sÄ¶¨ç¦¡®w:

\begin{tscreen}
\begin{verbatim}
cd ../alsa-lib-0.3.0-pre4
\end{verbatim}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
./configure
\end{verbatim}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
make
\end{verbatim}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
make install
\end{verbatim}
\end{tscreen}


OK, ±z¤w¸g¦¨¥\¤F, ¦A¨Ó¬O¤½¥Îµ{¦¡:

\begin{tscreen}
\begin{verbatim}
cd ../alsa-utils-0.3.0-pre4
\end{verbatim}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
./configure
\end{verbatim}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
make
\end{verbatim}
\end{tscreen}


\begin{tscreen}
\begin{verbatim}
make install
\end{verbatim}
\end{tscreen}


ª`·N: ¦b²Ä¤@¦¸½sÄ¶¤½¥Îµ{¦¡®É¥i¥ý¤£¥´ "make install".
¬Æ¦Ü±z¥i¥H¥ý¤£­n°Ê¨ç¦¡®w¤Î¤½¥Îµ{¦¡, ¥uÀË¬d¤@¤U½T©wÅX°Êµ{¦¡¯à¤£¯à¥Î. 




\subsection{·Ç³Æ³]³ÆÀÉ}

¦bÅX°Êµ{¦¡¥Ø¿ý¤U¦³­Ó©R¥O½Z(script)¥i¥H§â ALSA ªº­µ®Ä³]³ÆÀÉ¦w¸Ë¶i /dev ¥Ø¿ý.
¦bÅX°Êµ{¦¡¥Ø¿ý¤U¥´¤J

\begin{tscreen}
\begin{verbatim}
./snddevices
\end{verbatim}
\end{tscreen}


¦p¦¹À³¸Ó¦³ /dev/snd ¤l¥Ø¿ý¤F(¥ý¬Ý¬Ý¦³¨S¦³. ¦pªG±z¬Æ¦Ü³s "ls" ©R¥O³£¤£¼ô,
½Ð¦Ò¼{¥ýÅª§Oªº HOWTO. ¦b¦w¸Ë¥»ÅX°Êµ{¦¡«e±zÀ³¸Ó¦³¨Ç°ò¥»ªº Linux ª¾ÃÑ¤~¹ï.)



²{¦b±z¥i¥H¦w´¡ÅX°Êµ{¦¡¤F. ½Ð¸õ¨ì¤U¤@¬q§a.




\section{¸ü¤JÅX°Êµ{¦¡}

¦³¨âºØ¨Ï¥Î ALSA ­µ®Ä¼Ò²Õªº¤èªk. µ§ªÌ­Ó¤H¤ñ¸û³ßÅw¨Ï¥Î¤â°Êªº¤èªk, ¤]´N¬O¦b¶}¾÷
®É¦w´¡ÅX°Êµ{¦¡. ALSA ÅX°Êµ{¦¡¬O¥H¥i¸ü¤J/¨ø°£¼Ò²Õ¬°¥Ø¼Ð¨Ó³]­p -- 
¨Ò¦p»¡¥¦­Ì¤£·|¦b¸ü¤J«á­«³]­µ¶q -- ©Ò¥H±z¥i¥HÂ²³æ¦a¨Ï¥Î kerneld ªº¤èªk.

(Ä¶ª`: ­ì¤åª½Ä¶¬° ALSA ÅX°Êµ{¦¡³]­p¦¨¥i¸ü¤J/¨ø°£¼Ò²Õ, ¦ýÄ¶ªÌ»{¬° OSS ¤]¥i¥H
³o»ò°µ(¥u®t¥¦·|­«³]­µ¶q, ¹ï¼Ò²Õ¨Ï¥ÎªÌ¨Ó»¡¸û¤£¤è«K, ÁöµM¸Ñ¨M¿ìªk¬O¦³(¨£ Sound
HOWTO)), ³o»òÂ½µLªk¥YÅã ALSA ªºÀuÂI, ¬GÂ½¦¨¤W­±ªº·N«ä. §Æ±æ¨S»~¸Ñ...)

½Ð¤@©w­n¾\Åª\ref{backw-compat} {(¦V«e¬Û®e)}³o¸`, 
¦pªG±z·Q­n©M¥H«eªºµ{¦¡¬Û®eªº¸Ü.




\subsection{¥Î modprobe ¦w´¡ÅX°Êµ{¦¡}

½Ðª`·N: ¦pªG±z¦³ PnP ­µ®Ä¥d, ±z­º¥ý­n³]©w¥¿½Tªº(©Î¦Ü¤Ö¬O¤wª¾ªº) IO/IRQ/DMA.
½ÐÅª Plug-and-Play-HOWTO. ±z¤w¸g³]©w¹L±zªº ÀH´¡§Y¥Î ­µ®Ä¥d¤F¶Ü? ¦n,
¨º»ò½ÐÄ~ÄòÅª¤U¥h. ¥D­n³¡¥÷¬O "modprobe snd-$<$soundcard{$>$}", ³o¼ËÀ³¸Ó´N¥i¥H. 
¤£¹L¨Ã«D©Ò¦³¦w¸Ë®M¥ó³£§â /sbin ¥]§t¦b±zªº PATH Àô¹ÒÅÜ¼Æ¤U. ¦pªG±z±o¨ì "bash:
modprobe: command not found" ³o¼Ëªº¦^À³, ¥i¯à¬O¥Ñ©ó modprobe ¨S¦³¦b path ¤¤.
¸ÕµÛ¥Î "/sbin/modprobe snd-sb16", ©Î·Q¿ìªk§ä¥X modprobe ¤½¥Îµ{¦¡¦b­þ.

¹ï Crystal ´¹¤ù²Õªº¥d¨Ó»¡¥i¯à³Ì§xÃø. ALSA ÅX°Êµ{¦¡¤£¹ï³o¨Ç¥d¶i¦æ¦Û°Ê°»´ú.
§ó¶i¤@¨Bªº¸ê°T°O¸ü¦bÅX°Êµ{¦¡¥Ø¿ý¤Uªº INSTALL ÀÉ¤¤. ±µ¤U¨Óµ§ªÌÁ|¨â­Ó¨Ò¤l, 
µM«á±µµÛ¬O­Ó¦Cªí:

Gravis UltraSound (GUS) ¤Î¬Û®e¥d:
\begin{tscreen}
\begin{verbatim}
/sbin/modprobe snd-gusclassic
\end{verbatim}
\end{tscreen}

¹ï§¹¥þ 16 ¦ì¤¸ªº SoundBlaster ¥d (SoundBlaster 16 (PnP), SoundBlaster
AWE 32 (PnP), SoundBlaster AWE 64 (PnP):
\begin{tscreen}
\begin{verbatim}
/sbin/modprobe snd-sb16
\end{verbatim}
\end{tscreen}





\subsection{¨º±i¥dÀ³¸Ó¥Î­þ­ÓÅX°Êµ{¦¡?}




\subsubsection{Gravis UltraSound Extreme}



{\ttfamily modprobe snd-gusextreme}


\subsubsection{Gravis UltraSound MAX}



{\ttfamily modprobe snd-gusmax}








\subsubsection{ESS AudioDrive}

ESS AudioDrive ES-1688 ¤Î ES-688 ­µ®Ä¥d

{\ttfamily modprobe snd-audiodrive1688}




\subsubsection{Gravis UltraSound PnP}

Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32 ¥H¤Î¨ä¥¦¥Î
AMD InterWave (tm) ´¹¤ùªº­µ®Ä¥d.

{\ttfamily modprobe snd-interwave}


\subsubsection{UltraSound 32-Pro}

UltraSound 32-Pro (STB »s Compaq ¨Ï¥Î) ¤Î¨ä¥¦¨Ï¥Î
AMD InterWave (tm) ´¹¤ù¥H¤Î¥Î TEA6330T ¹q¸ô¨Ó°µ bass, treble ¤Î¥D­µ¶q±±¨îªº¥d.

{\ttfamily modprobe snd-interwave-stb}


\subsubsection{Soundblaster}

8-bit Soundblaster ¥d (SoundBlaster 1.0, SoundBlaster 2.0, SoundBlaster
Pro)

{\ttfamily modprobe snd-sb8}


\subsubsection{Soundblaster 16}

16-bit SoundBlaster ¥d (SoundBlaster 16 (PnP), SoundBlaster AWE
32 (PnP), SoundBlaster AWE 64 (PnP). 
½Ðª`·N¥»¼Ò²Õ¤£¤ä´© SoundBlaster VibraX16 ­µ®Ä¥d.

{\ttfamily modprobe snd-sb16}


\subsubsection{Yamaha OPL3-SA2/SA3 ­µ®Ä¥d}

¥ú¬O "modprobe snd-opl3sa" ¬OµL®Äªº, ÅX°Êµ{¦¡¤£·|¦Û°Ê°»´ú. ½Ð¬Ý«á­±.




\subsubsection{S3 SonicVibes}

S3 SonicVibes PCI ­µ®Ä¥d. (PINE Schubert 32 PCI)

{\ttfamily modprobe snd-sonicvibes}




\subsubsection{Ensoniq/Soundblaster PCI64}

Ensoniq AudioPCI ES1370/1371 PCI ­µ®Ä¥d. (SoundBlaster PCI 64)

{\ttfamily modprobe snd-audiopci}




\subsubsection{CS4232/4232A}

©Ò¦³¨Ï¥Î CS4232/CS4232A ´¹¤ùªº­µ®Ä¥d.
¥ú¬O "modprobe snd-card-cs4232" ¨S¥Î, ¤£¦Û°Ê°»´ú, ¬Ý«á­±. 




\subsubsection{4235 ¥H¤Î¨ä«áªº}

©Ò¦³¨Ï¥Î CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 ´¹¤ùªº. 
¥ú¬O "modprobe snd-card-cs4236" ¨S¥Î, ¤£¦Û°Ê°»´ú, ¬Ý«á­±. 




\subsection{¤£¦Û°Ê°»´ú®É«ç»ò¸ü¤JÅX°Êµ{¦¡}

¦pªG±z­n¥ÎªºÅX°Êµ{¦¡¤£¦Û°Ê°»´ú, ±z¥²¶·¦bÅýÅX°Êµ{¦¡¹B§@«e¥ý´£¨ÑÃB¥~¸ê°T.
§ó¦h¸ê°T¥i¦bÅX°Êµ{¦¡¥Ø¿ý¤Uªº INSTALL ÀÉ¤¤§ä¨ì.


\subsubsection{OPL3-SA2 ¤Î OPL3-SA3}

®Ú¾Ú INSTALL ÀÉ, ±z»Ý­n´£¨ÑÅX°Êµ{¦¡¤@¤Á¸ê°T. ¦pªG±z¥Î isapnp-tools
¨Óªì©l¤Æ±zªº¥d, ¤]³\¥i¥H¦b /etc/isapnp.conf ÀÉ¤¤¬Ý¨ì¹³¤U­±ªº­È:
\begin{tscreen}
\begin{verbatim}
snd_port - control port # for OPL3-SA chip
snd_wss_port - WSS port # for OPL3-SA chip (0x530,0xe80,0xf40,0x604)
snd_midi_port - port # for MPU-401 UART (0x300,0x330), -1 = disable
snd_fm_port - FM port # for OPL3-SA chip (0x388), -1 = disable
snd_irq - IRQ # for OPL3-SA chip (5,7,9,10)
snd_dma1 - first DMA # for Yamaha OPL3-SA chip (0,1,3)
snd_dma1_size - max first DMA size in kB (4-64kB)
snd_dma2 - second DMA # for Yamaha OPL3-SA chip (0,1,3), -1 = disable
snd_dma2_size - max second DMA size in kB (4-64kB)
\end{verbatim}
\end{tscreen}


±z­n¥Î
"modprobe snd-opl3sa snd\_port=0xNNN snd\_wss\_port=0x530 snd\_midi\_port=-1
snd\_fm\_port=0x388 snd\_irq=5 snd\_dma1=0 snd\_dma1\_size=NN snd\_dma2=1 snd\_dma2\_size=NN"
©R¥O¨Ó¸ü¤JÅX°Êµ{¦¡(¨S¦³ midi ¤ä´©, §Ú¤´µM¬Û«H¦pªG±z¦³¦X¦¨¾¹¤§Ãþ·Q³s¤W Linux
¥D¾÷, ±z»Ý­n¥¦. ¦pªG¥u¬OÅ¥ MIDI ÀÉ´N¤£¥²¤F.)

¤W¨Òªº "NN" ­È±z­nµ¹¯u¥¿ªº­È, §Ú¤£¾å±o¦X²z­È¬O¦h¤Ö, ©Ò¥H¤~³o»ò¼g. 
§Ú¤£¾å±o dma ¤j¤pªº°Ñ¼Æ¬O¤£¬O«D­n¤£¥i.


\subsubsection{CS4232/CS4232A ´¹¤ù}

®Ú¾Ú INSTALL ÀÉ©Ò¨¥, ¹ï³o¨Ç¥d±z­n´£¨Ñ midi port ªº¸ê°T. 
ª`·N¹ï¤U­±¨Ò¤¤ªº¥d, ¥¦¨Ï¥Îµ¹ 3235/6/7/8/9 ªºÅX°Êµ{¦¡, 
§Úµ¹¤F©Ò¦³¸ê°T(°£¤F DMA ¤j¤p), ¤£µM¥¦¤£·|°Ê. ©Ò¥H±z¤]³\´N¥Î³o¾ã¬q©R¥O¦C¨Ó¸ü
¤JÅX°Êµ{¦¡§a! ¦pªG±z¥Î¤F isapnp-tools, ±z¥i¯à¦b /etc/isapnp.conf
¤¤¬Ý¨ì³o¨Ç­È:

\begin{tscreen}
\begin{verbatim}
snd_port - port # for CS4232 chip (PnP setup - 0x534)
snd_cport - control port # for CS4232 chip (PnP setup - 0x120)
snd_mpu_port - port # for MPU-401 UART (PnP setup - 0x300), -1 = disable
snd_fm_port - FM port # for CS4232 chip (PnP setup - 0x388), -1 = disable
snd_jport - joystick port for CS4232 chip (PnP setup - 0x200), -1 =
disable
snd_irq - IRQ # for CS4232 chip (5,7,9,11,12,15)
snd_mpu_irq - IRQ # for MPU-401 UART (9,11,12,15)
snd_dma1 - first DMA # for CS4232 chip (0,1,3)
snd_dma1_size - max first DMA size in kB (4-64kB)
snd_dma2 - second DMA # for Yamaha CS4232 chip (0,1,3), -1 = disable
snd_dma2_size - max second DMA size in kB (4-64kB)
\end{verbatim}
\end{tscreen}


¹ï¼Ð·Ç³]©w­Èªº¥d, ±z­n¥Î
"modprobe snd-card-cs4232 snd\_port=0x534 snd\_cport=0x120
snd\_mpu\_port=-1 snd\_fm\_port=0x388 snd\_jport=-1 snd\_irq=5 snd\_dma1=0 snd\_dma1\_size=NN
snd\_dma2=1 snd\_dma2\_size=NN"
©R¥O¨Ó¸ü¤JÅX°Êµ{¦¡(¨S¦³ midi ¤ä´©, ½Ð¬Ý Yamaha OPL-3 ªºª`·N¨Æ¶µ, ¤S,
¨S¦³¤ä´©·n±ì). ¦pªG±zªº /etc/isapnp.conf ¤¤ªº­È¤£¦P, ¨º»ò³o¸Ìªº­È¤]¸ÓÅÜ¤@¤U.
(¥Î¥Î±zªºÀY¸£·Q·Q¤ñ¸û¦n ;)

¤W¨Òªº "NN" ­È±z­nµ¹¯u¥¿ªº­È, §Ú¤£¾å±o¦X²z­È¬O¦h¤Ö, ©Ò¥H¤~³o»ò¼g. 
§Ú¤£¾å±o dma ¤j¤pªº°Ñ¼Æ¬O¤£¬O«D­n¤£¥i.


\subsubsection{CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 chips}

®Ú¾Ú INSTALL ÀÉ©Ò¨¥, ¹ï³o¨Ç¥d±z­n´£¨Ñ midi port ¥H¤Î control port ªº¸ê°T. 
ª`·N¹ï CS4237B ªº¥d,
§Úµ¹¤F©Ò¦³¸ê°T(°£¤F DMA ¤j¤p), ¤£µM¥¦¤£·|°Ê. ©Ò¥H±z¤]³\´N¥Î³o¾ã¬q©R¥O¦C¨Ó¸ü
¤JÅX°Êµ{¦¡, ¤£¥u¬O¦³ snd\_port ¤Î snd\_cport ¦Ó¤w. 
¦pªG±z¥Î¤F isapnp-tools, ±z¥i¯à¦b /etc/isapnp.conf ¤¤¬Ý¨ì³o¨Ç­È:

\begin{tscreen}
\begin{verbatim}
snd_port - port # for CS4232 chip (PnP setup - 0x534)
snd_cport - control port # for CS4232 chip (PnP setup - 0x120)
snd_mpu_port - port # for MPU-401 UART (PnP setup - 0x300), -1 = disable
snd_fm_port - FM port # for CS4232 chip (PnP setup - 0x388), -1 = disable
snd_jport - joystick port for CS4232 chip (PnP setup - 0x200), -1 = disable
snd_irq - IRQ # for CS4232 chip (5,7,9,11,12,15)
snd_mpu_irq - IRQ # for MPU-401 UART (9,11,12,15)
snd_dma1 - first DMA # for CS4232 chip (0,1,3)
snd_dma1_size - max first DMA size in kB (4-64kB)
snd_dma2 - second DMA # for Yamaha CS4232 chip (0,1,3), -1 = disable
snd_dma2_size - max second DMA size in kB (4-64kB)
\end{verbatim}
\end{tscreen}


±z­n¥Î
"modprobe snd-card-cs4232 snd\_port=0x534 snd\_cport=0x120
snd\_mpu\_port=-1 snd\_fm\_port=0x388 snd\_jport=-1 snd\_irq=5 snd\_dma1=0 snd\_dma1\_size=NN
snd\_dma2=1 snd\_dma2\_size=NN"
©R¥O¨Ó¸ü¤JÅX°Êµ{¦¡(¨S¦³ midi ¤ä´©, ½Ð¬Ý Yamaha OPL-3 ªºª`·N¨Æ¶µ, ¤S,
¨S¦³¤ä´©·n±ì). 

ª`·N¨Æ¶µ:
\begin{itemize}
\item "NN" ­È­nµ¹¯u¥¿ªº, §Ú¤£ª¾¹D¦X²z­È¬O¦h¤Ö¤~³o»ò¼g.
\item §Úªº CS4237B ¥d¨S¦³©ú¥Õ«ü©w DMA ¤j¤p¤]¥Î±o«Ü¦n.
\end{itemize}



\subsection{¨Ï¥Î kerneld ¨Ó¸ü¤J}

{\ttfamily kerneld} ¬O­Ó¦b»Ý­n®É´¡¤J¼Ò²Õ,
¨Ã¦b¤£¦A¨Ï¥Î®É¨ø°£¥¦­ÌªºªA°Èµ{¦¡(daemon). ¥Ñ©óµ§ªÌ¨S¥Î¹L kerneld, ¤£¾å±o¤U
­±ªº¸ê°T·Ç¤£·Ç½T. ¥H¤U¸ê°T¨Ó¦Û ALSA ÅX°Êµ{¦¡®M¥óªº INSTALL ÀÉ. Ãö©ó kerneld
ªº¸ÔºÉ¸ê°T¥i¦b kerneld-mini-HOWTO ¤¤§ä¨ì.

·Ó¥H¤U¨BÆJ°µ:
\begin{itemize}
\item ½s¿è /etc/conf.modules(«á¦³½d¨Ò)
\item °õ¦æ 'modprobe snd-card', ¨ä¤¤ snd-card ¬O±zªº­µ®Ä¥d¦WºÙ {[} §ÚÄ±±o©_©Ç,
kerneld À³¸Ó­t³d¸ü¤J¥¦¤£¬O¶Ü? VS{]}
\end{itemize}

³o¬O Gravis UltraSound PnP ­µ®Ä¥dªº /etc/conf.modules ½d¨Ò:
\begin{tscreen}
\begin{verbatim}
alias char-major-14 snd
alias snd-minor-oss-0 snd-interwave
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-interwave
options snd snd_major=14 snd_cards_limit=1
options snd-interwave snd_index=1 snd_id="guspnp" snd_port=0x220 snd_irq=5
snd_dma1=5 snd_dma2=6
\end{verbatim}
\end{tscreen}


¦pªG±z·Q´¡§ó¦h¥d, ³o¨à¦³½d¨Ò(¬O¦P®É¦³ Gravis UltraSound Classic ¤Î Sound
Blaster 16 ªº±¡§Î)
\begin{tscreen}
\begin{verbatim}
alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-sb16
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-sb16 snd_index=1 snd_port=0x220 snd_irq=5 snd_dma8=1 snd_dma16=5
options snd-gusclassic snd_index=2 snd_irq=11 snd_dma1=6 snd_dma2=7
\end{verbatim}
\end{tscreen}


¦pªG¦³¨â¤ù Gravis UltraSound Classic ­µ®Ä¥d, ´N¹³¤U¨Ò:
\begin{tscreen}
\begin{verbatim}
alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-gusclassic
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-gusclassic snd_index=1,2 snd_port=0x220,0x260 snd_irq=5,11
snd_dma1=5,6 snd_dma2=7,3
\end{verbatim}
\end{tscreen}





\subsection{¦V«e¬Û®e\label{backw-compat}}

¦pªG±z·Q«O¯d OSS/Free ©Î OSS/Linux ªº¬Û®e©Ê, ±zÁÙ­n¦A¥[¤@­ÓÅX°Êµ{¦¡:
snd-pcm1-oss ÅX°Êµ{¦¡, ´£¨Ñ OSS ¬Û®e©Ê. ¤U
\begin{tscreen}
\begin{verbatim}
modprobe snd-pcm1-oss
\end{verbatim}
\end{tscreen}

©R¥O. ³o±N´£¨Ñ /dev/audio ¤Î /dev/dsp ªº¤ä´©, ´N¹³ OSS/Free (®Ö¤ß)ÅX°Êµ{¦¡¤Î
OSS/Linux (­n 25 ¬üª÷ªº)©Ò°µªº¤@¼Ë. ª`·N³o¥u¬O¼ÒÀÀ¦Ó¤w.




\section{´ú¸Õ¤Î¨Ï¥Î}

²{¦bÀ³¸Ó¬O¸Õ¸ÕÅX°Êµ{¦¡¬O¤£¬O¯u¯à¥Îªº®É­Ô¤F. ±µªÌ´N¬O¨Ï¥Î¥¦.


\subsection{/proc ÀÉ®×¨t²Î}

±z¥i¥H¦b /proc ¥Ø¿ý¤U§ä¨ì«Ü¦hÃö©ó±zªº¨t²Îªº¦³¥Î¸ê°T. /proc
¬O¤@­Ó"µêÀÀªº"ÀÉ®×¨t²Î, ·N§Y¥¦¨Ã«D¯u¥¿¦s¦b,
¦Ó¬O©M±z¥¿¦b°õ¦æªº¦Uµ{§Ç¶¡ªº³sµ². ­nÅý /proc ¥i¥Î, ±z»Ý­n±N¥¦½sÄ¶¶i®Ö¤ß.
¦h¼Æ Linux ¦w¸Ë®M¥ó¤w±N¥¦³]¬°¹w³]­È, ¦ý¦pªG±z­«½sÄ¶¨Ã¥B¨Ã¨S¦³±N /proc
¥]¶i¨Ó, ¨º»ò¦b /proc ¤U±N¤°»ò¤]¨S¦³.

/proc/modules °O¸ü¤FÃö©ó¸ü¤Jªº¼Ò²Õªº¸ê°T. ·í ALSA ­µ®ÄÅX°Êµ{¦¡¸ü¤J«á, ¦pªG±z
¥´¤J cat /proc/modules, À³¸Ó¬Ý¨ì¹³³o¼ËªºªF¦è:
\begin{tscreen}
\begin{verbatim}
snd-pcm1-oss      4            0
snd-sb16          1            1
snd-sb-dsp        4    [snd-sb16]      0
snd-pcm1          4    [snd-pcm1-oss snd-sb-dsp]      0
snd-pcm           3    [snd-pcm1-oss snd-sb16 snd-sb-dsp snd-pcm1]    0
snd-mixer         3    [snd-pcm1-oss snd-sb16 snd-sb-dsp]      1
snd-mpu401-uart   1    [snd-sb16]      0
snd-midi          4    [snd-sb16 snd-sb-dsp snd-mpu401-uart]   0
snd-opl3          1    [snd-sb16]      0
snd-synth         1    [snd-sb16 snd-opl3]     0
snd-timer         1    [snd-opl3]      0
snd               8    [snd-pcm1-oss snd-sb16 snd-sb-dsp snd-pcm1 snd-pcm snd-mixer snd-mpu401-uart snd-midi snd-opl3 snd-synth snd-timer]    0
\end{verbatim}
\end{tscreen}

¦pªG¦b¦w¸ËÅX°Êµ{¦¡®É¦³­þ¨B·d¿ù¤F, ±z¤´¯à¬Ý¨ì¤@°ï "snd" ³]³Æ, ¦ý¨S¦³­µ®Ä¤ä´©.

¨Ò¦p»¡(½Ð¤d¸U¤£­n·ÓµÛ¤U­±¤U©R¥O, cs4236 ÅX°Êµ{¦¡»Ý­n°Ñ¼Æ):
\begin{tscreen}
\begin{verbatim}
win3:# modprobe snd-card-cs4236
/lib/modules/2.0.35/misc/snd-card-cs4236.o: init_module: Device or resource busy
snd-mixer: Device or resource busy
win3:# cat /proc/modules
snd-cs4236        2           0
snd-cs4231        3    [snd-cs4236]    0
snd-timer         1    [snd-cs4231]    0
snd-pcm1          4    [snd-cs4236 snd-cs4231] 0
snd-mixer         3    [snd-cs4236 snd-cs4231] 0
snd-pcm           3    [snd-cs4236 snd-cs4231 snd-pcm1]       0
snd-mpu401-uart   1           0
snd-midi          4    [snd-mpu401-uart]       0
snd-opl3          1           0
snd-synth         1    [snd-opl3]      0
snd-timer         1    [snd-cs4231 snd-opl3]   0
snd               8    [snd-cs4231 snd-timer snd-pcm1 snd-mixer snd-pcm]     0
\end{verbatim}
\end{tscreen}


±z¥iÂÇ¥Ñ¬Ý /proc/asound/cards ¤º®e¨Ó¬Ý­µ®Ä¥d¬O§_¦s¦b. ¨Ò¦p:
\begin{tscreen}
\begin{verbatim}
bash$ cat /proc/asound/cards
0 [card1          : SB16 - Sound Blaster 16
                    Sound Blaster 16 at 0x220, irq 5, dma 1&5
\end{verbatim}
\end{tscreen}

¦b­è­èªº¨Ò¤l¤¤(´N¬O§Ú§Ñ¤F¥[°Ñ¼Æªº), ¿é¥X·|¬O¹³:
\begin{tscreen}
\begin{verbatim}
win3:# cat /proc/asound/cards
--- no soundcards ---
\end{verbatim}
\end{tscreen}

­Y CS4236 ¥d¯à¥Î, ±N¦³¥H¤U¿é¥X
\begin{tscreen}
\begin{verbatim}
0 [card1         ]: CS4236 - CS4237B
                    CS4237B at 0x534, irq 7, dma 1&0
\end{verbatim}
\end{tscreen}

¦pªG±z¦A¤TÀË¬d±zªº³]©w¥¿½T«á, ¤´µM§ä¤£¨ì­µ®Ä¥d, ¨º»ò¥h¬Ý¬Ý°ÝÃD¸Ñ¨M¨º¸`.

{\ttfamily /proc/asound/} µêÀÀ¥Ø¿ýÅã¥Ü¤FÃö©ó¦¹ÅX°Êµ{¦¡ªº³\¦h¸ê°T. ½Ðª`·N
/proc/asound ¦b±z¸ü¤J²Ä¤@­Ó ALSA ¼Ò²Õ«á¤~·|¥X²{. ¦pªG¨S¦³ /proc/asound,
¨º»ò´N¬O "snd" ¼Ò²Õ¨S¦³¥¿½T¦w¸Ë¦n. ±z¥i¥H¦b /proc/asound/cards
ÀÉ¤¤§ä¨ì¦w¸Ë¦nªº¥d, µM«á¦b /proc/asound/0 §ä¨ìÃö©ó 0 ¸¹¥d, /proc/asound/1
¤¤Ãö©ó 1 ¸¹¥dªº¸ê°T.

¦pªG {\ttfamily cat /proc/asound/} Åã¥Ü¹³
\begin{tscreen}
\begin{verbatim}
      ES1370 DAC2/ADC
      Playback isn't active.
      Record isn't active.
\end{verbatim}
\end{tscreen}

³o¬O»¡±zªºÅX°Êµ{¦¡¤@¤Á³£«Ü¦n, ¦ý¥Ø«e¨Ã¨S¦³¨Æ°µ(©Ò¥H¤@¤Á¥¿±`).

ÁÙ¦³²Ä¤TºØ§ä­µ®Ä³]³Æªº¤èªk, ´N¬O¦pªG±z¦³ OSS ¬Û®eÅX°Êµ{¦¡, ¨º»ò´N¦³
/dev/sndstat ³]³ÆÀÉ. ALSA ÅX°Êµ{¦¡·|Åé¶Kªº´£¿ô±z¤£­n¨Ì¿à³o¨Ç¸ê°T, ¥¦¥u¬O¬°¸ò
OSS ¬Û®e¦Ó°µªº. ¥Ñ /proc/asound ¥i¥HÂ²³æªº±o¨ì§ó¦nªº¸ê°T.


\subsection{²V­µ¾¹}

¤@¥¹±zªº­µ®Ä¥d¸Ë¦n, ¦Ó /proc ÀÉ®×¨t²Î¤]³o»òÅã¥Ü«á, ±z¥i¥H¸Õ¸Õ¯u¥¿µo¥XÁn­µ.
­º¥ý©O, ¦w¸Ë¤½¥Îµ{¦¡®M¥ó, ©Î¦Ü¤Ö§â "amixer" ©R¥O©ñ¨ì¤@¨Ç¦X²zªº¦a¤è(¦p
/usr/local/bin). ¥ý¥Î "amixer" ¬Ý¬Ý²V­µ¾¹³]©w. amixer
ªº¿é¥X·|ÀH¥dªº¤£¦P¦Ó¦³«Ü¤jÅÜ¤Æ, §Úªº SoundBlaster16 Åã¥Ü:
\begin{tscreen}
\begin{verbatim}
Master         0  % (-14.00dB) : 0  % (-14.00dB)
Bass           0  % (-14.00dB) : 0  % (-14.00dB)
Treble         0  % (-14.00dB) : 0  % (-14.00dB)
Synth          0  % (-62.00dB) : 0  % (-62.00dB)
PCM            0  % (-62.00dB) : 0  % (-62.00dB)
Line-In        0  % (-62.00dB) : 0  % (-62.00dB) Mute
MIC            0  % (-62.00dB) : 0  % (-62.00dB) Mute
CD             0  % (-62.00dB) : 0  % (-62.00dB) Mute
In-Gain        0  % (-18.00dB) : 0  % (-18.00dB)
Out-Gain       0  % (-18.00dB) : 0  % (-18.00dB)
PC Speaker     0  % (-18.00dB) : 0  % (-18.00dB)
\end{verbatim}
\end{tscreen}

¦Ó§Úªº Crystal 4237B ªº­µ®Ä¥d¦³«Ü¦h¨ä¥¦¿ï¶µ:
\begin{tscreen}
\begin{verbatim}
Master D       0  % (-22.00dB) : 0  % (-22.00dB) Mute
3D Center      0  % (-22.50dB) : 0  % (-22.50dB)
3D Space       0  % (-22.50dB) : 0  % (-22.50dB) Mute
Synth          0  % (-94.50dB) : 0  % (-94.50dB) Mute
FM             0  % (-94.50dB) : 0  % (-94.50dB) Mute
DSP            0  % (-94.50dB) : 0  % (-94.50dB) Mute
PCM            0  % (-94.50dB) : 0  % (-94.50dB) Mute
Line-In        0  % (-34.50dB) : 0  % (-34.50dB) Mute
MIC            0  % (-22.50dB) : 0  % (-22.50dB) Mute
CD             0  % (-34.50dB) : 0  % (-34.50dB) Mute
Record-Gain    0  % (  0.00dB) : 0  % (  0.00dB)
In-Gain        0  % (-18.00dB) : 0  % (-18.00dB)
Loopback       0  % (-94.50dB) : 0  % (-94.50dB) Mute
Mono           0  % (-45.00dB) : 0  % (-45.00dB) Mute
Aux A          0  % (-34.50dB) : 0  % (-34.50dB) Mute
\end{verbatim}
\end{tscreen}


ª`·N¤@¤U "Mute" ¨º¤@Äæ, CS4237B ¬Æ¦Ü³s¥D­µ¶q¤]½ÕÀR­µ¤F. ¹ï CS4237B,
§ÚÁÙ­n¥ý¥´ {\ttfamily amixer "master d" unmute} ¥H«á¤~¯àµo¥XÁn­µ. SoundBlaster
ªº¿é¥X´N¨S¦³ÀR­µ, ¤£¹L {\ttfamily amixer master 100 unmute} ·|±N¥D­µ¶q¸Ñ°£ÀR­µ,
ÁÙ³]¬° 100\%. ±z¥i¥H¥Î¼Æ¦r, ©Î¹³ "mute" ¤Î "unmute" ªº¤å¦r, ©Î³£¥´,
¨Ó±±¨î. ¥´  {\ttfamily amixer "master d" 100; amixer pcm 100 unmute} ¥i¥H±N
CS4237B ¥dªº¥D­µ¶q³]³Ì¤j, ¨Ã±N PCM ­µ¶q¸Ñ°£ÀR­µ¨Ã³]¬°³Ì¤j. ¦pªG¥ª¥k­n¤£¤@¼Ë,
¥i¥H¥Î«_¸¹, ¦p {\ttfamily amixer CD 25:50}.(¤£, §Ú¤£¾å±o¨º¤@­Ó¬O«ü¥ª¥kÁn¹D,
¤£¹L§Ú±j½Õ¤@¤U³o¤]©M±zªº³â¥zÂ\©ñ¦ì¸m¦³±K¤ÁÃö«Y.)

±zÀ³¸Ó¤U {\ttfamily amixer cd rec} ¥H±N CD ·í°µ¿ý­µªº­µ·½. µM«á«á¤U {\ttfamily amixer
cd norec}©R¥O¸Ñ°£¦¹³]©w. ¦pªG±z·Q­n¸g¥Ñ³Á§J­·¨Ó¿ý¨ÇªF¦è, ±z¤]³\¥i¥H¤U
{\ttfamily amixer record-gain 100; amixer mic 100 rec mute}(¦pªG¤£±N³Á§J­·¿é¤J
ªº©ñ­µ³]¬°ÀR­µªº¸Ü, ³Á§J­··|±q³â¥z¦¬¨ì¥»¨­ªº«H¸¹, ·|³y¦¨°ª­µ³¡¥÷­µ¶q­°§C.)
µM¦Ó¤£©¯ªº¬O§Ú¨S¯à°÷¥Î amixer ¨Ó§ïÅÜ 3D center ¤Î 3D space ªº­µ¶q³]©w. ¦pªG
¦³¤H¦¨¥\¤F, ½Ð§iª¾§Ú. ³o¤u§@¥i¥Ñ alsamixer ¨Ó¶i¦æ.

ALSA FAQ ¤W­±ªí¥Ü¥i¥H¥Î {\ttfamily cat $<$file{$>$} {$>$}
/proc/asound/\#/mixerC0D0} ©R¥O¨Ó¦^´_²V­µ³]©w, ¨ä¤¤ $<$file{$>$}
ªº¤º®e¬O¥Ñ /proc/asound/\#/mixerC0D0 ¤¤¨ú±o. §ÚµLªk­«²{¬Û¦Pªºµ²ªG,
§Úªº¹q¸£©ê«è¦¹³]³Æ§ä¤£¨ì.


\subsection{/dev/snd/ ¤Uªº³]³Æ}

ALSA ÅX°Êµ{¦¡¦b /dev/snd/ ¥Ø¿ý¤U¦³¦Û¤vªºÅX°Êµ{¦¡. ¦pªG±z¦³¤@¤ù­µ®Ä¥d,
±z¥i¯à¬Ý¨ì¥H¤U³]³Æ:

\begin{tscreen}
\begin{verbatim}
/dev/snd/pcmC0D0 - ³o±i­µ®Ä¥dªº­ì¥Í­µ®Ä³]³Æ.
/dev/snd/mixerC0D0 - ²Ä"¹s"¸¹¥dªº²V­µ¾¹³]³Æ.
/dev/snd/controlC0D0 - ²Ä"¹s"¸¹¥dªº±±¨î³]³Æ.
\end{verbatim}
\end{tscreen}

²Ä¤@­Ó¸¹½X¬O«ü²Ä´X¸¹­µ®Ä¥d. ²Ä¤G­Ó¸¹½X¬O¥Nªí³æ¥d¤Wªº³]³Æ¸¹½X. ¤@±i¦³¨â­Ó PCM
³]³Æªº­µ®Ä¥dÀ³¸Ó¦³ pcmC0D0 ¤Î pcmc0D1 ³]³Æ.

½Ðª·N: ALSA ªº³]³ÆÀÉ¦W©MÂÂª©¤w¸g¤£¤@¼Ë¤F. ÂÂªº ALSA ÅX°Êµ{¦¡¥Î
/dev/snd/pcm00 (²Ä¤@­Ó¬O¥d, ²Ä¤G­Ó¬O³]³Æ¸¹). ¦pªG¬Ý¨ì¥» HOWTO ¤¤ÁÙ¦³¥ÎÂÂªºÀÉ¦Wªº,
½Ð¼g«Ê Email µ¹§Ú¥H«K§ó¥¿.

²{¦b±z¥i¥H±N¥ô¦ó±z·QÅ¥ªº­µ®ÄÀÉ¥á¶i²Ä¤@¤ù¥dªº PCM ³]³Æ¤¤¤F. ²{¦b¸Õ¸Õ¥Î cat
§â¥ô¦ó¤å¦rÀÉ(©Î¥ô¦óÀÉ®×)°e¶i /dev/snd/pcmC0D0, ´N¹³³o¼Ë: {\ttfamily cat
$<$filename{$>$} {$>$} /dev/snd/pcmC0D0}. ¨ä¤¤ filename ¥i¥H¬O¥ô·NÀÉ®×,
¥u­n¥¦°÷¤j. ¦pªG±z¤w¦³²{¦¨ªº­µ®ÄÀÉ, ¤]¥i¥H¸Õ¸Õ. ±z¤]¥i¥H§ì \onlynameurl{http://www.ldp.org/sounds/english.au}. ³o¬O Linux Torvalds Á¿ Linux
³o­Ó¦r¦p¦óµo­µªº¸Ü. 

­µ®Ä³]³Æ¹w¥ý³Q³]©w¬° 8000Hz, 8 ¦ì¤¸. ³o·N¨ýµÛ­è´£¨ìªº "english.au"
·|µo¥XÁ¿¸ÜÁn, ¦Ó¨ä¥¦ÀÉ¥i¯à¥u·|µo¥X¾¸­µ. ¦pªG±zÅ¥¤£¨ì, ½ÐÀË¬d±zªº³â¥z, ©Î¦A°õ¦æ
amixer ¤@¹M©Î¥h¬ÝÂå®v(¸Ó¤£·|¬O... ±zªº¦Õ¦·Å¤¤F!?) .
(µy«á±z¥i¥H¥Î±z³ßÅwªº¼½©ñµ{¦¡¦p sox ©Î mpg123 , Â²³æªº¨Ó©ñ§¹¥þªº 48KHz, 
16 ¦ì¤¸Án­µ.)

¦pªG±z¸ü¤J¤F "snd-pcm1-oss" ¼Ò²Õ, ±z¤]¥i¥H§Q¥Î OSS ªº¬Û®e©Ê¨Ó¦s¨ú­µ®Ä¥d.
¨âªÌ¶¡¦³¥H¤Uªº¹ïÀ³Ãö«Y:

\begin{tscreen}
\begin{verbatim}
/dev/snd/pcmC0D0 -> /dev/audio0 (/dev/audio) -> ¦¸½s¸¹ 4
/dev/snd/pcmC0D0 -> /dev/dsp0 (/dev/dsp) -> ¦¸½s¸¹ 3
/dev/snd/pcmC0D1 -> /dev/adsp0 (/dev/adsp) -> ¦¸½s¸¹ 12
/dev/snd/pcmC1D0 -> /dev/audio1 -> ¦¸½s¸¹ 4+16 = 20
/dev/snd/pcmC1D0 -> /dev/dsp1 -> ¦¸½s¸¹ 3+16 = 19
/dev/snd/pcmC1D1 -> /dev/adsp1 -> ¦¸½s¸¹ 12+16 = 28
/dev/snd/pcmC2D0 -> /dev/audio2 -> ¦¸½s¸¹ 4+32 = 36
/dev/snd/pcmC2D0 -> /dev/dsp2 -> ¦¸½s¸¹ 3+32 = 39
/dev/snd/pcmC2D1 -> /dev/adsp2 -> ¦¸½s¸¹ 12+32 = 44
\end{verbatim}
\end{tscreen}





\subsection{ÃB¥~ªº¸ê°T}

¦b ALSA ÅX°Êµ{¦¡¥Ø¿ý¤¤ªº INSTALL ÀÉ¤]´£¨ì¤F¤@¨Ç¤p§Þ¥©,
§i¶DÅX°Êµ{¦¡­n§@¦ó½Õ¾ã³]©w. ¨Ì·Ó¼½©ñÁn­µªº¥Î³~, ±z¥i¯à»Ý­n¥Î³o¨Ç©R¥O.
¤@¯ëªº¼½©ñµ{¦¡, ¦p mpg123, sox(±`¥H ``play'' ©R¥O¨Ó°õ¦æ), ©Î X11 À³¥Îµ{¦¡¦p
RealPlayer³£¤£¥²¥Î¨ì³o¨Ç. §Ú¥»¤H¤]±q¨S¥Î¹L.




\subsubsection{/proc/asound/\#/pcm\#0}



\begin{tscreen}
\begin{verbatim}
"Playback erase" - ²M°£©Ò¦³Ãö©ó OSS À³¥Îµ{¦¡ªºÃB¥~¸ê°T.
"Playback <app_name> <fragments> <fragment_size> [<options>]"
"Record erase" - ²M°£©Ò¦³Ãö©ó OSS À³¥Îµ{¦¡ªºÃB¥~¸ê°T.
"Record <app_name> <fragments> <fragment_size> [<options>]"
\end{verbatim}
\end{tscreen}


{\ttfamily $<$app\_name{$>$}} - À³¥Îµ{¦¡¦WºÙ, ¥]§t(¸ûÀu¥ý°²©w)©Î¤£¥]§t¸ô®|.

{\ttfamily $<$fragments{$>$}} - ¤ùÂ_(fragment)¼Æ, µ¹ 0 «h¦Û°Ê¿ï¾Ü.

{\ttfamily $<$fragment\_size{$>$}} - ¤@­Ó¤ùÂ_ªº byte ¼Æ, ©Î 0 ¿ï¾Ü¦Û°Ê.

{\ttfamily $<$options{$>$}} - ¿ï¾Ü©Êªº°Ñ¼Æ

{\ttfamily WR\_ONLY} - ¦pªG¦³­ÓÀ³¥Îµ{¦¡³]¶}±Ò¼Ò¦¡¬°O\_RDWR,
¹ê»ÚªºÅv­­±N§ï¬° O\_WRONLY(¼½©ñ), ¹ï Quake µ¥«Ü¦³¥Î...

´X­Ó½d¨Ò:
\begin{tscreen}
\begin{verbatim}
echo "Playback x11amp 128 16384" > /proc/asound/0/pcm0o
echo "Playback squake 0 0 WR_ONLY" > /proc/asound/0/pcm0o
\end{verbatim}
\end{tscreen}



\subsubsection{/proc/asound/\#card\#/sb16}



\begin{tscreen}
\begin{verbatim}
"Playback 8" -> ÅX°Êµ{¦¡¼½©ñ®É¥u¨Ï¥Î 8-bit DMA ³q¹D.
"Playback 16" -> ÅX°Êµ{¦¡¼½©ñ®É¥u¨Ï¥Î 16-bit DMA ³q¹D.
"Playback auto" (default) -> ÅX°Êµ{¦¡¦Û°Ê¿ï¾Ü(·|¥ý¹Á¸Õ¨Ï¥Î 16-bit DMA ³q¹D)
"Record 8" -> ÅX°Êµ{¦¡¿ý­µ®É¥u¨Ï¥Î 8-bit DMA ³q¹D.
"Record 16" -> ÅX°Êµ{¦¡¿ý­µ®É¥u¨Ï¥Î 16-bit DMA ³q¹D.
"Record auto" (default) -> ÅX°Êµ{¦¡¦Û°Ê¿ï¾Ü(·|¥ý¹Á¸Õ¨Ï¥Î 16-bit DMA ³q¹D)
\end{verbatim}
\end{tscreen}


¨Ò¦p: {\ttfamily echo "Record 16" {$>$} /proc/asound/0/sb16}

§ó¶i¤@¨Bªº¸ê°T½Ð°Ñ¦Ò INSTALL ÀÉ.


\section{¤p§Þ¥©¤Î°ÝÃD±Æ°£}

½Ð¥ý¬Ý¬Ý­µ®Ä¥dÅX°Êµ{¦¡¥Ø¿ýªº FAQ ÀÉ. ³o¤@¸`¤´µM¦b¼W­×¤¤.


\subsection{½sÄ¶ÅX°Êµ{¦¡}




\subsubsection{Linux ®Ö¤ß­ì©l½X¥Ø¿ý¾ð}

¦pªG ALSA ÅX°Êµ{¦¡µLªk¦¨¥\½sÄ¶, ¥X²{¹³§ä¤£¨ì ``version.h''
©Î¨ä¥¦¤Þ¤JÀÉ(header files)¤§Ãþªº¿ù»~, ³o¬O«ü±z¨S¦³¦w¸Ë®Ö¤ßªº¤Þ¤JÀÉ.
¥ýªáÂI®É¶¡¬Ý¬Ý Kernel-HOWTO, ±N³Ì·sªñªº®Ö¤ß¸Ñ¶}¨ì /usr/src ¨Ã¥B¤U {\ttfamily make
config}©R¥O.




\subsection{¸ü¤JÅX°Êµ{¦¡}

½ÐÀË¬d¥H¤U¦U±ø:




\subsubsection{­µ®Ä¥d¬Û®e©Ê}

±z¬O§_¦Ê¤À¤§¦Êªº½T©w±zªº­µ®Ä¥d¦³¤ä´©©O? ¤d¸U­n°O±oÀË¬d. ¦³®É¤@¤ù¥s X123
ªº­µ®Ä¥d¨Ã¤£¥þµ¥©ó¥s X123b ªº, ³o¼Ë¥i¯à·|®ö¶O±zªº®É¶¡.

¦b¥t¤@¤è­±, §Y¨Ï¬O¦³¤ä´©ªº¥d¤]¥i¯à·|§ä±z³Â·Ð - ¬°¤F¦w¸Ë¤@¤ù CS4237B ªº¥d,
¯Ó¤F§Ú¨â­Ó¤p®É¨Ó·d²M·¡, µ²ªGµo²{»¡©ú¤å¥ó¸Ì¦³.
(­ì¤å¬O
On the other hand, even a supported card can give you troubles - it took me two hours to
figure out the installation of a CS4237B which was, after all, just a fine example
of RTFM.
)




\subsubsection{``Device busy'' ©Î ``unresolved symbols''}

±z¥i¯à¦b 2.0.x ª©®Ö¤ß¤¤±N­µ®Ä¥d¤ä´©½s¶i®Ö¤ß¤º, ©Î¬O¤w¸ü¤J
OSS/Lite(®Ö¤ßªº)ÅX°Êµ{¦¡(¥i¥Î{\ttfamily cat /proc/modules}¨ÓÀË¬d).
²¾°£¸ÓÅX°Êµ{¦¡©Î­«·s½sÄ¶®Ö¤ß(½Ð¬Ý Kernel-HOWTO «á°Ê¤â).

¦b 2.0 ª©®Ö¤ß¤¤ªº­µ®Ä¼Ò²Õ¥s°µ "sound.o", {\bfseries ¤£À³¸Ó}³Q±Ò¥Î. (ÁöµM ALSA
ªºÅX°Êµ{¦¡ "snd.o" ¥i¥H.)

¦pªG±zªº®Ö¤ß¬O 2.2.x ª©, ¦Ó¨S¦³±N­µ®Ä¤ä´©½sÄ¶¶i¥h, ALSA
ÅX°Êµ{¦¡¤]·|µLªk§@¥Î.

§Ú¤]ª¾¹D³o¨âºØ¤£¦Pªºª¬ªp¥O¤H§xÂZ, ©Ò¥H§Ú¦b¦¹¦A§@¤@¦¸¸ÑÄÀ. ¦pªG±z¥Îªº¬O
{\bfseries 2.0.xª©}®Ö¤ß ("uname -a"©R¥O¶Ç¦^¹³ "Linux penguin 2.0.35 \#6 Wed Sep
23 10:19:16 CEST 1998 i686 unknown") ¨º»ò±z¥²¶·±N­µ®ÄÅX°Êµ{¦¡{\bfseries ­ç°£}±¼.

¦pªG±zªº®Ö¤ß¬O {\bfseries 2.2.xª©®Ö¤ß}, ¨º»ò±z{\bfseries »Ý­n­µ®ÄÅX°Êµ{¦¡}. 2.2.x
ª©®Ö¤ßÀ³¸Ó{\bfseries ±N­µ®ÄÅX°Êµ{¦¡½sÄ¶¶i®Ö¤ß, ¦ý¤£¥[¤J¥ô¦ó­µ®Ä¥dªº¤ä´©}.
¦]¦¹±z­n¿ï­µ®Ä¤ä´©, ¦ý¤]½T©w¤£­n¥[¤J¥ô¦ó­µ®Ä¥dÅX°Êµ{¦¡.




\subsubsection{¤S¨£ Unresolved symbols}

¥t¤@­Ó³y¦¨ "unresolved symbols" °T®§ªº­ì¦]¥i¯à¬O·sª©®Ö¤ß°t¦XÂÂª©ÅX°Êµ{¦¡.
½Ð¦b­«·s½sÄ¶®Ö¤ß¤§«á§O§Ñ¤F¤]­«·s½sÄ¶ ALSA ÅX°Êµ{¦¡.
¦p¦¹¤~¥i¥H½T©wÅX°Êµ{¦¡¯à°t¤W±zªº·s®Ö¤ß.




\subsubsection{ÀË¬d PnP ³]©w}

½T©w­µ®Ä¥d°_°Ê(active)¤F¶Ü? ½Ð¥t¥~ªáÂI®É¶¡ÅªÅª PnP-HOWTO,
½T»{±z¤w¥¿½T¦a­P°Ê(activate)¤F±zªº­µ®Ä¥d.




\subsubsection{°Ñ¼Æ¦³³]¹ï¶Ü?}

ÀË¬d, ¦A¤TÀË¬d±zªº­µ®Ä¥d³]©w°Ñ¼Æ. ½Ð¤p¤ß: 534 ¤£µ¥©ó 543, 0x534 ¤]¤£µ¥©ó
534.

¦P®É, ¦³¨Ç­µ®Ä¥d­n¸ü¤Jªº¼Ò²Õ¤£¬O±z¹w´Áªº¨º­Ó. ¥ð®§¤@¤U, ³ÜªM°à°s©Î¤°»òªº,
µM«á¦A¬Ý¬Ý±z modprobe ªºµ²ªG. ¨Ò¦p Crystal 4232 À³¸Ó´¡¤JªºÅX°Êµ{¦¡¬O
snd-card-cs4232, ¤£¬O "snd-cs4231". ¦Ó SoundBlaster PCI64 À³¸Ó¸ü¤Jªº¬O
"snd-audiopci", «D snd-es1370. (³o¨Ç¦b¤å¥ó¤¤³£¦³¼g, ¦Óµ§ªÌ¦b¼g³o½g HOWTO ®É,
ÁÙ´¿ªá¤F¤@­Ó±ß¤W¸ÕµÛ¥Î snd-cs4231 Åý¥¦µo¥XÁn­µ.) 




\subsection{ÅX°Êµ{¦¡¸ü¤J¤F... ¥i¬O¨SÁn­µ}






\subsubsection{¸Ñ°£ÀR­µ}

ALSA ÅX°Êµ{¦¡¥i¥H¹B¥Î¦h¼Æ­µ®Ä¥d³£¦³ªº "ÀR­µ" ¯à¤O. ¦pªG±z¸ü¤J¤F­µ®ÄÅX°Êµ{¦¡,
¤@¤Á¬Ý°_¨Ó³£ÁÙ¥¿½T, ´N¬O¨S¦³Án­µªº¸Ü, ¨º»ò±z¥i¯à§Ñ­p§âÀR­µ¨ú®ø±¼¤F.
­n³o»ò°µ±z­n¥Î "amixer" ©Î "alsamixer", ¨âªÌ³£ªþ¦bÅX°Êµ{¦¡¤¤. ¥u­nÁä¤J:
\begin{tscreen}
\begin{verbatim}
amixer -c 1 master 70:70 unmute
amixer -c 1 pcm 70:70 unmute
amixer -c 1 cd 70:70 unmute
\end{verbatim}
\end{tscreen}

¹ï¦h¼ÆªºÀ³¥Îµ{¦¡À³¸Ó³£¦³®Äªº.




\subsubsection{OSS/Linux ªº¬Û®e©Ê}

¦pªG³o¬O±z­º¦¸¨Ï¥Î ALSA ÅX°Êµ{¦¡, ¦Ó±z¥H«e¨Ï¥Î¹L®Ö¤ß¤º«Øªº¨º­Óªº¸Ü,
±z¥i¯à·Q­n¯à©M¹L¥h¬Û®eªº¯à¤O.(§Y¨Ï¥Î /dev/pcmX ³]³Æ¤§¯à¤O). ³o®É±z»Ý­n¸ü¤J
"OSS ¬Û®eÅX°Êµ{¦¡". °õ¦æ {\ttfamily modprobe snd-pcm1-oss}
(¸Ô¨£Ãö©ó¸ü¤J¥»ÅX°Êµ{¦¡¨º¤@¸`. ). ½Ðª·N: snd-pcm1-oss ¤£¯à©ó snd-pcm1.
¹ïÂÂÅX°Êµ{¦¡ªº¤ä´©©Ò»Ý­nªº¬O snd-pcm1-oss.




\subsection{¤@¯ë©Ê«Ø¨¥}






\subsubsection{¸ÕµÛ¥Î "insmod"}

¥Î "insmod" ¨ú¥N kerneld Á`¬O¦³¥Îªº. ¤]³\¦]¦¹±z´N¥i¥H¦b¿Ã¹õ¤W¬Ý¨ì¿ù»~°T®§¤F.




\subsubsection{Åª INSTALL ÀÉ.}

¦bÅX°Êµ{¦¡¥Ø¿ý¤¤ªº INSTALL ÀÉ¥i¥Hµo²{«Ü¦h¸ê°T. ¦pªG±zªºÅX°Êµ{¦¡¤£°_§@¥Î,
§O§Ñ¤F¬Ý¬Ý³o­ÓÀÉ, ¤]³\·|¦³ÃB¥~ªº¸ê°T.




\subsubsection{°£¿ù°T®§}

¦pªG¥H¤Wªº¤èªkÁÙ¬O¨S¦³¥Î, ±z¥i¥H­«·s½sÄ¶ÅX°Êµ{¦¡, ­n¨D¥¦±N°£¿ù°T®§°e¶i
/var/log/messages ÀÉ¤¤, °µ¬°³Ì«á¤â¬q. ¤U{\ttfamily cd
/usr/src/alsa-driver-...}©R¥O¶i¤JÅX°Êµ{¦¡¥Ø¿ý, µM«á¿é¤J:

\begin{tscreen}
\begin{verbatim}
./configure --with-debug=detect; make clean; make
\end{verbatim}
\end{tscreen}


²¾°£ÅX°Êµ{¦¡(¦pªG¥¦¤w¸g±Ò°Êªº¸Ü, ½Ð¬Ý«á­±¦³´£¨ìªº²¾°£¼Ò²Õ¤p§Þ¥©)
µM«á¥Î±z­è­è¥Îªº "modprobe" «ü¥O¦w´¡·s½sÄ¶ªºÅX°Êµ{¦¡. ¬Ý¬Ý /var/log/messages
¸Ì¦³¨S¦³¥ô¦ó¬ÛÃö°T®§.




\subsubsection{¦pªG³£¨S¦³¥Î©O...}

¦pªG±zµLªk¥Ñ°T®§¤¤¨ú±o½u¯Á, ¼g«Ê Email ¨ì ALSA ¨Ï¥ÎªÌ³q«H½×¾Â,
\onlynameurl{alsa-user@alsa-project.org}.

§O§Ñ¤F¥[¤W¥H¤U¸ê°T:
\begin{itemize}
\item ±zªº­µ®Ä¥dªº¦WºÙ¥H¤Î¨ä¨Ï¥Îªº´¹¤ù.
\item ¦pªG±zªº­µ®Ä¥d¬O ISA PnP ªº, ©ñ¤J isapnp.conf ¤¤¦³Ãöªº³¡¥÷.
\item ±zªº conf.modules ÀÉ©Î¬O±Ò°Ê ALSA ÅX°Êµ{¦¡ªº©R¥O¦æ.
\item ©Ò¦³¦b /var/log/messages ¤¤À³¸Ó©M ALSA ÅX°Êµ{¦¡¦³Ãöªº°T®§.
\end{itemize}





\subsection{¦^³ø¯ä¦ä}

¦pªG±zµo²{¤F¤@°¦¯ä¦ä, ALSA ÅX°Êµ{¦¡¶}µo²Õ§Æ±æ¯à°÷±oª¾(¦Ü¤Ö)¥H¤U¸ê°T:
\begin{enumerate}
\item  ÅX°Êµ{¦¡¤Î®Ö¤ßªºª©¥»: 'cat /proc/asound/version'
\item  ­µ®Ä¥d¸ê°T
\begin{itemize}
\item  ¼t°Ó©Ò¼Ð¥Üªº­µ®Ä¥d¦WºÙ
\item  ¸Ó¥d¤W­±ªº¦U­Ó´¹¤ù¼Ð¥Ü
\item  'cat /proc/asound/cards' ªº°õ¦æµ²ªG
\end{itemize}
\item  ©Ò¦³¦b /var/log/messages ¤¤ªº¬ÛÃö°T®§
\item  °ÝÃDªº´y­z
\end{enumerate}





\subsection{¤p§Þ¥©: Å¥ CD ®É...}

¦pªG±z¨Ï¥Îkmod/kerneld ¥H¤Î ALSA ÅX°Êµ{¦¡¨ÓÅ¥ CD, ¨º»ò kmod/kerneld
¥i¯à¤£·|¹³¹w´Á¤@¯ë¸ü¤JÅX°Êµ{¦¡. ³o¬O¥Ñ©ó©R¥O¦Cªº CD ©ñ­µµ{¦¡¥u·|¥s CDROM
¶}©l¼½©ñ, ¦Ó¤£·|¨Ï¥Î¨ì¥ô¦ó³]³Æ, Åý kmod/kerneld ¨Ó¸ü¤JÅX°Êµ{¦¡.
³o­Ó°ÝÃDªº¸Ñ¥i¯à´N¥u¦³¨Ï¥Î modprobe ¤F.




\subsection{¤p§Þ¥©: ¦w¸Ë MIDI §Ç¦CÅX°Ê°Êµ{¦¡}

³q±`, §Ç¦C³]³Æªº IO °ð·|¥Ñ¼Ð·Çªº§Ç¦C³]³ÆÅX°Êµ{¦¡¥e¦³. ©Ò¥H¦b±z¥i¥H¶i¦æ
"modprobe snd-serial" ¥H«e, ¥²¶·ÅýÅX°Êµ{¦¡ÄÀ©ñ±¼¸Ó§Ç¦C³]³Æ.

¥H¤U¬O©Ò»Ýµ{§Ç.

\begin{tscreen}
\begin{verbatim}
setserial /dev/ttyS0 uart none
modprobe snd-serial
\end{verbatim}
\end{tscreen}


(¦pªG±zªº MIDI ³]³Æ¨Ï¥Î¤£¤@¼Ëªº³]³Æ,±N /dev/ttyS0 ´«¦¨¬Û¹ïÀ³ªº /dev/ttySx)




\subsection{¤p§Þ¥©: ´«·s®Ö¤ß? ´«·s¼Ò²Õ!}

·í±z§ó·s®Ö¤ß«á, ±z¥i¯à»Ý­n­«·s½sÄ¶ ALSA ÅX°Êµ{¦¡. ¦pªG¥¦­ÌÁÙ¦b­ì¨Óªº
/usr/src ¥Ø¿ý¤U, ½Ð§O§Ñ¤F¦b±z¶i¦æ ./configure, make, make install ¤§«e¥ý¤U
{\ttfamily make clean} ©R¥O.

³á! ÁÙ¦³­Ó¤£¤Ó¤@¼Ëªº®Ö¤ßª©¥»½s¸¹ "2.2.0ac1", ·|³Q configure
©R¥OÀÉ©ê«è¤£¬O¼Æ¦r. §Ú·Q³o­Ó¦b·sª©ªº©R¥OÀÉ¤¤·|¸Ñ¨M,
¤£µM±z¥i¯à±o§ïÅÜ­ì©l½X¤¤ªº®Ö¤ßª©¥»½s¸¹.




\subsection{¤p§Þ¥©: KDE ¤Î ALSA ÅX°Êµ{¦¡}

¦pªG±z¨Ï¥Î¤F KDE, ¦ý«oµLªkÅ¥¨ì½Ñ¦p¶}±Òµøµ¡©Î§ïÅÜ¨Ï¥Îªº®à­±µ¥¨t²Î­µ®Ä,
¤£¹L¨ä¥¦­µ®Ä°Ê§@¥¿±`. ¤]´N¬O±zªº CD ¼½©ñ, MP3 ¼½©ñ¥H¤Î²V­µ¾¹³£«Ü¥¿±`,
¨º»ò¥i¯à¥u¬O¦]¬°¤í¯Ê "kwmsound" ¦Ó¤w.

©Ò¥H: ½T©w¦b±zªº±Ò°Ê©R¥OÀÉ(\$KDEDIR/bin/startkde)¤¤¦³ "kwmsound".




\subsection{¤p§Þ¥©: ¨Ï¥Î ALSA ³]³Æ}

¦pªG±z¥H«e¦³§Q¥Î¹L Linux ªº­µ®Ä¤ä´©, ¨º»ò±zªºÀ³¥Îµ{¦¡¥i¯à»Ý­n¥Î¨ì /dev/pcm0,
/dev/audio ¤Î /dev/mixer. ¨Ï¥Î OSS ¬Û®e¼Ò²Õ snd-pcm1-oss ¬O¤£¿ùªº¸Ñ¨M¤èªk,
¦ý¦pªG¨Ï¥Î¯u¥¿ªº ALSA ³]³Æ(¦b /dev/snd/¤U)ªº¸Ü¨º§ó¦n.




\subsection{¤p§Þ¥©: ²¾°£©Ò¦³¼Ò²Õ}

­n¤@­Ó¤@­Óªº²¾°£¤Q´X­Ó¼Ò²Õ¹ê¦b¤£¬O­Ó¦n¿ìªk. «Ü©¯¹Bªº, ©Ò¦³ªº¼Ò²Õ¦W³£¬O¥Ñ snd-
¶}©l, ©Ò¥H¥Î¤@ÂI¤p¤pªº©R¥O¦C³W¹º, ±z¥i¥H»´©öªº¤U¥H¤Uªº©R¥O²¾°£ ALSA
­µ®ÄÅX°Êµ{¦¡:

\begin{tscreen}
\begin{verbatim}
cat /proc/modules|gawk '/^snd-/{print $1}|xargs -i rmmod {}
\end{verbatim}
\end{tscreen}


Juergen Kahrs ¼g¹D: "§Ú¦³¤@­Ó©R¥OÀÉ¥i¥H³s soundcore, soundlow ¥H¤Î sound
³£¤@¨Ö®ø¥h, ¦pªG¥¦­Ì¤w¸ü¤J¥B¨S¦b¨Ï¥Î¤¤ªº¸Ü. ³o­Ó©R¥OÀÉ³B²z /proc/modules
¤T¦¸, ³o¼Ë¦b§¹¦¨«áÀ³¸Ó¤£·|¦³¤Ó¦h¼Ò²Õ¯d¤U¨Ó." ¥Lªº¸Ñªk¬O:

\begin{tscreen}
\begin{verbatim}
awk '/^snd/||/^sound/&&($3==0){system("rmmod " $1)}' /proc/modules /proc/modules /proc/modules
\end{verbatim}
\end{tscreen}


½Ðª`·N: ¦pªG¦³¤@­Ó¼Ò²Õ¨Ì¿à¥t¤@­Ó¼Ò²Õªº¸Ü, ±z¤£¥i¥H¥u²¾°£¸û¤W¼hªº¨º­Ó.
³o·N¨ýµÛ±z¥i¯à¦³¥²­n¤U²Ä¤G¹D©R¥O. (§Ú±q¨Ó¨S¸I¨ì¹L³oºØ±¡ªp;
¬Ý°_¨Ó±z¥i¥H¥H¨Ì·Ó¦b /proc/modules ¤¤ªº¶¶§Ç²¾°£ ALSA ¼Ò²Õ.)



\end{document}
