2. OSのインストール


2.1 CD-ROMを使ってRed Hat Linux 7.1をインストール

  1. PCに電源を入れてからすかさずCD-ROMをドライブに入れた。
  2. boot:
    というプロンプトが出たところで、インストールプログラムを起動すると
    Language Selectionという画面がでます。
  3. 迷わずJapaneseです。このあたりは参考書5に詳しいので、こちらではあまり詳しく述べません。
  4. キーボードの設定
  5. マウスの設定
  6. インストールオプションはワークステーションを選択します。
  7. ディスクパーティションはDisk Druidを使用して手動でやってみます。
    /bootに16MB
    パーティションタイプはLinux native
    ドライブはhda
    と選んでOK
  8. パーティションタイプをLinux swapにして64MB
    ドライブはhda
    と選んでOK
  9. /(ルート)パーティションに残り全部を割り当てます。
    パーティションタイプはLinux native
    ドライブはhda
    と選んでOK
  10. フォーマット
  11. ネットワークはDHCPにしました。(ローカルな環境がこれだから)。「起動時にアクティブにする」にもチェックしました。
  12. ファイアウォールの設定
    セキュリティレベルを「高」に設定しました。これはリモートXWindow Systemクライアントの利用禁止を意味するそうです。
    また、「デフォールトのファイアウォール規則を使用」をOnにしました。「侵入を許可」にチェックがついているものはDHCPだけです。
  13. 言語の選択=Japanese
  14. タイムゾーン=[アジア/東京]
  15. アカウントの設定
  16. パッケージグループの選択ではGNOMEを選択しました。
  17. Xの設定
    検出された設定がハードウェアに適さない場合の設定として
    NVIDIA GeForce 2 GTS(generic)
    を選択しておきました。(GeForce 3がリストになかったので)
    ビデオカードRAMは64MBを選択しました。
  18. モニタの設定
    テストしたモニタがMITSUBISHI Diamondtron RD21GXだったのですが、それが自動的にリストの中から選択されてました。
    水平同期 30.0-86.0 kHz
    垂直同期 50.0-132.0 Hz
    デフォールとのままにしておきました。
  19. X設定のカスタマイズ
    色深度はTrue Color(24 Bit)
    画面の解像度は1280x1024
    ログインの種類はテキストとしました。
  20. インストールの開始
    インストール記録は/tmp/install.logに保存されるそうです。
    数十分かかりました。
  21. ブートディスクの作成
    作って置きました。
  22. おめでとうございます
    修正情報はhttp://www.redhat.com/errataを参照するようにとのことです。
    ブートフロッピーとインストールCD-ROMを抜いてから「終了」

 リブートしたらeth0は正常に認識しました。userの資格でログインしました。
%startx
でGNOMEが立ち上がりました。解像度は全く問題ありませんでした。日本語表示もばっちりです。

 Netscapeを立ち上げましたが、マシンパワーのおかげで、とても快適です。

 OpenGLアクセラレーションが利いているか検証するために、Bubble3dというスクリーンセーバを実行してみました。
足のマーク > プログラム > デスクトップ設定 > GNOMEコントロールセンター
を立ち上げます。
デスクトップ > スクリーンセーバー
をクリックしてスクリーンセーバーリストからBubble3dを選択します。
遅いです。やはりGeForce3は自動認識はしてませんでした。


2.2 GeForce3のドライバの設定(この設定はMesaのインストール後に行って下さい)

  1. http://www.nvidia.com/
    にアクセスします。
  2. 上のメニューから DWONLOAD DRIVERSを選んでクリックします。
  3. 左のメニューからLinuxを選択してクリックします。(Otherかも知れない)
  4. 2つのファイルをダウンロードする必要があります。
  5. RedHat 7.1, one CPU, uniprocessor kernelの下の二つのファイルをダウンロードします。
    NVIDIA_GLX-1.0-1541.i386.rpm
    NVIDIA_kernel-1.0-1541.rh71up.i386.rpm
    保存先は現在のユーザ(仮にauserとする)の~auser/temp/
  6. ReadmeとInstall Guideを兼ねた文書をダウンロードしました。同じページの下の方のOtherというところにあります。
    NVLinuxNotes_1541.pdf
    かなりややこしい手順が必要らしいです。以下この文書を読み始めます。文書名は
    NVIDIA ACCLERATED LINUX DRIVER SET
    Release 10 Notes
    Version 1.0-1541
    です。
  7. GeForce3に対応しているのはドライバーのRelease 10と呼ばれるバージョンからです。
  8. NVIDIAのドライバーは1種類しかありません。ハードウェア毎に異なるドライバーリストから選択する必要はありません。
  9. 1. IntroductionのMinimum Operating System Requirementsはちゃんと読んで要求を満足しているか確認した方が良いです。要求値のすぐ右に調べるコマンドが親切にも書いてあります。spec-helperがインストールされてないというのを除いてバージョンは全て要求されたものより新しいものでした。spec-helperはソースRPMからドライバをビルドするときに必要なのだそうです。rpmの名前にsourceを示すようなつづりがないので、ソースRPMではないそうです。(Y氏より)
  10. Supported NVIDIA GPUsのところにはっきりとGeForce3が記載されています。
  11. Device PCI IDは
    cat /proc/pci
    で調べた結果
    0200でした。
  12. インストールです。まずX serverから抜け出ます。
  13. %su
    password:
    #rpm -ivh NVIDIA_kernel-1.0-1541.rh71up.i386.rpm
    とタイプするべきところをアップグレード用のオプション-Uvhをタイプしてしまいました。
    しょうがないので-eraseオプションで削除しようとしたら「インストールされてません」というメッセージが表示されました。ということで改めてrpmでインストールします。改めてコマンドをタイプしたら今度はNVIDIA_kernel-1.0-1541.rh71up is already installedと言われてしまいました。
  14. どうやら
    #rpm -e NVIDIA_kernel-1.0-1541.rh71up
    で削除できるようです。削除後、改めてインストールしました。
    Preparing...      #########################[100%]
      1:NVIDIA_kernel #########################[100%]
    NVdriver installed successfully
  15. #rpm -ivh NVIDIA_GLX-1.0-1541.i386.rpm
    をタイプすると
    Preparing...       ##########################[100%]
     ---WARNING!!
        libglx.a
        libGLcore.a
        libGL.a
        libGL.so.1.2.030401
    --- Above file(s) possibly belong to a conflicting MESA rpm.
    --- They have been renamed to xxx.<originalFile>.RPMSAVE to
    --- avoid confilicting with the files contained within this
    --- package.
    --- Please check http://www.nvidia.com/drivers/xfree86_40.html
    --- for details, under section 5.2
       1:NVIDIA_GLX     ##########################[100%]
  16. Release 10 Notesの3章の
    Editing Your XF86Config File
    を読みます。
     XFree86 4.0になってXF86Configファイルの文法が少し変わったようです。3.xと4.x用のXFree86を共存させるためには、
    /etc/X11/XF86Config-4
    というXFree86 4.0専用のコンフィギュレーションファイルを利用することができます。
    実際にシステムが/etc/X11/XF86Config-4と/etc/X11/XF86Configのどちらを使っているかは
    /var/log/XFree86.0.log
    の中の
    ==) Using config file:
    という行の記述を確かめて見れば良いです。
    (==) Using config file: "/etc/X11/XF86Config-4"
    という記述を見つけました。
  17. 次に現在Xは立ち上がりますが、Bubble3dのスピードが遅いので、古いドライバーが利用されていると考えられます。従って、
    /etc/X11/XF86Config-4
    を修正します。
    まずDevice sectionで
    Driver "nv"
    を探して、
    Driver "nvidia"
    に変更します。
  18. 次にModule section に
    Load "glx"
    という行があることを確認します。
    Load "dri"

    Load "GLcore"
    の行は削除します。
  19. AGPのコンフィギャは色々とややこしいようです。AGPの現状を調べるコマンドは
    cat /proc/nv/card0
    です。現在Disabledでした。
    NVAGP(NVIDIA AGP)または
    Linux AGPGART
    のどちらを利用するかという選択をすることになります。まずはdisableで行って見ましょう。
    ちなみに、チップセットががNVIDIA AGPによりサポートされているかどうか調べておく必要があります。今はIntel 845 chipset なのでRelease 10 Notesの4章の表によるとサポートされてます。
  20. ひととおり設定ができたのでstartxしてみます。成功しました。GLXをrpmしたときの警告は問題なかったのでしょうか。
  21. /usr/include/GL/gl.hと
    /usr/include/GL/glx.hを
    NVIDIA提供版に変更するかどうかという話もあるようです。本当に必要かどうか良く分かりませんがとにかく最新版だそうです。
  22. インストールされたライブラリの確認
    /usr/X11R6/lib/modules/drivers/nvidia_drv.o OK
    /usr/X11R6/lib/modules/extensions/libglx.so.1.0.1541
    /usr/X11R6/lib/modules/extensions/libglx.so -> libglx.so.1.0.1541
    /usr/lib/libGL.so.1.0.1541
    /usr/lib/libGL.so.1 -> libGL.so.1.0.1541
    /usr/lib/libGL.so -> libGL.so.1
    /usr/lib/libGLcore.so.1.0.1541
    /usr/lib/libGLcore.so.1 -> libGLcore.so.1.0.1541
    を確認しました。
    /lib/modules/`uname -r `/video/NVdriver
    はありませんが、
    /lib/modules/`uname -r `/kernel/drivers/video/NVdriver
    は見つかりました。それから
    dev/nvidia0
    dev/nvidia1
    dev/nvidia2
    dev/nvidia3
    de/nvidiactl
    があることも確認しました。
  23. また
    ldd /usr/X11R6/bin/アプリケーション実行形式
    により、OpenGLを利用したアプリケーションがNVIDIAのライブラリを利用しているかを確認することができます。これはAdventure_Visualをコンパイルしてから確認することにします。
  24. konモードでsuコマンドを投入したら画面が乱れました。理由は不明です。
  25. /etc/X11/XF86Config-4
    のSection Screenに
    Option "NvAgp" "1"
    を追加しましたが、スクリーンセーバが速くなったかどうかよく分りません。
    cat /proc/nv/card0
    を調べてみましたが、
    AGP status: Disabled
    のままでした。良く分かりません。
    Configuring AGPの4にAGPドライバーの変更のためにはリブートが必要という記述を見つけました。リブートしました。
    cat /proc/nv/card0
    したのですが、/proc/nv/
    が見当たりません。とにかくstartxしてみました。スクリーンセーバの速さの違いは分りません。念のために
    cat /proc/nv/card0
    をもう一度実行したらありました。
    --------- AGP Info --------
    AGP status: Enabled
    AGP Driver NVIDIA
    Bridge: Generic Intel
    SBA: Supported [disabled]
    FW:Supported[disabled]
    Rates: 4x 2x 1x [4x]
    Registers: 0x1f.......

2.3 フロッピーディスクのmount

%su
#mount -t vfat /dev/fd0 /mnt/floppy
mount: /dev/fd0 は正常なブロックデバイスではありません

で失敗。

2. CD-ROM/CD-R/CD-RWの利用

2.0 情報源

(1)LinuxでのCD-ROMの焼き方
http://www.linux.or.jp/JF/JFdocs/CD-Writing-HOWTO.html

(2)Solaris/Linux/FreeBSDでCD-Rを焼こう
http://www15.big.or.jp/~yamamori/sun/sd-2000-06/

(3)LinuxでCD-Rドライブを使う/CD-Rを焼く
http://www.rs.el.gunma-u.ac.jp/~nakano/linuxcdr.htm

(4)CD-R faq
http://www.cdrfaq.org/

(5)cdrw with redhat 7.1
http://www.lilug.org/pipermail/lilug/2001-October/003271.html

(6)ide-scsi moduleのrpmの置き場
http://rpmfind.net/linux/RPM/redhat/7.1/i386/kernel-2.4.2-2.i386.html

(7)linux-usersメーリングリスト
http://search.luky.org/linux-users.7/msg04057.html

(8)CD-RW software (& Linux SCSI Emulator)
http://www.gavo.t.u-tokyo.ac.jp/~furumoto/computer/CD-RW.html

2.1 CD-ROMを使う

機種はTEAC CD-W516EB(ATAPI CD-RW)、ATAPI(IDE)接続。
READ40倍 WRITE16倍 CD-RW 10倍

(1)CD-ROMをドライブに入れる。
(2)CD-ROMをマウントする。
%su
# mount -t iso9660 -r /dev/cdrom /mnt/cdrom
#exit
でOK。(注1)
%cd /mnt/cdrom/
でCD-ROMドライブの中に入れます。
(3)cdコマンドでディレクトリ/mnt/cdrom/から抜け出す。
%umount /mnt/cdrom
これでCD-ROMを取り出すことが出来ます。
注1:の筈ですが、2回目にはCD-ROMをドライブに入れると自動的にファイルマネージャが立ち上がったのでもしやと思って%cd /mnt/cdrom/を入力したら無事に入れました。どうもCD-ROMの挿入を検知するデーモンが動いているようです。

2.2 CD-Rを使う

2.2.1 ユーティリティソフト

(1)cdrecord
%cdrecord -version
Cdrecord 1.9(i686-pc-linux-gnu) Copyright (C) 1995-2000 J g Schilling
ということで既にインストールされてました。イメージを焼くためのツールです。イメージは次に説明するソフトで作ります。

(2)xcdroast
X上で動くツール。情報源(3)によるとマルチセッション対応があやしいかも。
%su
#xcdroast
Version 0.98alpha8がインストールされてました。

(3)mkisofs
%mkisofs -version
mkisofs 1.13 (i686-pc-linux-gnu)
これも既にインストールされてます。こちらはイメージを作るためのツールです。

2.2.2 デバイスの確認

先にrootになっておく必要があります。

%su
#cdrecord -scanbus
Linux sg driver version:3.1.17
Using libscg version 'schily-0.1'
scsibus0:
0,0,0     0) 'TEAC    ' 'CD-W516EB      ' '1.0B' Removable CD-ROM
0,1,0     1) *
0,2,0     2) *
0,3,0     3) *
0,4,0     4) *
0,5,0     5) *
0,6,0     6) *
0,7,0     7) *
#exit
CD-ROMとCD-Rとの区別はこれではつきませんね。本当はCD-RW機能もあります。

2.2.3 シングルセッション

試しに今回ダウンロードしたアーカイブを全て焼いて見ます。情報源(2)で「実行編、CD-Rを焼く」に飛びます。

(1)mkisofsでISO9660イメージファイルの作成
cshではなくbashで以下を実行します。
%cd
%cd tmp
$mkdir ~auser/tmp/archive/
全てのアーカイブファイルをそこに移動します。ファイルパーミッションをなどチェックすること。
%TZ=UTC mkisofs -R -J -o CD archive
Using LESST000.RPM;1 for /lesstif-mwm-0.93.0-1.i386.rpm(lesstif-devel-0.93.0-1.i386.rpm)
Using LESST001.RPM;1 for /lesstif-devel-0.93.0-1.i386.rpm(lesstif-clients-0.93.0-1.i386.rpm)
Using LESST002.RPM;1 for /lesstif-clients-0.93.0-1.i386.rpm(lesstif-0.93.0-1.i386.rpm)
  7.90% done, estimate finish Thu Dec 6 07:36:24 2001
 15.75% done, estimate finish Thu Dec 6 07:36:18 2001
 23.64% done, estimate finish Thu Dec 6 07:36:16 2001
 .....
 86.64% done, estimate finish Thu Dec 6 07:36:17 2001
 94.52% done, estimate finish Thu Dec 6 07:36:19 2001
Total translation table size: 0
Total rockridge attributes bytes: 2625
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 83a4
63483 extents written (123 Mb)

(2)ファイルシステムイメージのマウント
イメージの中身を焼く前に確認することができます。
%su
# mkdir /mnt/tmp
# mount -t iso9660 -r -o loop CD /mnt/tmp
…中身を確認し,確認が終ったら元に戻す…
# umount /mnt/tmp
#exit

(3)cdrecordでCD-Rを焼く
まずはdummyオプションで予行演習です。TEAC CD-W516EBは書き込み速度16倍なのでspeed=16を指定します。dev=の値はcdrecord -scanbusで調べたときのCD-RドライブのSCSI ID(注2)を使います。
$su
# cdrecord -dummy -v dev=0,0,0 speed=16 -pad -dao CD
色々表示されます。CD-Rドライブのタイプ、型式など。メディアの情報も表示されます。
Indicated writing power: 4
変です。パッケージには24倍速と書いてあったのですが。
cdrecord: WARNING: Drive returns wrong startsec (0) using -150
...
cdrecord: Input/output error. write_g1: scsi sendcmd: retrable error
...
write track pad data: error after 63488 bytes
...
Track 01: 0 of 123 MB written.cdrecord: Input/output error. write_g1:scsi sendcmd: retryable error
...
write track data: error after 0 bytes
...
WARNING: Some drives don't like fixation in dummy mode.
...
取り敢えずspeedを4に落として再度トライします。

注2:本当はIDEなのですが、SCSIエミュレーションということをしてあたかもSCSIであるかのように扱ってます。(情報源(3)より)

Windows では読めたのですが、Linuxで読めません。もう一度挑戦します。
(1)mkisofsでISO9660イメージファイルの作成
%TZ=UTC mkisofs -r -J -o CD archive
(2)ファイルシステムイメージのマウント
%su
# mount -t iso9660 -r -o loop CD /mnt/tmp
…中身を確認し,確認が終ったら元に戻す…
# umount /mnt/tmp
#exit
(3)cdrecordでCD-Rを焼く
$su
# cdrecord -dummy -v dev=0,0,0 speed=4 -pad -dao CD
結局-Rを-rに変更しても効果はありませんでした。情報源(7)の記事番号74212にはマルチセッションと事情は異なりますが-ejectで読めるようになったという記述がありました。
 その後いろいろ試しましたが、
-eject追加も効果なし
-dao から-dataへの切り替えも効果なし。
-pad削除も効果なし。これと同時に-multiを試した。追記も試しましたが、追記分はWindowsでも読めませんでした。
xcdroastをトライ
Setup > Users でrootをuserに追加。
Setup > CD SettingsでCD Writer Speedを1から4に増加させた。
Setup > HD Settingsで/mnt/tmpをTemporary Image Storage Directoriesとして追加した。
Save configuration ボタンをクリックした。
Creat CDボタンをクリック。更にMaster Tracksボタンをクリックします。Master sourceタブでソースファイルのディレクトリを指定します。Create session/imageタブでイメージの作成ができます。イメージを作ってから焼く作業がやり方が分りにくかったので、Write session on-the-fly(一気モード)で焼きました。今度はWindowsでも読めませんでした。またMultisessionはまだ実装されてないそうです。
 最後の手段としてマシンをリブートしました。するとシングルセッションでコマンドラインで作成したものは読めるようになりました。理由は不明です。xcdroastで作成したものはやはり読めません。マルチセッションで作成したものも読めません。

2.2.4 マルチセッション

シングルセッションとの違いは1回目のcdrecordコマンドから生じます。
%TZ=UTC mkisofs -r -J -o CD archive
%cdrecord -v -multi -data speed=4 dev=0,0,0 CD
%su
#cdrecord -msinfo dev=0,0,0
0,15226
%TZ=UTC mkisofs -v -r -J -C 0,15226 -o CD -M /dev/scd0 ./archive
ここで/dev/scd0は多分dev=0,0,0の番号と一致させればよいだろうということであてずっぽうでやりましたが、なんか調べる方法があると思います。%dmesgではCD-Rドライブはhdcと表示されるのですが、そちらではだめです。
/dev/scd0の件分りました。
$ls -la /dev/

cdrom -> /dev/scd0
と表示されます。情報源(8)のSCSI emulatorの項で分りました。
# mount -t iso9660 -r -o loop CD /mnt/tmp
…中身を確認し,確認が終ったら元に戻す。ファイルリストは見れませんでした。
# umount /mnt/tmp
#cdrecord -eject -v -multi -data speed=4 dev=0,0,0 -pad CD
#exit
今回も試行錯誤があったのでなぜか二度目に書いたものを認識してくれませんでした。マシンをリブートしたら二度目のセッションで書き込んだ内容も読めるようになりました。

2.2.5 速さの限界

公称16倍速の書き込みが可能なので、その他の問題が解決した今、どこまで可能か確認してみます。メディアも公称は24倍速です。マルチセッションで行きます。
%su
#cdrecord -msinfo dev=0,0,0
15226,66160
%TZ=UTC mkisofs -v -r -J -C 15226,66160 -o CD -M /dev/scd0 ./archive
# mount -t iso9660 -r -o loop CD /mnt/tmp
…中身を確認し,確認が終ったら元に戻す。ファイルリストを見ようとしたら
ls: /mnt/tmp: 入力/出力エラーです
と表示されました。確か二度目以降のセッションイメージの確認は出来ないとどこかに書いてありました。
# umount /mnt/tmp
#cdrecord -eject -v -multi -data speed=16 dev=0,0,0 -pad CD
この間いろいろ試行錯誤がありましたが、結局重要な点は次のとおりです。

  1. マルチセッションのときには決してイメージを見ようとしてはいけない。
  2. もし、そのようなことをするとCD-ROMに最も最近書き込んだ中身が認識できなくなる可能性が非常に高い。
  3. でも、Windowsではすんなり読めることが非常に多い。
  4. そのような場合はLinux OSをリブートするとCD-ROMの中身が読めることが多い。
  5. 一旦けちのついたCD-ROMメディアはその後マルチセッションに失敗しやすいと考えた方が良い。少なくとも速い書き込み速度では。
  6. CD-ROMドライブ公称の16倍速はメディアの内部情報(cdrecordが読み取って報告してくれる)が4倍速と表示されても、上の項目をちゃんと守れば達成できる。
  7. Windowsでも読めないCD-ROMのファイルはLinuxでは開いたりしない方が良い。
  8. 以上仮説をちゃんとを試したわけではないので直感に基づくものが多いが当たらずとも遠からずだと思います。

2.3 CD-RWを使う

2.3.1 CD-RWで焼く

情報源(8)によりますと焼き方はCD-Rと同じです。
%TZ=UTC mkisofs -v -r -J -o CD ./archive
# mount -t iso9660 -r -o loop CD /mnt/tmp
…中身を確認し,確認が終ったら元に戻す…
# umount /mnt/tmp
#cdrecord -eject -v -multi -data speed=4 dev=0,0,0 -pad CD
4倍速成功。
#cdrecord -msinfo dev=0,0,0
0,15241
%TZ=UTC mkisofs -v -r -J -C 0,15241 -o CD -M /dev/scd0 ./archive2
#cdrecord -eject -v -multi -data speed=8 dev=0,0,0 -pad CD
書き込みの直後はファイルが見えませんでした。メディアを良く見たら4倍速と書いてありました。念のためマシンをリブートしたら読めるようになりましたが、買うメディアを間違えたようです。

2.3.2 ファイルを消す

一部を消す。man cdrecordにblank=trackというのを見つけました。しかしtrack番号の指定方法が書いてありません。試しに実行してみました。
$su
#cdrecord dev=0,0,0 -v blank=track
#exit
消せない旨のメッセージが出ました。確か
cdrecord: Cannot blank disk, aborting.
だったと思います。
#cdrecord dev=0,0,0 -v blank=fast
でうまく行ったようです。全部消えました。

2.3.3 再び焼く

%TZ=UTC mkisofs -v -r -J -o CD ./archive
# mount -t iso9660 -r -o loop CD /mnt/tmp
…中身を確認し,確認が終ったら元に戻す…
# umount /mnt/tmp
#cdrecord -eject -v -multi -data speed=4 dev=0,0,0 -pad CD
成功です。



このページの内容に関するご質問はこちらまで。

作成者: 株式会社インサイト 三好昭生