解决方法:下载alsa全套驱动(理论上哪个版本都行,本人用的是1.0.19,为方便起见建议下载这个版本),包括alsa-driver(需要修改)、alsa-lib和alsa-ultis,然后将他们全部解压出来。按照driver->lib->ultis的顺序安装。
1.安装alsa-driver,需要修改alsa-kernel/pci/hda/patch_conexant.c,我把修改之后的文件放到附件里去,需要的人直接拿回去覆盖就行了,下面贴出diff:
代码: 全选
--- patch_conexant.c 2009-01-19 19:08:58.000000000 +0800
+++ /media/g/Linux相关程序/alsa/patch_conexant.c 2009-04-24 13:34:10.000000000 +0800
@@ -1639,6 +1639,15 @@
{ 2, NULL },
};
+static void cxt5051_update_subwoofer(struct hda_codec *codec)
+{
+ struct conexant_spec *spec = codec->spec;
+ unsigned int pinctl;
+ pinctl = (!spec->hp_present && spec->cur_eapd) ? PIN_OUT : 0;
+ snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
+ pinctl);
+}
+
static void cxt5051_update_speaker(struct hda_codec *codec)
{
struct conexant_spec *spec = codec->spec;
@@ -1707,6 +1716,7 @@
AC_VERB_GET_PIN_SENSE, 0) &
AC_PINSENSE_PRESENCE;
cxt5051_update_speaker(codec);
+ cxt5051_update_subwoofer(codec);
}
/* unsolicited event for HP jack sensing */
代码: 全选
./configure --prefix=/usr --with-cards=hda-intel
make
sudo make install
2.lib和ultis的 安装:
这个简单,先安装lib,再安装ultis,命令都一样:
代码: 全选
./configure --prefix=/usr
make
sudo make install
应大家要求,再次给出10.04中的解决办法:
1.首先运行 apt-get source alsa-base
2.从终端进入alsa-driver-1.0.22.1+dfsg目录,下载下面的patch_conexant.c文件(76KB的那个),替换alsa-driver-1.0.22.1+dfsg/sound/pci/hda中的同名文件
3.在终端中依次执行
代码: 全选
./configure --with-cards=hda-intel
make
sudo make install
另外提示,每次linux内核大版本升级需要重新编译内核模块,就是按照这三步重新安装
[/b][/size]