mini6410移植全攻略(14)--linux2.6.39 移植之支持 initramfs

     

      本文由muge0913编写,希望给嵌入开发者带来一些帮助,并希望能和大家交流技术,若有不对的地方,或有更好的方法请指出。

     转载请注明出处:http://blog.csdn.net/muge0913/article/details/7247544


       这是很久以前做的笔记在这里和大家分享,

      根文件系统一般包括:1)基本的文件系统结构,包含一些必须的目录,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;2)基本程序运行所需的库函数,如:libc/uC-libc;3)基本的系统配置文件,如:rc,inittab等脚本文件;4)必要的设备支持文件,如:/dev/hd*,/dev/tty,/dev/fdO;5)基本的应用程序,如:sh,ls,cp,mv等。 根文件系统的制作就是生成包含上述各种文件的文件系统的过程,可通过直接拷贝宿主机上交叉编译器处的文件来制作根文件系统,但是这种方法制作的根文件系统一般过于庞大。也可通过一些工具如busybox来制作根文件系统,用busybox制作的根文件系统可以做到短小精悍并且运行效率较高。

写成shell文件便于操作,有些人将BusyBox称为Linux工具里的瑞士军刀.



一 配置根文件系统

根文件系统是linux启动时使用的第一个文件系统。没有根文件系统。linux将无法正常启动。

根文件系统:有一系列的目录组成,目录中包含了应用程序、c库、以及相关的配置文件。

1、创建根文件系统目录

  

#mkdir rootfs

#cd rootfs

#bin sbin etc dev lib proc sys usr mnt tmp var  

#usr/bin usr/sbin usr/lib  lib/moudules



2、创建设备文件:

  

cd dev/

mknod-m 666 console c 5 1

mknod-m 666 null c 1 3 

3、安装/etc(配置文件可以从其他做好的嵌入式系统中cp)



tar  xzvf etc.tar.gz -C /XXX/rootfs

4、编译内核模块:

  在内核文件中



    makemodules ARCH=arm CROSS_COMPILE=arm-linux-


5、安装内核模块


  makemodules_install ARCH=arm INSTALL_MOD_PATH=/XXX/my_rootfs






注:

也可以解压源码:tar-jxvf busybox-1.9.2.tar.bz2

修改Makefilearch和编译工具链头。

ARCH ?= arm

CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-





制作initramfs

配置内核使内核支持此文件系统:在generalsetup中:

选中initialRAM filesystem and RAM disk……

并在此选项下设置自己的rootfs所在路径

mini6410移植全攻略(14)--linux2.6.39 移植之支持 initramfs_第1张图片



2、进入制作好的根文件系统中执行:



ln–s ./bin/busybox init


3、进入内核源码根目录,重新编译(编译完后下载到开发板上即可)


制作的重点还是在配置文件上:这部分将单独作介绍。






      本文由muge0913编写,希望给嵌入开发者带来一些帮助,并希望能和大家交流技术,若有不对的地方,或有更好的方法请指出。

     转载请注明出处:http://blog.csdn.net/muge0913/article/details/7247544




你可能感兴趣的:(linux,shell,嵌入式,工具,makefile,编译器)