ようやく使用方法が、分かったので記述しておく。
(そのうちwikiにまとめページを作るつもりです)
ROOTFSがinitramfsのルートディレクトリで、このROOTFSをCONFIG_INITRAMFS_SOURCEに指定しておく。
ROOTFSの内容は、下記の通り。
.:
total 88
drwxr-xr-x 2 root root 4096 Jan 15 13:33 bin
drwxr-xr-x 2 root root 4096 Jan 12 15:44 dev
drwxr-xr-x 2 root root 4096 Jan 15 11:39 etc
-rwxr-xr-x 1 root root 1155 Jan 15 13:34 init
drwxr-xr-x 3 root root 4096 Jan 11 17:57 lib
drwxr-xr-x 2 root root 4096 Jan 10 16:48 proc
drwxr-xr-x 2 root root 4096 Jan 12 10:33 root
drwxr-xr-x 2 root root 4096 Jan 15 13:33 sbin
drwxr-xr-x 2 root root 4096 Jan 10 16:48 sys
drwxr-xr-x 3 root root 4096 Jan 11 14:34 usr
drwxr-xr-x 3 root root 4096 Jan 10 16:48 var
./bin:
total 336
lrwxrwxrwx 1 root root 7 Jan 15 13:33 ash -> busybox
-rwxr-xr-x 1 root root 279964 Jan 15 13:33 busybox
lrwxrwxrwx 1 root root 7 Jan 15 13:33 dd -> busybox
lrwxrwxrwx 1 root root 7 Jan 15 13:33 echo -> busybox
lrwxrwxrwx 1 root root 7 Jan 15 13:33 mkdir -> busybox
lrwxrwxrwx 1 root root 7 Jan 15 13:33 mknod -> busybox
lrwxrwxrwx 1 root root 7 Jan 15 13:33 mount -> busybox
-rwxr-xr-x 1 root root 15006 Jan 12 14:14 run-init
lrwxrwxrwx 1 root root 7 Jan 15 13:33 sh -> busybox
lrwxrwxrwx 1 root root 7 Jan 15 13:33 tar -> busybox
./dev:
total 24
crw-r--r-- 1 root root 5, 1 Jan 10 16:48 console
brw-r--r-- 1 root root 31, 0 Jan 10 17:58 mtdblock0
crw-r--r-- 1 root root 1, 3 Jan 10 16:49 null
brw-rw---- 1 root root 1, 0 Jan 12 15:43 ram0
brw-rw---- 1 root root 1, 1 Jan 12 15:43 ram1
crw-rw-rw- 1 root root 1, 5 Jan 12 15:44 zero
./etc:
total 4
-rw-r--r-- 1 root root 0 Jan 12 16:46 mtab
./lib:
total 1564
-rwxr-xr-x 1 root root 102136 Nov 5 13:51 ld-2.3.6.so
lrwxrwxrwx 1 root root 11 Jan 11 12:51 ld.so.1 -> ld-2.3.6.so
-rwxr-xr-x 1 root root 1462840 Nov 5 13:51 libc-2.3.6.so
lrwxrwxrwx 1 root root 13 Jan 11 12:49 libc.so.6 -> libc-2.3.6.so
drwxr-xr-x 2 root root 4096 Jan 11 11:55 modules
./lib/modules:
total 0
./proc:
total 0
./root:
total 0
./sbin:
total 12
lrwxrwxrwx 1 root root 14 Jan 15 13:33 mke2fs -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jan 15 13:33 mkfs.ext2 -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jan 15 13:33 mkfs.ext3 -> ../bin/busybox
./sys:
total 0
./usr:
total 8
drwxr-xr-x 2 root root 4096 Jan 15 13:33 bin
./usr/bin:
total 16
lrwxrwxrwx 1 root root 17 Jan 15 13:33 [ -> ../../bin/busybox
lrwxrwxrwx 1 root root 17 Jan 15 13:33 [[ -> ../../bin/busybox
lrwxrwxrwx 1 root root 17 Jan 12 10:18 mesg -> ../../bin/busybox
lrwxrwxrwx 1 root root 17 Jan 15 13:33 test -> ../../bin/busybox
./var:
total 8
drwxr-xr-x 2 root root 4096 Jan 10 16:48 lock
./var/lock:
total 0
で、肝としては、busyboxのshとmount関連を使うことと、klibcのrun-initを使用することかな~
/dev/ram1とかがあるのは、/etcをramdiskで使用するためで(組み込み屋さんなので、起動時にetcの内容を設定に応じて変える事があるため、MTD(Flash)ではブ~だから)、initrd起動中にramdiskを作ってそこにetc,var,tmpなどを作成しています。
現状の問題点は、2.4系の時に比べてinitrdのサイズがでかい事かな~だって、2.4系の場合は、initrdを開放しなければ簡単にetcのramdisk環境が作れたのに、2.6系はshellが必要なのでライブラリを入れる必要があり、サイズが肥大化する……uClibcを使用すれば小さくなるのかね~(現在はglibcを使用しているから)
klibc
ftp://ftp.kernel.org/pub/linux/libs/klibc/
busybox
http://www.busybox.net/