본문 바로가기
IT/linux

PCM device 확인 / fuser 활용하여 device busy 해결

by 어느해겨울 2021. 12. 29.

PCM device 확인

 

ALSA 를 이용하여 오디오 프로그램 개발 시 간혹 device busy 라는 오류가 발생한다. 

이것은 mixer가 없는 장치에서 동일한 오디오 디바이스를 사용하려면 나는 충돌 오류이다.

이를 해결하기 위해서 fuser 명령어를 이용하여 상태를 체크해볼 수 있다.

 

 

PCM device 확인

# ls /dev/snd/
by-path  controlC0  pcmC0D0c  pcmC0D0p  timer

이 장치는 pcmC0D0c 라는 audio capture 장치와 pcmC0D0p 라는 audio playback 장치가 있다.

 

 

1. PCM playback device 사용 확인

fuser -fv /dev/snd/pcmC0D0p

PCM playback device 상태, pid 3128, audio_player 라는 프로세스가 사용 중인 것을 확인할 수 있다.

# fuser -fv /dev/snd/pcmC0D0p
                     USER        PID ACCESS COMMAND
/dev/snd/pcmC0D0p:   root       3128 F...m audio_player

 

2. PCM capture device 사용 확인

fuser -fv /dev/snd/pcmC0D0c

PCM capture device 상태, pid 3135, audio_server 라는 프로세스가 사용 중인 것을 확인할 수 있다.

# fuser -fv /dev/snd/pcmC0D0c
                     USER        PID ACCESS COMMAND
/dev/snd/pcmC0D0c:   root       3135 F...m audio_server

 

위와 같은 방법으로 audio device 점유 상태를 확인하여 ALSA handle 시 device busy 를 피할 수 있다.

 

 

댓글