
Arch Linuxに限らず、その他のディストリビューションで、音が出ないトラブルに遭遇することがある。通常のユーザーなら「スピーカーが壊れた」「音量設定の問題」くらいしか思い当たらない。
しかし実際には、音声出力に関わる複数のソフトウェア層が連携して動作し、その過程のどこかでトラブルが存在している。音の出る仕組みを理解すると、問題の原因を特定しやすくなるはずだ。
音が出るメカニズム
Arch Linuxで音を出す仕組みは、複数の層が順番に処理を受け渡す構造になっている。まずLinuxカーネルのALSAがハードウェアと直接やり取りを行い、ユーザー空間のサウンドサーバが音をまとめ、最後にアプリが音を送る形で動作する。
1. カーネルレベル(ALSA)
Linuxカーネルには ALSA (Advanced Linux Sound Architecture) が組み込まれている。
これはサウンドカードやオンボードチップを直接制御する最下層で、aplay コマンドでWAVファイルを鳴らせるのもALSAのおかげである。
ただし、ALSAだけでは複数アプリが同時に音を出すとデバイスを奪い合うことがある。
2. ユーザー空間のサウンドサーバ
現在の標準は PipeWire で、以前はPulseAudioが主流だった。
PipeWireはアプリから送られる音を受け取り、ミキシングや出力先の切り替えを行う中継役である。
アプリは PulseAudio互換ライブラリ や ALSAプラグイン を通してPipeWireに音を渡す。pipewire-pulse サービスがPulseAudioのAPIをエミュレートするため、古いアプリも問題なく動作する。
3. セッション管理
PipeWire単体は音の通り道にすぎないため、ルーティングやデバイス管理をする別のデーモンが必要である。その役割を担うのが WirePlumber で、どのデバイスから音を入力し、どこに出力するかを制御する。WirePlumberが動作していないと、音のルートが正しく設定できない。
4. アプリケーション
ブラウザや音楽プレイヤーは、ALSAやPulseAudio互換APIを通じてPipeWireに音を送る。PipeWireが受け取った音をWirePlumberで適切にルーティングし、最終的にALSA経由でハードウェアに届ける。
流れを図示すると
アプリケーション (Firefox, mpv, etc.)
│
PulseAudio互換API / ALSAプラグイン
│
PipeWire (音の中継)
│
WirePlumber (ルーティング管理)
│
ALSA (カーネルドライバ)
│
ハードウェア (サウンドカード / DAC)この構造のおかげで、Arch Linuxでは
- ALSAだけの最小構成
- PulseAudioを追加して中継を強化
- PipeWireで最新の管理機能を利用
のように目的や環境に合わせて柔軟に音の構成を選べる。
ALSAだけで音を鳴らす最小構成の解説
Arch Linuxで最小構成にする場合、ALSAだけで音を出すことができる。PipeWireやPulseAudioを使わず、カーネルと直接やり取りする「生音直結」な状態だ。シンプルな仕組みなので軽量だが、いくつか制約もある。
1. 必要なパッケージ
極限まで削った場合、必要なのは alsa-utils だけである。
sudo pacman -S alsa-utilsこの中には以下のツールが含まれる。
- aplay:WAVファイルを再生する
- amixer:コマンドラインで音量を調整する
- alsamixer:ターミナル上で操作できるミキサーUI
※ALSA自体はカーネルに組み込まれているので追加インストールは不要。
2. デバイス確認
まずサウンドカードが認識されているか確認する。
aplay -l出力例:
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]これでカード番号やデバイス番号を把握できる。
3. 音を鳴らす
WAVファイルがあれば、すぐに再生可能である。
aplay /usr/share/sounds/alsa/Front_Center.wav4. 音量調整
初期状態ではミュートされていることが多い。alsamixer を使って確認しよう。
- M キーでミュートを解除
- ↑↓キーで音量を調整
5. 音量設定の保存
再起動で音量設定がリセットされるので、保存・復元しておくと便利。
sudo alsactl store
sudo alsactl restoresystemdサービスに組み込むと、起動時に自動で復元できる。
6. ALSA最小構成の制約
- 同時再生不可:FirefoxでYouTube再生中はmpvで音を出せない
- Bluetoothオーディオが面倒:BlueZと連携して細かく設定する必要がある
- アプリ依存:ALSA出力に対応していないアプリは音が出ない
ALSAだけの最小構成は軽量で学習用や実験向きではあるが、デスクトップで快適に使うならPipeWireやPulseAudioを間に挟む方が便利である。
PipeWire構成の全体像と運用イメージ
Arch LinuxでPipeWireを使う場合、音の流れは層ごとに整理されている。アプリが音を出すと、ALSAやPulseAudio互換APIを通じてPipeWireに渡り、WirePlumberがルーティングを管理したうえでカーネルのALSAドライバに送られ、最終的にハードウェアから音が出る。
アプリ (Firefox, mpv, Steam など)
│
ALSAプラグイン / PulseAudio互換API
│
pipewire-pulse (PulseAudio互換デーモン)
│
PipeWire (音声ストリームの中継と処理)
│
WirePlumber (ルーティング・デバイス管理)
│
ALSA (カーネルのドライバ)
│
ハードウェア (サウンドカード / USB DAC)必要なパッケージ
Arch Linuxでは以下をインストールする。
sudo pacman -S pipewire pipewire-pulse pipewire-alsa wireplumber- pipewire:音声ストリームを中継する本体
- pipewire-pulse:PulseAudio互換APIを提供し、古いアプリも動作
- pipewire-alsa:ALSAアプリをPipeWire経由にするプラグイン
- wireplumber:セッションマネージャ。音のルーティングを制御
Bluetoothオーディオを使う場合は、pipewire-audio と pipewire-bluetooth を追加する。
systemdでの起動
PipeWireはユーザーサービスとして動作する。状態確認:
systemctl --user status pipewire
systemctl --user status wireplumberinactiveなら有効化する
systemctl --user enable --now pipewire pipewire-pulse wireplumber動作確認
- 出力デバイス一覧
pactl list short sinks- 音をテスト
speaker-test -c 2- 音量調整はPulseAudio互換の pavucontrol で操作可能
sudo pacman -S pavucontrolALSA単体との違い
- 同時再生が可能:YouTubeとmpvを同時に再生できる
- デバイス切替が容易:スピーカー、USB-DAC、Bluetoothヘッドホンの切替が簡単
- 低遅延対応:音楽制作ソフトでも使用可能
- 将来性:Waylandや映像処理との親和性が高い
運用イメージ
ユーザーはFirefoxやVLCを起動するだけで音が出る。アプリは「PulseAudioに出している」感覚で音をPipeWireに渡す。ユーザーは pavucontrolやデスクトップ環境のサウンド設定から音量や出力デバイスを操作するだけで済む。
PipeWireは音声だけでなく映像も扱えるため、Webカメラや画面共有、ZoomやWaylandのスクリーンキャストも同じ仕組みで動作する。






