本帖最后由 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创建一个文件夹(最好是英文的),将系统所需文件放入该文件夹,具体如下:
1.png (109.98 KB, 下载次数: 156)
2019-6-6 14:29 上传
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所在目录,如下:
2.png (19.43 KB, 下载次数: 158)
2019-6-6 14:30 上传
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文件,如下:
3.png (24.38 KB, 下载次数: 164)
2019-6-6 14:31 上传
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.png (106.26 KB, 下载次数: 162)
2019-6-6 14:31 上传
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
5.png (99.92 KB, 下载次数: 158)
2019-6-6 14:32 上传
备注:这里-P代表一个分区,其中num代表分区编号,format代表分区的格式,size代表分区大小,-n代表生成镜像的名称(这里命名为sdimage.img),-s代表整个系统镜像大小。
2. 镜像制作完成后,可以发现当前目录多了一个sdimage.img文件,该文件就是用于刻录SD卡的系统镜像,如下:
6.png (101.55 KB, 下载次数: 160)
2019-6-6 14:33 上传
3. 至此SD卡系统镜像制作完成。
make_sdimage.rar
(5.76 KB, 下载次数: 150)
2019-6-6 14:35 上传
点击文件名下载附件
make_sdimage.py