VIA's Graphic chipsets and OpenGL ...
(This contribution from user "consused")
A brief explanation about drivers for VIA graphic chipsets.
VIA produce integrated graphic processor (IGP) chipsets for PC's with Intel, AMD, and VIA central processors. Hence an extensive range of multimedia chipsets with product identifiers that can be somewhat daunting. Within these chipsets, we are only concerned here with VIA's S3G UniChrome, UniChrome Pro and Chrome9 IGP cores. Comprehensive product information can be found at VIA's corporate website.
VIA Graphic chipset practical theory.
Note that for Via graphic chipsets, you have some choices for graphic drivers:
- fbdev - this is the frame buffer driver and it is compatible with many different graphic cards (ati, nvidia, intel ... ). This non-accelerated, 2D-only driver has the slowest performance, but sometimes it will work when all else fails. It typically comes packaged with openSUSE as part of xorg-x11-driver-video rpm.
- vesa - this is the vesa driver and it is compatible with many different graphic cards (ati, nvidia, intel ... ). Although a non-accelerated, 2D-only driver, it should be faster than "fbdev" in performance, and pretty robust, but overall it still has slow performance. Chipset compatibility is not the only factor here. Success with this driver will also depend on whether its built-in resolutions and fixed refresh rates support your monitor's requirements. It typically comes packaged with openSUSE as part of xorg-x11-driver-video rpm.
- unichrome - this is an open source driver developed by the The Unichrome Project. It is packaged with openSUSE as xorg-x11-driver-video-unichrome rpm. The emphasis of this driver's development is on clean code and stability, at the expense of supporting features. It currently supports CLE266, KM400/KM400A/KN400/P4M800, and K8M800/K8N800/K8N800A chipsets. Those are early/mature Unichrome and Unichrome Pro IGP's. There's no support for the later Unichrome Pro/Pro II and more recent Chrome9 IGP's. This driver does basic modesetting, accelerates 2D, 3D and Xv. It lacks accelerated mpeg2 decoding using XvMC.
To see exactly what hardware and driver options are supported by the "unichrome" driver, one can type
- openchrome - this is the most advanced open-source driver, developed by the openChrome project. Development focuses on fully utilizing the features of these multimedia chipsets. It is packaged by the openSUSE community as xorg-x11-driver-video-openchrome rpm, that can normally be downloaded from the openSUSE Build Service, In theory, this driver will accelerate 2D, 3D, Xvideo and mpeg2 decoding using XvMC. In practice, 2D should work for all the driver-supported devices, but 3D (direct rendering) is another matter. It may not be implemented for your chipset, e.g. direct rendering is currently disabled for all Chrome9 IGP's, leaving only software rasterizing (too slow) for 3D applications. The list of supported IGP's is long and includes Unichrome, Unichrome Pro, and Chrome 9 chipsets. I refer you to the chipset support matrix, displayed under "Documentation" at the openChrome project's website.
To see exactly what hardware and driver options are supported by the "openchrome" driver, one can type
- chrome9 - this is VIA's open-source unified driver for their graphic chipsets. That means it should support all VIA devices listed in the rpm's package description, at least for 2D. This driver should have better performance than the VESA driver. Currently VIA don't package their driver for openSUSE. However, a package is provided by the openSUSE community as xorg-x11-driver-video-chrome9 rpm, that can normally be downloaded from the openSUSE Build Service. Since openSUSE 11.2, the name of this driver module is "via". That name must be used in sax2 commands and in the xorg.conf driver statement, if one exists - see explanation below. If you choose to install this driver, do not install/reinstall the "unichrome" driver afterwards as it will overwrite chrome9's "via" driver files in /usr/lib/xorg/modules/drivers. Installing chrome9 with unichrome already installed doesn't affect the "unichrome" driver files. There is no mpeg acceleration in chrome9, and 3D (direct rendering) hasn't worked so far.
VIA's Graphic chipsets and OpenGL
OpenGL support for VIA IGP's is outdated. That will affect your ability to run serious 3D applications and compositing desktops (e.g. Compiz) that require OpenGL. Mesa is the open-source implementation of the OpenGL specification, and it's installed as part of your openSUSE system. The Mesa 3D driver for VIA chips that is already installed on the system is called unichrome_dri.so, and it complements drivers such as the "openchrome" driver in providing 3D through the Direct Rendering Infrastructure (DRI). However, Mesa's 3D driver has suffered from lack of maintenance and needs updating, which adversely affects the 3D capabilities of the openchrome and chrome9 drivers.
xorg.conf file and xorg.conf.d directory in Linux
In older openSUSE releases, it was necessary to have an /etc/xorg.conf file which defined the configuration needed for one's graphic card. This is not the case for newer openSUSE versions.
As of openSUSE-11.2, the need to have an xorg.conf file was removed for many graphic cards. This was because "xorg" who code X window framework are moving away from requiring the xorg.conf file, but rather want to have the card configured automatically without that xorg.conf file. In such a case, the xorg software should automatically use the latest open source driver that is installed (e.g. "unichrome"). However the automatic recognition of graphic cards is still not reliable for all cards in openSUSE-11.2 nor 11.3.
To help address that case (where automatic graphic card recognition fails) similar to other distributions, openSUSE as of version 11.3 also has an /etc/X11/xorg.conf.d/ directory, with a series of .conf files in that directory, where the graphic configuration can be specified (which if specified will take precedence over the Xorg software's automatic configuration). These files include:
Code:
10-evdev.conf
11-mouse.conf
20-synaptics.conf
20-wacom.conf
50-device.conf
50-monitor.conf
50-screen.conf
50-vmmouse.conf
90-keytable.conf
For example, to force the vesa driver, one could edit the 50-device.conf to look like (where Driver "vesa" was added):
Code:
Section "Device"
Identifier "Default Device"
#Driver "radeon"
Driver "vesa"
## Required magic for radeon/radeonhd drivers; output name
## (here: "DVI-0") can be figured out via 'xrandr -q'
#Option "monitor-DVI-0" "Default Monitor"
EndSection
In addition the older xorg.conf file can still be used for the card to force a graphic configuration, for if that xorg.conf file is available, then the Xorg software will use it (giving it precedence over BOTH automatic Xorg configuration and the /etc/X11/xorg.conf.d/nn-yyyuy.conf files). This may well be the case for many of VIA's chipsets, particularly the Unichrome Pro and Chrome9 IGP's.
Software to Create xorg.conf file.
There is software provided by SuSE-GmbH in openSUSE that is used to generate the xorg.conf file for graphic drivers, which is called "sax2". One can run "sax2" with many options (but it must be run with root permissions).
For example, to check what chip# one's graphic devices are, one can run with root permissions:
pay attention to the chip, ... ie chip 0 (typically if only one graphic device) or there may be a chip-0 and a chip-1 (if one has more than one graphic device).
Run Level 3
Now typically, when reconfiguring a graphic card, it is best to do this NOT in X window, but rather in the full screen terminal run level 3. One boots to run level 3 by pressing "3" (no quotes) when the initial grub boot menu first appears. By pressing "3" one will see the "3" appear in the options line. Then boot normally. That brings one to a full screen text login. Login as a regular user.
Creating the xorg.conf file
After logging in to run level 3, type "su" (no quotes - enter root password) to switch users to the administrator/root.
For openSUSE-11.2 and earlier, if one wishes to force sax2 to create an xorg.conf file for the openchrome open source graphic driver (called "openchrome"), then one would type in run level 3 (NOT in X window):
Code:
sax2 -r -m 0=openchrome
or
Code:
sax2 -r -m 1=openchrome
where the 0 or 1 depends on what graphic chip one is trying to configure. The "-r" option tells sax2 to ignore any previous created xorg.conf file, and overwrite/replace it.
or for the slower vesa driver
or
where the 0 or 1 depends on what graphic chip one is trying to configure. The "-r" option tells sax2 to ignore any previous created xorg.conf file, and overwrite/replace it.
For all openSUSE versions (including 11.3) there is "Xorg -configure". ie run with root permissions in run level 3
which will create the file /root/xorg.conf.new. Copy that file to /etc/X11 with:
Code:
cp /root/xorg.conf.new /etc/X11/xorg.conf
and then if necessary edit the xorg.conf file, using something like the vi editor. Pay attention to the "Device" section in the xorg.conf file as it will specify the Driver, with a line something like (for example):
Code:
Driver "openchrome"
Again, note above the much early section on the subject "xorg.conf file and xorg.conf.d directory in Linux", where the file "50-device.conf" can instead be edited.
Restart to test. Once sax2 (or the xorg.conf is creatd and edited with Xorg -configure) is complete, one can restart from run level 3 with root permissions by typing "shutdown -r now" and then let the reboot continue to see if the graphic card configuration worked. Or instead of restarting, as a regular user (not as root) in run level 3 one can type "startx".
Hopefully that gives some practical theory so that users can understand the recommendations that have been given in various posts by our forum members.
Many thanks to consused for his contribution above
Bookmarks