¦b Linux ¤U¨Ï¥Î SB AWE »Ýn¤U¦CªFªF®@¡G
/usr/src/Linux/drivers/sound/Readme
),¦pªG§A¦³Ó PnP ¥d¡A§AÁÙ»Ýn¡G
½Ð¬Ý¦³Ãö©ó¦p¦ó¨ú±o³o¨Çµ{¦¡ªº³¹¸` Sources¡C
¦pªG§A¦³ Debian GNU/Linux ¨t²Î¡A¨º§A»Ýn kernel-source-<version>
, awe-drv
®M¥ó¡A¤]³\ÁÙ»Ýn isapnptools
³oÓ¡AÁöµM¨Ã¤£»Ýn¦ý§A¥i¯à·Qn¤@¨Ç awe-*
®M¥ó¡A§Ú
±j¯P«Øij§A±Ä¥Î kernel-package
·|§ó®e©ö½sĶ¤Î¦w¸Ë®Ö¤ßµ{¦¡¡C
°²³]§A¤w¸g¥¿½T¦a¦w¸Ë¦nµ®Ä¥d¨ì§Aªº¹q¸£ªº¥D¾÷ªO¤W¦Ó¥B¤]¦b DOS ¥H¤Î WindowsÀô¹Ò¤W¸Õ¹L¤F¡C
µM«á¡A¦pªG¥¦¬O¤@±i PnP ¥dªº¸Ü§ÚÌ¥²¶·¦b¶}¾÷±Ò°Ê®Éªì©l¤Æ¤@¤U¡C½Ð«ö·Ó
ì©lÀÉ®M¥óªº¤å¥ó©Ò»¡¦a¥h½sĶ¥H¤Î¦w¸Ë isapnptools
(©Î¥u»Ý¨Ï¥Î Debian ªº¤G¶i¦ì½X®M¥ó)¡AµM«á¥H
root ªº¨¥÷°õ¦æ
# pnpdump > /etc/isapnp.conf
³o¼Ë·|²£¥Í¤@Ó¬°§Aªº PnP ¥d¶q¨q°µªº«Øºc¡A¦ý¥¦·|§â©Ò¦³ªº³]³Æ³£µù¸Ñ°_¨Ó¡C½Ð¦A
¤p¤ß¦aקï³oÓÀɮסA¦pªG¥i¯àªº¸Ü¨Ã¤ñ¸û DMAÀW¹D¡BIO¡B´¡Â_µ¥µ¥ªº³]©w¬O§_»P¥¦¦b DOS ©Î WINDOW
Àô¹Ò¤U¤£¤@¼Ë (¦b Win95 ùØ¡An¬Ý³Q¤¶±¥d©Ò¨Ï¥Îªº¸ê·½¥i¦b ³]³ÆºÞ²zû
¤Uªº ¸ê·½
¬Ý)¡C
¦pªG§A¹J¨ì°ÝÃD¡A½Ð¤p¤ß¦aŪ¤@¤U©Misapnptools
©ñ¤@°_ªº¤å¥ó¡C
½Ðª`·N: isapnptools
±`µLªk°»´ú SB AWE Wave Table ³]³Æªº¤TÓ I/O °ð¡C
½Ð¬d©ú§Aªº isapnp.conf
¤ºªº WaveTable
¶µ¥Ø against the example at the end of this HOWTO.
¦pªG»Ýnªº¸Ü½Õ¾ã¤@¤U I/O base ¦ì§}¡C
ª`·N: ®Ú¾Úe isapnp-faq
¡A¦³®ÉÔ isapnp
·|µLªk±oª¾ÅÞ¿è³]³Æªº¼Æ¥Ø¡C¦pªG§A¾D¹J
¨ì¹³¤U±ªº¿ù»~°T®§¡G
Error occurred executing request 'LD 2' on or around line...
¨º¸Õ¬Ý¬Ý¥[¤J (VERIFYLD N)
¨ì isapnp.conf
ªº¤WÀY¡C§A¥²¶·¨Ï¥Î¦Ü¤Ö¬O 1.10 ª©ªº¤~¯à³o»ò°µ¡C
¦pªG§AµLªk¨Ï¥Î 1.10 ©Î¬O§ó·sªºª©¥»¡C§A¤]¥i¥H¦Û¤wª½±µ¤â°Ê§ïÅÞ¿è³]³Æªº¼Æ¶q¡C
½Ð±¡½Ð°Ñ¦Ò isapnp-faq
¡C¦pªGÁÙ¬OµLªk§JªA¡A½Ð©M§Ú³sµ¸ (À³¸Ó¦³¤H¤]·|¹ï isapnp
¦³¿³½ì§a
¡A§Ú·Q)¡C
¤p¤ß: ½Ð½T»{³Ì«á¨º¦æ¬O (WAITFORKEY)
¡A¦³®ÉÔ¸ûªº pnpdump
ª©¥»·|§R°£¥¦¡C
¦b¤å¥óªº«á±¦³¤@Óisapnp.conf
µ¹³æÓ PnP µ®Ä¥d¥Îªº¼Ë¥»¡C (½Ð¬Ý³¹¸`
Sample <tt>isapnp.conf</tt>)¡C
¦pªG§A¬O¥Î Debian ¨t²Î´N¤£¥Î¦A°µ¥ô¦óªº¨ä¥L½Õ¾ã¡C /etc/init.d/boot
¥[¤W¤U±ªº
©R¥O¤â½Z¤U¡A§A´N¥i¥H¦b¶}¾÷®É±Ò°Êisapnp
# Configure the isa plug and play boards before loading # modules. Need to do this before loading modules to get # a chance of configuring and starting PnP boards before # the drivers mess all this up. # if [ -x /etc/init.d/isapnp ] then /etc/init.d/isapnp start fi
/etc/init.d/isapnp
is
#! /bin/sh # /etc/init.d/isapnp: configure Plug and Play boards test -x /sbin/isapnp || exit 0 /sbin/isapnp /etc/isapnp.conf exit 0
¦pªG§A¦³¨ä¥Lªº Linux ¨ÑÀ³°Óª©¥»¡A§A´Nn¦Û¤w¨Ó¤F¡C§Ú¤]¤£ª¾¹D«ç»ò°µ (¦³½ÖÄ@·N´£¨Ñ§ó¦hªº¸ê°T¶Ü?)¡C¥un°O±o isapnp ¥²¶·¦b©Ò¦³¼Ò²Õ³Q¸ü¤J ¤§«e ´N³Q¸ü¤J¤F (½Ð¬Ý¤U±)¡C
¦b½sĶ®Ö¤ßµ{¦¡¤§«e¡A§A¥²¶·¦³ AWE Driver Extension ®M¥ó¨Óµ¹µ®ÄÅX°Êµ{¦¡¨Ï¥Î¡C´Nºâ§A
ªº®Ö¤ßì©lµ{¦¡¥Ø¿ýùؤw¸g¦³ awedrv
©µ¦ù®M¥ó¤F (½ÐÀˬd /drivers/sound/lowlevel/
¬Ý¬Ý)¡A
§A¥i¯à·Qn¤É¯Å awedrv
³nÅé¡C¨Ì·Ó¦w¸Ë¦b awedrv
ì©l¥Ø¿ýùتº«ü¥Ü¡C²³æ¦a»¡¡A§A¥²¶·°õ¦æ
¤@Ó׸ɮ֤ßì©lµ{¦¡ªº¦w¸Ë©R¥O¤â½Z¡C
½Ð¤p¤ß§A¤w¸g¦b°õ¦æ§¹¦w¸Ë©R¥O¤â½Z«á¤w¸g¤É¯Å¤F®Ö¤ßì©lµ{¦¡¤F¡C³oÓ©R¥O¤â½Z
¥u¬O¦bÀˬd¬Ý¬Ý¤@¨Ç¯S©wÀɮ׬O§_¤w¸g¦³¤F¡A¦pªG¦³¤F¡A¥¦¤£·|¦³¥ô¦ó»Ýnªº×¸É°Ê§@¡C
§A¤É¯Å®Ö¤ßì©lµ{¦¡«á¦b°õ¦æ©R¥O¤â½Z«e·|³Q«Øij±N drivers/sound/lowlevel/awe_wav.c
Àɮײ¾°£¡C
±µ¤U¨Ó§A¥²¶·«Øºc®Ö¤ßµ{¦¡¨Ó¤ä´©µ®Ä¡C§Ú§Æ±æ§Aª¾¹D«ç»ò¨Ó½sĶ®Ö¤ßµ{¦¡¡F¸Ô±¡½Ð°Ñ¦Ò
Sound HOWTO ¥H¤Î Kernel HOWTO¡C¨ì®Ö¤ßì©lµ{¦¡ªº¥Ø¿ýùØ¡A (¨Ò¦p /usr/src/linux
)
µM«á°õ¦æ
# make config
©Î¬O make menuconfig
©Î make xconfig
¡CµM«á¥Î¼Ð·Çªº¤è¦¡¨Ó
«Øºc§Aªº®Ö¤ßµ{¦¡¡C §Q¥Î³oÓ¾÷·|¨Ó°µÓÅé¿n¤S¤p¤S±j¦Ó¦³¤Oªº®Ö¤ßµ{¦¡¡A¯S§O¬O
¬°§Aªº¨t²Î¶q¨q°µªº¡C°O±o¦b¦^µª Enable loadable module support
¬O¿ï Y
¡A
¦pªG§A·Q§âµ®ÄÅX°Êµ{¦¡¦w¸Ë¦¨¥i¸ü¤J¦¡¼Ò²Õªº¸Ü (¦pªG§A¥Îªº¬O PnP ¥dªº¸Ü´N ¥²¶·³o»ò°µ)
¡A¦ý§Úª¾¹D§A¤]·|³o»ò°µ§a¡I
§A·|¦b¦³Ó¦a¤è³Q°Ý¨ì¬O§_»Ýnµ®Ä¥d¤ä´©¡C¦pªG§A¨S¦³ PnP¥dªº¸Ü
§A¥i¥H¦Û¥Ñ¦^µª Y
©Î M
¡A¦pªG§An°µ¦¨¼Ò²Õªº¸Ü¦Ó¥B¬O PnP¥d¡A¥²¶· ¦^µª M
¡C
§A¥²¶·±N PnP µ®Ä¥dªº¤ä´©½sĶ¦¨¤@Ó¼Ò²Õ¡A¦]¬°¦b¼Ò²Õ³Q¸ü¤J«e PnP ¥d¥²¶·¥ýªì©l¤Æ¡C
¤U¦Cªº°ÝÃD§AÀ³¸Ó¦^µª Y
¡A¨ä¾l¦^µª N
¡G
Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?] Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?] /dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?] MIDI interface support (CONFIG_MIDI) [Y/n/?] FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?] lowlevel sound driver support [Y/n/?] AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?]
¥u¦³«á±ªº¬Oµ¹ Wave Table ¦X¦¨¾¹¥Îªº¡C¨ä¾l¬O OSS/Free µ®ÄÅX°Êµ{¦¡µ¹ SB 16 ªº¿ï¶µ¡C
°£¦¹¤§¥~¡A§A¥²¶·«Øºcµ®Ä¥d I/O °ð¡C¥i°Ñ¦Ò isapnp.conf
ÀÉ·|µ¹§A¤@¨Ç´£¥Ü¡A
¦pªG§A¦³³oÓÀɪº¸Ü¡C¹ï§Ú¨Ó»¡¡A¤U±ªº¤º©wÈ´N°÷¤F¡C½Ðª`·N¡G®Ö¤ßµ{¦¡«Øºc©R¥O¤â½Zªº¤º©wÈ
¤]¦³¥i¯à¬O¿ùªº (¯S§O¬O SBC_IRQ
©M SB_MPU_BASE
ªºÈ¹ï¤j³¡¥÷ªº¥d¨Ó»¡¦n¹³³£¿ù¤F)¡C
I/O base for SB Check from manual of the card (SBC_BASE) [220] Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5] Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1] Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards) (SB_DMA2) [5] MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card (SB_MPU_BASE) [330] SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1]
¦n¤F¡A²{¦b«·s½sĶ®Ö¤ßµ{¦¡¡ADebian ªº¨Ï¥ÎªÌn¥Î kernel-package
«ü¥O¡C
³oÓ®M¥óÅý§Ú̽sĶ®Ö¤ßµ{¦¡´N¹³¦w¸Ë debian ªº®M¥ó¤@¼Ë®e©ö®@¡C½Ð¬Ý
/usr/doc/kernel-package/
ùتº¤å¥ó¡C³oùئ³Ó´£¥Ü¡G
# make-kpkg clean
# make-kpkg -revision custom.1.0 kernel_image
µM«á dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb
.
¦pªG§Aªº¬O¨ä¥Lªº Linux ¨ÑÀ³°Óª©¥»¡A½Ð¨Ì·Ó¼Ð·Çªº¤è¦¡¨Ó½sĶ·sªº®Ö¤ßµ{¦¡¡C¤£n§Ñ¤F
make modules
¥H¤Î make modules_install
¡C¸Ô±¡½Ð¬Ý Sound HOWTO ©Î Kernel HOWTO¡C
¦w¸Ë§¹·s®Ö¤ßµ{¦¡«á¡A§AÀ³¸Ó«·s¶}¾÷ (½Ð°O±o§An¦³Ó¥i¥Îªº¶}¾÷ºÏ¤ù¦b¤â¤W)¡C¥æ¤eµÛ§Aªº¤â«üÀYµ¥¤@¤U¡C
¦pªG§A¦³Ó PnP ¥d¡A½Ð½T»{¦b¶}¾÷±Ò°Ê©R¥O¤â½ZùةάO¤â°Ê¦a°õ¦æ isapnp (¹³¤W±©Ò´£ªº¤@¼Ë)¡G
# /sbin/isapnp /etc/isapnp.conf
Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e: CTL0048 Serial No 58128
[checksum 74]
²{¦b§A¥i¥H¦w¸Ëµ®ÄÅX°Êµ{¦¡¤F¡A¦pªG§A¤w§â¥¦½sĶ¦¨¤@Ó¼Ò²Õ¡G
# modprobe -a sound
AWE32 Sound Driver v0.3.3e (DRAM 2048k)
¦pªG§A»{¬°°O¾ÐÅé°»´ú¦³»~ (¦³Ó¤H§i¶D§Ú»¡¥L¦³±i AWE64 ¥d¦³ 4096k¡AµM¦Ó ``°»´ú¨ì'' 28672k !)¡A½Ð¤É¯Å
awedrv
³nÅé©Î¬O¦b /usr/src/linux/drivers/sound/lowlevel/awe_config.h
ÀÉ®×ùØ«ü©w°O¾ÐÅé¡A
¦p¡G
#define AWE_DEFAULT_MEM_SIZE 4096 /* kbytes */
©êÁ¾¡A§A¥²¶·¦A«·s½sĶ®Ö¤ßµ{¦¡ (¤]³\½sĶ³o¨Ç¼Ò²Õ´N°÷¤F¡A¦ý§Ú¤£½T©w)¡C
¦pªG¥¦¦¨¥\°Ê§@¤F¡A§A¥i¯à§Æ±æµ®Ä¼Ò²Õ¯à¦Û°Ê¸ü¤J¡C§A¥i¥H¨Ï¥Î kerneld
(
¦b 1.4³¹¸`ùئ³»¡©ú¬°¦ó³o¬OÓÃaÂI¤l) ©Î¬O¦b§Aªº/etc/modules
(Debian¨t²Î) ùØÀY
¥[¤W¤@¦æ¥]§t sound
©Î¬O¥[¤W /sbin/modprobe -a sound
¨ì§Aªº±Ò°Ê©R¥O¤â½ZùØ¡C