个人工具
登录
查看“UbuntuHelp:OpenChrome”的源代码 - Ubuntu中文
UbuntuHelp
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“UbuntuHelp:OpenChrome”的源代码
来自Ubuntu中文
←
UbuntuHelp:OpenChrome
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{From|https://help.ubuntu.com/community/OpenChrome}} {{Languages|UbuntuHelp:OpenChrome}} ''Revised: 10 January 2009'' == Description == '''openChrome''' is a free and Open Source video driver for the VIA/S3G [[UbuntuHelp:UniChrome|UniChrome]], [[UbuntuHelp:UniChrome|UniChrome]] Pro and Chrome9 graphics chipsets: CLE266, KM400/KN400/KM400A/P4M800, CN400/PM800/PN800/PM880, K8M800, CN700/VM800/P4M800Pro, CX700, P4M890, K8M890, P4M900/VN896/CN896, VX800 For more information, please visit [http://www.openchrome.org/] === Ubuntu 7.10 and previous releases === A version of the openchrome driver was backported to Ubuntu 7.10 (Gutsy Gibbon) repositories and can be installed by the command <pre><nowiki> sudo apt-get install xserver-xorg-video-openchrome </nowiki></pre> This replaces the <code><nowiki>via</nowiki></code> driver with the openchrome one. The driver module is still called <code><nowiki>via</nowiki></code>, so <code><nowiki>"via"</nowiki></code> is what needs to be written to the <code><nowiki>"Driver"</nowiki></code> field of the <code><nowiki>"Device"</nowiki></code> section in <code><nowiki>/etc/X11/xorg.conf</nowiki></code> For previous Ubuntu releases the driver had to be compiled from source. === Ubuntu 8.04 and newer releases === Since Ubuntu 8.04 (Hardy Heron) the <code><nowiki>openchrome</nowiki></code> driver is installed by default, provided by the <code><nowiki>xserver-xorg-video-openchrome</nowiki></code> package. The <code><nowiki>via</nowiki></code> driver and the <code><nowiki>xserver-xorg-video-via</nowiki></code> package are no longer available in Ubuntu 8.10 (Intrepid Ibex). The <code><nowiki>openchrome</nowiki></code> manual page indicates which options can be used to configure the driver by editing <code><nowiki>/etc/X11/xorg.conf</nowiki></code>. The <code><nowiki>xorg.conf</nowiki></code> manual page explains the structure of this file. <pre><nowiki> man xorg.conf man openchrome </nowiki></pre> == Manual Installation == This howto will help you compile and install the openChrome driver in '''Ubuntu 6.06 LTS''' and up. It should also work on Debian and other Debian based distributions like Kanotix and Knoppix. === Before You Start === * You must have [[UbuntuHelp:RootSudo|administrative privileges]]. * Make sure you have enabled the [[UbuntuHelp:Repositories/Ubuntu#what|Universe and Multiverse repositories]]. <<BR>> See [[UbuntuHelp:Repositories/Ubuntu|Managing Repositories in Ubuntu]] or [[UbuntuHelp:Repositories/Kubuntu|Kubuntu]] for help with this. === openChrome 2D driver compilation === <ol><li>'''Install needed dependencies'''</li></ol> You must get necessary tools to compile source code: <pre><nowiki> sudo apt-get install build-essential subversion autoconf automake1.9 libtool </nowiki></pre> Get all the dependency packages needed to build the driver.<<BR>> In 8.04 (Hardy) and later releases run: <pre><nowiki> sudo apt-get build-dep xserver-xorg-video-openchrome </nowiki></pre> In Ubuntu 7.10 (Gutsy), 7.04 (Feisty), and 6.10 (Edgy) run: <pre><nowiki> sudo apt-get build-dep xserver-xorg-video-via </nowiki></pre> In Ubuntu 6.06.1 (Dapper), Debian and other Debian based distributions, run: <pre><nowiki> sudo apt-get build-dep xserver-xorg-driver-via </nowiki></pre> <ol><li>'''Compile and install the 2D driver'''</li></ol> * Get the openChrome sourcecode like this: <pre><nowiki> svn checkout http://svn.openchrome.org/svn/trunk openchrome </nowiki></pre> * Change into the newly created directory <pre><nowiki> cd openchrome* </nowiki></pre> * Run <code><nowiki>autogen.sh</nowiki></code> with the prefix option so that the driver is being installed in the correct directory <pre><nowiki> ./autogen.sh --prefix=/usr </nowiki></pre> * Compile openChrome <pre><nowiki> make </nowiki></pre> * Install openChrome <pre><nowiki> sudo make install </nowiki></pre> <ol><li>'''Edit the X server configuration file'''</li></ol> * Edit <code><nowiki>/etc/X11/xorg.conf</nowiki></code> and change the device driver to <code><nowiki>openchrome</nowiki></code> <pre><nowiki> gksudo gedit /etc/X11/xorg.conf </nowiki></pre> Or in Kubuntu <pre><nowiki> kdesu kate /etc/X11/xorg.conf </nowiki></pre> Make a backup of this file in case you need to revert the changes. By default some editors create a backup by appending a tilde to the name of the file (<code><nowiki>xorg.conf~</nowiki></code>). This backup may be hidden in the file manager, but is still listed with <code><nowiki>ls</nowiki></code> in a terminal. * Go to <pre><nowiki> Section "Device" </nowiki></pre> and change <pre><nowiki> Driver "vesa" </nowiki></pre> to <pre><nowiki> Driver "openchrome" </nowiki></pre> * Save the file. * Alternatively, you can also run <pre><nowiki> sudo dpkg-reconfigure -phigh xserver-xorg </nowiki></pre> and pick "openchrome" when asked. <ol><li>'''Test the driver'''</li></ol> To test the new driver, go to a console (Ctrl+Alt+F1), log in and start a new X screen: <pre><nowiki> X :1 </nowiki></pre> If it works, then you can continue restarting your desktop manager. If not, you probably have another problem and need to fix this first. Finally, restart the X server by logging out and back in, or typing <code><nowiki>sudo /etc/init.d/gdm restart</nowiki></code>. If Xorg does not start anymore, log in in a console and revert the changes made to the <code><nowiki>xorg.conf</nowiki></code> file. You can use an editor like <code><nowiki>nano</nowiki></code>. <pre><nowiki> sudo nano /etc/X11/xorg.conf </nowiki></pre> You can also restore the backup <pre><nowiki> sudo mv /etc/X11/xorg.conf~ /etc/X11/xorg.conf </nowiki></pre> == openChrome and 3D == ''Editor's note: I haven't been able to test the openchrome driver with the latest Mesa libraries. Please update the relevant information if you have tested that this procedure works. (10 January 2009)'' === 3D doesn't always work === The <code><nowiki>openchrome</nowiki></code> driver (and previously the <code><nowiki>via</nowiki></code> driver) alone only supports 2D acceleration. 3D acceleration (Direct Rendering Infrastructure) is provided by a companion driver by the Mesa project and it is normally already installed on your system. However, DRI doesn't always work as expected and it is a known cause of problems and system freezing, specially with OpenGL applications, games, screensavers, and [[UbuntuHelp:Wine|Wine]]. See Launchpad bugs #43154, and #274340. There is no good 3D driver because VIA has not released enough chipset specifications to free software developers. For desktop PC users a definitive solution is to use another graphics card. For laptop users, their options are limited. === Compiling libdrm and drm kernel modules === As with the 2D driver, you may install the latest 3D kernel module from source and see if this fixes your current problem with 3D acceleration. <ol><li>'''Install required packages'''</li></ol> Get necessary tools to compile source code, get the kernel headers and the client tool for retreiving source code from a '''git''' repository. In a terminal, type: <pre><nowiki> sudo apt-get install build-essential linux-headers git-core </nowiki></pre> The metapackage <code><nowiki>linux-headers</nowiki></code> gets the headers for the currently used kernel. If you want to compile against a different kernel, you need to install a different package, such as <code><nowiki>linux-headers-2.6.24-17-generic</nowiki></code>. <ol><li>'''Obtain the sourcecode'''</li></ol> <pre><nowiki> git clone git://anongit.freedesktop.org/git/mesa/drm </nowiki></pre> <ol><li>'''Compile and install libdrm'''</li></ol> * Change into the newly created directory <pre><nowiki> cd drm </nowiki></pre> * Run <code><nowiki>autogen.sh</nowiki></code> with the prefix option so that the driver is being installed in the correct directory <pre><nowiki> ./autogen.sh --prefix=/usr </nowiki></pre> * Compile the source code <pre><nowiki> make </nowiki></pre> * Install the compiled source code <pre><nowiki> sudo make install </nowiki></pre> <ol><li>'''Compile and install drm kernel modules'''</li></ol> * Change to the correct directory (you have to already be in the <code><nowiki>drm</nowiki></code> directory) <pre><nowiki> cd linux-core </nowiki></pre> * Compile the kernel modules <pre><nowiki> make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via </nowiki></pre> If you get errors (example from Ubuntu 7.04) <pre><nowiki> /home/shad/stuff/drm/linux-core/drm_compat.c:190: error: static declaration of ‘vm_insert_pfn’ follows non-static declaration include/linux/mm.h:1126: error: previous declaration of ‘vm_insert_pfn’ was here make[2]: *** [/home/shad/stuff/drm/linux-core/drm_compat.o] Error 1 make[1]: *** [_module_/home/shad/stuff/drm/linux-core] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-15-generic' make: *** [modules] Error 2 </nowiki></pre> this topic: http://ubuntuforums.org/showthread.php?t=419094 could be helpful. * Copy the kernel modules to the correct location <pre><nowiki> sudo mkdir -p /lib/modules/`uname -r`/kernel/drivers/char/drm sudo cp *.ko /lib/modules/`uname -r`/kernel/drivers/char/drm/ </nowiki></pre> * Asure all dependency modules are registered <pre><nowiki> sudo depmod -ae </nowiki></pre> <ol><li>'''Test the modules'''</li></ol> * Load the modules to the kernel <pre><nowiki> sudo modprobe drm sudo modprobe via </nowiki></pre> * Test with the following command <pre><nowiki> glxinfo | grep render </nowiki></pre> You should obtain a line saying "<code><nowiki>direct rendering: Yes</nowiki></code>" <<BR>> If it works, add the modules names to the <code><nowiki>/etc/modules</nowiki></code> file so that they are loaded every time at start up <pre><nowiki> echo "drm" | sudo tee -a /etc/modules echo "via" | sudo tee -a /etc/modules </nowiki></pre> * That should be it. Reboot and see how it goes. == Problems and solutions == Most problems can be attributed to the use of this driver with 3D acceleration, that is Direct Rendering Infrastructure (DRI). Therefore most problems are avoided by disabling this option in the X server configuration file <code><nowiki>/etc/X11/xorg.conf</nowiki></code> * '''After upgrade to the latest OpenChrome revision, the bug was apear. How to get specific OpenChrome revision ?''' To find when error occured, you must get the specific revision of the OpenChrome. For example to get revision 713, go to checkedouted directory and type: <pre><nowiki> svn update -r713 </nowiki></pre> * '''I found a bug in openchrome. How to enable debug mode?''' You must run <code><nowiki>autogen.sh</nowiki></code> with debug options, compile and install, like was described above. <pre><nowiki> ./autogen.sh --prefix=/usr --enable-debug --enable-xv-debug </nowiki></pre> * '''My system sometimes freezes with OpenGL applications, games, screensavers, or [[UbuntuHelp:Wine|Wine]]''' This is being caused by a bug in <code><nowiki>drm</nowiki></code>. Edit <code><nowiki>/etc/X11/xorg.conf</nowiki></code> and disable DRI in the <code><nowiki>"Module"</nowiki></code> section.<<BR>> Change <pre><nowiki> Section "Module" ... Load "dri" ... EndSection </nowiki></pre> to <pre><nowiki> Section "Module" ... Disable "dri" ... EndSection </nowiki></pre> In Ubuntu 8.04 and newer, the <code><nowiki>xorg.conf</nowiki></code> file no longer lists all the sections described in the manual page. In this case you can add the <code><nowiki>"Module"</nowiki></code> section to the beginning of the file, and your options will override the defaults.<<BR>><<BR>> As a result, you won't have 3D acceleration anymore, but your system won't freeze. Without DRI, all 3D will be software-rendered, which will be very slow, specially for games.<<BR>> This is a sensible solution for those that don't care about desktop effects or games. * '''Ubuntu 8.10 (Intrepid Ibex). My system sometimes freezes after loading the Gnome Desktop Manager.''' You can try adding the <code><nowiki>"XaaNoImageWriteRect"</nowiki></code> option to the <code><nowiki>"Device"</nowiki></code> section of <code><nowiki>/etc/X11/xorg.conf</nowiki></code> <pre><nowiki> Section "Device" Driver "openchrome" Option "XaaNoImageWriteRect" EndSection </nowiki></pre> * '''Ubuntu 8.10 (Intrepid Ibex). My login prompt is not centralised.''' In addition to the above <code><nowiki>"XaaNoImageWriteRect"</nowiki></code> option, in the <code><nowiki>Section "Screen"</nowiki></code> add or modify the <code><nowiki>SubSection "Display"</nowiki></code> to include the <code><nowiki>Virtual</nowiki></code> setting to suit your screen: <pre><nowiki> SubSection "Display" Virtual 1280 800 EndSubSection </nowiki></pre> * '''My mouse cursor sometimes disappears.'''<<BR>> This is known to happen on VN800 and VM800 chipsets, e.g. Axioo Neon TVR 856C / TVR 016C laptops. As a solution, you can try to add <code><nowiki>"SWCursor"</nowiki></code> to the options of the <code><nowiki>"Device"</nowiki></code> section in <code><nowiki>/etc/X11/xorg.conf</nowiki></code> <pre><nowiki> Section "Device" Driver "openchrome" Option "SWCursor" "true" EndSection </nowiki></pre> * '''I installed a kernel update. Now 3D does not work anymore.'''<<BR>> If you manually installed the drm kernel module, you will have to recompile it with the new kernel headers. The procedure is described above. * '''When running <code><nowiki>autogen.sh</nowiki></code> for the openchrome 2D driver, I get errors like:''' <pre><nowiki> configure.ac: 30: required file `./[config.h].in' not found unichrome/Makefile.am:33: via_drv_la_SOURCES defined both conditionally and unconditionally </nowiki></pre> This is due to having multiple versions of automake installed with the wrong version as the default. Run <pre><nowiki> sudo update-alternatives --config automake </nowiki></pre> and choose <code><nowiki>automake-1.9</nowiki></code> * '''I have redraw mistakes on the desktop and in various applications. Lines, icons, and sliders disappear; sometimes they reappear when I move the mouse over it or when I move a window over it and back.''' The redraw-issues can be worked around by trying <code><nowiki>"True"</nowiki></code>, <code><nowiki>"False"</nowiki></code>, <code><nowiki>"On"</nowiki></code>, <code><nowiki>"Off"</nowiki></code> as values of the <code><nowiki>"EnableAGPDMA"</nowiki></code> option of the <code><nowiki>"Device"</nowiki></code> section in <code><nowiki>/etc/xorg.conf</nowiki></code> <pre><nowiki> Section "Device" Driver "openchrome" Option "EnableAGPDMA" "True" EndSection </nowiki></pre> [[category:UbuntuHelp]]
该页面使用的模板:
模板:From
(
查看源代码
)
模板:Languages
(
查看源代码
)(受保护)
模板:Languages/Lang
(
查看源代码
)(受保护)
返回至
UbuntuHelp:OpenChrome
。