Chinaunix首页 | 论坛 | 博客
  • 博客访问: 306472
  • 博文数量: 111
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 672
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-05 23:41
文章分类

全部博文(111)

文章存档

2017年(111)

我的朋友

分类: LINUX

2017-06-23 19:27:29

原文地址:用busybox制作Ramdisk 作者:好喜儿

Ramdisk的制作并使用分四部分

一.内核编译选项的设置

二.Busybox制作根文件目录

三.制作ramdisk

四.uboot中下载并使用ramdisk

 

实验硬件平台:

Sep6200

 

一.内核编译选项的设置

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

 

二. 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编译步骤》

 

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

 

阅读(1690) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~