¡¡¡¡ÔÚ¿ªÊ¼Ö®Ç°£¬ÄúÓ¦¸ÃÇå³þÉù¿¨ÀàÐÍ¡¢ËùÓõÄоƬÒÔ¼°ËüÊÇ PCI »¹ÊÇ ISA ¿¨¡£ FreeBSD Ö§³ÖÖÖÀà·±¶àµÄ PCI ºÍ ISA ¿¨¡£¼ì²é Ó²¼þ¼æÈÝ˵Ã÷ ÖÐÖ§³ÖµÄÒôƵÉ豸ÁÐ±í¿´¿´ÊÇ·ñÖ§³ÖÄúµÄÉù¿¨£¬ Ó²¼þ¼æÈÝ˵Ã÷Ò²»á˵Ã÷Ö§³ÖÄúÉù¿¨µÄÊÇÄĸöÇý¶¯³ÌÐò¡£
¡¡¡¡ÒªÊ¹ÓÃÉù¿¨£¬ ¾ÍÓ¦×°ÔØÕýÈ·µÄÇý¶¯³ÌÐò¡£Íê³ÉµÄ·½Ê½ÓÐÁ½ÖÖ£º ×î¼òµ¥µÄÊÇʹÓÃÃüÁî kldload(8) À´×°ÔØÒ»¸öÄÚºËÄ£¿é£¬ÔÚÃüÁîÐÐÊäÈë
# kldload snd_emu10k1
¡¡¡¡»òÕßÔÚÎļþ /boot/loader.conf Àï¼ÓÈëÒ»ÐУ¬ÄÚÈÝÈçÏÂ
snd_emu10k1_load="YES"
¡¡¡¡ÉϱßʵÀýÓÃÓÚ Creative SoundBlaster® Live! Éù¿¨¡£ ÆäËü¿É×°ÔØµÄÄ£¿éÁÐÔÚÎļþ /boot/defaults/loader.conf Àï±ß¡£ Èç¹û²»ÖªµÀÓ¦¸ÃʹÓÃÄĸöÇý¶¯£¬ Äú¿ÉÒÔ³¢ÊÔ¼ÓÔØ snd_driver module:
# kldload snd_driver
¡¡¡¡ÕâÊǸö meta Çý¶¯£¬Ò»´Î¼ÓÔØÁË×î³£¼ûµÄÉ豸Çý¶¯¡£ Õâ»áÌá¸ßËÑË÷ÕýÈ·Çý¶¯µÄËÙ¶È¡£Ò²¿ÉÒÔͨ¹ý /boot/loader.conf ¹¤¾ßÀ´¼ÓÔØËùÓеÄÉù¿¨Çý¶¯¡£
¡¡¡¡Èç¹ûÏ£ÍûÔÚ¼ÓÔØÁË snd_driver meta Çý¶¯Ö®ºóÁ˽⵽µ×Ñ¡ÔñÁËÄÄÖÖÉù¿¨£¬ ¿ÉÒÔͨ¹ýʹÓà cat /dev/sndstat À´²éѯ /dev/sndstat Îļþ¡£
¡¡¡¡ÁíÍ⣬ÄúÒ²¿ÉÒÔ°ÑÖ§³ÖÄúÉù¿¨µÄ´úÂ뾲̬µØ±àÒëµ½ÄÚºËÀïÈ¥¡£ ÏÂÒ»½Ú¾Í²ÉÓÃÕâÖÖ·½Ê½Ö§³ÖÓ²¼þ¸ø³öÌáʾ¡£ ¹ØÓÚÖØÐ±àÒëÄںˣ¬Çë²Î¿¼ µÚ 8 Õ¡£
¡¡¡¡Òª×öµÄµÚÒ»¼þÊÂÇé¾ÍÊÇÌí¼ÓͨÓÃÒôƵ¿ò¼ÜÇý¶¯ sound(4) µ½ÄÚºËÖУ¬ ÄúÐèÒªÌí¼ÓÏÂÃæÕâÐе½ÄÚºËÅäÖÃÎļþÖУº
device sound
¡¡¡¡½ÓÏÂÀ´¾ÍÊǼÓÈë¶ÔÎÒÃÇËùÓÃÉù¿¨µÄÖ§³ÖÁË¡£ Ê×ÏÈÐèҪȷ¶¨ÎÒÃǵÄÉù¿¨ÐèҪʹÓÃÄÄÒ»¸öÇý¶¯¡£ Äú¿ÉÒԲο¼ Ó²¼þ¼æÈÝÁбí ËùÁгöµÄÒôƵÉ豸£¬ ÒÔÈ·¶¨ÄúÉù¿¨µÄÇý¶¯¡£ ÀýÈ磬 Creative SoundBlaster Live! Éù¿¨ÓÉ snd_emu10k1(4) Çý¶¯À´Ö§³Ö¡£ ÒªÌí¼ÓËü£¬ ÐèÒªÔÚÄں˱àÒëÅäÖÃÎļþÖмÓÈëÏÂÃæÒ»ÐУº
device snd_emu10k1
¡¡¡¡Ò»¶¨ÒªÔĶÁÇý¶¯µÄÁª»úÊÖ²áÁ˽âÈçºÎʹÓÃËüÃÇ¡£ ¹ØÓÚÄÚºËÅäÖÃÎļþÖÐÉù¿¨Çý¶¯µÄ¾ßÌåд·¨£¬ Ò²¿ÉÒÔÔÚ /usr/src/sys/conf/NOTES ÎļþÖÐÕÒµ½¡£
¡¡¡¡·Ç¼´²å¼´ÓÃµÄ ISA ¿¨¿ÉÄÜÐèÒªÄúΪÄÚºËÌṩһЩ¹ØÓÚÉù¿¨ÅäÖõÄÐÅÏ¢ (IRQ¡¢ I/O ¶Ë¿Ú£¬ µÈµÈ)£¬ ÕâÒ»µãÓëÆäËû²»Ö§³Ö¼´²å¼´ÓÃµÄ ISA ¿¨ÀàËÆ¡£ ÕâÏ×÷¿ÉÒÔͨ¹ý /boot/device.hints ÎļþÀ´Íê³É¡£ ϵͳÆô¶¯Ê±£¬ loader(8) ½«¶ÁÈ¡Õâ¸öÎļþ£¬ ²¢½«ÆäÖеÄÅäÖô«¸øÄںˡ£ ÀýÈ磬 ¾ÉʽµÄ Creative SoundBlaster 16 ISA ·Ç¼´²å¼´Óÿ¨ÐèҪʹÓà snd_sbc(4) Çý¶¯²¢ÅäºÏ snd_sb16(4)¡£ Äú¿ÉÒÔÔÚÄں˱àÒëÅäÖÃÎļþÖÐÔö¼ÓÈçÏÂÅäÖãº
device snd_sbc device snd_sb16
¡¡¡¡»¹ÓÐÏÂÃæÕâЩµ½ /boot/device.hintsÖУº
hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15"
¡¡¡¡ÕâÑù£¬Éù¿¨Ê¹Óà 0x220 I/O ¶Ë¿ÚºÍ IRQ 5¡£
¡¡¡¡ÔÚ /boot/device.hints ÎļþÖÐËùʹÓõÄÓï·¨£¬ ÔÚ sound(4) Áª»úÊÖ²áÖÐÒÔ¼°ËùÓõľßÌåÉù¿¨Çý¶¯µÄÁª»úÊÖ²áÖУ¬ »á½øÐнøÒ»²½µÄ½²½â¡£
¡¡¡¡ÉÏÃæËùչʾµÄÊÇĬÈϵÄÅäÖᣠÓÐʱºò£¬ Äú¿ÉÄÜÐèÒª¸ü¸Ä IRQ »òÆäËûÅäÖ㬠ÒÔÊÊÓ¦Éù¿¨µÄʵ¼ÊÇé¿ö¡£ ²é¿´ snd_sbc(4) Áª»úÊÖ²áÁ˽â¸ü¶àÐÅÏ¢¡£
¡¡¡¡ÓÃÐ޸ĹýµÄÄÚºËÖØÆð£¬»òÕß¼ÓÔØÁËÐèÒªµÄÄ£¿éÖ®ºó£¬ Éù¿¨½«»á³öÏÖÔÚÄúµÄϵͳÏûÏ¢»º´æÖÐ (dmesg(8))£¬¾ÍÏñÕâÑù£º
pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec>
¡¡¡¡Éù¿¨µÄ״̬¿ÉÒÔͨ¹ý /dev/sndstat ÎļþÀ´²éѯ£º
# cat /dev/sndstat FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default)
¡¡¡¡ÄúϵͳµÄÊä³ö¿ÉÄÜÓë´Ë²»Í¬¡£Èç¹ûûÓп´µ½ pcm É豸£¬»Ø¹Ë²¢¼ì²éÒ»ÏÂÇ°Ãæ×öµÄ¡£ ÖØÐ¼ì²éÄúµÄÄÚºËÅäÖÃÎļþ²¢±£Ö¤Ñ¡ÔñÁËÕýÈ·µÄÉ豸¡£ ³£¼ûÎÊÌâÁÐÔÚ µÚ 7.2.2.1 ½Ú Ò»½Ú¡£
¡¡¡¡Èç¹ûÒ»ÇÐÕý³££¬ÄúÏÖÔÚÓ¦¸ÃÓµÓÐÒ»¸ö¶à¹¦ÄÜÉù¿¨ÁË¡£ Èç¹ûÄúµÄ CD-ROM »òÕß DVD-ROM Çý¶¯Æ÷µÄÒôƵÊä³öÏßÒѾÓëÉù¿¨Á¬ÔÚÒ»Æð£¬ Äú¿ÉÒÔ°Ñ CD ·ÅÈëÇý¶¯Æ÷²¢Óà cdcontrol(1) À´²¥·Å£º
% cdcontrol -f /dev/acd0 play 1
¡¡¡¡Ðí¶àÓ¦ÓóÌÐò£¬±ÈÈç audio/workman ¿ÉÒÔÌṩһ¸öÓѺõĽçÃæ¡£ Äú¿ÉÄÜÏëÒª°²×°Ò»¸öÓ¦ÓóÌÐò±ÈÈç audio/mpg123 À´Ìý MP3 ÒôƵÎļþ¡£
¡¡¡¡ÁíÒ»ÖÖ¿ìËÙ²âÊÔÉù¿¨µÄ·½·¨£¬ Êǽ«Êý¾Ý·¢Ë͵½ /dev/dsp£¬ ÏñÕâÑù×ö£º
% cat filename > /dev/dsp
¡¡¡¡ÕâÀï filename ¿ÉÒÔÊÇÈÎÒâÎļþ¡£ ÕâÐÐÃüÁî»á²úÉúһЩÔëÒô£¬Ö¤Ã÷Éù¿¨¹ûÕæÔÚ¹¤×÷¡£
¡¡¡¡Éù¿¨»ìÒô¼¶±ð¿ÉÒÔͨ¹ý mixer(8) ÃüÁî¸ü¸Ä¡£ ¸ü¶àϸ½Ú¿ÉÒÔÔÚ mixer(8) Áª»úÊÖ²áÖÐÕÒµ½¡£
´íÎóÐÅÏ¢ | ½â¾ö·½·¨ |
---|---|
¡°sb_dspwr(XX) timed out¡± |
I/O¶Ë¿ÚûÓÐÉèÖÃÕýÈ·¡£ |
¡°bad irq XX¡± |
IRQÉèÖò»ÕýÈ·¡£È·ÐÅÉ趨µÄIRQºÍÉù¿¨µÄIRQÊÇÒ»ÑùµÄ¡£ |
¡°xxx: gus pcm not attached, out of memory¡± |
ûÓÐ×ã¹»µÄÄÚ´æ¿Õ¼ä¹©ÉèÖÃʹÓᣠ|
¡°xxx: can't open /dev/dsp!¡± |
ʹÓÃÃüÁî fstat | grep dsp ½øÐмì²éÊÇ·ñÓÐÆäËüµÄ³ÌÐò´ò¿ªÁËÉ豸¡£ ÖµµÃ×¢ÒâµÄÊÇ esound ºÍ KDE ÌṩµÄÉù¿¨Ö§³Ö¾³£ÊÇÔì³ÉÂé·³µÄ»ö¸ù¡£ |
¡¡¡¡Í¨³£¶øÑÔ£¬ »áÏ£Íû¶à¸öÒôÔ´Äܹ»Í¬Ê±²¥·Å£¬ ÀýÈ磬 esound »òÕß artsd ¾Í¿ÉÄܲ»Ö§³ÖÓëÆäËü³ÌÐò¹²ÏíÒôƵÉ豸¡£
¡¡¡¡FreeBSD ¿ÉÒÔͨ¹ý ÐéÄâÉùµÀ(Virtual Sound Channels) À´´ïµ½ÕâÑùµÄЧ¹û£¬ Ëü¿ÉÒÔÓà sysctl(8) À´ÆôÓᣠÐéÄâµÄÉùµÀ¿ÉÒÔÄܹýÔÚÄÚºËÀï»ìºÏÉùÒôÀ´»ìºÏÉù¿¨Àï²¥·ÅµÄÉùµÀ¡£
¡¡¡¡Ê¹ÓÃÈýÌõsysctlÃüÁîÀ´ÉèÖÃÐéÄâÉùµÀµÄÊýÄ¿¡£ Èç¹ûÄúÊÇ root Óû§£¬ Ö´ÐÐÏÂÃæµÄ²Ù×÷£º
# sysctl dev.pcm.0.play.vchans=4 # sysctl dev.pcm.0.rec.vchans=4 # sysctl hw.snd.maxautovchans=4
¡¡¡¡ÉÏÃæµÄʵÀýÉ趨ÁË4¸öÐéÄâÉùµÀ£¬ÕâÒ²ÊÇʵ¼ÊÉÏËùʹÓõÄÊýÄ¿¡£ dev.pcm.0.play.vchans=4
ºÍ dev.pcm.0.rec.vchans=4
ÊÇ pcm0
ÓÃÀ´²¥·ÅÓë¼ÒôµÄÐéÄâÉùµÀÊý£¬ Ò»µ±Á´½ÓÉÏÒ»¸öÉ豸Ëü¾Í¿ÉÅäÖÃÁË¡£ hw.snd.maxautovchans ÊÇ·ÖÅ䏸еÄÒôƵÉ豸µÄÐéÄâÉùµÀÊý£¬ ´ËʱÕâ¸öÉ豸ҪÓÃ
kldload(8) À´Á´½Ó¡£ ÒòΪ
pcm Ä£¿é¿ÉÒÔ¶ÀÁ¢×°ÔØÐí¶àÓ²¼þÇý¶¯³ÌÐò£¬ Òò´Ë hw.snd.maxautovchans
Ò²¾Í¿ÉÒÔ´æ´¢·ÖÅ䏸ÒÔºóÁ´½Óµ½µÄÉ豸µÄÐéÄâÉùµÀÊý¡£
¿É²ÎÔÄ pcm(4)
ÊÖ²áÒ³Òå»ñÈ¡¸ü¶àϸ½Ú¡£
×¢Òâ: Äú²»ÄÜÔÚʹÓÃij¸öÉ豸µÄʱºò¸Ä±äÆäÐéÄâͨµÀÊý¡£ Ê×ÏÈÐèÒª¹Ø±ÕËùÓÐʹÓøÃÉ豸µÄ³ÌÐò£¬ ÈçÒôÀÖ²¥·ÅÆ÷»òÉùÒô·þÎñ¡£
¡¡¡¡µ±Ó¦ÓóÌÐòÇëÇó /dev/dsp0 ʱ£¬ ϵͳ»á×Ô¶¯ÎªÆä·ÖÅäÕýÈ·µÄ pcm É豸¡£
¡¡¡¡²»Í¬µÄ»ìÒôͨµÀµÄĬÈÏÒôÁ¿ÊÇÓ²±àÂë½ø pcm(4) Çý¶¯³ÌÐòµÄ¡£ ͬʱ£¬ Ò²ÓкܶàÓ¦Óûò·þÎñ³ÌÐòÌṩÁËÔÊÐíÓû§Ö±½ÓÉèÖò¢¼ÇסÕâЩֵµÄ¹¦ÄÜ¡£ ²»¹ýÕâ²¢²»ÊÇÒ»¸öºÜºÃµÄ½â¾ö·½°¸£¬ Äú¿ÉÄÜÏ£ÍûÔÚÇý¶¯Ò»¼¶ÓÐÒ»¸ö¿ÉÒÔÉèÖõÄĬÈÏÖµ¡£ Õâ¿ÉÒÔͨ¹ýÔÚ /boot/device.hints ¶¨ÒåÊʵ±µÄÖµÀ´ÊµÏÖ¡£ ÀýÈ磺
hint.pcm.0.vol="50"
¡¡¡¡Õ⽫ÔÚ pcm(4) Ä£¿é¼ÓÔØÊ±£¬ ½«Í¨µÀÒôÁ¿ÉèÖÃΪĬÈ쵀 50¡£
±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.