FlashDrive(PCI)Linux/RT *3* /LQX[ 用フラッシュメモリ ,'( モジュール ZZZLQWHUIDFHFRMS GPG-1604 Online Help for Linux 目 次 第 1 章 はじめに 1.1 1.2 3 概要 ............................................................................. 3 特長 ............................................................................. 3 第 2 章 製品仕様 2.1 2.2 2.3 2.4 4 動作環境 ......................................................................... 4 対象ボード ....................................................................... 4 基本仕様 ......................................................................... 5 本製品を初めて使用する場合 ....................................................... 6 第 3 章 GPG-1604 使用方法 (増設 (増設 IDE ドライブ編) ドライブ編) 3.1 3.2 増設 IDE として使用 ............................................................... 7 増設 IDE かつリムーバブルメディアとして使用 ....................................... 9 第 4 章 GPG-1604 使用方法 (カーネルインストール編 (カーネルインストール編) カーネルインストール編) 4.1 11 Linux 上から Linux システムをカードへインストール................................. 11 第 5 章 ユーティリティ 5.1 7 22 コンパクトフラッシュカード電源コントロールプログラム ............................ 22 第 6 章 重要な情報 24 2002 Interface Corporation. All rights reserved. 2 GPG-1604 Online Help for Linux 第1章 はじめに 1.1 概要 GPG-1604 は、Linux から、弊社 PCI-1604 オートスタートフラッシュメモリドライブを利用するた めのソフトウェアです。GPG-1604 は、コンパクトフラッシュカードを Linux の IDE ブロックデバイ スとして扱えるようにするための IDE 登録用ドライバモジュールを提供します。 本ドキュメントは、Linux 上で GPG-1604 を使用するための情報を掲載しています。 1.2 特長 ●オートスタート機能により、OS をインストールしたコンパクトフラッシュから OS をブートできま す。 ●コンパクトフラッシュを使用することで可動部を持たないシステムを構築できます。 ●コンパクトフラッシュカードを IDE ハードディスクとしてアクセスできます。 ●コンパクトフラッシュカードをリムーバブルメディアとして利用できます。 ●Linux ファイルシステムへの変更/追加は一切無いため、RTLinux からもそのまま利用可能です。 2002 Interface Corporation. All rights reserved. 3 GPG-1604 Online Help for Linux 第2章 製品仕様 2.1 動作環境 機種 弊社 CPU ボード 弊社マザーボード パソコン ドライバ種別 組み込み方式 モジュールビルドサポート ヘルプファイル PCI バス Pentium III 系、Geode 系 Geode 系 Intel Architecture-32 (IBM PC/AT Compatibles) カーネルドライバ モジュール(ダイナミックロード/アンロード) メイクファイル提供 PDF 形式 テキスト形式 注意事項 ・Linux ドライバが既に使用している IRQ 番号と PCI-1604 の IRQ 番号が共有されている場合には、 モジュールをロードしないでください。ロード時にハングアップしてしまう可能性があります。 (IRQ 番号の確認方法については、readme.txt の「●使用上の注意事項」を参照ください) ・PCI-1604 を、BOOT デバイスとして使用する場合、他の PCI デバイスと割り込みを共有することは できません。 ・PCI-1604 は、パソコン本体の拡張スロット(PCI バス番号 0)に実装してください。 バス番号 0 以外の場合、パソコンの BIOS によっては BOOT させることができない場合があります。 (PCI バス番号の確認方法については、readme.txt の「●使用上の注意事項」を参照ください) ・PCI-1604 は、NEC PC-9801/9821 シリーズでは動作しません。 2.2 対象ボード PCI シリーズ PCI-1604 2002 Interface Corporation. All rights reserved. 4 GPG-1604 Online Help for Linux 2.3 基本仕様 最大ボード枚数 デバイスノード 1 枚のみ /dev/hdX (X=a, c, e, g,…,z) 実装されている IDE デバイスの数により、PCI-1604 が割り付けられる デバイスノード名が決まります。 ※PCI-1604 は常に IDE マスタとして扱われるため、デバイスノード名 は、連続した名前とはなりません。 既に/dev/hda, /dev/hdc がある場合には、PCI-1604 は /dev/hde に 割り付けられます。 サポートファイルシステム Linux カーネルがサポートしている全てのファイルシステム /proc 対応 条件付対応 カーネルバージョン 2.4 系列では、/proc/ide/ideX/hdX 以下の下記フ ァイルを自動作成します。X は、実装されている IDE デバイスの数によ り変化します。 ・cache ・capacity ・driver ・geometry ・identify ・media ・model ・settings ・smart_thresholds ・smart_values /proc/ide/ideX 以下の下記ファイルは未サポートです。 ・channel, config, mate, model カーネルバージョン 2.2 系列では、バージョンによって作成されない ものがあります。 CF カード挿抜 条件付対応 ・必ず umount コマンド, rmmod コマンドを実行し、弊社提供の PCI-1604 コンパクトフラッシュカード電源コントロールプログラムを実行 後、コンパクトフラッシュカードを抜いてください。 ・ルートファイルシステムとして利用時にはコンパクトフラッシュカ ードを抜くことはできません。 2002 Interface Corporation. All rights reserved. 5 GPG-1604 Online Help for Linux 2.4 本製品を初めて使用する場合 本製品を利用するにあたって、複数の用途があります。 最初からお読みすることもできますが、下記選択よりお客様の目的にあったページからお読みするこ ともできます。 を増設 として使用したい。 カードの挿抜なし カードの挿抜なし ∼ を増設 とし、カードを リムーバブルメディアとして使いたい。 カードの挿抜あり カードの挿抜あり ∼ を使用して 上から をカードへインストールしたい。 カードから を起動させたい を起動させたい ∼ 2002 Interface Corporation. All rights reserved. 6 GPG-1604 Online Help for Linux 第3章 GPG-1604 使用方法 (増設 (増設 IDE ドライブ編) ドライブ編) この章では PCI-1604 上のコンパクトフラッシュカードを増設 IDE として使用する方法について具体例 を挙げて説明します。 3.1 増設 IDE として使用 このセクションでは、PCI-1604 に実装されたコンパクトフラッシュカードを増設 IDE ドライブとし て使用する流れを説明します。 1. PCI-1604 設定 増設 IDE として使用する場合の PCI-1604 DSW1 の設定は次の通りです。 機 能 DSW1-2 オートスタートしない オートスタートの設定 でご使用ください。 2. 想定環境 項目 Linux カーネル IDE デバイス 設定 バージョン 2.4.7-10 IDE 割当て 容量/接続デバイス デバイスノード名 Primary Master 1GB /dev/hda Primary Slave 無し Secondary Master CD-ROM /dev/hdc Secondary Slave 無し 実装ボード PCI-1604 + コンパクトフラッシュカード 16MB ※コンパクトフラッシュカードは未使用のものとします。 Linux カーネルは Primary Master に接続されている 1GB の HDD にインストールされているものとし ます。 3. ドライバソフトウェアのインストール 1)PCI-1604 ボードをパソコンの拡張スロットに実装し、Linux を起動します。 2)su コマンドを実行してスーパユーザになります。 #su Password:(root のパスワード) 3)インストーラを起動し、GPG-1604 のドライバをインストールします。 詳しいインストール方法は、Readme をご参照ください。 #sh install インストーラの指示に従って、インストールを行ってください。 4. ドライバモジュールのロード GPG-1604 のドライバモジュールを組み込みます。スーパユーザでなければ su コマンドでスーパユー ザになります。 下記は、カーネルバージョンが 2.4.7-10 の場合の例です。 #cd /lib/modules/2.4.7-10/misc #insmod dpg0100.o #insmod cp1604.o insmod コマンドを実行してください。エラーメッセージ´cp1604.o: init_module: No such deviceµ が表示されなければ、モジュールのロードは成功です。 2002 Interface Corporation. All rights reserved. 7 GPG-1604 Online Help for Linux この状態で/dev/hde としてブロックデバイスが追加されています。 insmod コマンド 実行前 /dev/hda 1GB HDD /dev/hdb 無し /dev/hdc CD-ROM /dev/hdd 無し insmod コマンド 実行後 /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde 1GB HDD 無し CD-ROM 無し コンパクトフラッシュカード 16MB 5. ファイルシステムの作成 新品のコンパクトフラッシュカードを Linux から利用するためにはファイルシステムを作成する必 要があります。 既にファイルシステム作成済の場合には、 「6. デバイスのマウント」へお進みください。 デバイスのマウント ここでは、16MB 全てを 1 つのパーティションとしてファイルシステムを作成する例を挙げます。 #fdisk /dev/hde fdisk コマンドを実行してパーティションを作成してください。このときパーティションをどのファ イルシステムで利用するかパーティション ID によって決めます。 ここでは 83h を指定して Linux ファイルシステムとして作成します。 ※注 1)fdisk コマンドの操作を誤るとハードディスクから OS を起動できなくなることがあります。 慎重に操作してください。 ※注 2)fdisk コマンドの操作方法については、man コマンドなどを参照ください。 Command (m for help): p Disk /dev/hde: 4 heads, 32 sectors, 246 cylinders Units = cylinder of 128 * 512 bytes Device Boot /dev/hde1 Start 1 End 245 Blocks 15664 Id 83 System Linux 上記は fdisk コマンドにて Linux ファイルシステムを作成した直後の状態です。 6. デバイスのマウント デバイスをマウントすることで、デバイスが利用可能状態となります。 ここでは、コンパクトフラッシュカードは、Linux ファイルシステムで初期化済のものとします。 #mount /dev/hde1 /mnt #cd /mnt #ls … mount コマンドでは引数として作成したパーティション名(/dev/hde1)を指定してください。 /dev/hde だけでは、エラーとなります。 2002 Interface Corporation. All rights reserved. 8 GPG-1604 Online Help for Linux 3.2 増設 IDE かつリムーバブルメディアとして使用 このセクションでは、PCI-1604 に実装されたコンパクトフラッシュカードを増設 IDE ドライブかつ リムーバブルメディアとして使用する流れを説明します。 1. PCI-1604 設定 増設 IDE かつリムーバブルメディアとして使用する場合の PCI-1604 DSW1 の設定は次の通りです。 機 能 DSW1-2 オートスタートしない オートスタートの設定 でご使用ください。 2. 想定環境 項目 Linux カーネル IDE デバイス 設定 バージョン 2.4.7-10 IDE 割当て 容量/接続デバイス デバイスノード名 Primary Master 1GB /dev/hda Primary Slave 無し Secondary Master CD-ROM /dev/hdc Secondary Slave 無し PCI-1604 /dev/hde (/mnt にマウント済) CF 16MB 実装ボード PCI-1604 + コンパクトフラッシュカード 16MB ※コンパクトフラッシュカードは Linux ファイルシステムとして初期化済 Linux カーネルは Primary Master に接続されている 1GB の HDD にインストールされているものとし ます。 コンパクトフラッシュカードは、既に/dev/hde に割当てられており、マウントされているものとし ます。 3. コンパクトフラッシュカードを抜く場合 スーパユーザでなければ、su コマンドを実行してスーパユーザになります。 #umount /mnt umount コマンドを実行して/dev/hde のマウントを解除します。 #cd /lib/modules/2.4.7-10/misc #rmmod cp1604 rmmod コマンドを実行して、cp1604.o をアンロードします。 rmmod コマンドを実行して何もメッセージが表示されなければ、アンロードは成功です。 #/sbin/cf_power off PCI-1604 Index:0, The power supply to the CF card was turned off. The CF card can be removed from the slot. cf_power コマンド を実行して、コンパクトフラッシュカードへの電源供給を OFF にします。 上記メッセージの表示を確認後、コンパクトフラッシュカードを抜く準備は完了です。 PCI-1604 からコンパクトフラッシュカードを抜いてください。 cf_power コマンドでコンパクトフラッシュカードへの電源を OFF 状態にしてからカードを抜いてく ださい。ON 状態のまま抜くとカードの内容が壊れる可能性があります。 2002 Interface Corporation. All rights reserved. 9 GPG-1604 Online Help for Linux 4. コンパクトフラッシュカードを挿す場合 スーパユーザでなければ、su コマンドを実行してスーパユーザになります。 ここでは先ほど抜いたコンパクトフラッシュカードを再度挿してみます。 PCI-1604 にコンパクトフラッシュカードを挿してください。 cf_power コマンドを実行してカードに電源を供給します。 #/sbin/cf_power on PCI-1604 Index:0, The power supply to the CF card was turned on. Don't remove the CF card from the slot. 上記メッセージを確認後、再度モジュールをロードします。 #cd /lib/modules/2.4.7-10/misc #insmod cp1604.o insmod コマンドを実行してエラーメッセージ´cp1604.o: init_module: No such deviceµが表示され なければ、モジュールのロードは成功です。 特に環境に変化がなければ、コンパクトフラッシュカードを抜く前と同じデバイスノード/dev/hde に割当てられます。 #mount /dev/hde1 /mnt mount コマンドを実行して/dev/hde1 を/mnt にマウントします。 必ず、コンパクトフラッシュカードを挿した後で、cf_power コマンドを実行するようにしてくださ い。 2002 Interface Corporation. All rights reserved. 10 GPG-1604 Online Help for Linux 第4章 GPG-1604 使用方法 (カーネルインストール編 (カーネルインストール編) カーネルインストール編) この章では PCI-1604 上のコンパクトフラッシュカードへ Linux カーネルをインストールして、カード から Linux システムをブートさせる方法について一例を挙げて説明します。 4.1 Linux 上から Linux システムをカードへインストール このセクションでは、既に Linux が起動している状態で、Linux システムをカードへインストールす る方法について一例を挙げて説明します。 Linux カーネルをカードへインストールする際には、カードの容量が問題となりますが、ここでは 300MB クラスのカードを使用して容量的には充分あるものとしています。 1. PCI-1604 設定 カードからブートさせて使用する場合の PCI-1604 DSW1 の設定は次の通りです。 機 能 DSW1-2 オートスタートの設定 でご使用ください。 オートスタートする 2. 想定環境 ■Linux をコンパクトフラッシュカードへインストールを行う環境 項目 設定 Linux カーネル バージョン 2.4.7-10 IDE デバイス IDE 割当て 容量/接続デバイス デバイスノード名 Primary Master 1GB /dev/hda Primary Slave Secondary Master CD-ROM /dev/hdc Secondary Slave 実装ボード PCI-1604 + コンパクトフラッシュカード 384MB ※コンパクトフラッシュカードは未使用のものとします。 Linux カーネルは Primary Master に接続されている 1GB の HDD にインストールされており、Linux が起動しているものとします。 ■実際にコンパクトフラッシュカードから Linux を起動させる環境 (ターゲット環境) IDE デバイス IDE 割当て 容量/接続デバイス デバイスノード名 Primary Master CF (TrueIDE モード) /dev/hda Primary Slave Secondary Master CD-ROM /dev/hdc Secondary Slave 実装ボード PCI-1604 + コンパクトフラッシュカード 384MB ターゲット環境では、コンパクトフラッシュカードのドライブと CD-ROM ドライブが接続されている ものとします。 3. 前準備 スーパユーザでなければ、su コマンドを実行してスーパユーザになります。 『GPG-1604 使用方法 (増設 IDE ドライブ編) 』をご参照の上、/dev/hde へコンパクトフラッシュカ ードを割当ててください。 2002 Interface Corporation. All rights reserved. 11 GPG-1604 Online Help for Linux 4. パーティション作成 /dev/hde に Linux カーネルを格納するためのパーティションを作成します。 #fdisk /dev/hde fdisk コマンドを使用してパーティションを作成します。 Command (m for help): p … Device Boot Start End Blocks Id System /dev/hde1 * 1 695 83 Linux この例では、カードの容量全てを 1 つのパーティションに割当て、Boot フラグを有効にしています。 スワップパーティションは作成しないものとします。 ※注 1)充分なメモリ容量(64MB,128MB 以上など)があれば、よほど規模の大きいアプリケーションも しくは X Window を動作させる場合を除いて、スワップパーティションがなくても支障なく動 作します。 必要に応じてスワップパーティションを作成してください。 5. ファイルシステム作成 次に先ほど作成したパーティションに Linux ファイルシステムを作成します。 #mkfs /dev/hde1 ファイルシステムが作成されているかを確認するため、マウントを行います。 #mount /dev/hde1 /mnt #cd /mnt #ls lost+found mount コマンド実行時にエラーが表示されなければ、ファイルシステムの作成に成功しています。 この例では mkfs コマンド実行時に lost+found ディレクトリが作成されているため、ls コマンドで 表示されています。 6. 最低限必要なディレクトリ、ファイルの作成 /dev/hde1 がマウントされている/mnt ディレクトリに対して、Linux システムの動作に必要な各種デ ィレクトリ、ファイルを作成します。 既にカレントディレクトリは/mnt になっているものとします。 実行しているアプリケーション、デーモンがあると、共有ファイルがロックされてコピーできない場 合があります。できるだけ起動しているアプリケーション、デーモンを減らしてください。 シングルユーザモードでログインするのも一つの方法です。 1)proc, mnt ディレクトリを作成します。 #mkdir proc #mkdir mnt 上記ディレクトリは空のままでかまいません。 2)usr ディレクトリを作成します。 #mkdir usr ディストリビューションによっては、/usr/bin ディレクトリ、/usr/sbin ディレクトリの中にあるフ ァイルをログイン時に実行している場合もあります(ログイン時の起動スクリプトが /usr/bin,/usr/sbin ディ レクトリ内の ファイ ルを参 照して います。ファ イルが見つか らな い と·Command not found·と表示されます)。 必要ならば一旦コピーして、後で不必要なファイルを削除する方法を取ります。 元ファイルの構成と属性を保持してコピーするため、cp コマンドに-a オプションを付加しています。 #cp -a /usr/bin /mnt #cp -a /usr/sbin /mnt 2002 Interface Corporation. All rights reserved. 12 GPG-1604 Online Help for Linux 3)dev ディレクトリを作成します。 本来であれば Linux をブートさせる環境を調べた上で必要なデバイスファイルのみをコピーします が、ここではお手軽な方法として全てのデバイスファイルを一旦コピーし、後で不必要なデバイスフ ァイルを削除する方法を取ります。 #cp -a /dev /mnt 4)etc ディレクトリを作成します。 ここでも本来であれば必要最低限のものだけをコピーしますが、ここでもお手軽な方法として/etc 以下を全てコピーし、後で不必要なディレクトリ、ファイルを削除するものとします。 #cp -a /etc /mnt 5)bin, sbin, lib ディレクトリを作成します。 etc ディレクトリと同様に現在起動している Linux ファイルをそのままコピーします。 #cp -a /bin /mnt #cp -a /sbin /mnt #cp -a /lib /mnt 不必要なファイルは後で削除します。 6)var ディレクトリを作成します。 #mkdir var #cd var #mkdir log #mkdir run #mkdir spool #mkdir tmp #touch /mnt/var/run/utmp ここでは var/log, var/run, var/spool, var/tmp の各ディレクトリを作成しています。起動させる デーモン、アプリケーションによっては上記以外にも var 以下にディレクトリが必要になる場合があ ります。最後の touch は、空(0 バイト)の utmp ファイルを作成しています。 7)root ディレクトリを作成します。 コンパクトフラッシュカードから Linux を起動させたときに、root でログインするとホームディレ クトリが無い場合、エラーがでます。 エラーが出てもログインはできますが、ここでは root ディレクトリを作成しておき、シェルのシス テムファイルも合わせてコピーしておきます。 #cd /mnt #mkdir root #cp /root/.bash_profile /mnt/root 現在起動しているシェルが bash であり、カードからブートさせるときも、そのまま bash をシェルと して使うため、bash 用のファイルをコピーしています。 カードからブートさせるシェルが bash 以外ならば、必要に応じて他のシェルのシステムファイルを コピーしてください。 2002 Interface Corporation. All rights reserved. 13 GPG-1604 Online Help for Linux 7. 各種ファイルの編集、システム構成の修正 次に etc 以下の各種システムファイルの編集を行い、システム構成の修正を行います。 また boot ディレクトリも作成しておきます。 1)ルートファイルシステムの/etc/ld.so.cache を作り直します。 Linux 起動時に、共有ライブラリのある場所がわからないと、ブートの途中で止まってしまいます。 特に現在起動しているシステムとは異なるファイル、ディレクトリ構成となる場合には、必ず作り直 してください。 #cd /mnt #chroot /mnt /sbin/ldconfig chroot コマンドを実行して/mnt 以下をルートディレクトリに変更、ldconfig コマンドを実行してく ださい。 2)fstab ファイルを編集します。 emacs などのエディタで/mnt/etc/fstab ファイルを編集してください。 #emacs /mnt/etc/fstab ここでは、fstab ファイルを下記の内容で編集しています。 #cat /mnt/etc/fstab LABEL=/ / ext2 defaults 1 1 None /proc proc defaults 0 0 LABEL=/ は、デバイス名の代わりにボリュームラベル名を指定しています。こうすることでディスク 構成に追加、変更があってデバイス名が変わってもボリュームラベル名は変化しないため、システム が起動しないなどのトラブルを防ぎやすくなります。 また、3 番目のフィールドでは ext2 と指定していますが、Linux ディストリビューションによっては ext3 と記述しておく必要もあります(RedHat Linux 7.2 など)。 作成した場合の/dev/hde1 にはボリュームラベル名は付いていないため、e2label コマンドを使って ボリュームラベルを設定します。 #e2label /dev/hde1 / 先ほど fstab で LABEL=/を指定しているため、·/·を設定しています。 ※注 1)LABEL=/を指定して、ボリュームラベルを付けなかった場合、システムのブート時にエラーメ ッセージ´Kernel panic: no init found.…µと表示され、起動に失敗する場合があるのでご注 意ください。 ※注 2)内蔵 IDE とカードの双方から Linux を起動させたい場合には、LABEL=/を使うとカードのルー トファイルシステムがマウントできずに同じくエラーメッセージ´Kernel panic: no init found.…µが表示される場合があります。 この場合には、LABEL=/を使わずにカードが割当てられるデバイス名(/dev/hde など)を指定す るようにしてください(内蔵 IDE 側に Windows や DOS などが入っている場合は注意が必要です)。 2002 Interface Corporation. All rights reserved. 14 GPG-1604 Online Help for Linux 3)必要に応じて inittab ファイルを編集 場合によっては、/mnt/etc/inittab も編集する必要があるかもしれません。 ここでは下記の内容としています。 #cat /mnt/etc/inittab id::2:initdefault: si::sysinit:/etc/rd.d/rc.sysinit l0:0:wait:/etc/rd.d/rc.0 l1:1:wait:/etc/rd.d/rc.1 l2:2:wait:/etc/rd.d/rc.2 l3:3:wait:/etc/rd.d/rc.3 l4:4:wait:/etc/rd.d/rc.4 l5:5:wait:/etc/rd.d/rc.5 l6:6:wait:/etc/rd.d/rc.6 1:2345:respawn:/sbin/getty tty1 2:2345:respawn:/sbin/getty tty2 3:2345:respawn:/sbin/getty tty3 4:2345:respawn:/sbin/getty tty4 5:2345:respawn:/sbin/getty tty5 6:2345:respawn:/sbin/getty tty6 RedHat Linux 7.2 などでは、getty が mingetty などになっています。 現在起動しているシステムをほとんどコピーしている場合には、特に編集する必要がない場合もあり ます。 inittab の内容に問題があると、ログイン時、ログアウト時にエラーが出る場合があります。 また、ログアウトが正常に行われない場合もありますので、ご注意ください。 4)boot ディレクトリを作成します。 ここでは現在起動しているシステムの/boot ディレクトリをコピーして、後で不要なファイルを削除 します。 #cp -a /boot /mnt この/mnt/boot には、カーネル本体と boot.b, chain.b が必須で入っている必要があります。 不要なファイルの判断がつかないうちは、むやみに削除しないほうが安全です。 8. initrd の作成 必要なディレクトリ、ファイル、システム構成が完了した時点で、次に initrd(起動用 RAM ディスク) の作成を行います。 これは、カーネルを起動後、dpg0100.o(共通モジュール), cp1604.o(PCI-1604 IDE 登録用モジュー ル)をロードしておかないと、ルートファイルシステムがマウントできなくなるため、initrd を使用 して RAM ディスクを展開し、その中で、µinsmod dpg0100.oµ, ´insmod cp1604.oµを実行させること でコンパクトフラッシュカードの中のルートファイルシステムへアクセス可能とします。 ここでは、initrd の作成方法の一つとして現在起動しているシステムの RAM ディスクを使う方法を 説明します。 1)現在起動しているシステムに/dev/ram があることを確認します。 #ls /dev/ram /dev/ram 現在起動しているシステムに RAM ディスクが無い場合には、他の方法で initrd を作成する必要があ ります。 2)/dev/ram 上に空の Linux ファイルシステムを作成します。 #mke2fs -b 1024 -m 0 /dev/ram 2400 -b で 1 ブロック当たり 1024 バイト、最後の 2400 は、ブロックカウントで 2400 ブロック作成を指定 しています。ブロックカウントは initrd のサイズとも関連がありますが、小さい値を指定すると最 低限必要なファイルのコピーができなくなるため、ここでは 2400 ブロックを指定しています。 2002 Interface Corporation. All rights reserved. 15 GPG-1604 Online Help for Linux 3)/dev/ram を/mnt へマウントします。 #mount -t ext2 /dev/ram /mnt 4)/dev/ram を/mnt へマウントします。 #mount -t ext2 /dev/ram /mnt #ls /mnt lost+found ls コマンドで/mnt ディレクトリを見ると、lost+found ディレクトリが作られています。残しても多 少のスペースを使うだけで動作そのものに影響はありませんが、不要ならば、µrmdir lost+foundµ を実行して削除してください。 5)/dev/ram をマウントした/mnt 以下に最低限必要な各ディレクトリを作成します。 #mkdir /mnt/dev #mkdir /mnt/bin #mkdir /mnt/etc #mkdir /mnt/lib #mkdir /mnt/lib/misc #mkdir /mnt/mnt #mkdir /mnt/proc #mkdir /mnt/tmp 6)/mnt/dev 以下にデバイスファイルを作成します。 #cp -a /dev/console /mnt/dev #cp -a /dev/null /mnt/dev #cp -a /dev/tty0 /mnt/dev #cp -a /dev/tty1 /mnt/dev #cp -a /dev/tty2 /mnt/dev #cp -a /dev/tty3 /mnt/dev #cp -a /dev/tty4 /mnt/dev #cp -a /dev/ram1 /mnt/dev #ln -s /mnt/dev/tty0 /mnt/dev/systty #ln -s /mnt/dev/ram1 /mnt/dev/ram ここでは、既に起動しているシステムの/dev からコピーして作成しています。 ln で/dev/ram と/dev/systty のシンボリックリンクを作成しています。 7)/mnt/bin 以下に最低限必要なファイルをコピーします。 #cp -a /sbin/insmod /mnt/bin #cp -a /bin/mount /mnt/bin #cp -a /bin/umount /mnt/bin #cp -a /bin/ash /mnt/bin/sh ここでは、insmod, mount, umount, sh の 4 つのファイルをコピーしています。 8)/mnt/etc 以下に最低限必要なファイルをコピーします。 #cp -a /etc/ld.so.cache /mnt/etc ld.so.cache のみコピーしています。 2002 Interface Corporation. All rights reserved. 16 GPG-1604 Online Help for Linux 9)/mnt/lib 以下に最低限必要なファイルをコピーします。 #cp -a /lib/ld-2.2.4.so /mnt/lib #cp -a /lib/libc-2.2.4.so /mnt/lib #ln -s /mnt/lib/ld-2.2.4.so /mnt/lib/ld-linux.so.2 #ln -s /mnt/lib/libc-2.2.4.so /mnt/lib/libc.so.6 ここでは、ld-2.2.4.so, libc-2.2.4.so の 2 つをコピーし、次にリンクを作成しています。 ld-2.2.4.so, libc-2.2.4.so の 2 つの共有ライブラリは、/mnt/bin にコピーした insmod, mount, umount, sh などで使用されている共有ライブラリです。 次のように ldd を使用することで使われている共有ライブラリを調べることができます。 #ldd /bin/mount libc.so.6 => /lib/libc.so.6 (0x40028000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) #ls -alF /lib/ld-linux.so.2 lrwxrwxrwx 1 root root 11 2/15 00:15 /lib/ld-linux.so.2 -> ld-2.2.4.so ld-linux.so.2 は ld-2.2.4.so へのリンクであることがわかります。 ※注 1)環境によっては/lib の下に/i686 などのディレクトリがあり、その中の共有ライブラリを使 用している場合もあります。その場合には/lib/i686 の中のファイルをコピーするほうがよ いと考えます。 10)/mnt/lib/misc 以下に dpg0100.o, cp1604.o をコピーします。 #cp -a /lib/modules/2.4.7-10/misc/dpg0100.o /mnt/lib/misc #cp -a /lib/modules/2.4.7-10/misc/cp1604.o /mnt/lib/misc この例では、dpg0100.o, cp1604.o は、/lib/modules/2.4.7-10/misc へインストールされており、カ ードへインストールされる Linux カーネルのバージョンは 2.4.x 系列であると想定しています。 11)/mnt 以下に linuxrc ファイルを作成します。 linuxrc ファイルは initrd 起動時に呼び出されるファイルです。 #emacs /mnt/linuxrc linuxrc ファイルの内容は次の通りです。 #cat /mnt/linuxrc #!/bin/sh mount -t proc /proc /proc insmod /lib/misc/dpg0100.o insmod /lib/misc/cp1604.o umount /proc このファイルの中で、insmod コマンドにより dpg0100.o, cp1604.o をロードすることで、PCI-1604 のコンパクトフラッシュカードを IDE ドライブとして登録し、コンパクトフラッシュカード内のファ イルシステムをマウント可能とします。 #chmod +x /mnt/linuxrc linuxrc ファイルが実行できるよう、chmod で実行可能ビットを立てておきます。 12)RAM ディスクをアンマウントします。。 #umount /mnt RAM ディスクをアンマウントすると、/mnt は/dev/hde1 がマウントされている状態に戻ります。 13)RAM ディスク上の作成したイメージをファイルへコピーします。 #dd if=/dev/ram bs=1k count=2400 of=/mnt/boot/initrd /mnt/boot 以下へ RAM ディスクの内容を initrd というファイル名で作成しています。 以上で initrd ファイルの作成は完了です。 2002 Interface Corporation. All rights reserved. 17 GPG-1604 Online Help for Linux 14)initrd ファイルの内容確認 作成した initrd ファイルの内容が正しいかどうかを後で確認する場合には mount コマンドを使用し ます。 #cp /mnt/boot/initrd /var/tmp #mount -t ext2 -o loop /var/tmp/initrd /mnt #ls /mnt bin dev etc lib linuxrc mnt proc tmp この時点で、linuxrc を編集して、一度アンマウントすれば元の initrd へ変更が反映されます。 #emacs /mnt/linuxrc … #ls /mnt bin dev etc lib linuxrc linuxrc~ mnt proc tmp #umount /mnt #mount -t ext2 -o loop /var/tmp/initrd /mnt #ls /mnt bin dev etc lib linuxrc linuxrc~ mnt proc tmp このように一度 initrd ファイルを作成すれば、内容を変更するのに最初から作成し直す必要はあり ません。 ※注 1) initrd ファイルを再編集、変更を行った場合には、必ず lilo を使用してブートローダの設 定を再実行してください。lilo を再実行しないと変更点が反映されません。 2002 Interface Corporation. All rights reserved. 18 GPG-1604 Online Help for Linux 9. LILO の設定および MBR への書込み 最後に LILO を使ったブートローダの設定を行います。 1)ブートさせるコンパクトフラッシュカードのディスクジオメトリを予め調べておきます。 これは lilo.conf を作成するときに必要となります。 #cat /proc/ide/hde/geometry physical 695/16/63 logical 695/16/63 ほとんどの場合、physical と logical は同じ値となっているはずです。異なっている場合には physical の値を使用してください。 値は左からシリンダ、ヘッド、セクタの順番となっています。 シリンダ 695, ヘッド 16, セクタ 63 という値は後で必要になります。どこかにメモしておいてく ださい。 2)lilo.conf を作成します。 /mnt の位置に lilo.conf を作成します。 #emacs /mnt/lilo.conf ※注 1)lilo.conf の記述を誤ると、HDD から OS が起動しなくなる可能性がありますので、ご注意く ださい。 lilo.conf の記載内容は多岐に渡りますが、ここでは下記内容を記述します。 prompt timeout=50 default=linux map=/boot/map install=/boot/boot.b message=/boot/message disk=/dev/hde bios=0x80 sectors=63 heads=16 cylinder=695 image=/boot/vmlinuz label=linux initrd=/boot/initrd read-only root=/dev/hda1 ポイントとなる点は、·disk=· 以下のキーワードです。 ¶disk=·セクションには lilo を設定するデバイス名を指定します。 ¶disk=·セクション内に¶sectors=·, ·heads=·, ·cylinders=·を記述し、先ほど調べたディスクジオメト リを指定しておきます。同じく¶bios=0x80·も記述しておく必要があります。 ¶image=·セクションにある·initrd=·では『8.initrd initrd の作成』で作成した initrd のファイル名を記述 の作成 してください。 ¶root=·には、ルートファイルシステムのデバイス名(ここでは/dev/hda1)を記述します。 インストール環境ではカードを増設 IDE として使用しているため、デバイス名は/dev/hde1 となって います。 しかし、今回のケースではコンパクトフラッシュカードが唯一の起動デバイスとなるため、一番最初 のパーティションである·/dev/hda1·を指定する必要があります。 パソコン上で動作させる場合には、内蔵 IDE と一緒に使用するため、多くのケースでは·/dev/hde1· にする必要があります。 2002 Interface Corporation. All rights reserved. 19 GPG-1604 Online Help for Linux ※注 2)lilo.conf の記載内容については、man lilo.conf をご参照、もしくは本セクションの最後に 紹介してある LILO README をご参照ください。 ※注 3)パソコン上で内蔵 IDE と一緒に使用する場合には下記の点にご注意ください。 ・内蔵 IDE の MBR に書かれているブートローダの種類によっては、ブートローダの設定に追 加、変更が必要となるケースも考えられます。 ・内蔵 IDE の MBR に書かれているブートローダの種類によっては、·disk=·セクションを記載 していると、LILO の起動に失敗する場合があります。この場合には·disk=·セクション内を 削除してください。 3)MBR へ lilo を書込みます (重要ポイントなので慎重に作業してください 重要ポイントなので慎重に作業してください) 重要ポイントなので慎重に作業してください 。 コンパクトフラッシュカードの先頭ブロック(MBR)へ lilo を書込みます。 #cd /mnt #lilo –v -b /dev/hde -C lilo.conf -r /mnt -b はブートセクタを含むデバイスのデバイス名を指定しています。 この ²b のオプションは必ず、コンパクトフラッシュカードのデバイス名(ここでは/dev/hde)を指 定してください。 ※注 1)誤って他のデバイス(現在起動している IDE デバイス/dev/hda など)へ書込むと OS が起動しな くなる場合があります。 -C は/etc ディレクトリ以外の場所に lilo.conf がある場合、または別の名前で lilo 設定ファイル が記述されている場合に、その設定ファイルを指定します。 -r は操作を行う前に、ルートディレクトリを/mnt に変更します。 ※注 2)·-r /mnt·の指定も忘れずに行ってください。このオプションを忘れると現在起動しているシ ステムのルートディレクトリに誤って書込んでしまうため、Linux を再起動したときに正常 に立ち上がらなくなる可能性があります。 lilo を実行すると、map ファイルを自動で作成し、·map=·で指定したディレクトリに自動で格納しま す。 10. 最後 lilo で MBR へ書込み後、/dev/hde をアンマウントします。 #cd ~ #umount /mnt /mnt 以外のディレクトリへ移動後、umount コマンドを実行してください。 2002 Interface Corporation. All rights reserved. 20 GPG-1604 Online Help for Linux 11. カードへ Linux システムをインストールする際のポイント 1)共有ライブラリについて 必要なファイルをコピー、不要なファイルを削除する上で問題となるのが、ファイルがどの共有ライ ブラリを使用しているかわからない点です。 『8.initrd initrd の作成』でも使用していますが、確実なのは ldd を使用してリンクする共有ファイルを の作成 調べることです。 2)シンボリックリンクについて ファイルをコピーしたとき、リンクファイルだけをコピーして、元ファイルがコピーされないとファ イルの実行時にエラーがでます。 普通にディストリビューションをインストールしたシステムならば、ls コマンドを実行したときに ファイル名に色が付きますが、リンクが切れていると赤の点滅となるため、リンク元のファイルが無 いことがわかります。 3)効率的なカードへのインストール方法について Linux システムを熟知しているお客様であれば、どのようなファイルが必要であり、どのようなファ イルが不必要であるかを判断することはできると考えますが、Linux の経験があまり無いお客様では 判断が難しいところです。 カードの容量に余裕がある場合には、最初から必要なファイルを選択してコピーするのではなく、あ る程度無駄なファイルを含んでいてもディレクトリを丸ごとコピーする方が簡単です。無駄なファイ ルを含んでいても、カードから起動できることを確認できれば、その後でファイルを絞り込む作業も しやすくなります。 最初からファイルを選択してコピーした場合、最悪のケースではカードから起動できる状態にするま でに何度もリブートとファイルのコピーを繰り返すことになります。 本オンラインヘルプでは、カードから起動できる状態にすることを目的として説明しているため、 個々のファイルの必要性、不必要の判断方法については説明しておりません。 本章の内容に関して参考となるドキュメントは次の通りです。 LILO README http://www.linux.or.jp/JF/JFdocs/LILO-README.txt The Linux Bootdisk HOWTO http://www.linux.or.jp/JF/JFdocs/Bootdisk-HOWTO.html 起動用 RAM ディスク(initrd)の使い方 http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/initrd.txt 2002 Interface Corporation. All rights reserved. 21 GPG-1604 Online Help for Linux 第5章 ユーティリティ 5.1 コンパクトフラッシュカード電源コントロールプログラム 本製品には Linux 上でコンパクトフラッシュカードを増設 IDE として使用する際において、カードを 安全に挿抜するために、カードへの電源供給をコントロールするプログラムを添付(cf_power)してい ます。 1. 使用方法 1)PCI-1604 からコンパクトフラッシュカードを抜く場合 コンパクトフラッシュカードが、/dev/hde1 として/mnt に既にマウントされているものとして説明し ます。 su コマンドを実行してスーパユーザになります。 #su Password:(root のパスワード) /mnt をアンマウントします。 #umount /mnt ロードされている cp1604.o をアンロードします。 cd で cp1604.o が格納されているディレクトリへ移動してから、rmmod コマンドを実行してください。 #cd /lib/modules/2.4.7-10/misc #rmmod cp1604 最後に cf_power コマンドで引数を off(または大文字の OFF)と指定して実行します。 引数を何も指定しないと、カードへの電源制御は行われず、使用方法が表示されて終了します。 #/sbin/cf_power off PCI-1604 Index:0, The power supply to the CF card was turned off. The CF card can be removed from the slot. コンパクトフラッシュカードへの電源供給が OFF 状態となりました。 コンパクトフラッシュカードを抜きます。 2)PCI-1604 へコンパクトフラッシュカードを挿す場合 コンパクトフラッシュカードを挿します。 su コマンドを実行してスーパユーザになります。 #su Password:(root のパスワード) cf_power コマンドで引数を on(または大文字の ON)と指定して実行します。 #/sbin/cf_power on PCI-1604 Index:0, The power supply to the CF card was turned on. Don't remove the CF card from the slot. コンパクトフラッシュカードへの電源供給が ON 状態となります。 cp1604.o をロードします。 #cd /lib/modules/2.4.7-10/misc #insmod cp1604.o 割当てられたデバイス(ここでは/dev/hde1)を/mnt へマウントします。 /dev/hde1 は既に Linux ファイルシステムで初期化されているものとします。 #mount -t ext2 /dev/hde1 /mnt 2002 Interface Corporation. All rights reserved. 22 GPG-1604 Online Help for Linux 2. 表示されているメッセージの意味 PCI-1604 Index:0, The power supply to the CF card was turned off. The CF card can be removed from the slot. コンパクトフラッシュカードへの電源が OFF となっており、PCI-1604 のスロットからカードを抜く ことが可能な状態であることを表示しています。 ¶Index·の次の番号は、PCI-1604 を PCI バスから検索するときのインデックス値を表示しており、·0· は最初に見つかったことを示しています。 PCI-1604 Index:0, The power supply to the CF card was turned on. Don't remove the CF card from the slot. コンパクトフラッシュカードへの電源が ON となっており、PCI-1604 のスロットからカードを抜いて はいけないことを表示しています。 3. エラーメッセージ cf_power コマンドで表示されるエラーメッセージの意味は次の通りです。 なお、エラーメッセージは全て標準エラー出力として表示されます。 cf_power: The application (cf_power) may only be executed by a member of the super user (root). スーパユーザの権限で実行させていない、もしくはスーパユーザになっていません。 cf_power コマンドを実行させるためにはスーパユーザになる必要があります。 cf_power: cannot open /dev/mem. デバイスノード名/dev/mem が存在していません。 cf_power コマンドを実行させるためには/dev/mem が必要となります。 cf_power: cannot map of physical memory. 物理メモリのマップに失敗しました。 このエラーが発生した場合には、PCI-1604 の割り付けられているメモリアラインメントに関係があ ります。PCI-1604 を他の PCI スロットに変更してみてください。 なお、それでも解消しない場合には、弊社までお問い合わせください。 (お問い合わせ先は README.TXT をご参照ください) cf_power: cannot open /proc/bus/pci/devices. /proc/bus/pci/devices ファイルがオープンできません。 /proc/bus/pci/devices ファイルが存在するか否かをご確認ください。 4. 制約事項 1)cf_power コマンドは、スーパユーザの権限が無ければ実行することはできません。 2)/proc/bus/pci/devices を参照しているため、/proc/bus/pci/devices が無い環境では動作させる ことはできません。 2002 Interface Corporation. All rights reserved. 23 GPG-1604 Online Help for Linux 第6章 重要な情報 保証の内容と制限 株式会社インタフェースは本ドキュメントに含まれるソースプログラムの実行が中断しないこと、ま たはその実行に誤りが無いことを保証していません。 本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。 株式会社インタフェースはドキュメント内の情報の正確さに万全を期しています。万一、誤記または 誤植などがあった場合、株式会社インタフェースは予告無く改訂する場合があります。ドキュメント またはドキュメント内の情報に起因するいかなる損害に対しても株式会社インタフェースは責任を 負いません。 ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があります。 著作権、知的所有権 株式会社インタフェースは本製品に含まれるおよび本製品に対する権利や知的所有権を保持してい ます。 本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。 医療機器/ 医療機器/器具への適用における注意 株式会社インタフェースの製品は人命に関わるような状況下で使用される機器に用いられる事を目 的として設計、製造された物では有りません。 株式会社インタフェースの製品は人体の検査などに使用するに適する信頼性を確保する事を意図さ れた部品や検査機器と共に設計された物では有りません。 医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、損 傷/損害を引き起こす場合が有ります。 複製の禁止 株式会社インタフェースの許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変な どを行うことはできません。 責任の制限 株式会社インタフェースは、株式会社インタフェース または再販売者の予見の有無にかかわらず発 生したいかなる特別損害、偶発的損害、間接的な損害、重大な損害について、責任を負いません。 本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能、もしくは使用に起因する付帯的 損害もしくは間接的損害に対して、株式会社インタフェースに全面的に責がある場合でも、株式会社 インタフェースはその製品の販売価格以上の責任を負わないものとします。 商標/ 商標/登録商標 本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。 2002 Interface Corporation. All rights reserved. 24
© Copyright 2024 Paperzz