这些天一直苦恼于在Thinkpad R61上新装的Fedora声音无法外放,上网搜索了各种各样的方法,结果全都未果。

 

昨晚怀疑是Linux Kernel的问题,因为Kernel不是最新的,于是下载了最新的Kernel,编译了一晚上才装上。

 

今晚上再次对下载的ALSA源代码编译,由于是最新的Kernel,编译过程中遇到了一些问题,好在或者是缺少一些头文件(version.h,autoconf.h)或者是某个文件不存在。解决方法就是通过locate -e <source_file>找到系统中已经有的源文件,通过which找到可执行文件,然后在目标目录创建符号链接,编译通过。

 

装完ALSA重启之后,再次通过alsamixer -c 0对alsa驱动进行设置。结果这时发现一直按向右的方向键会一直有新的item出现,最后一个是speaker,这些是我之前使用alsamixer时所没有发现的,而这个speaker恰恰就是我一直苦恼的!那个speaker项默认是MM,mute也即静音的,必须按M键将其unmute.设好之后,声卡终于可以外放了!

 

尽管在网上找到的很多资料没有真正起作用,但还是将其中一些至今仍然有效的摘抄如下,以飨读者。

 

**********************************************************************************

原文链接:http://www.thinkwiki.org/wiki/Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_T61#ALSA_driver_update_.28hard_fix.2C_recommended_for_advanced_users.29

 

ALSA driver update (hard fix, recommended for advanced users)

 

Note: This section assumes a high level of technical proficiency. Please fix it.

At www.asla-project.org, did you download only alsa-driver-1.0.14? That and alsa-lib-1.0.14a?

Download alsa-driver, alsa-kernel, alsa-lib, and alsa-utils, according to http://alsa.opensrc.org/index.php/AlsaCVS. Other sources, however, say only the driver is necessary. Perhaps alsa-project.org simply recommends the other two?

 

How did you compile it from source? How did you add the patch?

 

In short, please explain how you did these things in addition to just telling us what you did. I´m not trying to be rude but seriously, not all Linux users are programmers ;). Thanks. SteveSims 22:19, 11 August 2007 (UTC)

After upgrading to 1.0.14 I still had no sound, and this took about a week to solved (though it was so sadly obvious though). Just upgrading to alsa 1.0.14 will not be enough, there were a few patches released right after the release that fix the Thinkpad's. The reason I missed this was because it was the same day so the release of 1.0.14!

VERY SIMPLE METHOD OF MAKING SOUND WORK [http://forums.fedoraforum.org/showthread.php?t=159516&page=1&pp=15] Just follow the instructions step by step, except for two small things: When doing "cp ../patch_analog.c alsa-driver-1.0.14/alsa-kernel/pci/hda/" use "cp ../patch_analog.c alsa-kernel/pci/hda/" instead. Also, when you get to the part about modifying the /etc/modprobe.conf file, it doesn't exist in ubuntu. Adding "options snd-hda-intel index=0 model=thinkpad" to any file (even one you make yourself) inside /etc/modprobe.d should work. I personally added it to the options file, and it works fine.(这种情况在Fedora 11中也是如此,解决方法也应是在/etc/modprobe.d/下自己创建一个*.conf文件,或者添加到dist.conf中去。)

 

-credit for the guide goes to ciphermonk, and credit to the small changes needed to make this work on ubuntu go to my friend John.

-hotkeys control mic volume, not speaker volume for some reason. I do not know how to fix this -- If you're using Gnome, from the System menu, click Preferences -> Sound, and in the Default Mixer Tracks field, choose PCM.(在Fedora 11的Sound中没有这个选项。)

 

-this fix should provide sound for both headphones and speakers.

-this edit by fatalchaos

 

First make sure these packages are installed (System -> Administration -> Synaptic Package Manager) : automake, autoconfig, cvs, libtool, python-dev, build-essential

 

Then download the source code to the alsa-driver and apply these patches: (links to the revisions)

 

Fix Oops with AD1984 thinkpad model (http://hg.alsa-project.org/alsa-kernel/rev/958b39f3e8dd)

Fix AD1984 basic model (http://hg.alsa-project.org/alsa-kernel/rev/47ca87407c84)

Fix Thinkpad X61/T61 outputs (http://hg.alsa-project.org/alsa-kernel/rev/ca37aeeeb0ea)

**********************************************************************************************

查看安装了哪些alsa的模块: rpm -qa|grep alsa

查看声卡信息: lspci|grep Audio

另外就是常用的alsamixer和amixer。

***********************************************************************************************

还有就是其他的针对Fedora 10之前的版本的资料基本上都已经过时了,大多从fedora中移除了(比如alsaconf就已经不支持了)。貌似Fedora 11中只能用alsamixer来设置声卡,Preferences -> Sound的功能非常弱。