Board logo

标题: 嵌入式Linux内核和初始化RAM盘制作 [打印本页]

作者: linuxarm    时间: 2007-1-25 17:53     标题: 嵌入式Linux内核和初始化RAM盘制作


               [原创]嵌入式Linux内核和初始化RAM盘制作
              一.内核制作


              1.  内核下载
              针对设备:三星2410,Linux 2.4.18内核

              标准内核
              http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.18.tar.gz

              ARM补丁
              ftp://ftp.arm.linux.org.uk/pub/armlinux/source/kernel-patches/v2.4/patch-2.4.18-rmk6.gz


              厂家补丁
              patch-2.4.18-rmk6-swl

              2.  解压内核: tar xzvf  linux-2.4.18.tar.gz

              打arm补丁: gzip –dc patch-2.4.18-rmk6.gz|(cd linux; patch –p1)
              打2410补丁:gzip –dc patch-2.4.18-rmk6-swl6|(cd linux; patch –p1)

              3.  修改内核的主Makefile文件,给定当前的交叉编译器
              CROSS_COMPILE=/usr/local/arm/2.95.3/bin/arm-linux-


              4.  使用make menuconfig来进行内核编译配置,根据自己需要进行剪裁


              5.  编译内核。Make dep; make clean; make
              zImage。生成的内核为/arch/arm/boot下的zImage

              二.初始化RAM盘制作


              概念:

              在内核调入内存之后,如果存在内存初始镜像(initrd),那么控制会转到其上并执行配置脚本linuxrc。内存的初始镜像使引导加载器加载一个RAM盘,此RAM盘可以作为根文件系统挂接并且能在其上运行应用程序。此后,真正的根文件系统能从不同的设备上挂接(比如光驱或者硬盘)。在挂接了新的文件系统之后,作为根分区的内存初始镜像将成为目录/initrd或者被卸装。
              建初始内存映像文件的主要目的是为了在系统安装(启动)时配置内核模块,内核先以最小方式启动,然后根据需要(询问用户或自动检测)来加载不同模块,然后再正常启动。

              1.mkdir /mnt/loop 建立了loop设备的临时挂接点

              2.dd if=/dev/zero of=/tmp/loop_tmp bs=1k
              count=10240,建立了一个大小为10M的临时文件

              3./sbin/losetup /dev/loop0 /tmp/loop_tmp将设备与临时文件联系起来。如果出现“ioctl:
              LOOP_SET_FD: 设备或资源忙”的提示,说明设备还和一文件联系,可以用/sbin/losetup
              /dev/loop0来看,并可用-d来删除

              4./sbin/mke2fs –m 0 /dev/loop0 将loop0格式化为ext2文件系统

              5.把虚拟盘挂在节点/mnt/loop上,mount /dev/loop0 /mnt/loop –t ext2

              6.将所需文件拷到虚拟盘上

              7.umount /mnt,卸载此文件系统

              8.gzip -9 /tmp/loop_tmp,这样一个内存映像文件就生成了。






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0