Visualization: graphics cards and 3D: Difference between revisions
mNo edit summary |
|||
(28 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
== graphics cards and drivers == | == graphics cards and drivers (Linux) == | ||
For 3D applications like COOT and O, only recently (2007) cheap hardware has become fast enough to ''not'' require proprietary drivers for decent performance. Proprietary drivers (for NVidia, ATI and Intel chips) are usually not open-source and are thus not distributed with the [[Operating_systems_and_Linux_distributions#Linux_Distributions|Linux distros]]. | |||
Some distros make it easy to install them through their installation tools; for other distros you have to install and maintain them yourself. | |||
== 3D == | If the open-source Xorg driver (i.e. no proprietary driver) is installed, the output of "glxinfo|head" is something like: | ||
* [[3D | name of display: :0.0 | ||
display: :0 screen: 0 | |||
direct rendering: No | |||
server glx vendor string: SGI | |||
server glx version string: 1.2 | |||
server glx extensions: | |||
GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating, | |||
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method, | |||
GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe, | |||
GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_MESA_copy_sub_buffer | |||
client glx vendor string: SGI | |||
== NVidia == | |||
NVidia cards are most popular for visualization in protein crystallography. The proprietary driver (called "nvidia" driver in xorg.conf) is stable, and even the cheapest cards are suitable for crystallographic work when it is used. | |||
Some mid-range graphics cards (starting with GeForce x600) are fast enough for useful 3D work even with the drivers that are part of Xorg (called "nv" driver in xorg.conf). | |||
* [http://www.nvidia.com NVidia] - proprietary driver download for Linux at [http://www.nvidia.com/object/unix.html] | |||
* "Latest cards" list at [http://www.nvidia.com/object/IO_18897.html] | |||
* "Legacy cards" list at [http://www.nvidia.com/object/IO_32667.html] | |||
* RedHat/Fedora/Debian/[K]Ubuntu installation information can be found at [http://www.nvnews.net/vbulletin/showthread.php?t=72490]. In particular, for RedHat/Fedora one needs to install the kernel-devel RPM package. Other than this, the information in that posting seems a bit overkill - the NVidia driver usually works very well without any SElinux jiggling. | |||
=== checking the integrity of the NVidia driver === | |||
If everything is ok with the driver, you get the following output from "glxinfo|head": | |||
<code> | |||
name of display: :0.0 | |||
display: :0 screen: 0 | |||
direct rendering: Yes | |||
server glx vendor string: NVIDIA Corporation | |||
server glx version string: 1.4 | |||
server glx extensions: | |||
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig, | |||
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control, | |||
GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer | |||
client glx vendor string: NVIDIA Corporation | |||
</code> | |||
=== maintaining the NVidia driver === | |||
The proprietary driver works well but it needs a bit of care. More to the point: parts of it need to be re-installed after kernel updates and updates of xorg-x11-* (both of which happen regularly). | |||
On RedHat systems that are regularly booted, the following lines in /etc/rc.local result in the necessary parts of the driver being re-installed automagically after booting: | |||
if [ ! -h /usr/lib/xorg/modules/extensions/libglx.so ]; then | |||
# this should be /usr/lib64/xorg/modules/extensions/libglx.so on a 64bit machine ! | |||
echo "re-installing NVIDIA driver. This takes some time. Ignore any warnings." | |||
/root/NVIDIA.run --no-network -s -n | |||
fi | |||
if [ ! -e /lib/modules/`uname -r`/kernel/drivers/video/nvidia.ko ]; then | |||
echo "installing NVIDIA kernel module. This takes some time. Ignore any warnings." | |||
/root/NVIDIA.run --no-network -s -K -n | |||
fi | |||
This requires that you first "chmod +x" the driver package (e.g. NVIDIA-Linux-x86-169.04-pkg1.run) downloaded from the NVidia site, and then establish a symbolic link from it, to /root/NVIDIA.run . | |||
Newer distributions using SELinux may encounter problems with restrictions that prevent init scripts from executing certain commands related to kernel modules. Creating an SELinux rule exception is the correct solution, but may be difficult. A work-around is to insert "/usr/bin/setenforce 0" before running the NVIDIA installer, and "/usr/bin/setenforce 1" afterwards. | |||
The RPM way of maintaining the NVidia driver nowadays can be found at http://elrepo.org/tiki/kmod-nvidia . This is preferable to the DKMS way that RPMforge provides. | |||
=== Hybrid graphics === | |||
See [https://bbs.archlinux.org/viewtopic.php?pid=881549] and [http://linux-hybrid-graphics.blogspot.com/] | |||
To test the nvidia driver: blacklist the nouveau and intel graphic modules, disable kernel mode-setting, and boot to runlevel 3 - all via the following kernel command line args: | |||
nouveau.disable=1 intel.disable=1 nomodeset 3 <--append this to grub kernel line | |||
Then run nvidia's xorg creation tool (nvidia-xconfig). Give X a try and see if it works. | |||
If that wont work, black list nouveau and nvidia, and try the intel module (delete the xorg.conf made by nvidia-xconfig): | |||
nouveau.disable=1 nomodeset 3 <-- append this to grub kernel line | |||
The elrepo.org kmod-nvidia package already disables nouveau mode-setting (nouveau.modeset=0), blacklists the nouveau driver and runs nvidia-xconfig to create a suitable xorg.conf file. | |||
== ATI == | |||
ATI now belongs to AMD. Download the proprietary driver from http://ati.amd.com . | |||
Recently the (open source) [http://www.free3d.org/ radeon driver] shipped with [http://www.x.org Xorg] has improved DRI capabilities that are often sufficient for crystallographic purposes, and the need to hastle with the installation of the propriety driver has become void. | |||
If you are experiencing problems with Coot and ATI graphic cards with rv5xx chipset on FC10, you should switch from the 'radeon' driver to 'radeonhd', for example in the following way (as root): | |||
* yum install system-config-display | |||
* yum install radeonhd | |||
* system-config-display | |||
Now you can conveniently change the graphic card driver via a graphical interface, then restart X windows | |||
Unfortunately, you have to disable 3D desktop effects, otherwise you get a blank screen and have to undo the settings via terminal. Furthermore, do not try to use the proprietary ATI 'fglrx' drivers, since they made things even worse, at least in my personal experience (with an ATI Radeon X1650). | |||
== Intel == | |||
The X3100 graphics accelerator is known to be quite fast. FIXME: does it require special drivers? | |||
== Table of Cards and drivers == | |||
{| border="1" cellpadding="0" | |||
|- | |||
|width="70pt"|Brand | |||
|width="100pt"|Model number | |||
|width="100pt"|Distro and/or OS | |||
|width="70pt"|Working ? | |||
|width="100pt"|Driver | |||
|width="200pt"|Remarks | |||
|- | |||
|ATI || Radeon X1300 || Ubuntu 8.10 - Intrepid Ibex || Yes||fglrx|| automagically installed from Ubuntu | |||
|- | |||
|ATI || Radeon 9200 || Ubuntu 8.10 - Intrepid Ibex || Yes||open source radeon|| automagically installed from Ubuntu | |||
|- | |||
|Nvidia||Quadro FX 1400||SuSe 10.2||Yes|| Nvidia||installed from SuSE repos | |||
|} | |||
== See also == | |||
* [[Stereo]] |
Latest revision as of 09:39, 12 September 2011
graphics cards and drivers (Linux)[edit | edit source]
For 3D applications like COOT and O, only recently (2007) cheap hardware has become fast enough to not require proprietary drivers for decent performance. Proprietary drivers (for NVidia, ATI and Intel chips) are usually not open-source and are thus not distributed with the Linux distros. Some distros make it easy to install them through their installation tools; for other distros you have to install and maintain them yourself.
If the open-source Xorg driver (i.e. no proprietary driver) is installed, the output of "glxinfo|head" is something like:
name of display: :0.0 display: :0 screen: 0 direct rendering: No server glx vendor string: SGI server glx version string: 1.2 server glx extensions: GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe, GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_MESA_copy_sub_buffer client glx vendor string: SGI
NVidia[edit | edit source]
NVidia cards are most popular for visualization in protein crystallography. The proprietary driver (called "nvidia" driver in xorg.conf) is stable, and even the cheapest cards are suitable for crystallographic work when it is used. Some mid-range graphics cards (starting with GeForce x600) are fast enough for useful 3D work even with the drivers that are part of Xorg (called "nv" driver in xorg.conf).
- NVidia - proprietary driver download for Linux at [1]
- "Latest cards" list at [2]
- "Legacy cards" list at [3]
- RedHat/Fedora/Debian/[K]Ubuntu installation information can be found at [4]. In particular, for RedHat/Fedora one needs to install the kernel-devel RPM package. Other than this, the information in that posting seems a bit overkill - the NVidia driver usually works very well without any SElinux jiggling.
checking the integrity of the NVidia driver[edit | edit source]
If everything is ok with the driver, you get the following output from "glxinfo|head":
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer
client glx vendor string: NVIDIA Corporation
maintaining the NVidia driver[edit | edit source]
The proprietary driver works well but it needs a bit of care. More to the point: parts of it need to be re-installed after kernel updates and updates of xorg-x11-* (both of which happen regularly). On RedHat systems that are regularly booted, the following lines in /etc/rc.local result in the necessary parts of the driver being re-installed automagically after booting:
if [ ! -h /usr/lib/xorg/modules/extensions/libglx.so ]; then # this should be /usr/lib64/xorg/modules/extensions/libglx.so on a 64bit machine ! echo "re-installing NVIDIA driver. This takes some time. Ignore any warnings." /root/NVIDIA.run --no-network -s -n fi if [ ! -e /lib/modules/`uname -r`/kernel/drivers/video/nvidia.ko ]; then echo "installing NVIDIA kernel module. This takes some time. Ignore any warnings." /root/NVIDIA.run --no-network -s -K -n fi
This requires that you first "chmod +x" the driver package (e.g. NVIDIA-Linux-x86-169.04-pkg1.run) downloaded from the NVidia site, and then establish a symbolic link from it, to /root/NVIDIA.run .
Newer distributions using SELinux may encounter problems with restrictions that prevent init scripts from executing certain commands related to kernel modules. Creating an SELinux rule exception is the correct solution, but may be difficult. A work-around is to insert "/usr/bin/setenforce 0" before running the NVIDIA installer, and "/usr/bin/setenforce 1" afterwards.
The RPM way of maintaining the NVidia driver nowadays can be found at http://elrepo.org/tiki/kmod-nvidia . This is preferable to the DKMS way that RPMforge provides.
Hybrid graphics[edit | edit source]
To test the nvidia driver: blacklist the nouveau and intel graphic modules, disable kernel mode-setting, and boot to runlevel 3 - all via the following kernel command line args:
nouveau.disable=1 intel.disable=1 nomodeset 3 <--append this to grub kernel line
Then run nvidia's xorg creation tool (nvidia-xconfig). Give X a try and see if it works.
If that wont work, black list nouveau and nvidia, and try the intel module (delete the xorg.conf made by nvidia-xconfig):
nouveau.disable=1 nomodeset 3 <-- append this to grub kernel line
The elrepo.org kmod-nvidia package already disables nouveau mode-setting (nouveau.modeset=0), blacklists the nouveau driver and runs nvidia-xconfig to create a suitable xorg.conf file.
ATI[edit | edit source]
ATI now belongs to AMD. Download the proprietary driver from http://ati.amd.com . Recently the (open source) radeon driver shipped with Xorg has improved DRI capabilities that are often sufficient for crystallographic purposes, and the need to hastle with the installation of the propriety driver has become void.
If you are experiencing problems with Coot and ATI graphic cards with rv5xx chipset on FC10, you should switch from the 'radeon' driver to 'radeonhd', for example in the following way (as root):
- yum install system-config-display
- yum install radeonhd
- system-config-display
Now you can conveniently change the graphic card driver via a graphical interface, then restart X windows
Unfortunately, you have to disable 3D desktop effects, otherwise you get a blank screen and have to undo the settings via terminal. Furthermore, do not try to use the proprietary ATI 'fglrx' drivers, since they made things even worse, at least in my personal experience (with an ATI Radeon X1650).
Intel[edit | edit source]
The X3100 graphics accelerator is known to be quite fast. FIXME: does it require special drivers?
Table of Cards and drivers[edit | edit source]
Brand | Model number | Distro and/or OS | Working ? | Driver | Remarks |
ATI | Radeon X1300 | Ubuntu 8.10 - Intrepid Ibex | Yes | fglrx | automagically installed from Ubuntu |
ATI | Radeon 9200 | Ubuntu 8.10 - Intrepid Ibex | Yes | open source radeon | automagically installed from Ubuntu |
Nvidia | Quadro FX 1400 | SuSe 10.2 | Yes | Nvidia | installed from SuSE repos |