マイク
microphoneは1つのALSAキャプチャPCMです。USB Audio Classマイク、
Webカメラやヘッドセットのマイク、オンボード(プラットフォーム)サウンドカードのキャプチャPCM、
または親デバイスを持たないカード(snd-aloopなどの仮想カード)のキャプチャPCMが該当します。
再生専用のカードと再生PCMは報告されません。
Webカメラのカメラ部分は別のcameraデバイスになります。
- プロバイダー:
microphone.alsa - ueventで再スキャンするサブシステム:
sound
検出処理はテキストとリンクのみを読み取ります。カードとキャプチャPCMは
/sys/class/soundから、各カードのid、deviceリンク、USBの祖先とともに読み取ります。
カード名とドライバーは/proc/asound/cardsから読み取ります(行のidがカードのsysfs idと一致する場合のみ使用)。
さらに、各カー ドのpcmMc/infoと、USBオーディオの場合はstreamM、
そして/dev/snd/by-pathと/dev/snd/by-id内のudevリンクを読み取ります。
PCMやコントロールデバイスを開くことはないため、アプリケーションからマイクを奪ったり、ミキサーを変更したりすることはありません。
ALSA procfs(CONFIG_SND_PROC_FS)が必要です。
CONFIG_SND_VERBOSE_PROCFSがない場合は、pcmMc/infoのみが欠けます。
識別情報
idはmicrophone:alsa:<16 hex digits>で、
identity.stable_keyの64ビットFNV-1aハッシュです:
sysfs:<card's sysfs device, relative to /sys>:pcm<M>c
sysfs:devices/platform/soc/xhci-hcd.0.auto/usb1/1-1.2/1-1.2:1.0:pcm0c
USBマイクの場合、sysfsデバイスはそのポート上のオーディオインターフェースであるため、
idは同じポートへの再接続、再起動、ALSAカード番号の振り直しを経ても変わらず、
異なるポートに接続された同一のマイクには異なるidが付きます。
カード番号、カードid、/dev/sndの名前がidに含まれることはありません。
親デバイスを持たないカード(/sys/devices/virtual/soundの下にあり、deviceリンクがない)には
デバイスパスがないため、そのキーは現在のカードidになります:
alsa-card-id:<card id>:pcm<M>c。これは番号の振り直しでは変わりませんが、
カードidが変わる(ドライバーのidオプション)と変わります。また、同じドライバーの2枚のカードは、
再起動をまたいでサフィックス付きのid(Loopback、Loopback_1)が入れ替わることがあります。
このようなレコードにはperipherals.sysfs_device_missing issueが付きます。
現在のsysfs idが欠けているか空のカードは、以降のスキャンまでスキップされます。
読み取れないカードがあるとスキャンは失敗します。
フィールド
| フィールド | 意味 |
|---|---|
type、id | microphoneと上記のid。 |
name | カードの短い名前。ない場合はPCM名、それもない場合はカードid。 |
backend | alsa. |
connection | usb(カードのデバイスにUSBの祖先がある)、platform、またはunknown(親デバイスなし)。 |
capture_target | card_id、device(PCM番号)、およびカードidが英字、数字、_、- |