您的位置:首页 > 其它

添加ramdsik文件系统支持

2015-10-11 19:42 330 查看

在内核make menuconfig中选择相关的选项

1,
General setup --->

[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

() Initramfs source file(s)

Device Drivers --->

Block devices --->

<*> RAM disk support

(1) Default number of RAM disks

(16384) Default RAM disk size (kbytes)
2 制作映像文件
[guanlei@centos6 3rdparty]$ dd if=/dev/zero of=ramdisk bs=1M count=16

记录了16+0 的读入

记录了16+0 的写出

16777216字节(17 MB)已复制,0.125137 秒,134 MB/秒

guanlei@centos6 3rdparty]$ ls

build.sh busybox-1.20.2 busybox-1.20.21 busybox-1.20.2.tar.bz2 mnt ramdisk

因为ramdisk只是一个块设备,只有将其格式化为特定的文件系统后才能使用,我们将其格式化ext2格式:

[guanlei@centos6 3rdparty]$ mke2fs -F -v -m0 ramdisk

mke2fs 1.41.12 (17-May-2010)

fs_types for mke2fs.conf resolution: 'ext2', 'small'

文件系统标签=

操作系统:Linux

块大小=1024 (log=0)

分块大小=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

4096 inodes, 16384 blocks

0 blocks (0.00%) reserved for the super user

第一个数据块=1

Maximum filesystem blocks=16777216

2 block groups

8192 blocks per group, 8192 fragments per group

2048 inodes per group

Superblock backups stored on blocks:

8193

正在写入inode表: 完成

Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 39 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

-F : 迫使mke2fs在ramdisk.image上运行, 否则, mke2fs会抱怨ramdisk.image不是块设备.

-v : 以verbose模式运行

-m0 : 指定不必在文件系统上为"超级用户"保留任何block.(一般嵌入式Linux都是单用户系统).

[guanlei@centos6 3rdparty]$ file ramdisk

ramdisk: Linux rev 1.0 ext2 filesystem data

[guanlei@centos6 3rdparty]$ sudo mount -o loop ramdisk mnt/

[guanlei@centos6 3rdparty]$ mount | grep ramdisk

/home/guanlei/fl2440/3rdparty/ramdisk on /home/guanlei/fl2440/3rdparty/mnt type ext2 (rw,loop=/dev/loop0)

[guanlei@centos6 3rdparty]$ ls mnt/

lost+found

[guanlei@centos6 3rdparty]$ rm -rf mnt/*

[guanlei@centos6 3rdparty]$ ls ../

123.tar.bz2 bin/ branches/ kernel/ program/ rootfs/ .svn/ trunk/

3rdparty/ bootloader/ driver/ mnt/ ramdisk.gz rootfs1/ tags/

[guanlei@centos6 3rdparty]$ ls ../rootfs

apps bin data dev etc info init lib linuxrc mnt proc root sbin sys tmp usr var

[guanlei@centos6 3rdparty]$ sudo cp -af ../rootfs/* mnt/

[guanlei@centos6 3rdparty]$ ls mnt/

apps bin data dev etc info init lib linuxrc mnt proc root sbin sys tmp usr var

[guanlei@centos6 3rdparty]$ sudo umount ramdisk

[guanlei@centos6 3rdparty]$ du -sh ramdisk

16M ramdisk

[guanlei@centos6 3rdparty]$ gzip ramdisk

[guanlei@centos6 3rdparty]$ du -sh ramdisk.gz

2.3M ramdisk.gz

3 对u-boot添加对ramdisk的支持

[ s3c2440@guowenxue ]# set bkr 'tftp 30008000 linuxrom-s3c2440.bin;nand erase 100000 800000;nand write 30008000 100000 800000'

[ s3c2440@guowenxue ]# set brdfs 'tftp 30008000 ramdisk.gz;nand erase 500000 a00000;nand write 30008000 500000 500000'

[ s3c2440@guowenxue ]# set bootcmd_ramdisk 'nand read 30008000 100000 400000;nand read 30800000 500000 500000;bootm 30008000'

[ s3c2440@guowenxue ]# set bootcmd 'run bootcmd_ramdisk'

[ s3c2440@guowenxue ]# set bootargs 'console=ttyS0,115200 mem=64M initrd=0x30800000,16M root=/dev/ram0 rw loglevel=7'

[ s3c2440@guowenxue ]# save

开发板开机
run bkr
boot
就可以了

Copyright (C) 2011 fulinux<fulinux@gmail.com>

root login: root

>: ls

apps data etc init linuxrc proc sbin tmp var

bin dev info lib mnt root sys usr

>:

Copyright (C) 2011 fulinux<fulinux@gmail.com>

root login: root

>: ls

apps data etc init linuxrc proc sbin tmp var

bin dev info lib mnt root sys usr

>:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: