fl2440內核移植----製作最小根文件系統initramfs

一、製作根文件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

{apps,bin,data,dev,info,proc,root,sbin,sys,tmp,var,etc/{,init.d,dropbear},mnt/{,usb,sdc,nfs,dev},usr/{,bin,sbin,lib,share},lib/{,modules/{,3.0.0}}} 

從自己的宿主機下的/etc目錄下,拷貝相應的文件到root_fsetc目錄中

#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-bootbootargs

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路徑下)

 

Cdroot_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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章