こちらから - インタフェース

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