pcm
—
FreeBSD
?????ǥ????ǥХ????ɥ饤??
device pcm0 at isa? port? tty irq 5 drq 1 flags 0x15
pcm
?ɥ饤?Ф? WSS/MSS
???ͤޤ??? SBPro ?? SB16 ?ȸߴ????Τ???
?͡??? ISA
???????ɥ????ɤݡ??Ȥ??Ƥ??ޤ???
????????/?????Τߤݡ??Ȥ??Ƥ??ꡢ?ޤ????ۤȤ??ɤΥ????ɤ?
?????Ǥʤ?????????????ư???ǽ?Ǥ???
?̾??Υѥ??????¾?? flags
?ե??????ɤ??????? DMA ?Υ????ͥ???
???ꤹ???Τ˻??Ѥ??ޤ?
(????Ū?ˤ??????ť????ɤDz??????Ϥ??뤿???˻??Ѥ??ޤ?)??
flags ?ˤϡ??????????? DMA
?????ͥ??????Ѥ??ʤ??????ɤǤ? 0 ????
???Ѥ????????ˤϥ????ͥ? C ?????ꤹ???Τ?
0x10 + C ?åȤ??ޤ???
PnP ?????ǥ????????ɤ? FreeBSD ????? 2.2.6
???????ѤǤ????褦?ˤʤä?
pnp
?ɥ饤?Ф??Ѥ??뤳?Ȥǥ??ݡ??Ȥ??Ƥ??ޤ???
?ܤ?????????
pnp(4)
?Υޥ˥奢???ڡ????Ȥ??Ʋ???????
?ä? (ǧ?????줿) PnP
?????ɤ˳??????Ƥ????????˥å??ֹ??ϥ쥬??
ISA
?ǥХ????θ??ˤʤ뤳?ȡ??ºݤ˥ɥ饤?Фǻ??Ѥ????????
(port ?????? irq ?? drq) ?? "device pcm0"
?ιԤ????ǤϤʤ? PnP
?????꤬?Ѥ??????뤳?ȤϳФ??Ƥ????Ƥ?????????
?Ǥ????顢?????ͥ륳???ե????ե???????
device pcm0 ...
?Τ褦?˽??Ȥ????ȡ??ǽ??˸??Ĥ???
PnP ?????ǥ????????ɤ? ???˥å??ֹ??? 1
?Ȥʤꡢ/dev/audio1??/dev/dsp1 ???Ȥ???
???????????뤳?Ȥ??Ǥ??ޤ???
???ץꥱ??????????¿???ϰ??ۤΤ?????
/dev/audio
?????Ѥ????褦?ˤʤäƤ????Τǡ?
?ʲ??Τ褦?? /dev/audio
???????????ǥХ????Υ????ȥ??˥????ܥ??å?????
?????Τ??褤?Ǥ??礦??
cd /dev
rm audio dsp dspW
mixer
./MAKEDEV snd1
ln -s
audio1 audio
ln -s dsp1 dsp
ln -s dspW1 dspW
ln -s mixer1
mixer
?ܥɥ饤?Ф? WSS/MSS
?????ɤǺ???ǽ?Ϥ?ȯ?????ޤ??? WSS/MSS
?Ϥ??ä??ꤷ????¤?Ƥ??ꡢ
???줾????Ω??????ǽ?ν????ˤʤäƤ??ޤ???
?????ˤ⤳?????Υ????ɤϻԾ??ǰ??ְ¤??????ǥ????????ɤǤ⤢???ޤ???
SB ?? ESS
?ʤɤȤ??ä?¾?Υ????ɤ???????¤??ʣ???ǡ?
?ޤ????????????????ʤ????Ȥ?ǤϤ????ޤ?????
???̡????????Υ????ɤΥ??ݡ??ȤϤ????ۤ??ɤ??????ޤ?????
?ɥ饤?Ф??????????Ƥ????ϡ??ɥ???????ǧ??????
??????ư????뤿???˽??????¤??Τ??Ȥޤ???
???????äƥ????ͥ??Υ????ե????ե???????
?????ۤɾܺ٤???????ɬ?פϤ????ޤ?????
PnP
?????ɤˤĤ??Ƥϼ?ưŪ?˼??̤????ΤǼ¤˴?ñ?Ǥ???
PnP ?Ǥʤ? ISA ?Υ????ɤˤĤ??Ƥ?
(?????ͥ륳???ե????ե???????????Ū?˥??ɥ쥹?????ꤷ??
ͥ?褵???ʤ??¤???) ?ޤ????ɥ쥹
0x530 ?? 0x604 ?? MSS ?????ɤ?õ???? ???θ??? 0x220 ??
0x240 ?? SB ?????ɤ?õ???ޤ???
?ܥɥ饤?Ф? Voxware ?? ioctl()
?ΤۤȤ??ɤݡ??Ȥ??Ƥ??ꡢ
(?????Ȥ????Ƥ??? mpeg ?ץ쥤???? Linux
?ΥХ??ʥ????ޤ???)
?ۤȤ??ɤΥ??ץꥱ?????????Ͻ??????뤳?Ȥʤ???ư??ޤ???
?㤤?Ϥ????Ĥ??Ϥ????ޤ?
(???????Ǥ????פʤҤȤĤϥ????ǥ???
?Хåե??????????ޥåפ??ƥ???????????ǽ?Ϥΰ㤤?Ǥ?)??
???Τ????˥??ץꥱ?????????????ˤϥ????ǥ????⥸?塼????
?????äȤ????ѹ??ƺƥ????ѥ??뤹??ɬ?פ????????Τ⤢???Ǥ??礦??
???ݡ??Ȥ??Ƥ??? ioctl
?δ????ʥꥹ?ȤˤĤ??Ƥ?
/usr/include/machine/soundcard.h ?Ȥ??Ʋ???????
???ݡ??Ȥ??Ƥ??륳???ǥå? (????:
???????????Ϥ??Ԥ???ϩ)/?????ɤΥꥹ?Ȥ???
PnP
???꤬??ǽ?ʤ??ΤˤĤ??Ƥ?Ŭ?Ѳ?ǽ??
PnP ?????????????ޤ??ơ? ?ʲ??˼????ޤ?
(?ǥե????ȤΥѥ???????ޤ?????
?ºݤΤ??ʤ??Υ?????Ϥ????Ȱ??äƤ??뤫?⤷???ޤ?????)
- CS4237, CS4236, CS4232, CS4231
pnp 1 0 os enable port0 0x534 port2 0x220 irq0 5 drq0 1
drq1 3
???????Υ????ɤϤ??٤? MSS
?⡼?ɤ??????ŤǴ?????ư??ޤ???
???Υ??åץ??åȤϡ?¾?ˤ⤢???ޤ?????A/Open
?? AW35 ?????? AW32?? Intel
?Υޥ????ܡ??ɤΤ????Ĥ??? ??????
(CS4231??) ?? PnP
?Υ????ɤ˻??Ѥ????Ƥ??ޤ???
Voxware ?λ????ˤ????? CS4232
?ϥХ??????Ȥ????𤬤????ޤ?????
???????ɤ????꤫?ǤϤ????ޤ????? ???? Intel
???ޥ????ܡ??ɤ? 1
?ĤǤϲ??????Ϥ?ư??ޤ???
??????ñ?˲??????Ϥ? DMA ?????ͥ뤬 ISA ??
DMA ?????ȥ???????
??³?????Ƥ??ʤ??????Ǥ???
- GUSPnP
pnp 1 0 os enable port0 0x220 port1 0x320 port2 0x32c
irq0 5 drq0 7 drq1 5
MSS
?⡼?ɤ??????Ťݡ??Ȥ??Ƥ??ޤ???
GUSPnP ?ϡ???ʪ?? CS4231 ?????Ѥ??Ƥ??餺??
?ޤ? mu-law
???????Ȥ??Υ??ߥ??졼???????˥Х????????ȵ??äƤ??ޤ???
???Υ????ɤϤ⤦?????????Ƥ??ޤ????Τǡ?
?虜?虜?????ɤ? (mu-law
??ư??뤳?Ȥ??狼?äƤ???)
"Mode3" ??
???åȤ??????̤ʥ????ɤ??Τ??????뤳?ȤϤ??ʤ???
????Ū?? U8
???????Ѥ??ƥɥ饤???????ǥ??եȥ??????Ƿ??????Ѵ??Ƥ??ޤ???
???Τ??Ȥˤ??ä?ʬ??ǽ?????????ޤ??Τǡ?
???Υ????ɤǤϲ?ǽ?ʸ¤? 16
?ӥåȥ⡼?ɤ????Ѥ??Ʋ???????
- Yamaha OPL-SAx
pnp 1 0 os enable port0 0x220 port1 0x530 port2 0x388
port3 0x370 irq0 5 drq0 1 drq1 3
???٤ƤΥ⡼?ɤǴ?????ư??ޤ???
???Υ??åפ??͡??? PnP
?????ɤǻ??Ѥ????Ƥ????Τߤʤ餺??
(?? PnP ?⡼?ɤ?)
?ޥ????ܡ??ɤ????åץȥåץޥ??????Ѥ??????Ƥ??ޤ?
(???Ȥ??????Ǥ? Libretto)??
- OPTi931
pnp 1 1 os enable port0 0x534 port2 0x220 port3 0xe0d
irq0 10 drq0 1 drq1 6
???Υ??åפϥХ??????Ǥ????????????Υ??åװʳ????????Ť?ư??륫???ɤ?
???դ??뤳?Ȥ??????ʤ??ä??????⤢?ä??Τǡ??ɥ饤?ФǤ????????β???????
?Ȥä??????Ť?ư????褦?ˤ??ޤ????????åפΥХ??Τ??ᡢu-law
?????? ?????Ǥ? U8 ???????Ѥ??Ƥ??ޤ???
- SB16, Vibra16C, ?????ӸŤ? SB16/AWExx ??????
pnp 1 0 os enable port0 0x220 irq0 5 drq0 1 drq1 5
???????Υ????ǥå??ϡ? ???????? 8
?ӥåȤǡ??⤦?????? 16
?ӥåȤǻ??Ѥ??뤳?Ȥǡ?
?????դ?????????ư????ǽ?Ǥ???
?ɥ饤?ФϤ??Υ⡼?ɤǤ?ư???ݡ??Ȥ??Ƥ??ޤ?????
???Υ⡼?ɤǤ?ư???? CreativeLabs
?Ǥϥ??ݡ??Ȥ????Ƥ??ʤ????Ȥ?
?Ф??Ƥ????Ʋ???????
- Vibra16X ?????ӿ??????? SB16/AWExx ??????
pnp 1 0 os enable port0 0x220 irq0 5 drq0 1 drq1 3
?Ƕ??ˤʤä? CreativeLabs
?ϥ????ǥå? (DSP) ???ѹ????ޤ???????
????????ϩ?ϸŤ?ʪ?ȼ㴳?ۤʤäƤ??ޤ???
?Ǥ⸲???ʰ㤤?? 2 ?Ĥ? 8 ?ӥå?
DMA ?????ͥ??λ???ˡ?Ǥ???
?????ˤ??ä??ܥɥ饤?Ф???????ư??ݡ??Ȥ?ư??ʤ??ʤä??褦?Ǥ???
???????֥ơ??֥??????Ѥ??뤳?Ȥˤ??ä???????ư???ϲ?ǽ?ˤʤ뤫?⤷???ޤ???
?ܥɥ饤?ФǤϥ??????֥ơ??֥??ݡ??Ȥ??Ƥ??ʤ??Τ?
Ⱦ???ŤDz??????Ƥ?????????
- SBPro ?Ȥ??Υ???????
- ????¾?ΤۤȤ??ɤΥ????ɤδ???ư????Υ⡼?ɤǤ???
???????Υ????ɤ??Ф??Ƥϸ???Ū??
(?????ƥХ??????뤫?⤷???ʤ?)
???ݡ??ȡ?8
?ӥå?Ⱦ???Ť????????ޤ????? (ESS
???åפξ????Τ褦??)???Ȥ??ƥϡ??ɥ????????????ʾ???ǽ?Ϥ?
???äƤ????????Ǥ⡢?Ǥ???
- This is XXX but LDN Y is disabled
-
?????? bios ?? PnP
?ǥХ??????????ԲĤΤޤޤˤ??Ƥ??ꡢ
??ư?? "-c"
?Ĥ??ǥ֡??Ȥ??ƾ嵭?? pnp
???????Ԥ??ʤ????Фʤ??ʤ????Ȥ?
?????Ƥ??ޤ???
- pcmX: unit not configured, perhaps you want pcmY ?
- ?????????????ʤ????˥åȤ??Ѥ??Ƥ??뤳?Ȥ??Ƥ??ޤ???
???̤ˡ??????????˥åȤؤΥ????ܥ??å????????餺??
PnP
?????ɤ????Ѥ??Ƥ????Ȥ??˵??????ޤ???
/dev
?ǥ??쥯?ȥ????????????˥åȤ??ؤ??褦?˥????ܥ??å?????
(?????ˤ??äƤϥǥХ????????ȥ???)
????ľ???Ʋ???????
- timeout flushing dbuf_out ...
- ?????ϥ????ɤ??????????? (????Ū?ˤϡ?DMA
?????ͥ?) ?????뤫 ???뤤??
(??¿?ˤʤ????ȤǤ???)
?ɥ饤?Ф????꤬???뤫?ˤ??äơ?
?????ɤ???????ǧ???????Ƥ??ʤ????Ȥ??ޤ??????????Ϥ˻??Ѥ???
DMA ?????ͥ?????ǧ???Ʋ???????
- capture does not work
- ?????????? DMA
?????ͥ뤬?????????ꤵ???ʤ??Ȥ??ˤ褯???????ޤ???
???????ʤ????ᡢSB16
?Υ??ݡ??Ⱦ??֤Ͻ?ʬ?ǤϤ????ޤ?????
Ʊ?ͤˡ??ߥ????Υ??ݡ??Ȥ??Դ????Ǥ??ꡢ
?ޤ????ʤ??Υ????ɤε?ǽ
(???Ȥ??????Τβ??̤??????ʤ?) ?????ˤ?
???٤ƤΥǥХ????ˤĤ???
???ݡ??Ȥ????Ƥ??ʤ????Τ????뤫?⤷???ޤ?????
pcm
?ǥХ????ɥ饤?Ф?
FreeBSD 2.2.6
?ǽ??????о줷?ޤ?????
pcm
?ǥХ????ɥ饤?Ф????Ӥ??Υޥ˥奢???ڡ?????
Luigi Rizzo (luigi@iet.unipi.it)
???ޤ?????