Ubuntu 16.10 をインストールしたらUSB接続のヘッドフォンから音が出なくなった。結局 pavucontrol を追加インストールして適切に出力装置を選択して音が出るようになった。
(追記あり)
自宅のデスクトップPCのHDDに Ubuntu, Debian testing, Windows 10 をインストールして grub2 によりデュアルブートにしている、起動のデフォルトは Ubuntu で普段から Ubuntu を一番よく使っている。
Ubuntu は通常4月と10月の年二回に新しいバージョンがリリースされる。2016年10月に 16.10 (コードネームは yakkety yak)がリリースされたのでクリーンインストールしてみた。私は home ディレクトリを別のパーティションに設定してあるので、毎回 Ubuntu のアップグレードにはルートパーティションをクリーンインストールして home を以前のままフォーマットせずにマウントしている。MUAである Thuinderbird によりローカルにダウンロードした昔のメールなどのデータや、各種設定が継承されるので楽ちんである。
しかし今回のアップグレード直後、USB接続のヘッドフォン(正確には マイク付きのヘッドセット。ELECOM の HS-HP20)から音が出なくて焦った。サウンドカードはオンボードのもので lspciの結果からみると Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA) という今となっては古いタイプのものだ。
以前、いつどのバージョンだったか忘れたがアップグレー直後に音が出なくなったことがあったと思う。そのときはサウンドの設定で適当に出力装置を選んで音が出るようになったため気にしなかった。今回はちょっと音が出るようになるまでいろいろ苦労してしまった。 /etc/modprobe.d/alsa-base.conf を書き換えてみたりしたが、結局は出力装置の選択が正しくなかったことが原因のようだ。
私が行った設定は以下の通り。
pavucontrol による設定がやりやすいので sudo apt-get install apvucontrol でインストールしておく(標準でインストールされていないパッケージなので使用にはこれが必要)。
pavucontrol で、私の場合「USB Audio Device アナログステレオ」にチェックをいれる、これだけだ。
通常はサウンド設定で出力装置の設定を行うものだと思う。Ubuntu であればデスクトップ右上のスピーカー・アイコンをクリックすると「サウンド設定」が選択できる。このサウンド設定の画面でも USB Audio Device の選択ができる。以前もこれを使って設定したはず。
しかし Ubuntu 16.10 ではサウンド設定で設定した後、画面の「テスト」をクリックすると音が出なくなってしまう。選択画面から USB Audio Device の選択肢が消えてしまうのだ。要は「テスト」をしなければ、そのまま正常に音が出るのだがテストした途端、音が出なくなってしまう。私は装置選択後いつもテストしていたので、これに気づくのにかなり時間がかかってしまった。
とにかく音が出るようにはなったので、しばらくこのままにしておこうと思う。しかし本来ならばこの、テストをすると USB Audio Device が使えなくなる件はバグレポートすべきものだろう。多くの不具合の場合自動的にクラッシュレポーターが起動するのだが、この件ではそうならない。自分で Launchpad のサイトに英語で書き込みをしなければならない。自分は少しハードルが高いのでレポートスべきか悩んでいる。
【追記】
この記事を書いた後にまた音が出なくなってしまった。実は一時的に
/etc/modprobe.d/alsa-base.conf を書き換えて音が出るようになり、元の状態に戻しても大丈夫のようだったので、この記事を書いたのだが、何回かシャットダウンと起動を繰り返すうちに音がまた出なくなってしまった。そこでまた alsa-base.conf を以前のように書き換えてみた。今は安定して音が出ているがまた出なくなったら最悪 16.04LTS へダウングレードしようと思っている。
ところで alsa-base.conf の書き換えに参考にしたのは以下のページだ。
音(サウンド)がでないときの対処法 Ubuntu(Linux)
HdaIntelSoundHowto - Community Help Wiki
前者の情報は後者のページを参考にしているのだが、後者の情報(英語)はページの冒頭で2012年の古い情報だから他のページを参照してね、という風に書いてある。私の場合は今の所うまく音が出ているので良しとするが根本的な解決方法ではないのかもしれない。
詳細については前者のページをみると良いと思うが、概略は以下の通り。
まずターミナルで " cat /proc/asound/card0/codec* | grep Codec " を実行しサウンドカードのモデルを調べる。私のやつは " Realtek ALC662 rev1 " であった。次に"AL662" に対応する「モデル名」を調べる。私はこのページで調べる。「モデル名」が8個もあったのだが今のところ " asus-mode1 " でうまく行っている。 最後に /etc/modprobe.d/alsa-base.conf に
" options snd-hda-intel model=asus-mode1 " を追記して再起動する。
これで今の所、音が出る状態が続いている。