[[PageOutline]] = Build Lustre Storage Cluster for 3D Fly platform = == 0.Introduction == Some domain-applications usually need to computing with huge data. It usually meet a bottleneck of performance, the main problem is I/O performance to drag total performance. Thereforce, we use Lustre high performance stroage to improve I/O performance.[[BR]] Abiut Lustre, you can refer to Lustre web site http://wiki.lustre.org/ == 1.Machine information & Software == * Hardware ||Node ||8 nodes (1 server , 7 client provide disks)|| ||CPU ||Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz (each node)|| ||Memory ||2GB DDR2 667 (each node)|| ||Disk ||All nodes: 320G * 7 = 2.24T|| ||NIC ||Intel Corporation 82566DM Gigabit Network Connection|| ||Switch ||D-link 24 port GE switch|| * Software ||OS||OpenSuSE 10.2|| ||DRBL||1.9.0-35|| ||Amira||Testing Version|| ||Kernel||2.6.18|| * Architecture [[Image(fly_arch.png)]] == 2.Config OpenSuSE Environment == * Install packages for Lustre * Install packages for DRBL == 3.Install Lustre == * Build kernel {{{ $ sudo su $ cd /usr/src $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 $ tar jxvf linux-2.6.18.tar.bz2 $ cd 2.6.18 $ cp /boot/config-xxx .config $ make oldconfig ; make menuconfig $ make -j 5 $ make modules $ make modules_install $ make install $ mkinitrd $ vim /boot/grub/menu.list }}} * recompiler NIC driver {{{ wget http://trac.nchc.org.tw/grid/attachment/wiki/Problem/e1000-7.6.15.4.tar.gz?format=raw tar e1000-7.6.15.4.tar.gz cd e1000-7.6.15.4/src make install }}} * Bonding NIC (bond0 -> eth1 & eth2) {{{ $ cd /etc/sysconfig/network $ vim ifcfg-eth1 $ vim ifeth-eth2 $ vim ifcfg-bond0 $ vim /etc/rc.d/after.local ifenslave bond0 eth1 eth2 modprobe drm modprobe ldiskfs modprobe lnet networks=tcp $ vim /etc/module/modules.conf.local alias bond0 bonding alias eth0 e1000 alias eth1 e1000 alias eth2 e1000 options bond0 mode=6 miimon=100 }}} * Build Lustre Modules {{{ $ configure --with-linux=/usr/src/2.6.18 $ make install $ depmod -a $ vim /etc/rc.d/after.local }}} == 4.Build DRBL Environment == {{{ $ zypper install drbl $ /opt/drbl/sbin/drblsrv -i $ /opt/drbl/sbin/drblpush -i = Check nodes booting setup = /tftpboot/nodes/192.168.1.X/etc/rc.d/after.local /tftpboot/nodes/192.168.1.X/etc/module/modules.conf.local /tftfpood/node_root/etc/sysconfig/network/ }}} == 5.Build Lustre Storage Cluster == * Setup autologin {{{ = fly = mkfs.lustre --fsname=flyfs --mdt --mgs /dev/sdb1 mount -t lustre /dev/sdb1 /home/mdt = fly01 ~ fly07 = mkfs.lustre --fsname=flyfs --ost --mgsnode=fly@tcp0 /dev/sdb mount -t lustre /dev/sdb /home/ost = fly = mkdir /home/flyfs mount -t lustre fly@tcp0:/flyfs /home/flyfs }}} == 6.Install TurboJPEG == rock@fly:~/turbojpeg> wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/v/vi/virtualgl/turbojpeg-1.10.3.x86_64.rpm [[BR]] rock@fly:~/turbojpeg> sudo rpm -Uivh turbojpeg-1.10.3.x86_64.rpm [[BR]] == 7.Install VirtualGL == rock@fly:~/VirtualGL> wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/v/vi/virtualgl/VirtualGL-2.1.x86_64.rpm [[BR]] rock@fly:~/VirtualGL> sudo rpm -Uivh VirtualGL-2.1.x86_64.rpm [[BR]] ### VGL Server Configuration [[BR]] rock@fly:~> sudo /opt/VirtualGL/bin/vglserver_config [[BR]] {{{ 1) Configure server for use with VirtualGL in GLX mode 2) Unconfigure server for use with VirtualGL in GLX mode X) Exit Choose: 1 Restrict local X server access to vglusers group (recommended)? [Y/n] n Restrict framebuffer device access to vglusers group (recommended)? [Y/n] n Disable XTEST extension (recommended)? [Y/n] n ... Granting write permission to /dev/nvidia* for all users ... ... Adding xhost +localhost to /etc/X11/xdm/Xsetup script ... ... Adding xhost +localhost to /etc/opt/gnome/gdm/Init/Default script ... ... Disabling XTEST extension in /etc/X11/xdm/Xservers ... ... Setting default run level to 5 (enabling graphical login prompt) ... Done. You must restart the display manager for the changes to take effect. 1) Configure server for use with VirtualGL in GLX mode 2) Unconfigure server for use with VirtualGL in GLX mode X) Exit Choose: X }}} rock@fly:~> sudo /etc/init.d/xdm restart [[BR]] == 8.Install TurboVNC == rock@fly:~> sudo zypper install xorg-x11-fonts xorg-x11-fonts-core xorg-x11-fonts-devel [[BR]] rock@fly:~> sudo zypper install xorg-x11-devel xorg-x11-driver-input xorg-x11-driver-video [[BR]] rock@fly:~> sudo zypper install libdrm libdrm-devel Mesa Mesa-devel [[BR]] rock@fly:~> sudo zypper remove beagle beagle-evolution beagle-firefox beagle-gui beagle-index tomboy [[BR]] rock@fly:~/turbovnc> wget http://downloads.sourceforge.net/virtualgl/turbovnc-0.4.i386.rpm?modtime=1205803835&big_mirror=0 [[BR]] rock@fly:~/turbovnc> sudo rpm -Uivh turbovnc-0.4.i386.rpm [[BR]] rock@fly:/usr/X11R6/lib> sudo /etc/init.d/xfs start [[BR]] rock@fly:~> cd /usr/X11R6/lib [[BR]] rock@fly:/usr/X11R6/lib> sudo mkdir X11 [[BR]] rock@fly:~> sudo cp rgb.txt /usr/X11R6/lib/X11/ (Default RgbPath:"/usr/share/X11/rgb) [[BR]] rock@fly:~> sudo vim /etc/X11/xorg.conf [[BR]] {{{ Section "Module" Load "dbe" Load "type1" Load "freetype" Load "extmod" Load "glx" Load "drm" Load "dri" EndSection Section "Device" BoardName "965Q" BusID "0:2:0" Driver "intel" Identifier "Device[0]" Option "monitor-VGA" "Monitor[0]" VendorName "Intel" EndSection Section "DRI" Mode 0666 EndSection }}} rock@fly:~> sudo vim /etc/X11/fs/config [[BR]] {{{ #no-listen = tcp }}} rock@fly:~> /opt/TurboVNC/bin/vncserver -geometry 1024x768 :1 [[BR]] New 'X' desktop is fly:1 Creating default startup script /home/rock/.vnc/xstartup Starting applications specified in /home/rock/.vnc/xstartup Log file is /home/rock/.vnc/fly:1.log rock@fly:~> ps aux | grep X {{{ root 4216 0.0 0.9 75012 19760 tty7 Ss+ Jul03 0:04 /usr/bin/X :0 -audit 0 -br -auth /var/lib/gdm/:0.Xauth vt7 rock 4811 0.0 0.0 46628 988 ? Ss Jul03 0:00 /usr/bin/ssh-agent /bin/bash /etc/X11/xinit/xinitrc rock 20758 1.1 0.6 16760 12900 pts/9 S 00:56 0:00 /opt/TurboVNC/bin/Xvnc :1 -desktop X -httpd /opt/TurboVNC/bin/../vnc/classes -auth /home/rock/.Xauthority -dontdisconnect -geometry 1024x768 -depth 24 -rfbwait 120000 -rfbauth /home/rock/.vnc/passwd -rfbport 5901 -fp unix/:7100 -deferupdate 1 rock 22008 0.0 0.0 5004 808 pts/9 S+ 00:56 0:00 grep X }}} === 8.1 Using TurboVNC with vncviewer === @ Client {{{ < By Port > rider@350z:~$ /opt/TurboVNC/bin/vncviewer Fly_Server::{5900+n} OR < By Display > rider@350z:~$ /opt/TurboVNC/bin/vncviewer Fly_Server:{m} }}} Example: If the TurboVNC server is running on X display fly:1, then point your web browser to: [[BR]] {{{ < By Port > rider@350z:~$ /opt/TurboVNC/bin/vncviewer Fly_Server::{5900+n} OR < By Display > rider@350z:~$ /opt/TurboVNC/bin/vncviewer Fly_Server:1 }}} Bug Fix (for XKB Error): [[BR]] rock@fly:~> sudo zypper remove libxklavier libxklavier-devel [[BR]] {{{ Not Necessary: (下列 套件 將會被移除) control-center2-devel gnome-python-desktop gnome-applets gnome-media deskbar-applet gnome-blog-lang deskbar-applet-devel compiz control-center2 gnome-applets-devel gnome-blog control-center2-lang libgnomekbd compiz-gnome libxklavier gnome-applets-lang }}} === 8.2 Using TurboVNC in a Web Browser === @ Client To use the Java TurboVNC viewer, point your web browser to: [[BR]] http://Fly_Server:5800+n [[BR]] Example: If the TurboVNC server is running on X display fly:1, then point your web browser to: [[BR]] http://Fly_Server:5801 [[BR]] {{{ ### TurboVNC Initialization Bug fixed for ALSA Library ### rock@fly:~/alsa> wget http://gd.tuwien.ac.at/opsys/linux/alsa/lib/alsa-lib-1.0.13.tar.bz2 rock@fly:~/alsa> tar jxvf alsa-lib-1.0.13.tar.bz2 rock@fly:~/alsa> cd alsa-lib-1.0.13 rock@fly:~/alsa/alsa-lib-1.0.13> ./configure --enable-static rock@fly:~/alsa/alsa-lib-1.0.13> make -j 4 rock@fly:~/alsa/alsa-lib-1.0.13> sudo make install openSUSE(XDM)-> Computer -> Control Center -> System -> Sound -> Choose ALSA for each option. }}} == 9.Install Amira == Necessary Library: libg2c.so.0 [[BR]] Download libg2c33(Fortran Compiler Runtime Library) for openSUSE 10.2 [[BR]] rock@fly:~/amira_source/download_lib> wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/algraf/openSUSE_10.2/x86_64/libg2c33-3.3.3-43.3.x86_64.rpm [[BR]] rock@fly:~/amira_source/download_lib> sudo rpm -i libg2c33-3.3.3-43.3.x86_64.rpm [[BR]] rock@fly:~/amira_source> chmod a+x Amira411-LinuxAMD64.bin [[BR]] rock@fly:~/amira_source> ./Amira411-LinuxAMD64.bin --console (console mode)[[BR]] Installation succeed !!! [[BR]] Installation path: /home/rock/Amira4.1.1 [[BR]] rock@fly:~/Amira4.1.1/bin> ./start --console (console mode)[[BR]] Finished ! It works... === 9.1 Amira Service === rock@fly:~> cd ./Amira4.1.1/bin/ [[BR]] rock@fly:~/Amira4.1.1/bin> sudo chmod a+x serviceSetup.sh [[BR]] rock@fly:~/Amira4.1.1/bin> ./serviceSetup.sh [[BR]] rock@fly:~/Amira4.1.1/bin> sudo /etc/init.d/xinetd restart [[BR]] rock@fly:~/Amira4.1.1/bin> sudo netstat -tnlp {{{ Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:32802 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:616 0.0.0.0:* LISTEN 3831/ypbind tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 18763/xinetd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3589/portmap tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 16769/X tcp 0 0 127.0.0.1:2544 0.0.0.0:* LISTEN 3867/zmd tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 3827/perl tcp 0 0 0.0.0.0:17234 0.0.0.0:* LISTEN 18763/xinetd ---> Amira daemon tcp 0 0 0.0.0.0:756 0.0.0.0:* LISTEN 3974/rpc.mountd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4089/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 4596/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 4167/master tcp 0 0 0.0.0.0:603 0.0.0.0:* LISTEN 3817/ypserv tcp 0 0 0.0.0.0:607 0.0.0.0:* LISTEN 3822/rpc.ypxfrd }}} rock@fly:~/Amira4.1.1/bin> less /etc/xinetd.d/amira [[BR]] {{{ # Amira's Service service amira { type = UNLISTED socket_type = STREAM protocol = TCP wait = no user = root server = /home/rock/Amira4.1.1/bin/amiradaemon server_args = -daemonExePath /home/rock/Amira4.1.1/bin/start port = 17234 } }}} == 10.NVIDIA GeForce 7300 GT Installation == Change to root before following steps. [[BR]] fly:/home/rock/nvidia # wget http://tw.download.nvidia.com/XFree86/Linux-x86_64/173.14.09/NVIDIA-Linux-x86_64-173.14.09-pkg2.run [[BR]] fly:/home/rock/nvidia # sh NVIDIA-Linux-x86_64-173.14.09-pkg2.run [[BR]] Then follow extra steps to continue: Setup , kernel module , configuration ..etc [[BR]] Finished!!! Now, Check it out ~ fly:/home/rock/nvidia # modprobe -l | grep nv [[BR]] {{{ /lib/modules/2.6.18-default/kernel/drivers/scsi/sata_nv.ko /lib/modules/2.6.18-default/kernel/drivers/video/nvidia/nvidiafb.ko /lib/modules/2.6.18-default/kernel/drivers/video/nvidia.ko }}} We only need nvidia.ko, and it'll actually loaded after installation. [[BR]] fly:/home/rock/nvidia # lsmod | grep nv {{{ nvidia 8132208 24 i2c_core 41472 2 nvidia,i2c_i801 }}} fly:/home/rock # glxinfo | more {{{ 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, GLX_ARB_fbconfig_float client glx vendor string: NVIDIA Corporation client glx version string: 1.4 OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce 7300 GT/PCI/SSE2 OpenGL version string: 2.1.2 NVIDIA 173.14.09 }}} fly:/home/rock/nvidia # vim /etc/X11/xorg.conf (For NVIDIA Only)[[BR]] {{{ Section "Module" Load "dbe" Load "type1" Load "freetype" Load "extmod" Load "glx" Load "v4l" # Load "dri" # Load "drm" EndSection Section "Device" Identifier "Device[0]" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 7300 GT" EndSection # Section "DRI" # Group "video" # Mode 0666 # EndSection }}} fly:/home/rock/nvidia # grep NVIDIA /var/log/Xorg.0.log [[BR]] {{{ (II) LoadModule: "nvidia" (II) Loading /usr/lib64/xorg/modules//drivers/nvidia_drv.so (II) Module nvidia: vendor="NVIDIA Corporation" (II) Module glx: vendor="NVIDIA Corporation" (II) NVIDIA GLX Module 173.14.12 Thu Jul 17 18:36:30 PDT 2008 (II) Module nvidia: vendor="NVIDIA Corporation" (II) NVIDIA dlloader X Driver 173.14.12 Thu Jul 17 18:18:16 PDT 2008 (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs (--) Chipset NVIDIA GPU found (II) Module wfb: vendor="NVIDIA Corporation" (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32 (==) NVIDIA(0): RGB weight 888 (==) NVIDIA(0): Default visual is TrueColor (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0) (**) NVIDIA(0): Enabling RENDER acceleration (WW) NVIDIA(GPU-0): Unable to read EDID for display device CRT-0 (II) NVIDIA(0): NVIDIA GPU GeForce 7300 GT (G73) at PCI:1:0:0 (GPU-0) (--) NVIDIA(0): Memory: 262144 kBytes (--) NVIDIA(0): VideoBIOS: 05.73.22.51.00 (II) NVIDIA(0): Detected PCI Express Link width: 16X (--) NVIDIA(0): Interlaced video modes are supported on this GPU (--) NVIDIA(0): Connected display device(s) on GeForce 7300 GT at PCI:1:0:0: (--) NVIDIA(0): CRT-0 (--) NVIDIA(0): CRT-0: 400.0 MHz maximum pixel clock (II) NVIDIA(0): Assigned Display Device: CRT-0 (II) NVIDIA(0): Validated modes: (II) NVIDIA(0): "1280x1024" (II) NVIDIA(0): "1280x960" (II) NVIDIA(0): "1152x864" (II) NVIDIA(0): "1024x768" (II) NVIDIA(0): "800x600" (II) NVIDIA(0): Virtual screen size determined to be 1280 x 1024 (WW) NVIDIA(0): Unable to get display device CRT-0's EDID; cannot compute DPI (WW) NVIDIA(0): from CRT-0's EDID. (**) NVIDIA(0): DPI set to (86, 86); computed from "DisplaySize" Monitor (**) NVIDIA(0): section option (==) NVIDIA(0): Disabling 32-bit ARGB GLX visuals. (II) NVIDIA(0): Initialized GPU GART. (II) NVIDIA(0): Unable to connect to the ACPI daemon; the ACPI daemon may not (II) NVIDIA(0): be running or the "AcpidSocketPath" X configuration option (II) NVIDIA(0): may not be set correctly. When the ACPI daemon is (II) NVIDIA(0): available, the NVIDIA X driver can use it to receive ACPI (II) NVIDIA(0): events. For details, please see the "ConnectToAcpid" and (II) NVIDIA(0): "AcpidSocketPath" X configuration options in Appendix B: X (II) NVIDIA(0): Config Options in the README. (II) NVIDIA(0): Setting mode "1280x1024" (II) NVIDIA(0): NVIDIA 3D Acceleration Architecture Initialized (II) NVIDIA(0): Using the NVIDIA 2D acceleration architecture (==) NVIDIA(0): Backing store disabled (==) NVIDIA(0): Silken mouse enabled (**) NVIDIA(0): DPMS enabled (WW) NVIDIA(0): Option "monitor-VGA" is not used (II) NVIDIA(0): Setting mode "1280x1024_60" }}} fly:/home/rock/nvidia # grep nvidia /var/log/Xorg.0.log [[BR]] {{{ (II) LoadModule: "nvidia" (II) Loading /usr/lib64/xorg/modules//drivers/nvidia_drv.so (II) Module nvidia: vendor="NVIDIA Corporation" }}} fly:/home/rock/nvidia # /etc/init.d/xdm restart [[BR]] === 10.1 NVIDIA 7300GT Performance === rock@fly:~> glxgears [[BR]] {{{ 37672 frames in 5.0 seconds = 7534.325 FPS 38320 frames in 5.0 seconds = 7663.902 FPS 38317 frames in 5.0 seconds = 7663.308 FPS }}} Average Score: 7630 FPS [[BR]] == 11. Intel Corporation 82Q963/Q965 Integrated Graphics Driver & Setting == rock@fly:~> sudo vim /etc/sysconfig/displaymanager [[BR]] {{{ ## Type: string(Xorg,Xgl) ## Path: Desktop/Display manager ## Default: "Xorg" # # Xgl is an experimental Xserver using OpenGL for rendering # Right now only the glx backend is supported, which runs on top of a # standard Xorg server providing OpenGL. # Set this to 'Xgl' and run SuSEconfig only if you want to run your # displaymanager (kdm/gdm/xdm) on Xgl on top of Xorg. # This setting is case sensitive. # Warning! This is highly experimental. ## If we use Xgl setting to run gdm, we no longer get 3D Direct Rendering but rather software rendering. XGL still gives you 3D but not through Direct Rendering. To get the git for the latest Xorg may solve this bug. (Dependency: Current-> libdrm-2.3.0) DISPLAYMANAGER_XSERVER="Xorg" DISPLAYMANAGER_XGL_OPTS="-accel glx:pbuffer -accel xv:pbuffer" DISPLAYMANAGER="gdm" DISPLAYMANAGER_REMOTE_ACCESS="yes" DISPLAYMANAGER_ROOT_LOGIN_REMOTE="yes" DISPLAYMANAGER_STARTS_XSERVER="yes" }}} === X.org driver === {{{ rock@fly:~> git-clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel }}} === Mesa 3D GL Driver === # Chip: Intel Corporation 82Q963/Q965 Integrated Graphics [[BR]] # Update Mesa-7.0.1 (Current) -> Mesa-7.0.4 (Last Stable release) [[BR]] # rock@fly:~> git-clone git://anongit.freedesktop.org/git/mesa/mesa (The latest Mesa 7.1.0 -> Dependency -> libdrm-2.3.1 higher! Do not fit current system ) [[BR]] rock@fly:~> wget http://downloads.sourceforge.net/mesa3d/MesaLib-7.0.4.tar.gz?modtime=1218883994&big_mirror=0 (Mesa 7.0.4 -> Dependency -> libdrm-2.3.0) [[BR]] rock@fly:~> tar zxvf MesaLib-7.0.4.tar.gz [[BR]] rock@fly:~> cd ./Mesa-7.0.4/ [[BR]] rock@fly:~> make linux-dri-x86-64 -j 4 [[BR]] rock@fly:~> sudo make install (Default PATH:/usr/local/lib64/) [[BR]] rock@fly:~> ldd /usr/bin/glxinfo [[BR]] '''libGLU.so.1 => /usr/lib64/libGLU.so.1 (0x00002b0473cee000)''' ---> Mesa library [[BR]] '''libGL.so.1 => /usr/lib64/libGL.so.1 (0x00002b0473f5a000)''' ---> Mesa library [[BR]] libXext.so.6 => /usr/lib64/libXext.so.6 (0x00002b04741d6000) [[BR]] libX11.so.6 => /usr/lib64/libX11.so.6 (0x00002b04743e8000) [[BR]] libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b047471e000) [[BR]] libm.so.6 => /lib64/libm.so.6 (0x00002b0474939000) [[BR]] libc.so.6 => /lib64/libc.so.6 (0x00002b0474b8d000) [[BR]] libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002b0474ed2000) [[BR]] libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b04751da000) [[BR]] libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00002b04753e9000) [[BR]] libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00002b04755ef000) [[BR]] libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00002b04757f2000) [[BR]] libdl.so.2 => /lib64/libdl.so.2 (0x00002b04759f9000) [[BR]] libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00002b0475bfd000) [[BR]] libXau.so.6 => /usr/lib64/libXau.so.6 (0x00002b0475e08000) [[BR]] libxcb-xlib.so.0 => /usr/lib64/libxcb-xlib.so.0 (0x00002b047600c000) [[BR]] libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00002b047620e000) [[BR]] /lib64/ld-linux-x86-64.so.2 (0x00002b0473ad1000) [[BR]] rock@fly:~> sudo rm /usr/lib64/libGLU.so libGLU.so.1 libGL.so libGL.so.1 (Remove these old links) [[BR]] rock@fly:~> sudo cp /usr/local/lib64/libGL.so.1.2 /usr/lib64 [[BR]] rock@fly:~> sudo cp /usr/local/lib64/libGLU.so.1.3.070004 /usr/lib64 [[BR]] rock@fly:~> cd /usr/lib64 [[BR]] rock@fly:~> sudo ln -s libGLU.so.1.3.070004 libGLU.so.1 [[BR]] rock@fly:~> sudo ln -s libGLU.so.1 libGLU.so [[BR]] rock@fly:~> sudo ln -s libGL.so.1.2 libGL.so.1 [[BR]] rock@fly:~> sudo ln -s libGL.so.1 libGL.so [[BR]] Sanity Check: rock@fly:~> glxinfo -display :0 ( Direct Rendering ) {{{ name of display: :0.0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.2 OpenGL vendor string: Tungsten Graphics, Inc OpenGL renderer string: Mesa DRI Intel(R) 965Q 4.1.3002 OpenGL version string: 1.4 Mesa 7.0.4 }}} rock@fly:~> glxgears -display :0 ( Frame Test ) === DRM Kernel module - For libdrm === # Update to the latest libdrm [[BR]] rock@fly:~> git-clone git://anongit.freedesktop.org/git/mesa/drm [[BR]] rock@fly:~> cd ./drm [[BR]] rock@fly:~> ./autogen.sh --prefix=/usr/lib64 --exec-prefix=/ [[BR]] rock@fly:~> make -j 4 [[BR]] rock@fly:~> sudo make install [[BR]] # libdrm.so will be installed to /usr/lib64 [[BR]] == 12. Usage Note == @Client [[BR]] rider@350z:~$ ssh rock@gtd-fly server [[BR]] [[BR]] @Server [[BR]] rock@gtd-fly:~> /opt/TurboVNC/bin/vncserver -geometry 1024x768 :1 [[BR]] rock@gtd-fly:~> /opt/TurboVNC/bin/vncserver -list [[BR]] {{{ TurboVNC server sessions: X DISPLAY # PROCESS ID :1 30860 }}} rock@gtd-fly:~> export DISPLAY=:1 [[BR]] '''Sanity Check''' [[BR]] rock@gtd-fly:~> xdpyinfo -display :1 (Output Information) [[BR]] rock@gtd-fly:~> xdriinfo -display :1 (libGL Check) [[BR]] rock@gtd-fly:~> vglrun /opt/VirtualGL/bin/glxinfo -display :1 (Check the "Direct Rendering") [[BR]] '''Vglrun''' [[BR]] rock@gtd-fly:~> vglrun /home/rock/Amira4.1.1/bin/start :1 (Example) [[BR]] == Reference == * Lustre, http://wiki.lustre.org/ * Amira, http://www.amiravis.com/ * NVIDIA, http://zh_tw.opensuse.org/NVIDIA * Glxgears, http://wiki.cchtml.com/index.php/Glxgears_is_not_a_Benchmark * Intel Linux Graphics, http://www.intellinuxgraphics.org/ * Xgl, http://en.opensuse.org/Xgl * Using Xgl On OpenSUSE, http://en.opensuse.org/Using_Xgl_on_SUSE_Linux * Xgl Troubleshooting, http://en.opensuse.org/Xgl_Troubleshooting#Intel_.2F_open_source_driver_.22i810.22 === Key Concept === [General VNC] --> [Xorg] --> [VGA Card] [[BR]] [TurboVNC] --> [VGL] --> [Xorg] --> [GLX/DRI] --> [VGA Card] [[BR]] === OpenSUSE Xgl development Q & A === Question1: [[BR]] Direct rendering does not work when running Xgl, but it does on Xorg. Why are OpenGL applications not accelerated? {{{ Ans: Do not intermix hardware acceleration and direct rendering. OpenGL applications will be hardware accelerated on Xgl if the driver supports pBuffers or FBOs, like the nvidia and fglrx drivers do. Direct rendering on the other hand is impossible to implement at the moment, the necessary extensions for implementing that feature are not even specified yet, let alone being implemented. Direct rendering implies hardware acceleration, but not the other way round. Direct rendering is a bit faster than indirect rendering, but indirect rendering is not as bad as it sounds. }}} Question2: [[BR]] How can I check whether I have direct rendering on Xorg? {{{ Ans: Direct rendering is active if running glxinfo|grep direct on top of Xorg (not Xgl!) shows you "Yes". On top of Xgl this will always show you "No". Unfortunately, for Xorg having direct rendering is a synonym for having accelerated graphics, and it is more difficult to detect whether hardware acceleration is available than it is to detect direct rendering. }}}