Embedded : : Linux/: : ALSA

[ALSA] 1. Intro. (Advanced Linux Sound Architecture)

Jay.P Morgan 2026. 3. 9. 17:55

 

 

ALSA(Advanced Linux Sound Architecture)를 리눅스 오디오 데이터 경로의 표준 기반으로 심층 분석합니다. PCM 재생·녹음 파이프라인과 ring buffer/period 모델, control 인터페이스와 mixer 토폴로지, MIDI/타이머 서브시스템, HD Audio·USB Audio·SOF 아키텍처 차이, DPCM과 compress offload 활용, DMA 기반 저지연 스트리밍, xrun 복구와 clock drift 대응, 전원관리 및 suspend/resume 안정화, 사용자 공간(PulseAudio/PipeWire) 연계 포인트까지 실전 오디오 드라이버 운영에 필요한 핵심을 다룹니다.

문서 구조 재정렬: 이 문서는 ALSA 코어 흐름 중심으로 유지합니다. 플랫폼별 심화는 ASoC & DAPM, USB 서브시스템 문서를 함께 참고하세요.

 

 

 

  1.  Intro

 

전제 조건: 디바이스 드라이버와 DMA 문서를 먼저 읽으세요. 멀티미디어/가속기 경로는 대용량 버퍼 이동과 동기화가 성능의 핵심이므로, 메모리 경로와 큐 모델을 먼저 파악해야 합니다.
일상 비유: 이 주제는 영상 제작 파이프라인과 비슷합니다. 촬영·편집·인코딩 단계가 끊기지 않아야 결과가 나오듯이, 버퍼 큐와 하드웨어 스케줄링의 연속성이 중요합니다.

 

 

  1.1  핵심 요약

 

초기화 순서 — 탐색, 바인딩, 자원 등록 순서를 점검합니다.

제어/데이터 분리 — 빠른 경로와 설정 경로를 분리 설계합니다.

IRQ/작업 분할 — 즉시 처리와 지연 처리를 구분합니다.

안전 한계 — 전원/열/타이밍 임계값을 함께 관리합니다.

운영 복구 — 오류 시 재초기화와 롤백 경로를 준비합니다. 

 

 

  1.2  단계별 이해

  

 

장치 수명주기 확인
  probe부터 remove까지 흐름을 점검합니다.

비동기 경로 설계
  IRQ, 워크큐, 타이머 역할을 분리합니다.

자원 정합성 검증
  DMA/클록/전원 참조를 교차 확인합니다.

현장 조건 테스트
  연결 끊김/복구/부하 상황을 재현합니다.

 

관련 표준 및 사양:
  • Intel HD Audio Specification: 고품질 오디오 버스 표준
  • USB Audio Class (UAC) 1.0/2.0/3.0: USB 오디오 디바이스 프로토콜
  • I2S/TDM/PDM: 디지털 오디오 인터페이스 프로토콜
  • AC'97/I2C/SPI: 코덱 제어 버스
  • Device Tree Bindings: ASoC 디바이스 설정