OpenChrome(VIA显卡)
--- 原文出处:https://help.ubuntu.com/community/OpenChrome 原文作者:MartinJuergens 授权许可:http://www.gnu.org/copyleft/fdl.html GNU自由文档许可证 翻译人员:yhlfh 适用版本:6.06.1(Dapper) , 6.10(Edgy) ----
OpenChrome是针对VIA/S3GUniChrome和UniChromePro显示芯片组(CLE266, KN400, KM400,K8M800, PM800, CN400, VN800,K8M890)的自由及开放源代码的驱动程序。
OpenChrome最初被称为“快照”(snapshot)版本,因为它曾是unichrome cvs源码的一个实验性分支。后来,它在unichrome开源驱动(http://unichrome.sf.net)的基础上继续开发,特别是包含了对unichrome-pro芯片支持。
它最初被用来作为实验性的、粗糙的开发的一个临时练兵场,它被unichrome.sf.net计划的所有者宣称为其的一个分支(而该计划本身又是VIA发布的原始驱动的一个分支)。
由于对于所有芯片组的硬件加速支持(XvMC)在随后的unichrome.sf.net驱动中被剔除了,所以如果你希望通过自由及开放源代码的驱动将你VIA芯片的加速特性使用起来的话,你唯一的选择就是使用openChrome。
要获取更多信息,请访问http://www.openchrome.org/ 本指南将帮助你在Ubuntu 6.06 LTS以及更高版本中编译openChrome。本文同样适用于Debian以及其他基于Debian的发行版,例如Kanotix和Knoppix。
准备
- 您必须拥有管理员权限。
- 请确认您激活了Universe以及Multiverse软件源。
ubuntu 8.04 Debian 5.0 和之上版本
在这个版本系统已经自带Openchrome驱动了 可以 apt-get install xserver-xorg-video-openchrome
编译openChrome 2D驱动
- 安装所需软件包
- 在Ubuntu 6.10 (Edgy)中,运行
sudo apt-get build-dep xserver-xorg-video-via
在Ubuntu 6.06.1 (Dapper),Debian以及其他基于Debian的发行版,运行
sudo apt-get build-dep xserver-xorg-driver-via
为了安装编译openChrome所需的软件包,附加安装
- subversion
- autoconf
- automake1.9
- libtool
- cvs
- linux-headers-ARCH (这取决与你所使用的内核,例如386或generic。命令"uname -r"会显示你的内核版本号)
sudo apt-get install subversion autoconf automake1.9 libtool cvs linux-headers-ARCH
- 好戏真正上演
- 现在我们将编译openChrome 2D驱动
- 新建一个目录
mkdir openchrome
- 切换到刚刚建好的目录
cd openchrome
- 如果不是K8M890芯片组,按如下方法获得openChrome源代码:
svn co http://svn.openchrome.org/svn/trunk/
- K8M890芯片组请运行:
svn co http://svn.openchrome.org/svn/branches/vt3336_branch/
- 非K8M890芯片组进入源码目录
cd trunk
- K8M890芯片组请输入:
cd vt3336_branch
- 运行带prefix参数的autogen.sh以便使驱动程序安装在正确的目录
./autogen.sh --prefix=/usr/
- 编译openChrome
make
- 安装openChrome
sudo make install
- 将Xorg驱动改为via 现在我们需要编辑/etc/X11/xorg.conf并将Device Driver改为via
sudo gedit /etc/X11/xorg.conf
找到
Section "Device"
并将
Driver "blahblah"
改为
Driver "via"
保存文件。 最后,我们需要通过Ctrl-Alt-Backspace重启X。如果Xorg不再正常启动的话,在虚拟控制台登录并利用文本编辑器(例如nano)将Device section的驱动改回去(请把下面的内容抄在下纸上)。
sudo nano /etc/X11/xorg.conf
openChrome和3D
3D在Edgy中应该无须配置便能正常工作。如果没有,请进行如下操作:
- 获得源代码
cvs -z3 -d:pserver:[email protected]:/cvs/dri login
(当要求密码时按enter就行了)
cvs -z3 -d:pserver:[email protected]:/cvs/dri co drm
- 编译libdrm和drm内核模块
- libdrm
切换到drm源代码存放目录
cd drm
运行autogen脚本
./autogen.sh --prefix=/usr
编译源代码
make
安装编译好的源代码
sudo make install
- drm内核模块
切换到正确的目录(您应该已经在drm目录了)
cd linux-core
编译内核模块
make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via
复制内核模块到正确的位置
sudo cp *.ko /lib/modules/`uname -r`/kernel/drivers/char/drm/
运行depmod
sudo depmod -ae
启动模块
sudo modprobe drm sudo modprobe via
用如下命令测试
glxinfo | grep render
您应该得到一行信息说"direct rendering: Yes" 如果它正常工作了,加入模块以便让其自行启动
sudo echo "drm" >>/etc/modules sudo echo "via" >>/etc/modules
- 应该就这样了。重启看看它工作得如何。
问题与解决方法
- 我的系统有时会冻结
这是由drm的一个bug所致。要解决此问题,你需要在xorg.conf中将
Load "dri"
注释掉。结果,你将不再拥有3D加速,但你的系统也不会在冻结了。
- 我在播放视频时没有任何图像
这在使用笔记本电脑时经常发生,这是由于openChrome在某些模块上不能正确支持Xv所致。你可以试试在Xine中将视频驱动改为"gl"或"x11"看看有没有帮助。当你不使用集成LCD而使用外部监视器时,此问题通常不会发生。OpenChrome关于此问题的ticket在这里: http://www.openchrome.org/trac/ticket/40
- 我的鼠标指针经常消失
这已知在VN800和VM800芯片组上会发生。你可以试试在xorg.conf的device section中加入
Option "SWCursor" "true"
- 我装了一个新版本的内核,3D不起作用了
你必须重新编译drm内核模块。步骤已在上面描述过了。
- 当我想编译openchrome 2D driver运行autogen.sh时,我得到了错误提示
configure.ac: 30: required file `./[config.h].in' not found unichrome/Makefile.am:33: via_drv_la_SOURCES defined both conditionally and unconditionally
这是由于安装了多个版本的automake而未正确指定默认版本所致。运行
sudo update-alternatives --config automake
并选择automake-1.9.
译者注
3D现状
与openchrome驱动配套的3D驱动可从the DRI project获得。目前你应该使用Mesa-6.4分枝;最新的貌似能可靠工作的版本是Mesa-6.4.1。参见the Building page获得编译信息。如果你不能使它正常工作,请认真查看3DTroubleShooting。驱动的二进制文件叫做unichrome_dri.so,它将被当做unichrome的3D驱动。在Ubuntu中无须自行编译mesa,只要
sudo apt-get install libgl1-mesa-dri
即可。不过amd64的包里好像没有unichrome_dri.so,不知道为什么。如果没有,可以到Debian那去下载Debian的libgl1-mesa-dri包,将里面的unichrome_dri.so解压到/usr/lib/dri/目录即可。
3D驱动不是由openchrome project维护的。事实上,目前没人维护它,并且在Mesa-6.5中似乎有些倒退,例如将软件fallbacks放错地方,缓慢的纹理渲染等等。同时它也有许多导致频繁锁定的bugs,尤其是K8M800芯片组,所以不要对3D抱有太大希望。
3D驱动问题多多的根本原因就是没有人维护,如果你有能力的话,请联系mesa,我们都将感激不尽。
提交Bugs请到freedesktop.org bugzilla。在提交bugs之前请检查已知的bugs或者向邮件列表询问。