Charles 发表于 2019-6-6 14:39:40

C5 SoC FPGA SD卡系统镜像制作方法

本帖最后由 Charles 于 2019-6-6 15:02 编辑

我们需要知道C5 SoC FPGALinux系统镜像有三个分区,每个分区所需的文件,如下:
分区所需文件
FAT32u-boot.scr、zImage、soc_fpga.dtb、soc_fpga.rbf
EXT3rootfs/
RAW(A2)preloader-mkpimage.bin、u-boot.img
1.      将系统所需文件(preloader、u-boot、Linux内核、dtb、rbf及rootfs)准备完整;2.   打开Ubuntu虚拟机,并打开终端,通过指令mkdir xxx创建一个文件夹(最好是英文的),将系统所需文件放入该文件夹,具体如下:3.   preloader、u-boot、Linux内核、dtb、rbf及rootfs文件都已经有了,还需要一个文件就是u-boot.scr文件,这里介绍scr文件产生方法:a)   首先,u-boot.scr是个引导脚本,由u-boot.script产生的,u-boot.script文件打开之后内容如下,文件中的soc_system.rbf及soc_system.dtb名称根据自己生成的名字进行修改,其余的不需要修改:echo -- Programming FPGA --fatload mmc 0:1 $fpgadata soc_system.rbf;fpga load 0 $fpgadata $filesize;run bridge_enable_handoff;
echo -- Setting Env Variables --setenv fdtimage soc_system.dtb;setenv mmcroot /dev/mmcblk0p2;setenv mmcload 'mmc rescan;${mmcloadcmd} mmc 0:${mmcloadpart} ${loadaddr}${bootimage};${mmcloadcmd} mmc 0:${mmcloadpart} ${fdtaddr} ${fdtimage};';setenv mmcboot 'setenv bootargs console=ttyS0,115200 root=${mmcroot}rw rootwait; bootz ${loadaddr} - ${fdtaddr}';
run mmcload;run mmcboot;b)   将上步中u-boot.script文件放在电脑的一个英文目录下,打开SoC EDS Command Shell,并切换到u-boot.script所在目录,如下:c)   输入指令mkimage -A arm -O linux -Tscript -C none -a 0 -e 0 -n "u-boot.script" -d u-boot.scriptu-boot.scr,双引号中的内容根据script文件名称进行修改,这里为u-boot.script;回车,生成u-boot.scr文件,如下:d)   在Ubuntu 虚拟机环境下输入kimage -A arm -O linux -T script -C none -a 0 -e 0 -n"u-boot.script" -d u-boot.script u-boot.scr也可以生成u-boot.scr文件,如下:4.   将u-boot.scr也放入用于生成系统镜像的Ubuntu虚拟机文件夹里,打开终端并在root用户权限下,输入指令:./make_sdimage.py\-f \-Ppreloader-mkpimage.bin,u-boot.img,num=3,format=raw,size=10M,type=A2 \-Prootfs/*,num=2,format=ext3,size=1500M\-PzImage,u-boot.scr,soc_system.rbf,soc_system.dtb,num=1,format=fat32,size=500M\-s 2G\      -nsdimage.img备注:这里-P代表一个分区,其中num代表分区编号,format代表分区的格式,size代表分区大小,-n代表生成镜像的名称(这里命名为sdimage.img),-s代表整个系统镜像大小。2.   镜像制作完成后,可以发现当前目录多了一个sdimage.img文件,该文件就是用于刻录SD卡的系统镜像,如下:3.   至此SD卡系统镜像制作完成。


admin 发表于 2019-6-9 15:03:44

谢谢分享
页: [1]
查看完整版本: C5 SoC FPGA SD卡系统镜像制作方法