2009-05-31

Ubuntu 8.04 でサスペンド復帰後に音が出なくなる不具合の対策

Ubuntu 8.04 でサスペンドすると、復帰後に音が出なくなってしまう。ネットで調べたところ、音関係の module を再読み込みすればよいことが分かった。

具体的には、modprobe コマンドを使って snd_hda_intel モジュールを一度削除して、その後もう一度インストールする。

コマンドを毎回打つのは大変なので、shell script を作った。

#!/bin/sh

pm=pm-suspend
snd=snd_hda_intel

sync && $pm && modprobe -r $snd && modprobe $snd

こいつを /usr/local/bin に pm-suspend-snd.sh という名前で置いて、sudo コマンドで呼び出してやる。

$ sudo pm-suspend-snd.sh

Suspend じゃなくて Hibernate したい場合は、pm=pm-suspendpm=pm-hibernate に変更されたし。

ソースコードは gist に登録してあるので、git 使いの人はこちらから最新版をどうぞ。

$ git clone git://gist.github.com/120717.git pm-suspend-snd

注意点

どっかのプロセスが snd_hda_intel を掴んでいると、modprobe -r に失敗する。エラー・メッセージはこんな感じ:

FATAL: Module snd_hda_intel is in use.

原因の一つは、GNOME の音量調節アプレット。アプレットを右クリックして削除してしまうのが一番簡単な解決策。

もう一つは pulseaudio。これが何のコマンドか知らないけだけど、次のコマンドを打つと pulseaudio を殺せる。もしかしたら、アンインストールしてしまってもいいのかもしれない。

$ pulseaudio -k

後はオーディオ関連のコマンド。何気に firefox が音を掴んで離さないことが多い。

No comments:

Post a Comment