首先,利用现有FAT32位的系统SD卡进行启动,通过boot后进入系统后 ,查看系统挂载内容
在shell端输入命令为:
zynq>mount
none on /proc type proc (0)
none on /sys type sysfs (0)
none on /tmp type tmpfs (0)
devpts on /dev/pts type devpts (0)
zynq>
可以发现SD卡并没有真正挂载。(/dev/mmcblk0)
下面创建一个文件夹来实现SD卡的挂载
zynq>cd /
zynq>mkdir sdcard
zynq>ls
bin lib lost+found proc sdcard usr
dev licenses mnt root sys var
etc linuxrc opt sbin tmp
zynq>
现在可以发现已经可以挂载SD卡了,下面使用挂载命令
zynq>mount /dev/mmcblk0p1 /sdcard
zynq>cd sdcard/
zynq>ls
BOOT.BIN devicetree_ramdisk.dtb zImage
README ramdisk8M.image.gz
zynq>
现在已经有SD卡的路径了,证明SD卡已经挂载到linux系统中了。现在开始可以对SD卡映像进行解压、装载、然后改变其配置(此处是我们的一切工作的关键)、然后在进行压缩、之后卸载SD卡
1、首先解压映像、并装载,具体命令为:
zynq>cp /sdcard/ramdisk8M.image.gz /tmp/
zynq>gunzip /tmp/ramdisk8M.image.gz
zynq>mount -o loop /tmp/ramdisk8M.image /mnt/
[ 605.300000] EXT4-fs (loop0): couldn't mount as ext3 due to feature incompatibilities
[ 605.350000] EXT4-fs (loop0): mounting ext2 file system using the ext4 subsystem
[ 605.350000] EXT4-fs (loop0): warning: mounting unchecked fs, running e2fsck is recommended
[ 605.360000] EXT4-fs (loop0): mounted filesystem without journal. Opts: (null)
zynq>cd /mnt
zynq>ls
bin lib lost+found proc sys var
dev licenses mnt root tmp
etc linuxrc opt sbin usr
zynq>
从命令中可以看出,映像已装载,但还不能进行编辑。因此,可以在根目录下/root下创建一个文件,命令为zynqgeek.txt,随便写一些内容进去,以便稍等我们可以证明已经改变。具体命令为:
zynq>cd /mnt/root/
zynq>ls
logo.bin
zynq>touch zynqgeek.txt
zynq>cat > zynqgeek.txt
The ZynqGeek Blog Rocks!
^C
zynq>ls -al
total 4
drwxr-xr-x 2 12319 300 1024 Jan 1 00:11 .
drwxr-xr-x 17 12319 300 1024 Jul 12 2012 ..
-rw-r--r-- 1 root 0 512 Jul 12 2012 logo.bin
-rw-r--r-- 1 root 0 25 Jan 1 00:11 zynqgeek.txt
zynq>cat zynqgeek.txt
The ZynqGeek Blog Rocks!
zynq>
由此,我们可以看到,该文件以创建,大小为25KB,内容为 "The ZynqGeek Blog Rocks!"
现在已经对镜像内容进行了自定义修正,现在需要卸载影响、重新压缩,并且卸载SD卡。然后重新启动zedboard板子,就可以发现新修正的ramdisk 映像。具体命令为:
zynq> umount -l /mnt
zynq> gzip -9 /tmp/ramdisk8M.image
zynq> mv /tmp/ramdisk8M.image.gz /sdcard/
zynq> umount -l /sdcard/
zynq> mount
none on /proc type proc (0)
none on /sys type sysfs (0)
none on /tmp type tmpfs (0)
devpts on /dev/pts type devpts (0)
zynq>
其中gzip命令 会花费几秒钟。重启板子后,可以发现根目录的变化。
zynq>cd /root
zynq>ls
logo.bin zynqgeek.txt
zynq>cat zynqgeek.txt
The ZynqGeek Blog Rocks!
zynq>
至此,已经全部完成。