Howto

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

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

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]# <span class="input">ls</span>
 
initrd.img.gz
[PC /home/usr1]# <span class="input">gunzip initrd.img.gz</span> <span class="comment">gzip圧縮を解凍する</span>
[PC /home/usr1]# <span class="input">ls</span>
initrd.img <span class="comment">解凍したRAMディスクイメージ</span>
[PC /home/usr1]# <span class="input">mkdir image</span> <span class="comment>空のディレクトリを作成する</span>
[PC /home/usr1]# <span class=">空のディレクトリを作成する</span>
[PC /home/usr1]# <span class="input>ls</span>
image   initrd.img
[PC /home/usr1]# <span class=">ls</span>
 
image   initrd.img
[PC /home/usr1]# <span class="input">mount -o loop initrd.img image</span> <span class="comment">RAMディスクイメージを先に作ったディレクトリにマウントする</span>
[PC /home/usr1]# <span class="input">cd image</span>
[PC /home/usr1/image]# <span class="input">ls</span>
bin  etc  lib   lost+found  proc  sbin usr
dev  home linuxrc mnt     root  tmp  var
<span class="comment">マウントディレクトリの中が、Armadillo Linuxのツリー構造になる</span>

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

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

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

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

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

[PC /home/usr1]# <span class="input">cd image</span>
[PC /home/usr1/image]# <span class="input">ls</span>
bin  etc  lib   lost+found  proc  sbin usr
dev  home linuxrc mnt     root  tmp  var
[PC /home/usr1/image]# <span class="input">cd etc</span>
 
[PC /home/usr1/image/etc]# <span class="input">ls</span>
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]# <span class="input>vi HOSTNAME</span>
<span class=">vi HOSTNAME</span>
<span class=">vi HOSTNAME</span>
<span class=">vi HOSTNAME</span>
<span class="comment">viでHOSTNAMEを書き換える</span>

(/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]# <span class="input">umount image</span> <span class="comment">アンマウントする</span>
 
[PC /home/usr1]# df
Filesystem            1k-blocks   Used Available Use% Mounted on
/home/usr1/initrd.img      5947   4943       697  88% /home/usr1/image
<span class="comment">マウントが解除された</span>

(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]# <span class="input">gzip -9 initrd.img</span> <span class="comment">gzipで圧縮</span>
[PC /home/usr1]# ls
image  initrd.img.gz
[PC /home/usr1]#

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

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

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