1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

iMac 2017 に Ubuntu をインストールしたら音が出なかった話と解決方法

1
Posted at

はじめに

2017年製の iMac に Ubuntu 22.04 LTS をインストールしたところ、内蔵スピーカーから音が出ない問題に遭遇したため、原因と解決手順をまとめておく。

環境

項目 内容
ハードウェア iMac 27インチ 2017年モデル
OS Ubuntu 22.04.5 LTS (Jammy)
カーネル 6.8.0-101-generic (HWE カーネル)
オーディオチップ Cirrus Logic CS8409

症状

インストール直後からシステム音・動画・音楽など、あらゆる音が出ない。
サウンド設定を開くと出力デバイスが 「ダミー出力 (Dummy Output)」 しか表示されない。

aplay -l で確認すると HDMI のみが表示され、内蔵スピーカーが認識されていないことが分かる。

$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 1: HDMI [HDA ATI HDMI], デバイス 3: HDMI 0 [HDMI 0]
  ...
# ← 内蔵スピーカー (CS8409) が一切表示されない

原因

iMac 2017 のオーディオチップは Cirrus Logic CS8409 だが、このチップのドライバーが標準の Linux カーネルに含まれていない。

根本的な問題は、標準の snd_hda_intel ドライバーが、CS8409/CS42L83 の DSP とアンプを起動するために必要な Apple 独自の HDA-Verbs シーケンスを送信できないこと。その結果、ALSA はアナログ再生デバイスを生成できず、音声出力がダミー出力のみになる。

この問題は iMac/MacBook Pro 2017 以降の機種で Linux を動かすユーザーの間で広く報告されており、Ubuntu・Fedora・Linux Mint など複数のディストリビューションで同様の事象が確認されている。

Ubuntu 24.04.4 LTS(カーネル 6.17 以降)では CS8409 ドライバーが標準で含まれるようになった。
22.04 / 6.8 HWE カーネル環境では以下の手順でサードパーティドライバーを導入する必要がある。

解決手順

1. 事前確認

オーディオチップが CS8409 であることを確認する。

cat /proc/asound/card*/codec* | grep Codec

以下のように Cirrus Logic CS8409 が表示されていれば、この手順が有効だよ。

Codec: Cirrus Logic CS8409
Codec: ATI R6xx HDMI

2. 必要なパッケージをインストール

sudo apt install git make gcc linux-headers-$(uname -r)

3. ドライバーをクローン・ビルド・インストール

cd ~
git clone https://github.com/egorenar/snd-hda-codec-cs8409.git
cd snd-hda-codec-cs8409
make
sudo make install

4. 再起動

sudo shutdown -r now

5. 動作確認

再起動後、aplay -l で内蔵スピーカーが認識されているか確認する。

$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: PCH [HDA Intel PCH], デバイス 0: CS8409/CS42L83 Analog [CS8409/CS42L83 Analog]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 1: HDMI [HDA ATI HDMI], デバイス 3: HDMI 0 [HDMI 0]
  ...

CS8409/CS42L83 Analog が表示されていれば成功。システム設定のサウンドから出力デバイスを選択して音が出ることを確認する。

テスト音を鳴らす場合はこちら。

speaker-test -c 2 -t wav

注意点:カーネル更新後の対応

このドライバーはカーネル更新のたびに再ビルドが必要になる。

カーネル更新後に音が出なくなった場合は、以下を実行する。

cd ~/snd-hda-codec-cs8409
make clean
make
sudo make install
sudo reboot

まとめ

確認コマンド 期待する結果
cat /proc/asound/card*/codec* | grep Codec Cirrus Logic CS8409 が含まれる
aplay -l(ドライバー導入前) HDMI のみ表示
aplay -l(ドライバー導入後) CS8409/CS42L83 Analog が表示される

サードパーティドライバー(egorenar/snd-hda-codec-cs8409)を手動インストールすることで、Ubuntu 22.04 + 6.8 HWE カーネル環境でも iMac 2017 の内蔵スピーカーを使えるようになる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?