Linux 서버에서 더미 사운드 카드 장치를 만드는 방법은 무엇입니까?


20

사운드 카드가없는 서버에서 사운드 카드가 필요한 Linux 프로그램을 실행하고 싶습니다. 더미 사운드 카드를 만들 수 있습니까? 나는 리눅스 사운드 시스템 내부를 전혀 모른다. 올바른 방향으로 알려주세요.

http://alsa.opensrc.org/.asoundrc 이 예제를 따르지만 제대로 작동하지 않았습니다.

추신 : 비슷한 질문이 있습니다 : Linux에서 가상 사운드 장치를 만드는 방법은 무엇입니까? . 그러나 이것은 사용자가 이미 사용 가능한 사운드 카드에 대한 별칭을 생성한다는 맥락에서 완전히 다릅니다.


편집 :
/ dev /.에서 더미 장치를 만들려면 사운드 장치가 필요한 모든 응용 프로그램에서 찾을 수 있습니다.
나는 완전히 알지 못합니다. 그래서 나는 단순히 예제를 따랐습니다. 나는 /etc/asound.conf를 다음과 같이 만들었다 :

pcm.card0 {
    type hw
    card 0
}
ctl.card0 {
    type hw
    card 0
}

그리고 aplay -L나에게 :

null
    Discard all samples (playback) or generate zero samples (capture)

예, Alsa에는 "더미"사운드 장치가 있습니다. 그러나 정확히 "부적절한"항목에 ​​대해 자세히 설명해야합니다. 소프트웨어 등에 의해 감지되지 않는 오류 메시지. 또한 대상 "linux program"은 ALSA를 전혀 사용합니까? 그렇지 않은 경우 ALSA 구성 파일을 엉망으로 만들면 많은 도움이되지 않습니다.
haimg

/ dev / ...에서 가상 사운드 장치를 만들고
싶습니다

자세한 내용은 편집을 참조하십시오.
ssapkota

답변:


14

더미 사운드 드라이버 를로드해야합니다 . 자세한 내용은 Alsa Wiki 를 참조하십시오. 그러나 기본 사항은 다음과 같습니다.

  1. 드라이버를로드하십시오.

    모드 프로브 snd-dummy; 모드 프로브 snd-pcm-oss; 모드 프로브 snd-mixer-oss; 모드 프로브 snd-seq-oss

  2. 적절한 .asoundrc 파일을 가지고 있어야합니다.

  3. 드라이버 자동로드를 구성하십시오. 이것을 다음에 추가하십시오 /etc/modules.conf:

    # OSS / 무료 부분-카드 # 1
    별칭 사운드 슬롯 -0 snd-card-0
    별칭 사운드 서비스 -0-0 snd-mixer-oss
    별칭 사운드 서비스 -0-1 snd-seq-oss
    별칭 사운드 서비스 -0-3 snd-pcm-oss
    별칭 사운드 서비스 -0-8 snd- seq-oss
    별칭 사운드 서비스 -0-12 snd-pcm-oss

실제로 몇 가지 관련이 있습니다. 자세한 설명은 위의 Wiki 페이지를 방문하십시오.


질문. 사운드 카드를 Linux로 시뮬레이션 한 다음 alsa, OSS 등으로 Linux 커널 장치 드라이버를 작성할 수 있습니까? Linux 장치를 읽고 가능한지 스스로 묻습니다.
deFreitas

시퀀서의 핵심 모듈은 이제 snd-seq-dummy로 표시됩니다.
DBrown

11

Raspian (Debian의 파생)을 실행하는 Raspberry Pi에서 작동하는 Dummy Sound 장치를 가져 오려고 할 때도이 문제가 발생했습니다. Pi on에는 오디오 출력이 있지만 입력이 없으며 출력 (PJSIP) 만 필요하더라도 두 가지를 모두 찾는 응용 프로그램을 사용하고 싶습니다.

그러나 위의 정보는 저에게 효과적이지 않으며 WiKi 페이지도 아닙니다. ALSA 메일 링리스트에서 사용자와 대화 한 후 WikI 페이지의 정보가 최신 상태가 아니라고 제안했지만이 문제를 해결하는 방법에 대한 지침을 제공했습니다.

먼저, 다음을 사용하여 'snd-dummy'모듈 만로드하면됩니다.

sudo modprobe snd-dummy

그러나 재부팅 후에도 장치가 계속 존재하지 않습니다. Pi에서이 모듈은 '/ etc / modules'파일을 통해로드 될 수 있으며이 파일을 편집하여 드라이버를로드하면 원하는 결과가 나타납니다.

sudo nano /etc/modules

내 / etc / modules 파일은 다음과 같습니다.

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
snd-dummy

따라서 기본 드라이버가 먼저로드 된 다음 더미 드라이버가 두 번째로로드됩니다. 작업 완료!

행운을 빕니다

크리스


@ logoff rasberry pi뿐만 아니라 도커 컨테이너에서도 작동한다고 생각하십니까?
thataustin

@ thataustin Docker 컨테이너에 하드웨어에 대한 액세스 권한을 부여해야한다고 생각합니다. Docker없이 먼저 시도하고 성공하면 Docker로 시도하십시오.
로그 오프

0

입력 장치가 필요하기 때문에 RaspberryPi의 Linphone에도 사용하지만 가짜 _ 버퍼 = 0 매개 변수를 추가해야했습니다. 그렇지 않으면 더미 캡처 장치가 많은 임의의 노이즈를 잡을 수 있습니다. 그것은 좋아한다 :

sudo modprobe snd-dummy fake_buffer=0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.