HOME TIP & TECH

TIP & TECH

TIP & TECH More information
ubuntu 에서 ffado 와 jack 을 사용하기

onionmixer 2019-05-22 21:57:00 2809

1. ffado 는 linux 에서 firewire 사운드 모듈(M-audio FW410 등)을 사용하는 경우에 쓰이는 라이브러리 입니다. 이 프로젝트의 결과물은 일부 ALSA 로 편입되었습니다만, 그럼에도 불구하고 최신의 사운드 모듈 지원은 ffado 에서 보다 많고 정확하게 지원되고 있습니다.
2. jack 은 alsa 또는 ffado 등의 backend 를 사용하는 sound stream system 입니다. pulseaudio 처럼 low latency 를 지원하려는 경우에는 많이 선호되는 시스템입니다.
3. pulseaudio 는 systemd 를 만든 웬수(?)가 만든 sound stream system 입니다. 대부분의 gnome 또는 desktop application 에서 pulseaudio API 를 지원하는 경우가 많습니다.


제 경우는 alsa - pulseaudio 를 그럭저럭 사용하려 했습니다만.. pulseaudio daemon 이 가끔 죽는 바람에 linux 자체를 재부팅해야하는 경우들이 종종 있어왔습니다. 어차피 alsa 에서는 alsamixer 등을 통해 FW410 의 볼륨조절등이 불가능하며, alsa-pulseaudio 에서는 FW410 의 mixer channel 의 전 기능을 제대로 제어하지 못합니다. 예를들자면.. 전면의 헤드폰 단자로 일반 PCM output 을 지정한다던가 하는등의 기능을 사용할 수 없다는 얘기죠. 일단 몇가지의 테스트를 거친 결과 다음과 같은 구조로 ffado,alsa,jack,pulseaudio 를 사용할 수 있도록 세팅하였습니다.




이런 구조에서 ffado 는 자칫 쓸모없이 보입니다만, 그럼에도 FW410 의 볼륨등의 기능제어를 하려면 FFADO-mixer 를 통한 제어가 필요합니다. 제대로 ffado 와 jack 이 연결된 상태는 다음과같은 화면으로 확인할 수 있습니다.(qjackctl, ffado-mixer)





다음과 같은 과정으로 이러한 환경을 만들 수 있습니다.

root 상태에서 다음의 명령으로 패키지를 설치합니다.

apt install ffado-dbus-server ffado-mixer-qt4 ffado-tools libffado-dev libffado2

root 상태에서 다음의 명령으로 패키지를 설치합니다.

apt install jack-capture jackd2 jackd2-firewire libjack-jackd2-0 libjack-jackd2-dev pulseaudio-module-jack qjackctl zita-ajbridge


linux desktop 을 사용하기 위한 일반 사용자 계정으로 다음의 명령을 순서대로 실행합니다.
ffado-dbus-server -v3
ffado-mixer
qjackctl


qjackctl 의 프로그램화면에서 setup - options - execute script after startup 부분에 아래의 내용을 넣어줍니다.

pacmd load-module module-jack-source channels=2; pacmd load-module module-jack-sink channels=2;

다시 qjackctl 을 실행하고 qjackctl 에서 "start" 를 누르는 것 만으로 원하는 결과를 얻을 수 있습니다. 물론 이경우 pulseaudio daemon 이 사용자 권한으로 작동하고 있는지를 ps 명령어등으로 미리 확인해 두는 것이 좋습니다.


이렇게 사운드 시스템을 구성한

댓글 1개

  • onionmixer 2019-10-24 23:24:08

    추가(?)로 jack-tools 와 meterbridge 도 설치대상(?)에 들어가네요 :D

Previous / Next
Previous sparcbook 과 openboot
Next ubuntu 에서 콘솔 폰트를 변경하려 할때