= VirtualGL Usage Note = == TurboVNC == === Part1 - Basic Setting === rock@gpfs-server:~$ /opt/TurboVNC/bin/vncpasswd (Enter Your Passwd - The password is saved in ~/.vnc/passwd) [[BR]] rock@gpfs-server:~$ sudo apt-get install xfs xinetd libimlib* [[BR]] rock@gpfs-server:~$ sudo apt-get install xserver-xorg-core xserver-xorg-dev xorg xorg-dev xserver-xorg-input* xserver-xorg-video* [[BR]] rock@gpfs-server:~/.vnc$ sudo vim /etc/gdm/gdm.conf {{{ DisallowTCP=false }}} rock@gpfs-server:~$ sudo vim /etc/services [[BR]] # Make the following settings by checking /etc/X11/xorg.conf {{{ vnc-640x480x8 5950/tcp vnc-800x600x8 5951/tcp vnc-1024x768x8 5952/tcp vnc-1152x864x8 5953/tcp vnc-1280x1024x8 5954/tcp vnc-640x480x16 5960/tcp vnc-800x600x16 5961/tcp vnc-1024x768x16 5962/tcp vnc-1152x864x16 5963/tcp vnc-1280x1024x16 5964/tcp vnc-640x480x24 5970/tcp vnc-800x600x24 5971/tcp vnc-1024x768x24 5972/tcp vnc-1152x864x24 5973/tcp vnc-1280x1024x24 5974/tcp vnc-640x480x32 5980/tcp vnc-800x600x32 5981/tcp vnc-1024x768x32 5982/tcp vnc-1152x864x32 5983/tcp vnc-1280x1024x32 5984/tcp }}} rock@gpfs-server:~$ sudo vim /etc/xinetd.d/xvncserver [[BR]] {{{ service vnc-640x480x8 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 640x480 -depth 8 } service vnc-800x600x8 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 800x600 -depth 8 } service vnc-1024x768x8 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1024x768 -depth 8 } service vnc-1152x864x8 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1280x1024 -depth 8 } service vnc-1280x1024x8 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1280x1024 -depth 8 } service vnc-640x480x16 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 640x480 -depth 16 } service vnc-800x600x16 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 800x600 -depth 16 } service vnc-1024x768x16 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1024x768 -depth 16 } service vnc-1152x864x16 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1280x1024 -depth 16 } service vnc-1280x1024x16 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1280x1024 -depth 16 } service vnc-640x480x24 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 640x480 -depth 24 } service vnc-800x600x24 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 800x600 -depth 24 } service vnc-1024x768x24 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1024x768 -depth 24 } service vnc-1152x864x24 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1280x1024 -depth 24 } service vnc-1280x1024x24 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1280x1024 -depth 24 # port = 5973 } service vnc-640x480x32 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 640x480 -depth 32 } service vnc-800x600x32 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 800x600 -depth 32 } service vnc-1024x768x32 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1024x768 -depth 32 } service vnc-1152x864x32 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1280x1024 -depth 32 } service vnc-1280x1024x32 { protocol = tcp socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1280x1024 -depth 32 } }}} === Part2 - X Font Server === @ Server rock@gpfs-server:~$ sudo vim /etc/X11/fs/config {{{ #no-listen = tcp }}} rock@gpfs-server:~$ sudo /etc/init.d/xfs restart [[BR]] rock@gpfs-server:~$ sudo /etc/init.d/gdm restart [[BR]] @ Client rider@350z:~$sudo vim /etc/X11/xorg.conf {{{ FontPath "tcp/ServerIP_Address:7100" }}} ## Client can get fonts support from x font server (xfs) [[BR]] '''xrdb Bug Fixed''': [[BR]] Bug1: [[BR]] ## Put the RGB Database (rgb.txt - attached file)to the path /usr/X11R6/lib/X11/ [[BR]] rock@gpfs-server:~$ sudo cp /home/rock/rgb.txt /usr/X11R6/lib/X11/ [[BR]] Bug2: [[BR]] ## Adding an empty file named: .Xresources at PATH:///home/rock to fix " xrdb: can't open file '/home/rock/.Xresources' " [[BR]] === Part3 - TurboVNC Server Activation === @Server [[BR]] rock@gpfs-server:~$ /opt/TurboVNC/bin/vncserver [[BR]] {{{ New 'X' desktop is gpfs-server:1 Creating default startup script /home/rock/.vnc/xstartup Starting applications specified in /home/rock/.vnc/xstartup Log file is /home/rock/.vnc/gpfs-server:1.log }}} @Client [[BR]] rider@350z:~$ /opt/TurboVNC/bin/vncconnect [-display Xvnc-display] ServerIP[:port] [[BR]] rider@350z:~$ /opt/TurboVNC/bin/vncviewer [Enter ServerIP & Passwd] [[BR]] PS1: [[BR]] Individual users can provide both user and view-only passwords. These should be different. Users can give the view-only password to someone so that they can see the remote session, but not interact.TurboVNC assigns access based on which password is used. The user password lets you provide mouse and keyboard input. [[BR]] PS2: [[BR]] I set 2 passwords for both user & view-only,and passwords are different for all-level users. [[BR]] PS3: [[BR]] Clients should also install turbovnc to run "vncconnect" & "vncview" [[BR]] == VirtualGL == == Mesa 3D GL Driver == === Step1 System Check === #Pre-Requirement [[BR]] rock@gpfs-server:~$ sudo apt-get install mesa-utils libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libdrm-dev libdrm2 [[BR]] rock@gpfs-server:~$ lsmod | grep drm [[BR]] {{{ drm 73748 3 i915 agpgart 30408 3 drm,intel_agp }}} rock@gpfs-server:~$ dmesg | grep drm [[BR]] {{{ [drm] Initialized drm 1.1.0 20060810 [drm] Initialized i915 1.6.0 20060119 on minor 0 }}} {{{ PS1: Some of the DRM messages should like that! If DRM module can't be found, then you can try to do something below. }}} rock@gpfs-server:~$ sudo modprobe i810 [[BR]] rock@gpfs-server:~$ sudo modprobe drm [[BR]] {{{ PS2: You can skip "Building DRM module" when your DRM works well. }}} === Step2 Getting DRM & Mesa === rock@gpfs-server:~/intel_Q965$ sudo apt-get install git git-core cogito [[BR]] # DRM kernel module [[BR]] The DRM kernel modules are available from the public DRM git repository: [[BR]] {{{ rock@gpfs-server:~/intel_Q965$ git-clone git://anongit.freedesktop.org/git/mesa/drm }}} # Mesa 3D GL driver [[BR]] The GL drivers are available from the public Mesa git repository: [[BR]] {{{ rock@gpfs-server:~/intel_Q965$ git-clone git://anongit.freedesktop.org/git/mesa/mesa }}} === Step2 Building DRM module & Mesa 3D drivers --- Manual Configuration === The DRM (Direct Rendering Manager) provides kernel and library interfaces to clients wanting access to kernel managed resources like interrupts, buffer swaps, DMA memory mapping and graphics memory management.[[BR]] # DRM & LibDRM [[BR]] rock@gpfs-server:~/intel_Q965/drm$ ./autogen.sh --prefix=/usr --exec-prefix=/ [[BR]] rock@gpfs-server:~/intel_Q965/drm$ make [[BR]] rock@gpfs-server:~/intel_Q965/drm$ sudo make install [[BR]] rock@gpfs-server:/usr/include/drm$ sudo vim /home/rock/intel_Q965/drm/linux-core/drm_compat.c [[BR]] {{{ /* err = drm_bo_wait(bo, 0, 1, 0); if (err) { data->type = (err == -EAGAIN) ? VM_FAULT_MINOR : VM_FAULT_SIGBUS; goto out_unlock; } */ }}} rock@gpfs-server:~/intel_Q965/drm$ cd linux-core rock@gpfs-server:~/intel_Q965/drm$ make -C linux-core [[BR]] rock@gpfs-server:~/intel_Q965/drm$ sudo make install [[BR]] rock@gpfs-server:~/intel_Q965/drm$ sudo depmod -a [[BR]] rock@gpfs-server:~/intel_Q965/drm$ sudo cp linux-core/*.ko /lib/modules/2.6.20.gpfs/kernel/drivers/char/drm/ [[BR]] rock@gpfs-server:/lib/modules/2.6.20.gpfs/kernel/drivers/char/drm$ ls {{{ drm.ko i830.ko mach64.ko nouveau.ko r128.ko savage.ko tdfx.ko xgi.ko i810.ko i915.ko mga.ko nv.ko radeon.ko sis.ko via.ko }}} # Mesa 3D GL driver [[BR]] rock@gpfs-server:~/intel_Q965/mesa$ ./autogen.sh --prefix=/opt/mesa --with-driver=dri --disable-glut [[BR]] rock@gpfs-server:~/intel_Q965/mesa$ make [[BR]] rock@gpfs-server:~/intel_Q965/mesa$ sudo make install [[BR]] rock@gpfs-server:~/intel_Q965/mesa$ sudo mkdir -p /opt/mesa/bin [[BR]] rock@gpfs-server:~/intel_Q965/mesa$ install -m755 progs/xdemos/{glxinfo,glxgears} /opt/mesa/bin/ [[BR]] === Server === rock@gpfs-server:~$ sudo /opt/VirtualGL/bin/vglserver_config {{{ 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 ... chmod: cannot access `/dev/nvidia*': No such file or directory chown: cannot access `/dev/nvidia*': No such file or directory ... Adding xhost +localhost to /etc/gdm/Init/Default script ... ... 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@gpfs-server:~$ sudo vim /etc/profile {{{ ### Using GLP by Default in VirtualGL VGL_DISPLAY=glp export VGL_DISPLAY }}} rock@gpfs-server:~$ source /etc/profile [[BR]] rock@gpfs-server:~$ /opt/VirtualGL/bin/vglrun IvIsee 3D_model_file [[BR]] === Client === rider@350z:~$ /opt/VirtualGL/bin/vglconnect ServerIP_Address == IvIsee + VirtualGL + TurboVNC +/- GPFS == Reference: http://www.virtualgl.org/vgldoc/2_1final/ [[BR]] http://www.intellinuxgraphics.org/ [[BR]]