Vostro 1400(Inspiron 1420)の音が鳴らない(Fedora編)

追記2008/06/10

kernel-2.6.25.4-10.fc8以降、この問題は解決された。参考記事


表題の件、Fedora8はライブCD及びインストール後も音が出ない。ビープ音さえ鳴らない。(もちろん、pcspkrはロードしている。)
そこでUbuntu8.04alpha2をインストールしてみたところ、こちらでは音楽を聞くことができた。(ビープ音は鳴らない。)しかも音量up、down、ミュートなどのメディアボタンもちゃんと動作する。
ところが何度かパッケージをアップデートしている内に、こちらも音が出なくなってしまった。

"Vostro 1400 sound"などで検索すると、/etc/modprobe.confに

option snd-hda-intel index=0 model=5stack

を加えれば音がなるという情報や、

option snd-hda-intel probe_mask=1 model=3stack

を加えるという情報もあったが、前者を選び、以下のようにsnd-hda-intelモジュールの再読み込み


# []modprobe -r snd-hda-intel[]
# []depmod -a[]
# []modprobe snd-hda-intel[]
を実行し、alsamixerなどでミュートを解除すれば音がなることが分かった。
ただし何かのプロセスがsnd-hda-intelを利用している場合は、

# []modprobe -r snd-hda-intel[]
[]FATAL: Module snd_hda_intel is in use.[]
と表示されて、snd-hda-intelをアンロードできない。その時は、

$ []lsmod |grep '^snd_hda_intel'[]
[]snd_hda_intel 274401 3[]←これ
がsnd_hda_intelを利用しているプロセス数なので、これが0になるまで関係ありそうなプロセスを止める必要がある。*1

そこで一回のmodprobeでsnd_hda_intelを2回ロードすれば良いと考えて/etc/modprobe.confに

install snd-hda-intel /sbin/modprobe -i snd-hda-intel ; /sbin/modprobe -i -r snd-hda-intel ; /sbin/modprobe -i snd-hda-intel (一行に記述する)

と書き加えてみたが、残念ながらこれは動作しなかった。
そこで次善策として/etc/rc5.d(rc3.d)以下にsnd_hda_intelをリロードするスクリプトを置くことにした。

/etc/rc5.d/S00snd_hda_intelの内容

#!/bin/sh
/sbin/modprobe -r snd_hda_intel
/sbin/modprobe snd_hda_intel

# chmod a+x /etc/rc5.d/S00snd_hda_intel
を忘れないようにする。

この方法の問題点

以上、まだまだ分からない点が多いがとりあえずは音がなるようになった。

*1:私の環境ではnasd、他にpulseaudio、mixer_applet2なども止める。実はtelinit 1してしまうのが一番速い。