iMac Retina 5K (2015) に Debian 13 を導入した環境で、内蔵スピーカーは鳴るのに、ヘッドフォン端子へ接続した EarPods だけが無音になりました。GNOME ではアナログヘッドフォンとして認識され、ジャック検出、ミュート、音量にも異常は見当たりませんでした。
この環境では、snd-hda-intel に model=imac27_122 を指定して再起動すると、EarPods から音が出るようになりました[1]。
最終的な設定は次の 1 行です。
options snd-hda-intel model=imac27_122
ただし、この設定はすべての iMac に共通するものではありません。iMac 2015、Debian 13、Cirrus Logic CS4206、内蔵スピーカーは正常で EarPods だけが無音という条件を確認してから適用します。
対象環境と症状
対象とした iMac 2015 は Debian 13 で運用している環境です[2]。
| 項目 | 確認した内容 |
|---|---|
| 本体 | iMac Retina 5K (2015) |
| OS | Debian 13 |
| 機種識別子 | iMac17,1 |
| 音声コーデック | Cirrus Logic CS4206 |
| Subsystem ID | 0x106b8200 |
| 正常な出力 | 内蔵スピーカー |
| 異常な出力 | ヘッドフォン端子へ接続した EarPods |
本記事の手順は、次の症状を対象とします。
- 内蔵スピーカーからは音が出ます。
- EarPods を挿すとアナログヘッドフォンとして認識されます。
- 出力先をアナログヘッドフォンへ変更できます。
- ミュートを解除して音量を上げても EarPods から音が出ません。
内蔵スピーカーも鳴らない場合や、ヘッドフォン端子への挿入自体が認識されない場合は、別の原因を先に調べます。
iMac 2015 と音声コーデックを確認する
最初に OS、機種識別子、音声カードを確認します。
cat /etc/os-release
cat /sys/class/dmi/id/product_name
cat /proc/asound/cards
find /proc/asound -maxdepth 2 -type f -name 'codec#*' -print
機種識別子として次の値が表示されることを確認します。
iMac17,1
/proc/asound/cards では、内蔵アナログ音声と HDMI 音声を区別します。原典の環境では、内蔵音声が card0、Radeon 側の HDMI 音声が card1 でした。カード番号は環境によって変わるため、表示結果に合わせて以降のコマンドを調整します。
内蔵音声が card0、対象コーデックが codec#0 の場合は、次のように確認します。
head -20 "/proc/asound/card0/codec#0"
原典では次の値が表示されました。
Codec: Cirrus Logic CS4206
Vendor Id: 0x10134206
Subsystem Id: 0x106b8200
機種、コーデック、症状が異なる場合は、model=imac27_122 をそのまま適用せず、対応するモデル指定を別途確認します。
PipeWire の出力先を確認する
GNOME でアナログヘッドフォンが選択されていても、まず PipeWire 上の既定出力を確認します。wpctl status は、PipeWire が管理している機器、出力先、入力元、再生中のストリームを表示します[3]。
wpctl status
wpctl inspect @DEFAULT_AUDIO_SINK@
wpctl get-volume @DEFAULT_AUDIO_SINK@
次の状態であることを確認します。
-
Sinksに内部オーディオのアナログステレオが存在します。 - 内部オーディオの行に
*が付き、既定の出力先になっています。 - HDMI 出力だけが選択された状態ではありません。
-
wpctl get-volumeの結果にMUTEDがなく、音量が0.00ではありません。
内部アナログ出力が存在しない場合は、snd-hda-intel のモデル指定へ進む前に、PipeWire、WirePlumber、ALSA のデバイス認識を確認します。
ALSA のジャック検出と音量を確認する
次に、ALSA が公開しているヘッドフォン関連の制御値を確認します。amixer の -c は対象の音声カード番号を指定し、controls と contents はカードの制御項目と現在値を表示します[4]。
内蔵音声が card0 の場合は、次のコマンドを実行します。
amixer -c0 controls | grep -iE 'headphone|auto|mute'
amixer -c0 contents | grep -A5 -i headphone
原典では、次の値が確認できました。
Headphone Jack: values=on
Headphone Playback Switch: values=on,on
Headphone Playback Volume: values=115,115
115,115 は原典で観測した値であり、必須値ではありません。判断に使うのは、次の 3 点です。
| 確認対象 | 次の手順へ進む条件 |
|---|---|
Headphone Jack |
values=on |
Headphone Playback Switch |
左右とも on
|
Headphone Playback Volume |
ゼロではない |
ジャックが off の場合は挿入検出を、再生スイッチが off の場合はミュート設定を、音量がゼロの場合は音量設定を先に修正します。これらが正常でも EarPods が無音の場合は、HDA コーデック内部の状態を確認します。
HDA コーデックのヘッドフォン出力を確認する
HDA は、PC の内蔵音声を扱う仕組みです。snd-hda-intel が制御する HDA コントローラには音声コーデックが接続され、コーデック内部のピンがスピーカーやヘッドフォン端子への出力を制御します[5]。
原典の Cirrus Logic CS4206 では、Node 0x0a がヘッドフォン出力でした。音声を再生しながら、別の端末で状態を確認します。
pw-play /usr/share/sounds/alsa/Front_Center.wav
sed -n '/Node 0x0a/,/Node 0x0b/p' \
"/proc/asound/card0/codec#0"
原典では次の状態でした。
Node 0x0a [Pin Complex]
Pin Default 0x002b4020: [Jack] HP Out at Ext N/A
Power: setting=D0, actual=D0
Pin-ctls: 0x40: OUT
確認する要点は次のとおりです。
-
Pin DefaultがHP Outになっています。 - 再生中の電源状態が
D0になっています。 - 再生中でも
Pin-ctlsが0x40: OUTのままです。
Node 番号はコーデックと実装によって変わります。Node 0x0a を固定的に信用せず、Pin Default に HP Out と表示されるピンであることを確認します。
PipeWire の出力先、ALSA のジャック検出、ミュート、音量が正常で、ヘッドフォン出力ピンだけが十分に初期化されていない場合は、snd-hda-intel の機種別設定へ進みます。
snd-hda-intel の model 指定を確認する
Linux の HDA ドライバーには、機種固有の構成が自動判定されない場合に、既知のモデルを model=<name> で指定する仕組みがあります[6]。Cirrus Logic CS4206/4207 のモデル一覧には imac27_122 が定義されています[7]。
model パラメーターを受け取るモジュールを確認します。
modinfo -p snd_hda_intel | grep '^model:'
modinfo -p snd_hda_codec_cirrus | grep '^model:'
model を指定する相手は、コーデック名を含む snd_hda_codec_cirrus ではなく、HDA コントローラ側の snd_hda_intel です。
既存の設定と競合しないことも確認します。
grep -RnsE --include='*.conf' \
'^[[:space:]]*options[[:space:]]+snd[-_]hda[-_]intel.*model=' \
/etc/modprobe.d \
/run/modprobe.d \
/usr/local/lib/modprobe.d \
/usr/lib/modprobe.d \
/lib/modprobe.d \
2>/dev/null
別の model= 指定が見つかった場合は、その設定を追加した目的を確認してから変更します。同じパラメーターを複数の設定ファイルへ重複して書くと、後から有効な設定を判別しにくくなります。
model=imac27_122 を設定する
/etc/modprobe.d/mac-fix.conf を作成します。modprobe.d の options 行は、対象モジュールを読み込む際に指定したオプションを追加します[8]。
printf '%s\n' \
'options snd-hda-intel model=imac27_122' | \
sudo tee /etc/modprobe.d/mac-fix.conf
作成した内容を確認します。
cat /etc/modprobe.d/mac-fix.conf
期待する内容は次の 1 行です。
options snd-hda-intel model=imac27_122
modprobe が読み取る設定にも反映されていることを確認します。
modprobe -c | \
grep -E '^options snd_hda_intel .*model=imac27_122'
確認後に再起動します。
sudo reboot
再起動後に EarPods の出力を確認する
再起動後、EarPods を接続して既定出力と音量を確認します。
wpctl status
wpctl get-volume @DEFAULT_AUDIO_SINK@
pw-play /usr/share/sounds/alsa/Front_Center.wav
次の順序で動作を確認します。
- EarPods から音が出ることを確認します。
- EarPods を抜き、内蔵スピーカーから音が出ることを確認します。
- EarPods を挿し直し、再び音が出ることを確認します。
- 電源を切って起動し直しても設定が有効であることを確認します。
- サスペンドから復帰した後の出力を確認します。
- カーネル更新後に同じ設定が必要かを再確認します。
成功条件は、設定ファイルが存在することではなく、再起動後に EarPods から実際に音が出ることです。
設定を元に戻す
設定が効かない場合や、カーネル更新によって不要になった場合は、設定ファイルを削除して再起動します。
sudo rm /etc/modprobe.d/mac-fix.conf
sudo reboot
設定を退避してから無効化する場合は、拡張子を .conf 以外へ変更します。
sudo mv \
/etc/modprobe.d/mac-fix.conf \
/etc/modprobe.d/mac-fix.conf.disabled
sudo reboot
留意事項
-
model=imac27_122は、すべての iMac や Cirrus Logic CS4206 搭載機に適用できる一般設定ではありません。 -
card0、codec#0、Node0x0aは原典の環境での値です。実際の表示結果に合わせて読み替えます。 -
Headphone Playback Volumeの115,115は観測値であり、設定すべき固定値ではありません。 - HDA ピンへ
hda-verbで値を直接書く方法は恒久設定として採用しません。原典では0xc0を書き込んでも、直後に0x40へ戻りました。 - サスペンド復帰とカーネル更新では、起動時とは異なる再初期化やドライバー変更の影響を受ける可能性があります。
- 将来のカーネルで自動判定が修正された場合は、明示的な
model指定が不要になる可能性があります。
まとめ
iMac 2015 の Debian 13 環境では、PipeWire と ALSA がヘッドフォンを正常に認識していても、HDA コーデックの機種別初期化が不足し、EarPods だけが無音になる場合があります。
対象機種、Cirrus Logic CS4206、ジャック検出、ミュート、音量を確認したうえで、snd-hda-intel に model=imac27_122 を指定すると、原典の環境では再起動後に音声出力が正常化しました。設定後は、再起動、抜き差し、サスペンド復帰、カーネル更新の各条件を分けて確認します。
参考文献
- id774, iMac Debian で EarPods が鳴らない原因(2026-07-13). https://blog.id774.net/entry/2026/07/13/4990/
- id774, iMac Retina 5K (2015) を Debian 13 に移行した(2026-02-09). https://blog.id774.net/entry/2026/02/09/3515/
- WirePlumber, wpctl(1) — WirePlumber 0.5.15 documentation(確認日 2026-07-28). https://pipewire.pages.freedesktop.org/wireplumber/tools/wpctl.html
- Debian Manpages, amixer(1) — alsa-utils — Debian trixie(2025-04-14). https://manpages.debian.org/trixie/alsa-utils/amixer.1.en.html
- Takashi Iwai, More Notes on HD-Audio Driver(確認日 2026-07-28). https://docs.kernel.org/sound/hd-audio/notes.html
- Linux kernel development community, Advanced Linux Sound Architecture - Driver Configuration guide(確認日 2026-07-28). https://docs.kernel.org/sound/alsa-configuration.html
- Linux kernel development community, HD-Audio Codec-Specific Models(確認日 2026-07-28). https://docs.kernel.org/sound/hd-audio/models.html
- kmod project, modprobe.d(5) - Configuration directory for modprobe(2026-05-24). https://man7.org/linux/man-pages/man5/modprobe.d.5.html