一、製作根文件root_fs
1創建必要的文件和文件夾
Mkdir root_fs創建文件系統的根目錄,並在其中創建如下文件夾
apps backup bin dev etc info lib a mnt proc sbin sys tmp usr var
[lingyun@localhost opt]$ pwd
/opt
[lingyun@localhost opt]$ mkdirrootfs
[lingyun@localhost opt]$ cdrootfs
[lingyun@localhost rootfs]$ ls
[lingyun@localhost rootfs]$mkdir-p
從自己的宿主機下的/etc目錄下,拷貝相應的文件到root_fs的etc目錄中
#ls etc/
fstab hostname inittab mdev.conf passwd protocols resolv.conf services
group hosts issue mtab profile random-seed securetty shadow
創建必要的設備節點
#cd dev
#mknod -m 666 console c 5 1
#mknod -m 666 null c 1 3
#mknod -m 666 ttyS0 4 64
二、配置內核支持initramfs文件系統並配置路徑
General setup --->
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
(../root_fs) Initramfs source file(s)
設置u-boot的bootargs
Boot options --->
(console=ttyS0,115200 mem=64M rw loglevel=7init=/init) Default kernel command string
三、Busybox部分
Tar –jxf busybox-1.20.2.tar.bz2
Cd busybox-1.20.2
Make menuconfig ,注意配置交叉編譯器和initramfs文件系統的根目錄
Busybox Settings --->
uild Options --->
[*] Build BusyBox as a static binary (no shared libs)
(/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-) Cross Compiler prefix
Installation Options ("make install" behavior) --->
(../root_fs) BusyBox installation prefix
Make
Make install將編譯好的東西放到指定的目錄中(root_fs路徑下)
Cd到root_fs目錄下
ln -s bin/busybox init 創建我們的init 執行程序
將交叉編譯器中的庫文件拷貝到我們的root_fs文件夾下的相應目錄下,構建我們的動態鏈接庫
ls lib/
ld-uClibc-0.9.33.2.so libdl.so.0 libmudflap.so.0 libnsl.so.0 librt.so.0 libutil.so.0
ld-uClibc.so.0 libgcc_s.so libmudflap.so.0.0.0 libpthread-0.9.33.2.so libstdc++.so
libcrypt-0.9.33.2.so libgcc_s.so.1 libmudflapth.so libpthread.so.0 libstdc++.so.6
libcrypt.so.0 libm-0.9.33.2.so libmudflapth.so.0 libresolv-0.9.33.2.so libstdc++.so.6.0.14
libc.so.0 libm.so.0 libmudflapth.so.0.0.0 libresolv.so.0 libuClibc-0.9.33.2.so
libdl-0.9.33.2.so libmudflap.so libnsl-0.9.33.2.so librt-0.9.33.2.so libutil-0.9.33.2.so
ls usr/lib/
libcharset.so libcrypto.so.1.0.0 libiconv.so liblzo2.so.2 libpthread.so libssl.so.1.0.0 libutil.so
libcharset.so.1 libcrypt.so libiconv.so.2 liblzo2.so.2.0.0 libresolv.so libstdc++.so libz.so
libcharset.so.1.0.0 libc.so libiconv.so.2.5.1 libm.so librt.so libstdc++.so.6 libz.so.1
libcrypto.so libdl.so liblzo2.so libnsl.so libssl.so libstdc++.so.6.0.14 libz.so.1.2.7
重新編譯內核,make之後,我們的開發板就能支持initramfs最小文件系統了
>: ls
apps data etc init linuxrc proc sbin tmp var
bin dev info lib mnt root sys usr