警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : ユーザーランドをカスタマイズする

対象製品: Armadillo-500 FXArmadillo-500Armadillo-460Armadillo-440Armadillo-420Armadillo-300Armadillo-9Armadillo-240Armadillo-230Armadillo-220Armadillo-210Armadillo(HT1070)

「ユーザーランド」とは?

Linuxを起動するのに必要なカーネル以外の部分、つまり、アプリケーションやデバイスノード(デバイスドライバの入口)などをまとめて「ユーザーランド」と呼びます。

オンボードFlashカーネル起動モードのときは、オンボードFlashメモリからRAM Diskに展開されたユーザーランドが使用されます。

オンボードFlash上のユーザーランドをカスタマイズしたい場合は、

  • LinuxPC上でユーザーランドRAMディスクイメージを更新し、
  • オンボードFlashメモリに書き込む

ことになります。

では、まずユーザーランドRAMディスクイメージを変更してみましょう。

CD-ROMには、オリジナルディストリビューション Armadillo LinuxのユーザーランドRAMディスクイメージとして、/armadillo-linux/initrdディレクトリに、initrd.img.gzというファイルがあります。

このサイトからダウンロードする

このファイルをクロス開発環境のインストールしたPCの適当なディレクトリにコピーしておきます。

1.gzip圧縮を解凍する

イメージファイルはgzip圧縮されているので、解凍します。

[PC ~]$ gunzip initrd.img.gz

ここで解凍したinitrd.imgがRAMディスクイメージです。

2.RAMディスクイメージファイルをマウントする

まず、マウントするための空のディレクトリを作成します。

[PC ~]$ mkdir [マウントディレクトリ名]

suしてrootユーザーになります。

このディレクトリにRAMディスクイメージファイルをマウントします。

[PC ~]# suしてrootユーザーになります。

このディレクトリにRAMディスクイメージファイルをマウントします。

[PC ~]# mount -o loop initrd.img [マウントディレクトリ名]

マウントすると、マウントディレクトリの中が、Armadillo Linux のディレクトリツリーになります。


[PC /home/usr1]# ls

initrd.img.gz
[PC /home/usr1]# gunzip initrd.img.gz gzip圧縮を解凍する
[PC /home/usr1]# ls
initrd.img 解凍したRAMディスクイメージ
[PC /home/usr1]# mkdir image 空のディレクトリを作成する
[PC /home/usr1]# ls

image   initrd.img
[PC /home/usr1]# mount -o loop initrd.img image RAMディスクイメージを先に作ったディレクトリにマウントする
[PC /home/usr1]# cd image
[PC /home/usr1/image]# ls
bin  etc  lib   lost+found  proc  sbin usr
dev  home linuxrc mnt     root  tmp  var
マウントディレクトリの中が、Armadillo Linuxのツリー構造になる

(RAMディスクイメージを、「image」というディレクトリにマウントしたところ)

3.ユーザーランドをカスタマイズしてみる

マウントディレクトリ内のArmadillo Linuxを、ファイルを追加したり削除したり、設定ファイルを書き換えたりしてカスタマイズしてみましょう。

例1)ホスト名を変更してみる

[PC ~]# cd [マウントディレクトリ名]/etc
[PC ~]# vi HOSTNAME


[PC /home/usr1]# cd image
[PC /home/usr1/image]# ls
bin  etc  lib   lost+found  proc  sbin usr
dev  home linuxrc mnt     root  tmp  var
[PC /home/usr1/image]# cd etc

[PC /home/usr1/image/etc]# ls
HOSTNAME      gateways  hosts.allow motd          profile     rpc
cron.d        group     hosts.deny  mtab          profile.d   securetty
crontab       gshadow   httpd.conf  network.d     protocols   services
firewall.conf host.conf initd.conf  nsswitch.conf rc.d        shadow
fstab         hosts     inittab     passwd        resolv.conf terminfo
[PC /home/usr1/image/etc]# vi HOSTNAME
vi HOSTNAME
viでHOSTNAMEを書き換える

(/etc以下の設定ファイルを書き換えてArmadilloの設定を変更してみよう)

HOSTNAMEに新ホスト名を記述します。

デフォルトでは、「armadillo」と記述されています。
この行を削除して、好みのホスト名を記述します。


[PC /home/usr1/image/etc]# cat HOSTNAME
pooh

(ホスト名をpoohに変更したところ)

例2)固定IPアドレスを割り振ってみる

このように、マウントされたRAMディスクイメージは、通常のLinuxPCと同じ方法でファイル操作や設定の変更をすることができるのです。

4.RAMディスクイメージのマウントを解除する

ユーザーランドのカスタマイズが終わったら、RAMディスクイメージのマウントを解除します。

カレントディレクトリをマウントディレクトリ以外のディレクトリに移します。
(設定ファイルの変更のために[マウントディレクトリ]/etcにいるのなら、

[PC ~]# cd ../..

[PC ~]# umount [マウントディレクトリ名]


[PC /home/usr1/image/etc]# df
Filesystem            1k-blocks   Used Available Use% Mounted on
/dev/hda1               2885184 508828   2229796  19% /
/home/usr1/initrd.img      5947   4943       697  88% /home/usr1/image

[PC /home/usr1]# cd ../..
[PC /home/usr1]# umount image アンマウントする

[PC /home/usr1]# df
Filesystem            1k-blocks   Used Available Use% Mounted on
/home/usr1/initrd.img      5947   4943       697  88% /home/usr1/image
マウントが解除された

(RAMディスクイメージのマウントを解除)

5.gzip圧縮する

オンボードFlashメモリのユーザーランド領域は、2.5MBです。
ここでカスタマイズしたユーザーランドRAMディスクイメージinitrd.imgは、6MBになってます。
そのため、オンボードFlashメモリにユーザーランドをおさめるために、gzip圧縮をします。

[PC ~]# gzip -9 initrd.img


[PC /home/usr1]# ls
image  initrd.img
[PC /home/usr1]# gzip -9 initrd.img gzipで圧縮
[PC /home/usr1]# ls
image  initrd.img.gz
[PC /home/usr1]#

(gzipで、initrd.imgがinitrd.img.gzに圧縮されたところ)

これで、ユーザーランドRAMディスクイメージを更新することができました。

フラッシュメモリの書き換え方法は、該当製品のソフトウェアマニュアルに記載されています。

カテゴリ: