ramdisk制作

Ramdisk的制作并使用分四部分

一.内核编译选项的设置

二.Busybox制作根文件目录

三.制作ramdisk

四.uboot中下载并使用ramdisk


一.内核编译选项的设置

打开配置菜单,修改两个配置项,分别是:
a
):General setup-->选择 Initial RAM filesystem and RAM disk...... 
b
):Device Drivers-->Block devices-->选择 RAM block device support 

注:如果需要,还得设置ramdisk大小。

 

二. Busybox制作根文件目录

a)创建根文件系统目录:
#cd
转入到你的工作目录。
#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin sys usr mnt tmp var
#mkdir usr/bin usr/lib usr/sbin lib/modules

 

b)创建最基本的设备文件:
#cd dev
#mknod -m 666 console c 5 1
#mknod -m 666 null c 1 3
c
)安装/etc配置文件

从网上找的最小系统的etc配置文件直接解压到制作的根文件系统里
操作如下:
#tar etc.tar.gz -C /xxx/rootfs
xxx
表示你要制作的rootfs所在的目录

d)编译busybox,并安装到rootfs

关于busybox网上很多教程,也有已经编译成功,适用于arm平台的,可以直接下载使用。

 

Ps:编译安装的时候遇到问题是缺少某些头文件,从unicorelinux内核相关的目录拷过来就好,遇到错看log排查。


三.制作ramdisk

1dd if=/dev/zero of=/dev/ram0 bs=1k count=4096

         说明:if:从文件读取;of:输出到文件;bs:每次读入读出的比特数;

         count:仅读取指定的区块数,4096=4M

(把/dev/null看作"黑洞". 它非常等价于一个只写文件所有写入它的内容都会永远丢失而尝试从它那儿读取内容则什么也读不到然而, /dev/null对命令行和脚本都非常的有用)

(像/dev/null一样, /dev/zero也是一个伪文件但它实际上产生连续不断的null的流(二进制的零流,而不是ASCII型的)写入它的输出会丢失不见而从/dev/zero读出一连串的null也比较困难虽然这也能通过od或一个十六进制编辑器来做到. /dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,就像临时交换文件.

 

2.mke2fs -vm0 /dev/ram0 4096

         说明:将RamDisk格式化成ext2文件系统格式,大小为4M-v   执行时显示详细信息,-m<百分比值>   指定给管理员保留区块的比例,预设为5%

 

3mount /dev/ram0 /sdcard         说明:mount RamDisk,将根文件系统拷贝到/home/bobo/haibo目录下

 

4.将之前busybox做的东西拷到/sdcard这个文件夹

 

5.umount /sdcard

 

6. gzip -c9  /dev/ram0 > ramdisk.gz (-c 将输出写到标准输出上,并保留原有文件 -9表示搞压缩比)

 

五.uboot中下载并使用ramdisk

修改uboot启动参数

  set bootargs root=/dev/ram0 rw  console=ttyS0,115200 initrd=0x41000000,0x800000 mem=216mb init=/init 

 

tftpdnw)将ramdisk.gz下载到0x41000000uimage下载到0x40008000

 

bootm    0x40008000

启动只有,一个最小系统就算完成了。你可以用这个最小系统,做自己想做的事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值