警告メッセージ

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

Howto : ユーザーランドの作成手順

対象製品: Armadillo-J

ここではBaseイメージを例に、ユーザーランドの作成手順を説明します。

ユーザーランドイメージは uClinux-distディレクトリ配下にあるromfsディレクトリをルートディレクトリとして作成されます。 このromfsディレクトリ自体は"make romfs"コマンドで作成されます。

"make romfs"コマンドが実行する処理の主な部分はvendors/AtmarkTechno/Armadillo-J.Base/にある Makefileに記述されています。

romfsディレクトリ作成部分とその説明を以下に示します。


romfs:
    [ -d $(ROMFSDIR) ] || mkdir -p $(ROMFSDIR) -------------- 1
    for i in $(ROMFS_DIRS); do \ --------------------------- 2
        [ -d $(ROMFSDIR)/$$i ] || mkdir -p $(ROMFSDIR)/$$i; \
    done
    for i in $(DEVICES); do \------------------------------- 3
        touch $(ROMFSDIR)/dev/@$$i; \
    done
    for i in $(FLASH_DEVICES); do \
        touch $(ROMFSDIR)/dev/flash/@$$i; \
    done
    $(ROMFSINST) -s /var/tmp /tmp --------------------------- 4
    $(ROMFSINST) -s /bin /sbin
    $(ROMFSINST) /etc --------------------------------------- 5
    $(ROMFSINST) /home

    $(ROMFSINST) ../../Generic/romfs/etc/services /etc/services

1. romfs自体のディレクトリ作成

uClinux-dist/romfs ディレクトリが存在しなければ、ディレクトリを作成します。

2. 各ディレクトリの作成

ROMfS_DIRS に含まれている名前のディレクトリを romfsディレクトリ配下に作成します。
ROMFS_DISの定義は、


ROMFS_DIRS = bin dev etc home lib mnt proc usr var root etc/dhcpc home/guest home/guest/pub

となっています。
この定義内容を変更する事で、ディレクトリの追加/削除が行えます。

3. デバイスノードの作成

各種デバイスノードを作成します。
変更方法はデバイスノードの変更方法を参照して下さい。

4. シンボリックリンクの作成

シンボリックリンクを作成します(/tmp -> /var/tmp と /sbin -> /bin) $(ROMFSINST) -s [リンク先] [リンク元] と記述する事で romfs内にシンボリックリンクを作成する事ができます。
※$(ROMFSINST) は romfsディレクトリを作成するためのツール(uClinux-dist/tools/romfs-inst.sh)を指しています。

5. ディレクトリの内容をコピー

ディレクトリに含まれるファイルをすべて同名のディレクトリにコピーします(home と etc) $(ROMFSINST) [ディレクトリ名] と記述する事で指定したディレクトリの内容が、romfs内の同名のディレクトリにすべてコピーされます。 例えばArmadillo-Jのユーザーランドにある/etc/HOSTNAMEの内容を変更したければ、uClinux-dist/vendors/AtmarkTechno/Armadillo-J.Base/etc/HOSTNAME を修正すればよいわけです。

なおアプリケーションをromfs/binディレクトリにコピーする処理は、各アプリケーションのMakefileに記述されています。

カテゴリ: