ALSAとか。
あんまり音無くても困らないんだけど、YouTubeで音でないのもちょっと寂しいので設定。
あたらしめのドライバを入れるためにKernelじゃなくalsa-driverのほうで入れる。
まずはKernel設定。ALSA関係を入れないようにする。
Device Drivers ---> Sound ---> <*> Sound card support Open Sound System ---> < > Open Sound System (DEPRECATED) Advanced Linux Sound Architecture ---> < > Advanced Linux Sound Architecture
これをしておかないと、alsa-driverをemergeするときに怒られる。で、
/etc/portage/package.keywords media-sound/alsa-driver ~x86 media-sound/alsa-headers ~x86
としておく。現時点でこれで入るのは1.0.14だが、これにはX61上ではちょっと問題があるので、パッチをいくつか当てる必要があるらしい。
このへんを参照しつつ、パッチを当てる。そのうち修正されるだろうからそれまでの間は手動でやってみる。
# cd /usr/portage/media-sound/alsa-driver # ebuild alsa-driver-1.0.14.ebuild fetch # ebuild alsa-driver-1.0.14.ebuild unpack # nano /var/tmp/portage/media-sound/alsa-driver-1.0.14/work/alsa-driver-1.0.14/alsa-kernel/pci/hda/patch_analog.c # ebuild alsa-driver-1.0.14.ebuild compile # ebuild alsa-driver-1.0.14.ebuild install # ebuild alsa-driver-1.0.14.ebuild qmerge
diff -au a/patch_analog.c b/patch_analog.c --- a/patch_analog.c 2007-07-16 17:20:46.000000000 +0900 +++ b/patch_analog.c 2007-07-16 17:21:03.000000000 +0900 @@ -2872,9 +2872,9 @@ HDA_CODEC_VOLUME("Digital Mic Capture Volume", 0x05, 0x0, HDA_INPUT), HDA_CODEC_MUTE("Digital Mic Capture Switch", 0x05, 0x0, HDA_INPUT), HDA_CODEC_VOLUME_IDX("Digital Mic Capture Volume", 1, 0x06, 0x0, - HDA_OUTPUT), + HDA_INPUT), HDA_CODEC_MUTE_IDX("Digital Mic Capture Switch", 1, 0x06, 0x0, - HDA_OUTPUT), + HDA_INPUT), { } /* end */ }; @@ -2883,8 +2883,8 @@ */ static struct hda_verb ad1884_init_verbs[] = { /* DACs; mute as default */ - {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, - {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, /* Port-A (HP) mixer */ {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, @@ -2960,7 +2960,7 @@ * Lenovo Thinkpad T61/X61 */ static struct hda_input_mux ad1984_thinkpad_capture_source = { - .num_items = 4, + .num_items = 3, .items = { { "Mic", 0x0 }, { "Internal Mic", 0x1 }, @@ -2982,6 +2982,8 @@ HDA_CODEC_VOLUME("Mic Boost", 0x14, 0x0, HDA_INPUT), HDA_CODEC_VOLUME("Internal Mic Boost", 0x15, 0x0, HDA_INPUT), HDA_CODEC_VOLUME("Docking Mic Boost", 0x25, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Beep Playback Volume", 0x20, 0x03, HDA_INPUT), + HDA_CODEC_MUTE("Beep Playback Switch", 0x20, 0x03, HDA_INPUT), HDA_CODEC_VOLUME("Capture Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Capture Switch", 0x0c, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x0d, 0x0, HDA_OUTPUT), @@ -3011,6 +3013,8 @@ {0x25, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* Analog mixer - docking mic; mute as default */ {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)}, + /* enable EAPD bit */ + {0x12, AC_VERB_SET_EAPD_BTLENABLE, 0x02}, { } /* end */ };
ドライバのパラメータを指定しておく(不要かも)
echo "options snd-hda-intel model=thinkpad" >> /etc/modprobe.conf
あとは、ALSAのユーティリティ等を入れる。
# emerge alsa-utils gnome-alsamixer # alsaconf # alsamixer 音量設定 <Headphon> <Speaker> がMMになってる場合は選択してMでミュート解除しておく。 スピーカーとヘッドホン別々にミュートできるので、いきなり職場で鳴り出して焦らなくてもいいように スピーカーはミュートのままにしておいた。 # rc-update add alsasound default
で音が鳴った!とりあえずFlashPluginでYoutube見るときとmpg123でmp3再生して音が鳴ることを確認。