Linux Sounds: 어떻게 작동하며 JACK을 사용하려면 왜 3가지 아키텍처를 연결해야 합니까?

Linux Sounds: 어떻게 작동하며 JACK을 사용하려면 왜 3가지 아키텍처를 연결해야 합니까?

Linux 입문자: Jack을 사용하는 방법? Linux 사운드는 어떻게 작동합니까?

ALSA 또는 JACK을 통해 사운드를 출력하려고 하는 애플리케이션이 있는데 소리가 전혀 들리지 않습니다.

다음은 몇 가지입니다.기사를 통해 ALSA는 Linux용 커널 모드 사운드 드라이버이고 libasound는 애플리케이션 프로그래밍 인터페이스용 사용자 공간 라이브러리라는 것을 알게 되었습니다.

또한 PulseAudio 및 JACK은 여러 애플리케이션이 여러 하드웨어 및 애플리케이션을 제어할 수 있게 해주는 오디오 서버/라우터입니다.

이건 좋은데기사라우팅 방법 all-applications -> jack -> PulseAudi -> ALSA. 간단해 보이지만 왜 그렇게 많은 레이어가 필요한지 이해가 되지 않습니다. 그냥 잭에게 알사로 가는 게 어때요?

  • alsa를 사용하여 클라이언트 애플리케이션을 나열하는 방법은 무엇입니까? (아무 소리도 들리지 않는 이유를 알아내야 합니다)
  • jack을 alsa로 직접 라우팅하는 방법은 무엇입니까? 아니면 이전 게시물에서 지적한 대로 PulseAudio를 통해 라우팅해야 합니까?
  • 이 모든 작업이 완료되면 하이재킹하려는 모든 클라이언트 애플리케이션에 대한 정보를 어떻게 나열합니까?

답변1

나는 당신이 혼란스러워하는 것을 이해합니다. 나도 거기에 가봤습니다 :)

JACK과 마찬가지로 PulseAudio도 어떤 의미에서는 사운드 서버이지만 목표가 다르다는 점을 먼저 이해해 보겠습니다. JACK은 전문 오디오 사용자/음악가를 대상으로 하는 반면 PA는 사용하기 쉽도록 설계되었습니다.

오디오 경로가 귀하의 질문과 약간 다릅니다.

all-applications->PA to jack sink->jack audio server -> libasound and ALSA.

이런 방식으로 PA(일반적으로 기본 오디오 출력(수신기))는 사운드를 잭으로 전송합니다. 위의 내용은 잭의 정션 박스에서 다음과 같습니다(싱크 및 소스 모듈이 로드된 후 load-module).

잭 패치비

시스템 항목은 ALSA 백엔드에서 제공되는 반면 PA JACK 싱크 및 소스는 PA to Jack 모듈에서 제공됩니다.

특정 우분투 버전을 실행하는 경우 qjackctl -> 설정 -> "옵션" 탭 -> 부팅 후 실행에 다음을 추가할 수 있습니다.

pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source channels=2; pactl set-default-sink jack_out; pactl set-default-source jack_in

위의 내용은 "PA-잭" 모듈(채널 L+R당 2개)을 로드하고 모든 애플리케이션에 대한 기본 재생 장치를 PA-잭 싱크 모듈로 설정해야 합니다. 또한 라인/마이크 입력을 PA-잭 소스 입력에 연결하므로 기본 입력 장치(예: Skype)에 대한 액세스가 필요한 애플리케이션이 PA-잭 소스 모듈을 통해 이를 얻을 수 있습니다.

이제 애플리케이션이 ALSA로 사운드를 출력하는 경우 기본 장치(즉, pulseaudio를 통해)를 통해 재생되어야 합니다. 이것은 질문을 제기합니다. Jack이 정말로 필요합니까? 그거 어떤 앱이에요?

어쨌든 애플리케이션이 잭을 지원하는 경우 qjackctl의 패치 패널에 표시되어야 하며 필요한 경우 오디오 경로에 연결할 수 있습니다.

자세한 내용은 다음을 참조하세요.여기. 그리고 잭의자주하는 질문그리고위키피디아매우 도움이 됩니다.

관련 정보