2007年 5月 23日 水曜日
Messages in cipher reflected in the looking glass
(JA) Diskless Solaris (x86編) その4:パッケージのインストール NVIDIAドライバ編
第4回目は NVIDIA のドライバインストールです。
ディスクレスクライアントは基本的にPCそのものです。
ですので、PCの能力をほぼフル活用できるわけですので、利用しない手は無いです。
ただ、Solaris 10 11/06 では NVIDIA のドライバは OS に組み込まれていないので、
標準ではソフトウェアOpenGL となってしまいます。
NVIDIAグラフィックカードがもったいないので、この際なので追加してしまいます。
と、まずパッケージの追加方法を簡単に解説します。
ディスクレスクライアントに対するパッケージの追加はサーバ側で行います。
追加方法は
(JA) Diskless Solaris (x86編) その1:ディスクレスクライアント構築
にちょこっと書いてあるのですが、pkgadd -R を用いて行います。
この際、インストール管理用ファイル(adminファイル)を作成して利用しています。
下記のような感じです。
mail= instance=unique partial=nocheck runlevel=nocheck idepend=nocheck rdepend=nocheck space=nocheck setuid=nocheck conflict=nocheck action=nocheck basedir=/usr_i386.all
上記の内容の全てが必要なわけではありません。/usr にインストールするアプリケーションで必要なのは basedir の項目です。
というのも、ディスクレスクライアント用の /usr は /export/Solaris_10/usr_i386.all/usr (/export/exec/Solaris_10_i386.all/ )
という通常とは異なるディレクトリに存在するためです。
/usr 以外の場合は basedir=default にしておきます。
このファイル(/tmp/adminとします) を用意しておき、下記のようにパッケージをインストールします。
/usr の場合は次の通りです。
# pkgadd -R /export/Solaris_10 -a /tmp/admin <pkg>
/ (root) にインストールする場合は、必要なクライアント全てにインストールします。
また、必要に応じて clone にもインストールします。
# pkgadd -R /export/root/w1100z -a /tmp/admin <pkg> # pkgadd -R /export/root/clone/Solaris_10/i86pc/ -a /tmp/admin <pkg>
パッケージがどこにインストールされるかはパッケージディレクトリの
pkginfo, pkgmap などを見て調べます。
パッケージ命名規則となっているかどうかはわかりませんが、
/ (root) にインストールするパッケージは
パッケージ名の最後の文字が r となっているものや -root と
なっているものがほとんどです。
NVIDIAのサイトからドライバをダウンロードします。
http://www.nvidia.com/object/unix.html
今回は 1.0-9755 (NVIDIA-Solaris-x86-1.0-9755.run) を利用します。
ダウンロードが完了したら、解凍を行います。
通常の場合、ダウンロードしたファイルを実行すれば
インストールが行われるのですが、
ディスクレスクライアントの場合、パッケージのインストール先が異なるため、
手動で行う必要があるためです。
--help オプションで確認できるように解凍用のオプションが用意されています。
# 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
解凍すると、NVIDIA-Solaris-x86-1.0-9755 のようなディレクトリが作成されます。
# cd NVIDIA-Solaris-x86-1.0-9755 # ls NVDAgraphics NVDAgraphicsr gfx_private install
中身は下記の通りです。
- NVDAgraphics : /usr にインストールされる NVIDIA 用ライブラリなど
- NVDAgraphicsr : ドライバ(/kernelにインストール)
- gfx_private : カーネル用モジュール(Solaris 10, Solaris 11用にわかれている)
- install : インストール時に実行されるスクリプト
まず NVDAgraphics をインストールします。
インストール前にインストール管理用adminファイル
(ここでは NVDA_admin_usr)を作成します。
ファイルは NVIDIA のドライバインストール事に自動的に作成されるものを
ベースにし、basedir の変更を行ったものです。
mail= instance=overwrite partial=nocheck runlevel=ask idepend=nocheck rdepend=nocheck space=nocheck setuid=nocheck conflict=nocheck action=nocheck basedir=/usr_i386.all/usr
続いて、インストールです。pkgadd 一発で終わりです。
# 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>
インストール後、libGL等のシンボリックリンクの作成を行います。
(環境が NVIDIA に固定される場合は問題ないが、
mesaを利用しているなどの場合は注意が必要です。)
# 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 下記は MESA OpenGL ライブラリへのシンボリックリンクを NVIDIA 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
続いて、NVDAgraphicsr をインストールします。
このパッケージは必要なクライアント全てにインストールする必要があります。
このパッケージのインストールに利用した adminファイル(/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
必要に応じて下記のように clone 領域にインストールしてください。
インストール ( clone領域 : ログは削ってます) # pkgadd -a /tmp/NVDA_admin_root -R \ /export/root/clone/Solaris_10/i86pc -d. NVDAgraphicsr インストール(クライアントの場合: 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>
gfx_private のコピーを行います。 gfx_private は Solaris 10 用と Solaris 11 用があります。 ここでは Solaris 10 用を使います。
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 クライアント領域が対象の場合(ホスト名 : 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
これで、ドライバのインストールは完了です。
続いて、ディスクレスクライアントを再起動します。
通常の場合は、「reboot -- -r」を実行しますが、
ディスクレスクライアントの場合はこれは動作しません。
ディスクレスクライアントを再起動し、
grubが起動した際に kernel の部分に -r オプションを追加して起動するか、
下記のようにクライアントの grub の設定ファイル
( この場合 /export/root/w1100z/boot/grub/menu.lst ) を
一時的に変更してからネットワークブートを行う必要があります。
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
クライアント側で NVIDIA を利用するように xorg.conf を作成する。
- xorg.conf を作成します。
kdmconfig実行前に GUI上で xorgconf ツールを起動し、 そのまま保存(/etc/X11/xorg.conf)する。
保存した xorg.conf の driver "nv" を driver "NVIDIA" に変更します。
この方法が一番簡単です。 - kdmconfig を起動し、xorg 利用に変更する
以上で終了です。
3D と言うと LG3D なのでとりあえず動かしてみました。
正式版は JDK, Java3D 等必要なものが全て入っているので、
解凍して、lg3d/bin/lg3d-dev
(lg3d/bin/lg3d-app, lg3d/bin/lg3d-app-full でも可) で動くので簡単です。
ソフトウェア OpenGL 環境ではまともに動きませんので、
ちゃんと動いているか確認するにもうってつけです。^-^;
Posted at 05:10午後 5 23, 2007 by Yasuhiro Fujitsuki in Linux & Solaris |