Messages in cipher reflected in the looking glass

http://blogs.sun.com/thaniwa/date/20070522 2007年 5月 22日 火曜日

(EN) Diskless Solaris x86 Part 4 : Add NVIDIA graphics driver into diskless client

Part 3 is about installation of nvidia graphics driver into diskless clients.
Diskless client(Solaris 10 x86) has no HDD, but other part is same sa PC or PC Workstation. So, if PC has nvidia's graphics card, diskless client can use OpenGL with H/W acceleration.
Nvidia graphics driver is included into Solaris Express, but it isn't included in Solaris 10 x86.
To use OpenGL with 3D H/W acceleration on Solaris 10 x86 system, you have to install nvidia graphics driver into your Solaris 10 x86.

Overview of the addition of packages

First, the method of adding the package explains.
Pkgadd command is used to add the package in Solaris.
When installing packages into a diskless client, use -R option and -a option . The following is an example of admin file to add package into Solaris for diskless client.

mail=
instance=unique
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=/usr_i386.all

All of the above-mentioned content are not necessary. Most important variable is "basedir" to install packages into /usr of diskless clients.
Because /usr for diskless client is in /export/Solaris_10/usr_i386.all/usr (/export/exec/Solaris_10_i386.all/ ), and /var for diskless client is in /export/Solaris_10 .
In case of the installation directory is not /usr, it is okay that basedir is default. (basedir=default)

The adding package to /usr for diskless client is as follows. /tmp/admin is an admin file as above-mentioned.

# pkgadd -R /export/Solaris_10 -a /tmp/admin <pkg>

The following is example of adding package into / (root) directory. When adding packages into / (root), you have to add packages to all / (root) of diskless client.

# pkgadd -R /export/root/w1100z -a /tmp/admin <pkg>
# pkgadd -R /export/root/clone/Solaris_10/i86pc/ -a /tmp/admin <pkg>


You can check whether package is installed by pkginfo If you want to find where the package is installed, see pkginfo file and pkgmap file in the package directory.
Info : The last character of a lot of package, which is installed into root directory, names is r or -root.

Install nvidia graphics driver into OS image of the diskless client

Dowmload nvidia graphics driver from
http://www.nvidia.com/object/unix.html .
1.0-9755(NVIDIA-Solaris-x86-1.0-9755.run) is used this blog.

After downloading driver, uncompress this file with -x option.

# sh NVIDIA-Solaris-x86-1.0-9755.run --help
NVIDIA Software Installer for Solaris

This program is used to install and upgrade the
NVIDIA Accelerated Graphics Driver Set
for Solaris x64/x86

This program contains the driver version 1.0-9755

Available options:

    -h, --help: print this help message
    -x, --extract-only: extract the package in the current directory


# sh ./NVIDIA-Solaris-x86-1.0-9755.run -x

After uncompression, the directory name as NVIDIA-Solaris-x86-1.0-9755 is shown.

# cd NVIDIA-Solaris-x86-1.0-9755
# ls
NVDAgraphics   NVDAgraphicsr  gfx_private    install

Contents are as follows.

  • NVDAgraphics : nvidia graphics libraries installed into /usr
  • NVDAgraphicsr : kernel driver installed into /kernel
  • gfx_private : kernel module (two modules are in for Solaris 10 and Solaris 11)
  • install : script to use installation

First step is installation of the NVDAgraphics package. Before installation, make admin file for NVDAgraphics as follows. (NVDA_admin_usr)
Components of this file is based on the components in install script.

mail=
instance=overwrite
partial=nocheck
runlevel=ask
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=/usr_i386.all/usr

Package NVDAgraphics installation is as follows.

# pkgadd -a /tmp/NVDA_admin_usr -R /export/Solaris_10 -d. NVDAgraphics

Processing package instance <NVDAgraphics> from </root/NVIDIA-Solaris-x86-1.0-9755>

NVIDIA Graphics System Software(i386) 1.0.9755,REV=2007.02.26.23.59
Copyright 2005 by NVIDIA Corporation.  All rights reserved.
Use is subject to license terms.
Using </export/Solaris_10/usr_i386.all/usr> as the package base directory.
## Processing package information.
## Processing system information.
   26 package pathnames are already properly installed.

Installing NVIDIA Graphics System Software as <NVDAgraphics>

After installation of the NVDAgraphics, make symbolic link files as follows.

 # cd /export/Solaris_10/usr_i386.all/usr/lib
 # ln -sf ../X11/lib/NVIDIA/libGL.so.1 .
 # ln -sf ../X11/lib/NVIDIA/libGL.so .
 # ln -sf ../../X11/lib/NVIDIA/amd64/libGL.so.1 ./amd64
 # ln -sf ../../X11/lib/NVIDIA/amd64/libGL.so ./amd64

  The following 4 ln commands overwrites symbolic link files to MESA OpenGL.

 # cd /export/Solaris_10/usr_i386.all/usr/X11/lib
 # ln -sf NVIDIA/libGL.so .
 # ln -sf NVIDIA/libGL.so.1 .
 # ln -sf ../NVIDIA/amd64/libGL.so ./amd64
 # ln -sf ../NVIDIA/amd64/libGL.so.1 ./amd64

 # mkdir -p /export/Solaris_10/usr_i386.all/usr/include/GL
 # cd /export/Solaris_10/usr_i386.all/usr/include/GL
 # ln -sf ../../X11/include/NVIDIA/GL/glxext.h .
 # ln -sf ../../X11/include/NVIDIA/GL/glx.h .
 # ln -sf ../../X11/include/NVIDIA/GL/glext.h .
 # ln -sf ../../X11/include/NVIDIA/GL/gl.h .

 # cd /export/Solaris_10/usr_i386.all/usr/X11/lib/modules/extensions
 # ln -sf NVIDIA/libglx.so.1 .
 # ln -sf NVIDIA/libglx.so .
 # ln -sf ../NVIDIA/amd64/libglx.so.1 ./amd64
 # ln -sf ../NVIDIA/amd64/libglx.so ./amd64

Second step is installation of the NVDAgraphicsr. If you already made diskless clients, you have to install it into root directory of all diskless clients.

The admin file for installation of NVDAgraphicsr is as follows.(tmp/NVDA_admin_root)

mail=
instance=overwrite
partial=nocheck
runlevel=ask
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=default

Installation of NVDAgraphicsr package is as follows.

Install NVDAgraphicsr into clone
# pkgadd -a /tmp/NVDA_admin_root -R \
  /export/root/clone/Solaris_10/i86pc -d. NVDAgraphicsr

Install NVDAgraphicsr into client : w1100z
# pkgadd -a /tmp/NVDA_admin_root -R /export/root/w1100z -d. 

NVDAgraphicsr

Processing package instance <NVDAgraphicsr> from </root/NVIDIA-Solaris-x86-1.0-9755>

NVIDIA Graphics System Device Driver(i386) 1.0.9755,REV=2007.02.26.23.59
Copyright 2005 by NVIDIA Corporation.  All rights reserved.
Use is subject to license terms.
Using </export/root/w1100z> as the package base directory.
## Processing package information.
## Processing system information.
   3 package pathnames are already properly installed.

Installing NVIDIA Graphics System Device Driver as <NVDAgraphicsr>

Third step is copying gfx_private into /kernel of diskless client. Gfx_private for Solaris 10 and for Solaris 11 are in the graphics driver directroy.

copy gfx_private into clone

# cp -fp gfx_private/SunOS-5.10/gfx_private \
  /export/root/clone/Solaris_10/i86pc/kernel/misc
# cp -fp gfx_private/SunOS-5.10/amd64/gfx_private \
  /export/root/clone/Solaris_10/i86pc/kernel/misc/amd64

copy gfx_private into diskless client : w1100z

# cp -fp gfx_private/SunOS-5.10/gfx_private \
  /export/root/w1100z/kernel/misc
# cp -fp gfx_private/SunOS-5.10/amd64/gfx_private \
  /export/root/w1100z/kernel/misc/amd64

After that, reboot diskless client host with reconfigure option. In case of generic Solaris 10 client, execute "reboot -- -r" in the client.
But this command is not effective, a different method is used in diskles client.
There are two way to reboot with reconfigure option in the diskless client environment.

  • Add -r option in the grub menu, and boot diskless client
  • Change grub configuration file of diskless client as follows, for example /export/root/w1100z/boot/grub/menu.lst, and reboot diskless client.

default=0
timeout=10
title Solaris Diskless Client
        root (nd)
# If console is on ttya|ttyb, replace kernel line with
# one of the commented lines

#        original
#        kernel /w1100z/multiboot 

#       boot with re-config
        kernel /w1100z/multiboot -r

#       kernel /w1100z/multiboot -B console=ttya
#       kernel /w1100z/multiboot -B console=ttyb
        module /w1100z/boot_archive

Next step is setting to use NVIDIA graphics driver.

  1. make xorg.conf
    Run xorgconf tool and save xorg.conf(/etc/X11/xorg.conf), no actions(change configurations) is needed.
    After that, change from [driver "nv"] to [driver "nvidia"] in /etc/X11/xorg.conf .
  2. run kdmconfig, and select xorg.

All steps of installation of nvidia graphics driver are finished. Now, you can use 3D H/W acceleration.

Of course, Project Looking Glass (LG3D) runs correctly on the diskless client. LG3D cannot run (run too slow) on software OpenGL environments, so you can use to check whether nvidia graphics driver installed correctly into the diskless client environment.



投稿されたコメント:

コメント
コメントは無効になっています。