Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198031
  • 博文数量: 28
  • 博客积分: 197
  • 博客等级: 入伍新兵
  • 技术积分: 291
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-18 14:10
文章分类

全部博文(28)

文章存档

2013年(11)

2012年(17)

分类: 嵌入式

2013-01-15 13:04:52

下面是创建一个RAMDISK文件系统。

1.   创建一个空的ramdisk文件系统

     这里创建一个32M大小的ramdisk,

 # dd if=/dev/zero of=ramdisk bs=1M count=32
 32+0 records in
 32+0 records out
 33554432 bytes (34 MB) copied, 0.243921 s, 138 MB/s
 
2. 把这个文件作为根文件系统
 root@localhost jjd]# mkfs ramdisk
 mke2fs 1.40.8 (13-Mar-2008)
 ramdisk is not a block special device.
 Proceed anyway? (y,n) y
 Filesystem label=
 OS type: Linux
 Block size=1024 (log=0)
 Fragment size=1024 (log=0)
 8192 inodes, 32768 blocks
 1638 blocks (5.00%) reserved for the super user
 First data block=1
 Maximum filesystem blocks=33554432
 4 block groups
 8192 blocks per group, 8192 fragments per group
 2048 inodes per group
 Superblock backups stored on blocks: 
        8193, 24577
 Writing inode tables: done                            
 Writing superblocks and filesystem accounting information: done
 This filesystem will be automatically checked every 35 mounts or
 180 days, whichever comes first.  Use tune2fs -c or -i to override.
 
3.  用loop 文件系统来挂载ramdisk
 # mkdir mnt
 # mount -o loop ramdisk mnt
 
4. 拷贝你的文件系统进ramdisk中
 # cp -r /* mnt
 
5. 卸载
 # umount mnt
6. 打包成ramdisk.gz文件
 # gzip ramdisk
 
7.你将获得一个ramdisk.gz文件,此文件可用来作为ramdisk根文件系统。
注意:Linux内核配置中默认ramdisk大小为16M,如果您的创建的ramdisk大于16M需要修改内核的配置
     make menuconfig->Device drivers->Block devices
     
另外需要注意一下 uboot启动参数的设置:
   setenv  bootargs "console=ttyO0,115200n8 root=/dev/ram0 rw rootfstype=ext2 init=/linuxrc initrd=0x82000000,32M ramdisk_size=32768"
在AM335X中 TI提供的的基础文件系统始终是无法ramdisk启动,后来自己单独做了一个文件系统,Busybox版本为 BusyBox v1.20.2 (2012-11-20 06:57:21 PST),按照上面的制作方法就可以成功在AM335X上面运行了。
     



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