Dec 6, 2002

             onlsbc2, Red Hat Linux 7.3 のインストール
          			---  インストール #6
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               (http://www-online.kek.jp/~inoue/para-CAMAC/
                                   Work/SBC-Linux6.html)



                        高エネルギー加速器研究機構
                            素粒子原子核研究所
                         物理、オンライングループ
                                井上 栄二

        目的

	    CAMACコントローラのプロトタイプに装着するSBC用に、Linuxシステムを
	  構築する(その2)。 先に512MBのコンパクトフラッシュ上に構築した
	    システムはカーネルのソースファイルがインストールされていなかった。
	  このためドライバの開発ができなかった。 さらに、システムアップデート
	  してあったために onlpara等と整合がとれなかった。 ここでは、onlsbc2
	    の512MBのコンパクトフラッシュ用にLinuxシステムをカーネルのソース
	    ファイルを含めて構築し直す。

        (1). ハードウェア構成
        (2). RedHat Linux 7.3 のインストール

  --------------------------------------------------------------------


 (1). ハードウェア構成

	SBCに 512MBのコンパクトフラッシュを接続した。 2.5"IDEハードディスクは
	接続していない。 ディスプレーには、EIZOの FlexScan L465を使用。 キー
	ボードはDELLのPS/2日本語キーボードを使用。 マウスはLogitec のUSBマウス
	を使用。 ディスプレー、キーボード、マウスはCPU切り替え器を通してSBCに
	接続した。 CPU切り替え器はSANWA SUPPLY のSW-CPU2UOを使用。


 (2). RedHat Linux 7.3 のインストール

   (2-1).  インストールディスクの作成

	先に作ってあったものを使用。


   (2-2).  Linuxインストールのための準備

	Linuxシステムのインストールは、FDDを使ってNFSインストールで行うことに
	する。 FDDは onlpc03に内蔵しているものを使用。

	NFSファイルサーバには onlsun4 を使用。 RedHat Linux 7.3のパッケージは
	onlsun4:/space1/RedHat7.3/disk1 に展開しておいた。 さらに、このディレク
	トリが、onlsbc1 から見れるように share しておいた。

	FDブートNFSインストールをやるので、フロッピー・ディスクにブート用の
	イメージファイル RedHat7.3/disk1/images/bootnet.img をフロッピーディスク
	にコピーしておく(上記の項目(2-1)参照)。

	注.
	  以前は、NFSファイルサーバのRedHat Linux 7.3のパッケージは
		onlsun4:/space2/RedHat7.3/disk1
	 に配置してあったが、以下の場所に移動した。
		onlsun4:/space1/RedHat7.3/disk1


   (2-3).  BIOS の設定

	Linuxシステムをインストールするにあたって BIOSの設定を確認しておく。

		Drive A			1.44M, 3.5in	<--- これを設定
		First Boot Device	Floppy			<--- これを設定
		Second Boot Device	HDD-0
		

   (2-4).  Linuxインストール

	FDをセットして電源を入れる。

		boot: <--- ここで Enterキーを押す

	インストーラは /dev/hdc1 のコンパクトフラッシュを認識できた。
	言語は Japanese を指定。 キーボードは jp106 を指定。 NFSインストール
	を選択。 

	onlsbc1の IPアドレス、ネットマスク、ゲートウェイ、ネームサーバを設定。

	NFSサーバは onlsun4.kek.jp、RedHatディレクトリーは 
	/space2/RedHat8.0/i386。

	マウスは Logitec の MouseMan Wheel (USB)、3ボタンマウスのエミュレート
	を指定。 

	インストールの種類はサーバ。 

	ディスクパーティションの種類は、インストーラが自動的にパーティションの
	設定を行うを選択。

	自動パーティションの設定では、
	    自動パーティションを設定するドライブの:
		システムの全てのLinuxパーティションを削除
	  このインストール方法をどのドライブに使用しますか?
		hdc: Sandisk SDCFB-512 - 489MB
	この設定で実行したら、
	  要求されたパーティションを設定できませんでした:
	  Partitioning failed: パーティションを第一パーティションとして確保
	  できませんでした。
	と、エラーになってしまった。 その後、ディスク設定画面になった。

	   /dev/hdc1  1  993	489	ext3
	   を削除。 削除できた。

	新規にファイルシステムを作る。
	   マウントポイント: /
	   ファイルシステムタイプ: ext3
	  選択可能なドライブ: hdc: SanDisk SDCFB-512-489MB
	   容量(MB): 488
	   追加容量オプション
	     固定容量

	   /dev/hdc1   1  992	488	ext3
	       ok.  確保できた。

	ディスクパーティションの設定の後、以下のような警告のメッセージが表示
	された。

	  スワップパーティションが未指定です。 これは常に必ず必要というわけ
	    ではありませんが大抵のインストールにおいて明らかに性能を向上させ
	  ます。

	このままインストールを続行する。

	ブートローダの設定。 
	  GRUB をブートローダとして使用。
	  ブートローダをインストールする場所:
		/dev/hdc マスターブートレコード (MBR)
	    パーティション: /dev/hdc1		タイプ: ext3
	        標準のブートイメージ
		ブートラベル: Red Hat Linux

	ブートローダパスワードの設定。
	  設定しない。

	ネットワークの設定。
	  eth0 |
	    起動時にアクティブにする。
	  IPアドレス		130.87.-----
	    ネットマスク            255.255.----
	    ネットワーク            130.87.-----
	    ブロードキャスト	130.87.-----
	    ホスト名		onlsbc1.kek.jp
	    ゲートウェイ            130.87.-----
	    1番目のDNS		130.87.-----
	    2番目のDNS         	130.87.-----
	    3番目のDNS          

	ファイアウォールの設定。
	  セキュリティレベル:	中
	    カスタマイズ
		信頼するデバイス:	eth0
		侵入を許可する:	SSH
                                     WWW (http)
                                     FTP
	追加言語サポート。
	  システム標準の言語: Japanese

	タイムゾーンの選択。
	  アジア/東京

	アカウントの設定。
	  システムのルートのパスワード: ****
	  ユーザアカウント:             -------

	パッケージグループの選択
	    何も指定しない標準の状態で 945MBと表示されている。

	パッケージのインストール
	個々のパッケージの選択
	  アプリケーション
		CPAN
		    perl-DataManip                  1MB
		アーカイブ
		  何も選択しなかった。
		インターネット
		    openssh			1MB
		    openssh-clients		1MB
		エディタ
		  何も選択しなかった。
		エミュレータ
		  何も選択しなかった。
		エンジニアリング
		  何も選択しなかった。
		システム	
		  bind-utils			1MB
		    procifo			1MB
		テキスト
		    何も選択しなかった。
                データベース
                    何も選択しなかった。
                パブリッシング
                    何も選択しなかった。
                ファイル
                    何も選択しなかった。
                マルチメディア
                    何も選択しなかった。
                ユーティリティ
                    何も選択しなかった。
                生産性
                    何も選択しなかった。
                通信
                    何も選択しなかった。

	    アミューズメント
		グラフィック
		  何も選択しなかった。
                ゲーム
                  何も選択しなかった。

	    システム環境
		カーネル
		  何も選択しなかった。
		シェル
		  何も選択しなかった。
		デーモン
		  apache			2MB
		    openssh-server                   1MB
		    portmap			1MB
		ベース
		  何も選択しなかった。
		ライブラリ
		  expat                            1MB	<---  これを入れないと
                                                                      apacheの依存関係
                                                                      が保てない。
		    libusb			1MB
		    mm				1MB     <---  これを入れないと
                                                                  apacheの依存関係
                                                                  が保てない。

	    ドキュメント
		何も選択しなかった。

	    ユーザインターフェース
		X
		    何も選択しなかった。
                Xのハードウェアサポート
                    何も選択しなかった。
                デスクトップ
                    何も選択しなかった。

	    開発
		システム
		  glibc-kernheaders		4MB     <---  これを入れないと
                                                                   glibc-develの依存
							      関係が保てない。
		    kernel-source		130MB
		ツール
		  automake15			1MB
		    binutils			3MB
		    make                             1MB
		    njamd                            1MB
		    patch                            1MB
		    pkgconfig			1MB
		デバッガ
		    gdb				2MB
		    ltrace			1MB
		ライブラリ
		    glibc-devel			7MB
		    gpm-devel			1MB
		    hesiod-devel                     1MB
		    krb5-devel			2MB
		    kudzu-devel			1MB
		    libstdc++-devel		2MB
		    libusb-devel                     1MB
		    libuser-devel                    1MB
		    pciutils-devel                   1MB
		    readline-devel                   1MB
		言語
		    cpp				1MB
		    gcc				8MB
		    gcc-c++			5MB




		参考.
		    perl-DataManip
			perl用のライブラリのモジュール

		  openssh
			OpenSSHはSSH(Secure SHell)プロトコルのOpenBSDによる実装
			です。 SSHはloginやrshの代わりに使用するプログラムで
			信頼性の低い2台のホスト間で安全でないネットワークを経由
			して、暗号化された安全な通信を実行できます。 X11接続
			および任意のTCP/IPポートも安全なチャネル経由で転送できま			す。 共有鍵認証でサーバにパスワードなしでアクセスする
			こともできます。 このパッケージには、OpenSSHのクライ
			アントとサーバの両方に必要なコアファイルが含まれていま
			す。 このパッケージを利用するには、openssh-clients、
			または、openssh-server、あるいはその両方をインストール
			する必要があります。

		  openssh-clients
			OpenSSHはSSH(Secure SHell)プロトコルのOpenBSDによる実装
			です。 このパッケージには、SSHサーバに暗号化された接続
			を行うために必要なクライアントが含まれています。 
			OpenSSHクライアントにopensshパッケージもインストールする
			必要があります。

		  bind-utils
			bind-utilsにはDNS(Domain Name Service)ネームサーバに
			問い合わせを行い、インターネット上のホストに関する情報
			を得るためのユーティリティ群が含まれています。 これら
			のユーティリティを使うと、特定のホストに対応するIPアドレ
			スのほか、登録されたドメインやネットワークアドレスに関す
			る情報を得ることができます。 DNSネームサーバから情報を
			得る必要がある場合は、bind-utilsをインストールしてくだ
			さい。

		    procinfo
			procinfoコマンドは /procディレクトリ(カーネルファイル
			システム)からシステムデータを取得し、書式設定を行って
			から標準出力上に表示します。 procinfoを使用すれば、動作
			中のカーネルからシステムに関する情報を入手することができ
			ます。

                    apache
                        Apacheは強力で充実した機能を持つ無償の Webサーバです。
                        また、apacheはインターネット上で最も一般的に使用されて
                        いる Webサーバです。


		    openssh-server
			OpenSSH(Secure SHell)プロトコルのOpenBSDによる実装です。			このパッケージには、sshd(secure shell daemon)が含まれて
			います。 sshdデーモンを使うとSSHクライアントでSSHサーバ
			に安全に接続できます。 また、opensshのパッケージの
			インストールも必要です。

		    portmap
			portmapプログラムは、NIS(YP)やNFS、その他の重要な情報の
			不正利用を防ぐためのセキュリティツールです。 portmapは
			NFSやNISなどのプロトコルによって使われるRPC接続を管理
			します。 portmapパッケージは、RPCを使用するプロトコル
			のサーバとして動作するマシンのすべてにインストールする
			必要があります。

		    expat
			ExpatはXML解析用のCライブラリです。 Expatはストリーム系
			のXMLパーサです。 解析を開始する前に、パーサによって
			ハンドラが登録されます。 パーサが解析対象ドキュメント
			で関連する構造を発見すると、登録したハンドラがコールされ
			ます。 ハンドラを登録できる構造にはstartタグなどがあり
			ます。

		    libusb
			このパッケージはアプリケーションがUSBデバイスにアクセス
			する手段を提供します。

		  mm
			MMライブラリは抽象レイヤを提供します。 これにより、関連
			プロセスが共有メモリを使用してデータを共有するので簡単に
			なります。

		  glibc-kernheaders
			glibc-kernheadersには、LinuxカーネルのCヘッダファイルが
			含まれています。 ヘッダファイルは、標準的なプログラム
			をビルドしたり、glibcパッケージの再構築に必要な構造体や
			定数を定義するものです。

		  automake15
			automakeはMakefile生成ツールです。 automakeは、4.4BSDの
			makeとインクルードファイルの影響を受けていますが、その
			目的は移植性と、標準に準拠することにあります。

		    binutils
			binutilsは、一連のバイナリユーティリティで、ar(アーカイ
			ブの作成、変更、読み込みを行う)、as(GNUアセンブラファミ
			リー)、gprof(関数呼び出しグラフのプロファイルデータを
			表示する)、ld(GNUリンカー)、mm(オブジェクトファイルの
			シンボルを一覧表示する)、objcopy(オブジェクトファイルの
			コピーと変換を行う)、objdump(オブジェクトファイル内の
			情報を表示する)、ranlib(アーカイブ内容のインデックスを
			作成する)、size(オブジェクト/アーカイブファイルのセク
			ションサイズの一覧を表示する)、strings(ファイル内の印字
			可能文字列の一覧を表示する)、strip(シンボルを削除する)、			addr2line(アドレスをファイルや行に変換する)などが含まれ
			ます。

		    make
			プログラムのソースファイルから、実行可能ファイルやその他
			の非ソースファイルを生成する方法を制御するためのGNUツー
			ルです。 Makeを使用すれば、ユーザはビルドプロセスの詳細
			に関する特別な知識を持たなくても、パッケージの構築と
			インストールを行うことができます。 プログラムの構築方法
			に関する詳細を、プログラムのmakefileの中のmakeとして指定
			します。

		    njamd
			NJAMDはmallocデバッガで、実行バイナリを再コンパイル、
			さらには再リンクすることなしにオーバーフロー、アンダー
			フロー、開放メモリーへの書き込み、メモリーリークなどの
			すべての一般的な動的メモリーバグを探します。 NJAMDは
			malloc(3)、strdup(3)、GNUウィジェットアロケータ、さらに
			はC++のnewとdeleteなどのラップする任意のライブラリ関数
			を介してメモリーリークを追跡することができます。 NJAMD
			は日常的に使用できる程度に高速でありほとんどのアプリ
			ケーションをデバッグできる程度に軽量です。 ただし、
			大規模なアプリケーションのデバッグを快適に行うためには
			より多くのRAMが必要になります。

		    patch
			patchプログラムはオリジナルファイルにdiffファイルを適用
			します。 diffコマンドは、オリジナルファイルと変換後の
			ファイルを比較する際に使用されます。 diffはファイルに対
			する変更内容を一覧表示します。 この場合、オリジナル
			ファイルを持っている人は、patchコマンドとdiffファイルを
			使用すれば、オリジナルファイルに変更内容を追加(ファイル
			へのパッチ適用)することができます。 アプリケーションを
			アップグレードするための一般的な方法です。

		    pkgconfig
			pkgconfigツールはコンパイルオプションを決定します。
			必須の各ライブラリについて、設定ファイルを読み込み、
			必要なコンパイラフラグとリンカフラグを出力します。

		    gdb
			GNUデバッガであるGDBを使用すると、C、C++、他の言語で作成
			されたプログラムを制御して、そのデータを印刷することで、
			デバッグを行うことができます。

		    ltrace
			ltraceはデバッグプログラムであり、指定されたコマンドを
			実行し、そのコマンドが終了するまで動作し続けます。 
			コマンドの実行中にltraceは実行されたプロセスがコールした
			ダイナミックライブラリーコールと、実行されたプロセスが
			受信したシグナルの両方をインターセプトして記録します。
			ltraceはプロセスによってコールされたシステムコールを
			インターセプトして表示することもできます。

		    glibc-devel
			glibc-develパッケージには、標準Cライブラリを使用するプロ
			グラム(ほぼすべてのプログラムが使用)を開発するために必要
			なヘッダーとオブジェクトファイルが含まれています。 標準
			Cライブラリを使用するプログラムを開発する場合には、実行
			可能ファイルを作成するために、これらの標準ヘッダーや
			オブジェクトファイルをシステム内で利用できるようにする
			必要があります。 標準Cライブラリを使用するプログラムを
			開発する予定がある場合は、glibc-develをインストールして
			ください。

		    gpm-devel
			gpm-develパッケージには、マウス操作できるプログラムの
			開発に必要なライブラリおよびヘッダファイルが含まれていま			す。 このパッケージを使って、マウスを使用するテキスト
			モードのプログラムを開発できます。 マウスを使用するテキ
			ストモードのプログラムを開発する必要がある場合には、
			gpm-develをインストールしてください。

		    hesiod-devel
			Hesiodは不規則に変化する情報のデータベースへのアクセスを
			提供するのに既存のDNS機能を使用するシステムです。 しば
			しば、平常ではネットワークの/etc/passwd、/etc/group、
			そして/etc/printcapファイルの中に保存されている情報を
			配布するのに使用されます。 それが、マルチプルホスト間
			でのファイルの同期を確立する必要をなくしてくれます。
			このパッケージにはHesiodを使用するプログラム作成の為に
			必要なヘッダーファイルとライブラリが含まれます。

		    krb5-devel
			krb5-develはネットワーク認証システムです。 krb5-devel
			パッケージには、kerberos5プログラムをコンパイルするため
			に必要なヘッダーファイルとライブラリが含まれています。
			kerberos対応のプログラムを開発したい場合には、この
			パッケージをインストールする必要があります。

		    kudzu-devel
			kudzu-develパッケージにはハードウェア検出と設定に使用す
			るライブラリであるlibkudzuが含まれています。

		    libstdc++-devel
			libstdc++ライブラリは標準C++ライブラリのGNU実装版です。
			このパッケージには、STLのSGI実装を含むC++開発に必要な
			ヘッダーファイルとライブラリが含まれています。

		    libusb-devel
			このパッケージにはlibusbでアプリケーションを開発するのに
			必要なヘッダーファイルやドキュメントが含まれます。

		    libuser-devel
			libuser-develパッケージにはlibuserを利用するアプリケー
			ション開発のためのヘッダーファイル、静的リンクファイル、
			そして有用な .laファイルが収録されています。

		    pciutils-devel
			このパッケージには、PCIバスに接続されたデバイスを検査、
			設定するためのライブラリが含まれています。

		    readline-devel
			readlineライブラリは入力されたコマンドラインをユーザが
			編集できるようにするアプリケーションにおいて使用すること
			のできる機能のセットを提供します。 readlineライブラリを
			使用したプログラムを開発したい場合には、readline-devel
			パッケージをインストールする必要があります。

		    cpp
			cppはGNU C互換のコンパイラプリプロセッサです。 cppは、
			実際にコンパイルを行う前にプログラムを変換するために
			Cコンパイラから自動的に実行されるマクロプロセッサです。
			マクロプロセッサと呼ばれるのは、長い記述を簡略化したマク
			ロを定義できるためです。

		    gcc
			gccパッケージには、Cコードコンパイラ用のGNUコンパイラの
			ccとgccが含まれます。

		    gcc-c++
			gcc-c++パッケージを使用するとGNU CコンパイラにC++の
			サポートが加わります。 テンプレートや例外処理などを含む
			最新のC++使用のほとんどをサポートしています。 これには
			静的標準C++ライブラリとC++のヘッダーファイルが含まれます
			が、ダイナミックリンク用のライブラリは別のパッケージに
			収録されています。


	インストールを開始する。

	インストール完了。 リブートする。
	現在、BIOSの設定は、
          First Boot Device   [HDD-0]
          Second Boot Device  [HDD-1]
          Third Boot Device   [HDD-2]
	となっている。 このため、ブートアップ時には/dev/hda、/dev/hdb、/dev/hdc
	の順に調べてから立ち上がる。 最終的には First Boot Deviceに /dev/hdcを
	指定してよいだろう。 Linuxシステムは正常に立ち上がった。

[inoue@onlpara inoue]$ ssh onlsbc2
The authenticity of host 'onlsbc2 (130.87.153.8)' can't be established.
RSA key fingerprint is 08:e1:06:a4:45:07:95:e9:56:ad:af:5b:ce:5d:29:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'onlsbc2,130.87.153.8' (RSA) to the list of known hos
ts.
inoue@onlsbc2's password:
[inoue@onlsbc2 inoue]$ ls -l
合計 0
[inoue@onlsbc2 inoue]$ df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hdc1               483886    352892    105998  77% /
none                    152332         0    152332   0% /dev/shm
[inoue@onlsbc2 inoue]$ cd /usr
[inoue@onlsbc2 usr]$ ls
X11R6  dict  games    kerberos  libexec  sbin   src
bin    etc   include  lib       local    share  tmp
[inoue@onlsbc2 usr]$ cd src
[inoue@onlsbc2 src]$ ls -l
合計 1
lrwxrwxrwx    1 root     root           14 12月  6  2002 linux-2.4 -> linux-2.4.
18-3
drwxr-xr-x   16 root     root         1024 12月  6  2002 linux-2.4.18-3
[inoue@onlsbc2 src]$ cd linux-2.4.18-3
[inoue@onlsbc2 linux-2.4.18-3]$ ls -l
合計 205
-rw-r--r--    1 root     root        18691  4月 18  2002 COPYING
-rw-r--r--    1 root     root        79081  4月 18  2002 CREDITS
drwxr-xr-x   29 root     root         3072 12月  6  2002 Documentation
-rw-r--r--    1 root     root        41550  4月 18  2002 MAINTAINERS
-rw-r--r--    1 root     root        18746  4月 18  2002 Makefile
-rw-r--r--    1 root     root        14239  4月 18  2002 README
-rw-r--r--    1 root     root         2815  4月  7  2001 REPORTING-BUGS
-rw-r--r--    1 root     root         9186  4月 18  2002 Rules.make
drwxr-xr-x   11 root     root         1024 12月  6  2002 abi
drwxr-xr-x    3 root     root         1024 12月  6  2002 arch
drwxr-xr-x    2 root     root         1024 12月  6  2002 configs
drwxr-xr-x   42 root     root         1024 12月  6  2002 drivers
drwxr-xr-x   45 root     root         2048 12月  6  2002 fs
drwxr-xr-x   10 root     root         1024 12月  6  2002 include
drwxr-xr-x    2 root     root         1024 12月  6  2002 init
drwxr-xr-x    2 root     root         1024 12月  6  2002 ipc
drwxr-xr-x    2 root     root         1024 12月  6  2002 kernel
drwxr-xr-x    4 root     root         1024 12月  6  2002 lib
drwxr-xr-x    2 root     root         1024 12月  6  2002 mm
drwxr-xr-x   30 root     root         1024 12月  6  2002 net
drwxr-xr-x    4 root     root         1024 12月  6  2002 scripts
[inoue@onlsbc2 linux-2.4.18-3]$

	352MBでインストールできている。 残りが105MBあるので、Java、DAQアプリ
	ケーションを入れる余地はありそうだ。 ネットワークからログインすれば
	日本語は正常に表示される。 コンソールでは kon をすれば日本語表示
	できる。

---xxxx