마이크
microphone은 하나의 ALSA 캡처 PCM입니다. USB Audio Class 마이크,
웹캠이나 헤드셋의 마이크, 온보드(플랫폼)
사운드 카드의 캡처 PCM, 또는 상위 장치가 없는 카드(가상 카드, 예:
snd-aloop)의 캡처 PCM이 해당됩니다. 재생 전용 카드와 재생 PCM은 보고되지 않습니다.
웹캠의 카메라는 별도의 camera 장치입니다.
- 프로바이더:
microphone.alsa - 다음의 uevent 발생 시 재스캔:
sound
탐지는 텍스트와 링크만 읽습니다:
/sys/class/sound의 카드 및 캡처 PCM과 각 카드의 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 옵션) 변경되며, 같 은 드라이버의 두 카드는
부팅할 때마다 접미사가 붙은 id(Loopback, Loopback_1)가 서로 바뀔 수 있습니다. 이러한
레코드에는 peripherals.sysfs_device_missing 이슈가 포함됩니다. 현재
sysfs id가 없거나 비어 있는 카드는 이후 스캔까지 건너뜁니다. 읽을 수 없는
카드는 스캔을 실패시킵니다.
필드
| 필드 | 의미 |
|---|---|
type, id | microphone 및 위의 id. |
name | 카드의 짧은 이름, 없으면 PCM 이름, 그것도 없으면 카드 id. |
backend | alsa. |
connection | usb(카드의 장치에 USB 상위 장치가 있음), platform 또는 unknown(상위 장치 없음). |
capture_target | card_id, device(PCM 번호), 그리고 카드 id가 문자, 숫자, _ 및 -만 포함하고 한 자리 또는 두 자리 숫자가 아닌 경우(ALSA는 CARD=7을 카드 인덱스 7로 해석함) selector: plughw:CARD=<card_id>,DEV=<M>. 현재 부팅에서만 유효합니다. |
identity | stable_key, card_index(재연결 시 변경됨), pcm_node(/dev/snd/pcmC<N>D<M>c), card_id; 알려진 경우 card_name, card_driver, pcm_name, by_path 및 by_id(카드의 controlC<N>을 가리키는 udev 링크 중 이름순으로 첫 번째), 그리고 USB의 경우 usb: vendor_id, product_id, bus_path(포트, 예: 1-1.2) 및 존재하는 경우 interface, manufacturer, product, serial. |
modes | streamM에 있는 각 캡처 altset의 형식마다 하나의 항목이며, 인터페이스와 altset 순으로 정렬되고 중복은 없습니다: format(예: S16_LE) 및 커널이 출력하는 경우 interface, altset, channels, sample_bits, rates_hz(정렬됨) 또는 rate_range_hz({"min", "max"}), 그리고 channel_map(알 수 없는 위치는 --). 0이거나 역전된 값은 제외됩니다. 드라이버가 PCM을 열지 않고는 형식을 게시하지 않는 경우(USB가 아닌 모든 드라이버) 비어 있습니다. |
availability | state: available, in_use(사용 가능한 캡처 서브디바이스 없음) 또는 unknown; 알려진 경우 subdevices 및 subdevices_available 포함. |
issues | 읽을 수 없는 각 부분에 대한 {"code", "reason"}; 비어 있으면 생략됩니다. 레코드는 그래도 게시됩니다. |
이슈 코드: peripherals.pcm_info_unreadable,
peripherals.capture_selector_unavailable,
peripherals.capabilities_unavailable, peripherals.availability_unknown,
peripherals.sysfs_device_missing.