Board logo

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

作者: linuxarm    时间: 2006-7-28 18:00     标题: 嵌入式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


作者: linuxarm    时间: 2006-7-28 18:01

二.初始化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