これまでのところ、ラムを中断して目を覚まします。私のラップトップの外部ディスプレイ(HDMI経由で接続)も機能します。
ただし、機能しないのはサウンドであり、もちろん一時停止する前に機能します。外部モニターのスピーカーを使用しており、Ubuntuのサウンドメニューで対応する設定を行っています([ハードウェア]タブで[デジタルステレオ(HDMI)出力+アナログステレオ入力]に切り替えられています)。
修正するにはどうすればよいですか?
編集:ubuntu-bugを実行すると、Pulseを使用した場合と使用しない場合のサウンド出力をテストしました。 Pulseがなければ機能しましたが、それでもノイズが聞こえました。 Pulseでは、ノイズのみでした。
編集:nattyとoneiricで正常に動作するようになりました。最新のUbuntuにアップデートすると、問題が解決します。
サスペンド後のハードウェアの誤動作は、ドライバーのバグのように聞こえます。 ubuntu-bug -s audio
それまでの間、回避策として、Sudo alsa force-reload
ドライバーを強制的にアンロードおよび再ロードします(ただし、プロセスで実行中のすべてのサウンドアプリを強制終了します)。
HDMIオーディオを処理しているカーネルモジュールを特定します。私のXBMCボックスでは、「snd_hda_codec_nvhdmi」であり、ラップトップが/etc/pm/sleep.dのスクリプトを介してスリープする前に、そのモジュールをアンロードします。コマンド「lsmod | grep hdmi」を使用すると、いくつかの手がかりが得られます。これを適切に機能させるために複数のモジュールをアンロードする必要がある場合があります(「snd」など)が、適切な組み合わせが見つかると、ラップトップをスリープ状態にするたびにシャットダウンして再起動するようになります。
スクリプトは次のようになります。
#!/bin/sh
# Script to disable hdmi audio before suspend and restart after wake.
case "${1}" in
suspend|hibernate)
rmmod snd_hda_codec_nvhdmi
rmmod snd
;;
resume|thaw)
modprobe snd
modprobe snd_hda_codec_nvhdmi
;;
esac