实验十六 制作ramdisk镜像文件
【实验目的】
掌握ramdisk镜像文件的制作方法。
说明:在实验中命令行提示符为“$”表示在主机上运行,“#”表示在目标板上运行。
【实验环境】
- Ubuntu 16.04 64发行版
- FS6818平台
【实验步骤】
- 在上一实验的基础上,进入到家目录,使用下面的命令制作镜像。
$ cd ~
制作一个大小为8M的镜像文件
$ dd if=/dev/zero of=ramdisk bs=1k count=8192 (ramdisk为8M)
格式化这个镜像文件为ext2
$ mkfs.ext2 -F ramdisk
$ sudo mount -t ext2 ramdisk /mnt
$ sudo cp -a rootfs/* /mnt/
$ sudo umount /mnt
$ gzip --best -c ramdisk > ramdisk.gz
$ mkimage -n "ramdisk" -A arm -O linux -T ramdisk -C gzip -d ramdisk.gz ramdisk.img
- 拷贝制作好的镜像文件到Fastboot目录准备进行烧写。
- 接下来,重新配置内核,选择ramdisk的支持并指定大小。
File systems --->
<*> Second extended fs support
Device Drivers
SCSI device support --->
<*> SCSI disk support
Block devices --->
<*>RAM block device support
(16)Default number of RAM disks
(8192) Default RAM disk size (kbytes)
General setup --->
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
上面的配置项多数都已配置,主要是修改了ramdisk的大小为8192,这个值必须要和ramdisk镜像文件的大小保持一致。保存配置后,重新编译内核,再将uImage文件拷贝到Fastboot目录下进行烧写。
4.修改启动参数,选择从EMMC中读取文件系统镜像ramdisk
setenv bootcmd mmc read 0x48000000 0x800 0x3000\;mmc read 0x49000000 0x20800 0x20800\;bootm 0x48000000 0x49000000
setenv bootargs root=/dev/ram rw initrd=0x49000040,0x1000000 rootfstype=ext2 init=/linuxrc console=ttySAC2,115200