GeForce2 MX/MX400在Ubuntu 10.04上更新内核至2.6.32-30后无法成功装驱动

乌龟卡以音质好著称,而OSS驱动据说音质比pulseaudio和Alsa更好。而且,乌龟turtle beach santa cruz在用pulseaudio作声音服务器时,老是会有爆音,尤其是调节音量时,爆音更剧,升级系统到11.04,也照爆不误。去掉pulseaudio光留下Alsa,又会出现声卡独占问题,也就是一个程序用了声卡,其他程序都发不出声音。一气之下,决定换OSS。但似乎turtle beach santa cruz(rev 01)比较特殊,下载deb包直接安装,结果会全是爆音。研究了三天,终于用编译的方法搞定。

编译驱动还有个好处,升级核心不需要重新安装deb包。
主要参考资料:https://help.ubuntu.com/community/OpenSound,用乌龟卡的朋友一定要注意本贴第5步,其他卡未测试。

步骤如下(在LMDE(Linux mint Debian下完成,应该适用于ubuntu9.11~11.04))。

1. 卸载pulseaudio
参考:http://howto.blbosti.com/2010/04/ubuntu-make-alsa-default-instead-of-pulseaudio/
代码:
sudo apt-get purge pulseaudio gstreamer0.10-pulseaudio

如果要彻底一点,可以用aptitude search pulseaudio,搜出所有与pulseaudio有关的包,挨个全部卸掉。
也可以临时禁用pulse,参考:http://askubuntu.com/questions/7340/how-can-i-replace-pulseaudio-with-alsa

2.卸载alsa
代码:
sudo /etc/init.d/alsa-utils stop
sudo aptitude purge alsa-base alsa-utils

同上,可能也需要卸掉与alsa有关的包。

另外,如果是debian,还需要
代码:
sudo aptitude purge libsdl1.2debian-alsa


3. 更换系统声音服务
代码:
sudo dpkg-reconfigure linux-sound-base

选OSS,然后确定退出。

重启,进入无声世界,开始准备编译OSS

4. 获取源代码
代码:
sudo aptitude install -y mercurial
cd /opt
sudo hg clone http://opensound.hg.sourceforge.net:8000/hgroot/opensound/opensound oss-devel


5. 关键步骤,更改一小处代码
代码:
cd /opt/oss-devel/setup/Linux/oss/build
sudo vim osscore.c

找到
代码:
if (memlimit < 0x00000000ffffffffLL) 

更改为
代码:
if (memlimit <= 0x00000000ffffffffLL)


这一步极为关键,没改的话,turtle beach santa cruz根本就没声音。
参考:http://www.4front-tech.com/forum/viewtopic.php?f=3&t=3294

6. 准备工作
安装依赖包
代码:
sudo aptitude install -y binutils libgtk2.0-0 sed gcc libc6
sudo aptitude install -y build-essential linux-headers-`uname -r` gawk libtool libgtk2.0-dev
sudo aptitude install -y libesd0 libsdl1.2debian-oss


OSS需要一个空目录来进行编译,所以。
代码:
cd ~/
sudo rm -rf oss42build
mkdir oss42build
cd oss42build/


7. 编译并安装
代码:
NO_WARNING_CHECKS=yes /opt/oss-devel/configure --enable-libsalsa=NO
make
sudo make deb
sudo dpkg -i oss*.deb


8. 安装完成后重启。重启后用ossinfo命令测试声卡是否已正常识别,用osstest命令测试声音能否正常播放。

9. 有些程序可能不能正常发声,可参考
http://www.opensound.com/wiki/index.php ... _for_OSSv4
附 mpd.conf设置
用mpd的朋友可能会碰到OSS驱动下,mpd在开机时不能自动启服务的情况。问题出在配置文件上。
215行,原为:
代码:
#device "/dev/dsp"

改为
代码:
device  "/dev/oss/oss_cs461x0/pcm0"


"/dev/oss/oss_cs461x0/pcm0"这一句可能根据机器配置不同而不同。可敲ossinfo看Nodes中/dev/dsp一行。
例:
代码:
$ossinfo
……
……
Nodes
  /dev/dsp -> /dev/oss/oss_cs461x0/pcm0
……



10. 至于音质,可下载这篇贴子中的附件来测试。
viewtopic.php?f=74&t=104456&start=15

作者: nowhere   发布时间: 2011-04-15