Red Hat Linux 7.1のkernel開発用インストール方法

1.はじめに

Redhat6.0ごろから、Linuxの対応できるハードウェアの種類も広がり、インストール方法も簡単になって来ました。しかしながら、Linuxの初心者にとっては勿論ですが、カーネル・モジュールの研究やデバイスドライバの開発を目的とする人にとっての、標準設定のインストールやオプションをすべてインストールする以外のインストール方法の解説は、意外と少ないので、日本語Redhat Linux 7.1を例にして、ここで紹介します。

準備としてはPentium!!! またはCeleron500MHz以上を搭載し、メモリが128MB以上、CDROMドライブとFDドライブを内蔵して、4GB以上の容量を持つHDドライブを内蔵しているPCが必要になります。必ずしもこのスペックを満足している必要は無いのですが、カーネル・コンパイルにはものすごく時間がかかりますので、Linuxのカーネルコンパイルを伴った開発には速いマシン程向いています。また、デバイスドライバ開発用にはPS2タイプのキーボードと普通の2ボタンマウスの接続をお勧めします。インストールするマシンは、最近はノートPCであっても問題なくインストールできる場合が多いようです。
ビデオカードの選択に関しては多くの要素を含むため、詳細はここで説明しません。確実なのはRedhatのサイトやマニュアルで紹介されているモノから選択する事ですが、わざわざ調達する必要も無いと思います。ヒントとしては新し過ぎず古過ぎず、有名メーカのものならば大体大丈夫なようです。

また、デバイスドライバの開発を行う場合は、マシンやデバイスの動作確認のために、HDドライブの先頭1GB分、または別ドライブにWindows98または、WindowsMEをインストールしておく事をお勧めします。

2.CDROMからのブート

まず、インストールしようとするPCのシステム設定(BIOS設定)を変更して、CDROMからブートできるようにします。
このシステム設定の変更方法は、使っているPCの種類によって全く異なりますので、各PCの説明書を参照して下さい。ブート(起動)するデバイス(またはドライブ)の順番を設定する方法というような項目で載っているはずです。

PCによってはCDROMからブートする設定がなかったり、前記の手順に従って、CDROMからブートできるように設定したのにもかかわらず、Redhat Linuxの1枚目のインストールCDを入れてもブートしない場合があります。そのような場合には、市販パッケージに付属しているインストール用FDを使用して、FDから起動するか、次項の手順に従って、ブート用FDを作成して、FDからのブートを行って下さい。

いくつかのシステムでは、CDROMからの起動時にはブート確認のプロンプトを出して「ENTER」キーの入力を待ってから、CDROMから起動する場合もありますので、注意して下さい。

3.インストール用FDの作成とFDからのブート

CDからインストールできず、手元にパッケージ付属のインストール用FDが無い場合には、インストール用FDを以下の手順で作成した後、そのFDを使って起動してインストール作業を行います。ここで紹介するFDから起動してインストールする方法では、CDROMドライブとインストール用CDROMが必要ですので注意して下さい。CDROMやFDを使わないインストール方法もありますが、ここでは紹介しません。

インストール用のFDの作成には、WindowsがインストールされたPCとCDROMドライブと、FDドライブとRedhat Linux7.1のインストール用CDROMと空の1.44MB FD 1枚が必要です。

まず、Windowsを立ち上げて、Redhat Linux7.1のインストール用CDROMの1枚目をドライブに入れます。
次にコマンドプロンプト、EXPLORE、または「ファイル名を指定して実行」から、CDROMドライブの\DOSUTILS\RAWRITE.EXEを実行します。
RAWRITEの画面では、次のように入力して最後にENTERキーで確認します。
※CDROMドライブが'Q:'で、FDドライブが'A:' の場合ですので、環境に合わせてドライブ名を変更して下さい。

Source File Name: Q:\IMAGES\BOOT.IMG
Target Diskette Drive: A:
- ENTER -

書き込みの終了メッセージは特に出ないので、FDとCDROMのアクセスランプを見て判断して下さい。書き込みが終ったらば、そのままシステムを再起動して、FDからブートさせます。

4.インストールの開始

Welcome to Red Hat Linux Language Selectionという画面まで自動的に表示され、マウスが動作するのを確認後、以下の手順を行います。

Language Selection (言語の選択)

画面下の“Boot: ”の表示で「Japanese」をマウスでクリック、ハイライト表示させて「Next」
★注意1:以後、タブキー、矢印キー、で移動・選択して、「Enter」で実行する事も可能です。
★注意2:以降、設定手順や入力に間違いがあった場合には、「Back(戻る)」で戻れるが、戻れなくなった場合や、訳がわからなくなって最初からやり直す場合は[Ctrl+Alt+Del]で再起動します。
★注意3:以降、リリースノートやオンラインヘルプが表示されます。

キーボードの設定

以下を選択して「次(Next)」
モデル:Japanese 106-key
レイアウト:Japanese
デッドキー:デッドキーを有効にする

マウスの設定(PS2の場合)

以下を選択して「次(Next)」。
モデル:Generic → 2button mouse (PS/2)
3ボタンマウスのエミュレート:2ボタンマウス使用時には必ずチェックを確認します

ようこそ画面

ようこそメッセージが表示されています。「次(Next)」

インストールの種類

インストール→カスタムシステムを選択して次(Next)」

ディスクパーティション設定

「Disk Druid を使用して手動でパーティションを設定」を選択して、「次(Next)」

Disk Druid

マウス、またはTABと矢印キーで、「追加(A)」を選択してパーティションを作成します。
Mount Point: にマウントポイントの名前「 / 」、「 /usr」等を記入または選択します。
各大きさ(Size)のパーティションを作成(以下を参照)して、「OK」を選択して順次パーティションを作成します。

マウントポイント デバイス 要求 実際 タイプ
/win hda1 1011M 1011M Win95FAT32
/ hda5 800M 802M Linux Native
/usr hda6 2000M 2002M Linux Native
/home hda7 2020M 2048M Linux Native
<スワップ> hda8 256M 260M Linux Swap

これは、6GBのハードディスクにパーティションを割り当てた例ですので、ディスク容量に合わせて「/home」の容量を増減させる等の方法で調整して下さい。「/usr」には最低2GBは確保する事をお勧めします。
<スワップ>パーティションの直前のパーティション(上記図の場合は「/home」)は、「残りの領域を使用しますか?」にチェックをすると残りの領域が全部「/home」に割り当てられます。

すべて入力と設定が終わったら確認して「次(Next)」

フォーマットするパーティションを選択してください

次のようにしてLinux Nativeパーティション部分は全てをチェックします。
時間がかかるので「フォーマット中に不良ブロックをチェック」はチェックを外してして「次(Next)」
[ v ] /dev/hda5 /
[ v ] /dev/hda6 /usr
[ v ] /dev/hda7 /home

LILOの設定

以下の設定をチェックして、「次(Next)」
[ ] ブートディスクを作成(緊急用にブートディスクを作成する場合はチェックして作成して下さい)
[ v ] LILOをインストール
------------------------------------------
LILOブートレコードをインストールする場所
◎ /dev/hdaマスターブートレコード(MBR)
○ /dev/hda2ブートパーティションの最初のセクタ
[ v ] リニアモードを使用する(一部のSCSIドライブで必要)
カーネルパラメータ「        」
------------------------------------------
パーティション:/dev/hda1 タイプ:DOS/Windows
[ v ] デフォルトのブートイメージ
ブートラベル「win」

デフォルト デバイス パーティションタイプ ブートラベル
/dev/hda1 DOS/Windows win
v /dev/hda2 Linux Native linux

ネットワークの設定(LANカードが付いている場合)

開発用のマシンは、次の手順でDHCPしない設定(IPアドレスを自動的に割り当てない)をお勧めします。
DHCPを使用して設定のチェックを外して、指定されたIPアドレス、ネットワーク、ネットマスク、ブロードキャストを設定します。以下は設定例です。設定を確認して「次(Next)」

eth0
IPアドレス 192.168.1.201
ネットワーク 192.168.1.0
ネットマスク 255.255.255.0
ブロードキャスト 192.168.1.255
ホスト名 pc1.internal.devdrv.com
ゲートウェイ 192.168.1.254
1番目のDNS 192.168.1.2
2番目のDNS 192.168.1.3

ファイアウォールの設定

デバイスドライバやカーネル開発用のマシンは、通常外部インターネットに直接接続する事は有りません。インターネットに接続する場合にはルータ等を用いて内部ネットワーク経由で接続します。そのためにマシン自身には「ファイアウォール」機能を設定しません。
「ファイアウォールなし」を選択して「次(Next)」。
---------------------------------------------------------
セキュリティレベルを選択して下さい:
高○ 中○ ファイアウォールなし◎
---------------------------------------------------------
 デフォルトのファイアウォール規則を適用
 カスタマイズ
 ...

言語の選択

Japaneseになっているのを確認して、「次(Next)」

タイムゾーンの選択

アジア/東京になっているのを確認して、「次(Next)」
★注意:「システムクロックでUTCを使用」はチェックしません。

アカウントの設定

rootパスワードを入力して、確認にも入力して設定します。(ここで入力したパスワードは忘れないようにします)
ユーザ用のアカウントはここでは作成せずに、起動後に作成する方法をお勧めします。
入力、設定確認後「次(Next)」

認証設定

以下の設定を確認して「次(Next)」

[ v ] MD5パスワードを有効にする。
[ v ] シャドウパスワードを有効にする。
[ ] NISを有効にする。
[ ] LDAPを有効にする。
[ ] Kerberosを有効にする。

パッケージグループの選択

以下の選択を確認して「次(Next)」
★注意-1: 後でlinuxconfを追加でインストールするために「個々のパッケージを選択」をクリックして選択しておきます。
★注意-2: 以下は選択の参考例ですが、カーネルやデバイスドライバ開発に必要と思われる選択項目は「*」で示しています。
勿論、ディスク容量が十分あれば、全部をインストールしても構いません。

[ ] プリンタ・サポート
[ * ] X Window システム
[ * ] GNOME
[ ] KDE
[ v ] メール/WWW/ニュースツール
[ v ] DOS/Windows 接続
[ v ] Graphics 操作
[ ] ゲーム
[ v ] マルチメディア・サポート
[ v ] ラップトップ・サポート
[ v ] ネットワーク接続ワークステーション
[ ] ダイアルアップ・ワークステーション
[ ] ニュースサーバ
[ ] NFS サーバ
[ ] SMB(Samba) サーバ
[ ] IPX/Netware(tm) 接続
[ ] Annonymous(匿名) FTP サーバ
[ ] SQL Server
[ v ] Web Server
[ ] DNS ネームサーバ
[ v ] ネットワーク管理ワークステーション
[ v ] 著作 / 出版
[ v ] Emacs
[ * ] 開発
[ * ] カーネル開発
[ * ] ユーティリティー
[ ] すべて
[ * ] 個々のパッケージを選択

個々のパッケージの選択

アプリケーション→システムから、以下の2つを選択してチェックを行います。設定確認後、「次(Next)」
これは、Linuxの各種daemonプログラムの動作をX-Windows上から簡単に操作できる「gnome-linuxconf」のインストールを目的としていますので、「gnome-linuxconf」が必要ない場合にはこの選択は不要です。
★注意-1: 他の設定は変更しないように注意します。
★注意-2: Redhat 7.2以降では標準(サーバ設定→サービス)で同機能が提供されるようになったため、「gnome-linuxconf」の選択は無くなりました。

[ v ] gnome-linuxconf
[ v ] linuxconf

Xの設定

ビデオカードが所定のチップ(インストール対象のPCのビデオカード)に、ビデオカードRAMの容量が搭載容量以下設定されているのを確認後、「次(Next)」
★注意-1: ビデオカードとRAM容量はPCのマニュアルを見るか、Windowsを立ち上げて確認します。
★注意-2: i810, i815, i845G等のIntel製オンボードビデオ機能を利用している場合には、ビデオカードがi740になっている事を確認すればビデオRAM容量を変更する必要はありません。

モニタの設定

使用しているディスプレイに該当するモニタ、あるいは近い仕様のモニタを選択して、「次(Next)」
LCDやノートPCの場合には、「▽Generic」の左の▽をクリックして個別タイプを表示させて、「Generic Laptop Display Panel ???x???」(???は解像度を合わせます)を選択します。モニタの設定は後からでも変更可能なので、よくわからない場合はそのままとしておきます。

X設定のカスタマイズ

以下は、1024x768で16 Bitカラーのマシンの設定例です。ビデオカードによっては「設定のテスト」が表示されなかったり、うまく行かない場合もあります。その場合には、後からX-Windowの再設定をするか、ビデオカード(ビデオ機能)を対応してものに交換するか、または後からX-Window関係のソフトウェアやカーネルモジュールをインストールし直して設定するかの選択が必要になります。多くのビデオカード用メーカやチップの開発元では、Linuxへの対応状況や対応ドライバ、設定方法等を公開している場合が多いので、うまく行かなくともメーカサイトを確認してみる事をおすすめします。
例えばNVIDIA GeForce4シリーズは、Redhat7.1のインストール時にはX-Windowを動作させる事ができませんが、インストール後にNVIDIAのサイトからダウンロードしたドライバを組み込む事により、使えるようになります。(ちょっとXの起動に時間がかかります)

色深度 = High Color(16 Bit)
画面の解像度 = 1024x768
を確認して「設定のテスト」をクリックしてみます。

テスト画面で、「テストをしています。このメッセージに注意をして下さい」が表示されて動作するのを確認してから、タイムアウト「はい(Y)」をクリックして終了後、
「ログインの種類を選択して下さい:」を必ず「◎テキストログイン」に設定して、「次(Next)」

★注意-1: テキストログインへの設定変更は後からでも可能です。
★注意-2: テキストログインを使うのは、テキストベースのコンソールへの出力メッセージを確認する場合と、KDB, KGDBやSysRQ等のテキストベースのデバッグ機能を使う事を考慮しているためです。特にお勧めはしませんが、これらの機能が必要無い場合には、「グラフィカルログイン」でも構いません。

インストール準備完了

[次]をクリックするとRed Hat Linuxのインストールを開始します。
完全なインストールの記録はシステムの再起動後でも、/tmp/install.log に保存されておます。後で参照できるように...」のメッセージを確認して「次(Next)」

★注意-1:この後ファイルシステムのフォーマットやCD-ROMからの各ファイルのインストールが始まります。
★注意-2:インストールには長い時間がかかります。(およそ20分間〜1時間、マシンによっても異なります)

インストールの途中でCD-ROMを吐き出して、CD-ROMの交換を求める画面が出ます。
「続行するにはディスク2を挿入して下さい」
ここで、CD-ROMをDisc-2に交換して「OK」をクリックします。

おめでとうございます

「インストールが終了しました ...」画面を確認して、インストールに使用した、CD-ROMやFDを取り出してから、
「終了」をクリックするか、[Enter]キーを押します。
★注意:CD-ROMが取り出せない場合には、ロックされているので、無理をせずに再起動が始まったタイミングで取り出します。

5.インストール後の追加・確認作業

再起動時のハードウェアの自動認識

ほとんどのハードウェアはインストール時に認識されて設定されているはずですが、マシンによってはインストール後の最初の起動時に、新規ハードウェアの認識によってインストールを促すメッセージが出ます。特にPS2マウスではそのようです。

起動時にマウスの新規ハードウェアの認識のメッセージが出た場合には、キーボードの矢印キーと、TabキーでPS/2 (Generic) マウスを選択して、3 Button Emulationsに必ずチェックを入れて、自動認識したマウスを登録する必要がある場合があります。他のデバイスでも同様に指示に従って設定を行います。

ログイン画面

当然ながらrootでログインします。
login: root
password: *****

★注意:rootでログインせずに一般ユーザでログインして、rootにsuして作業を行うべきだと書いてある参考書がよくありますが、それはアプリケーション開発やシステム・インテグレーションを行う際にはいいでしょう。カーネルやデバイスドライバの効率的な開発を行うためには、是非ともrootでログインして(緊張感を持ちながら!)作業する事をお勧めします。緊急時にネットワーク上の他のマシンからログインする場合や、アプリケーション・レベルでの動作確認のために一般ユーザ用のアカウントも、勿論必要です。

X Windowの起動

# startx
で起動します。

Gnomeの初期画面で、Gnomeヒントが表示されるので、「次もこのダイアログを表示」をクリックして(Offにする)」消す。
→「閉じる」
「スタートアップヒントが無効にされました...」→「OK」
「rootとして、Gnomeマネージャを動かそうとしています。
 rootで実行すると不注意で...」
「このウィンドウを表示しない」をクリックして(Onにする)→「OK」

★注意:rootでX-Windowsを立ち上げ、なおかつこのような警告メッセージを出さないようにする事はシステム管理上のリスクがありますので、初心者やアプリケーション開発環境向けにはお勧めしません。

不要なサービスの停止と必要なサービスの起動

LinuxConfを使用して不要なサービスの停止と必要なサービスの起動を必要に応じて行います。
設定のためのヒントとしては、標準で動作しているサービスについては、「何を行っているか」「どういう場合に必要となるか」を全て把握する事です。カーネルやデバイスドライバの開発を行うためには、不要なサービスを動作させておく必要はありません。
LinuxConfを使用しなくとも、/etc/rd.d以下のファイルを操作する事により同様の事ができますが、手順は面倒です。

ユーザアカウントの設定

# groupadd -g 8299 new-user-group
(8299はGROUP IDとなる数字、new-user-groupは一般ユーザ用のグループ名)
# adduser -g devdrv ?u 9999 new-commer
(9999はUSER IDとなる数字、new-commerは一般ユーザ名)
# passwd new-commer
忘れないうちにパスワードを設定しておきます。

その他の設定

もし必要ならば、ネットワーク周り、セキュリティ周り、その他の設定や必要ソフトウェアのインストールを行います。しかしながら、Shell関係やX-Window, Widget周りなどはあまりカスタマイズし過ぎない事をお勧めします。カーネルやデバイスドライバの開発では、再インストールは良く行います。また、再インストールを恐れていては作業が進まない場合もありますので、自分が使い易いカスタマイズにこだわるよりも、体を初期インストール環境やviが使えるように慣らした方がいいでしょう。

それから、Redhat Linux 7.1で標準(あるいは追加オプションでも同様ですが)インストールされる各ネットワーク関係のアプリケーションやツール、ライブラリのうちいくつかは、セキュリティ上問題がある事が判明しています。スタンドアロンや安全な内部ネットワークで使用する場合以外は、対応モジュールの更新をお勧めします。

6.ポイント

カーネルやデバイスドライバの開発を含めて、あらゆる用途に最適なLinuxのインストールや設定方法を説明するのは難しいと思います。ここでは、なるべく便利に開発できて最小限度のパッケージをインストールして利用する事を目的に、弊社の実習セミナで使用している設定例を元にして紹介しています。特にX-Windowを動作させるようにする事は、サーバ・マシンでは不要かも知れませんが、カーネルやデバイスドライバといったソフトウェアの効率的な開発には有効ですので、正しく設定して使用する事をお勧めします。

セキュリティの観点からは、このようなカーネルやデバイスドライバの開発マシンにおいて、個々にセキュリティの対策や設定を行うのでは難しく、現実的な運用ができるとは思えません。また、開発効率上も問題があります。必要であれば、是非ともカーネルやデバイスドライバの開発環境を、ネットワーク毎隔離するような運用方法を検討して導入して下さい。

Last editted on 2/4/2003
Copyright(c) 2003, Device Drivers Limited 戻る→