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