FlasmROMに書込むイメージファイルは、"make image"コマンドで作成されます。 ここではBaseイメージを例に作成手順を説明します。
Baseイメージではカーネルイメージの直後にromfsイメージを結合し、オンボードフラッシュメモリに書込むファイルを作成します。
ファイルの作成処理は、uClinux-dist/vendors/AtmarkTechno/Armadillo-J.Base/にある Makefileに記述されています。
オンボードフラッシュメモリ用イメージファイル作成部分とその説明を以下に示します。
image:
[ -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に記述されています。