리눅스에서 PipeWire 설치 및 구성하는 방법

Pipewire Studio

2017년에 등장한 이후, PipeWire는 PulseAudio를 대체할 강력한 경쟁자로 자리매김했지만 여전히 안정성에 대한 해결해야 할 문제가 많았습니다. 이제 수년이 지나 강력한 리눅스 오디오 서비스로서의 명성을 얻게 된 PipeWire에 업그레이드하는 것이 정말 가치 있는지 사용자들의 궁금증이 커지고 있습니다. 이 기사에서는 PipeWire와 PulseAudio의 장단점에 대한 최신 정보를 제공하고, 원하는 경우 시스템에 올바르게 설치하는 방법을 보여드리겠습니다.

목차

  • PipeWire란 무엇인가?
  • PipeWire 설치 방법
  • 자주 묻는 질문

PipeWire란 무엇인가?

리눅스의 오디오는 항상 계층 구조를 따라왔습니다: 드라이버를 설치하면 장치가 작동하게 되지만, 애플리케이션은 여전히 자신만의 방식으로 그와 대화하고자 합니다. 이를 위해 서버가 사용자 공간에서 중개자로 작용하여 커널과 “대화”하고, 커널은 다시 컴퓨터 하드웨어와 소통합니다.

Pipewire Control

고급 리눅스 사운드 아키텍처(Advanced Linux Sound Architecture, ALSA)는 애플리케이션과 커널 사이의 간단한 중개 역할을 잘 수행하지만, 더 많은 복잡성이 필요할 경우 오디오 서버가 필요합니다.

Pipewire Alsamixer

PulseAudio와 PipeWire 모두 커널의 기능 위에 레이어를 추가하여 다양한 기능을 도입합니다. 이들은 여러 애플리케이션이 오디오를 스트리밍할 수 있게 하고, 세밀한 믹서 제어 기능을 제공하며, 상용 운영 체제가 제공하는 어플리케이션 모음의 기능을 뛰어넘는 방식으로 오디오 스트림을 실시간으로 후처리할 수 있게 합니다.

두 가지의 차이점은 PipeWire의 레이어가 비디오 스트리밍 관리와 같은 다른 기능을 추가하면서, PulseAudio가 신규 사용자에게 불편했던 일부 문제를 해결한다는 것입니다.

2017년 도입 이후 PipeWire의 안정성 문제는 지속적으로 사라졌습니다. 현재 Fedora, Arch 기반의 Manjaro, EndeavourOS, Garuda 등 다양한 배포판의 기본 사운드 서버로 자리 잡았고, Ubuntu 22.10에도 도입되었습니다.

Pipewire Eq

대부분의 사람들에게 변화는 매우 매끄러워, 오디오 사용 능력이 시스템에서 확장된 것으로만 느껴졌고, 이는 오래된 PulseAudio 프레임워크에 대한 직접적인 업그레이드로써 강력한 서비스로 자리잡았다 는 것을 나타냅니다.

PipeWire로 업그레이드하는 것이 당연하게 생각될 수 있지만, 잠시 물러서서 결정을 내리기 위한 뉘앙스를 탐구해야 합니다. 이 단계에 착수하는 경우 어떤 것에 서명하는 것인지 명확하게 알 수 있습니다:

장점

  • PipeWire는 이전에 PulseAudio에서 완전히 작동하지 않았던 다양한 Bluetooth 오디오 장치에 대한 광범위한 지원을 제공합니다. Bluetooth 하드웨어가 배포판에서 제대로 작동하지 않는다면, 변경하는 것이 도움이 될 수 있습니다.
  • 많은 배포판이 이미 기본 오디오 서비스로 PipeWire를 포함하기 시작했으며, 기본적으로 마주치는 모든 것에 대해 공식 저장소에서 많은 지원을 누릴 수 있습니다.
  • PipeWire는 동시에 여러 장치에 오디오를 스트리밍할 때 지연 시간을 훨씬 더 효율적으로 처리합니다.
  • EasyEffects(이전 PulseEffects)와 같은 후처리기는 최근 릴리스에서 PulseAudio 지원을 중단했거나 곧 중단할 계획이므로, 이러한 애플리케이션이 제공하는 유연성을 유지하기 위해 PipeWire로 이동할 필요가 있습니다.
  • 이 기능은 더 전문적인 오디오 설치 및 애플리케이션에 관심이 있는 사람들에게 더 친숙합니다.
  • PipeWire는 비디오 스트림을 위한 파이프라인을 지원하여 화면 공유 애플리케이션이 보다 강력하고 안전한 환경을 즐길 수 있도록 합니다.
  • PipeWire의 서비스 스위트는 pipewire-pulse와 함께 제공되어 PulseAudio의 API 및 오디오 관리 기능을 사용하는 애플리케이션에 대한 지원을 확장합니다.
  • 높은 CPU 부하 하에서도 크랙킹이 덜 발생합니다.

단점

  • 구성은 항상 PulseAudio에서 직접 변환되지 않습니다. 완전히 새로운 구성 방식을 배워야 합니다.
  • PipeWire에는 직관적인 연결 논리가 없으므로, 오디오 출력을 듣고 적절하게 라우팅할 다른 서비스가 필요합니다. 이것이 반드시 단점은 아니지만, 세션 관리자를 구성하여 고급 튜닝을 하는 방법도 배워야 하므로 다소 불편할 수 있습니다.
  • 이 기사가 작성되는 동안 상황은 변하고 있지만, 커뮤니티에서의 문서화 및 지원은 여전히 PulseAudio만큼 광범위하지 않습니다.

: PulseAudio를 사용하여 다른 장치로 오디오를 캐스트하는 방법을 알아보세요.

PipeWire 설치 방법

시스템에 PipeWire를 설치하고 싶다면, 먼저 이미 설치된 상태가 아닌지 확인해야 합니다!

터미널에 pactl info를 입력하고 “서버 이름(Server Name)” 아래에 무엇이 표시되는지 확인하세요. 괄호 안에 “on PipeWire”라고 표시되면, 이미 PipeWire를 실행 중입니다.

Pipewire Servercheck

터미널에 “PulseAudio”만 표시되면, 시스템에서 PipeWire를 실행하고 있지 않은 것입니다.

1. 시스템 백업하기

Pipewire Backup

문제가 발생할 경우를 대비하여 백업을 만들어두세요! 시스템 백업을 생성하지 않았다면, 더 진행하기 전에 지금 바로 백업을 생성하시기 바랍니다. 가장 쉬운 방법은 Timeshift를 사용하는 것이지만, 시스템 파일의 전체 백업을 생성하는 다른 유틸리티를 사용하셔도 됩니다.

2. 서비스 설치하기

모든 PipeWire 설치는 기본 서비스에서 시작됩니다. 배포판과 함께 이미 설치되었을 가능성도 있지만, 설치되어 있지 않다면 다음 명령어로 설치할 수 있습니다.

Arch 기반 시스템에서:

sudo pacman -S pipewire pipewire-alsa

Ubuntu/Debian 기반 시스템에서:

sudo apt install pipewire

알아두면 좋은 점: APT 명령어에 대해 알아보세요.

3. 세션 관리자 설치하기

PipeWire는 자체 연결 논리가 없으므로, 세션 관리자를 설치해야 합니다. WirePlumber는 더 세밀한 구성과 추가 플러그인을 제공하는 세션 관리자입니다.

Arch 기반 시스템에서:

sudo pacman -S wireplumber

Ubuntu/Debian 기반 시스템에서:

sudo apt install wireplumber

더 간단한 버전을 선호하거나 배포판의 공식 저장소에 WirePlumber가 없다면, PipeWire 미디어 세션을 설치할 수도 있습니다.

Arch 기반 시스템에서:

sudo pacman -S pipewire-media-session

Ubuntu/Debian 기반 시스템에서:

sudo apt install pipewire-media-session

4. PulseAudio 데몬 설치하기

시스템의 많은 애플리케이션이 여전히 PulseAudio에 호출을 보내기 때문에, 오디오가 제대로 작동하도록 하려면 PipeWire의 데몬을 설치해야 합니다.

Arch 기반 시스템에서:

sudo pacman -S pipewire-pulse

Ubuntu/Debian 기반 시스템에서:

sudo apt install pipewire-pulse

5. PulseAudio 흔적 제거하기

이 과정에서 설치 중 다른 항목과 충돌로 인해 PulseAudio 제거를 확인해야 했다면 (보통 pipewire-pulse) 이 단계를 건너뛸 수 있습니다.

그렇지 않다면, 시스템에서 PulseAudio를 제거하여 쿼리하지 않도록 하는 것이 중요합니다.

Arch 기반 시스템에서:

sudo pacman -Rns pulseaudio

Ubuntu/Debian 기반 시스템에서:

sudo apt remove pulseaudio

6. 서비스 준비하기

설치 및 제거한 모든 패키지와 함께, 이제 PipeWire를 실행할 준비를 해야 합니다.

먼저, pulseaudio 서비스의 잔여물을 제거합니다:

systemctl --user --now disable pulseaudio.service pulseaudio.socket  
systemctl --user mask pulseaudio

PipeWire의 서비스를 활성화합니다. WirePlumber를 설치한 경우:

systemctl --user --now enable pipewire pipewire-pulse wireplumber

PipeWire 미디어 세션을 설치한 경우, 다음을 사용합니다:

systemctl --user --now enable pipewire pipewire-pulse pipewire-media-session

시스템을 재부팅한 후, PipeWire는 이제 완벽하게 작동해야 합니다!

: 리눅스 시스템에서 소리가 나지 않는 문제를 해결하는 방법은 여기서 확인할 수 있습니다.

자주 묻는 질문

ALSA만 사용할 수 있나요?

확실히 시스템에서 ALSA만 실행할 수 있지만 (특히 데스크탑 환경 대신 창 관리자 사용 시) 그다지 즐겁지 않을 것입니다. ALSA는 동시에 하나의 오디오 스트림만 재생할 수 있습니다. 나쁘지 않게 들리겠지만, 이는 알림 소리가 비디오 재생 중 발생할 때 시스템이 예측할 수 없게 작동할 수 있음을 의미합니다. ALSA 위에 사운드 서버를 사용하는 것이 더 편리하지만, 작은 메모리 오버헤드를 수반합니다.

Linux Mint Cinnamon에 PipeWire를 설치할 수 있나요?

절대 가능합니다! Cinnamon은 정상적인 PipeWire 설치를 완료했을 때 오디오 위젯이 표시되지 않는 다소 깜짝 놀라운 순간이 있지만, 지침에 따라 설치를 완료하면 재부팅 순간에 다시 나타납니다. PulseAudio의 잔여물을 제거하는 것을 잊지 마세요, 그러면 잘 진행될 것입니다!

잠자기 후 오디오 문제를 어떻게 해결하나요?

컴퓨터의 오디오가 잠자기에서 깨어났을 때 작동하지 않으면, ALSA가 제대로 초기화되지 않은 것이 원인일 가능성이 높습니다. 이러한 경우에는 수동으로 ALSA를 초기화하는 명령어인 alsactl init를 실행하세요.

이 작업이 완료되면 모든 오디오 문제는 사라질 것입니다!

이미지 출처: pxhere