查看: 2193|回复: 0

[评测分享] 【米尔FZ3深度学习计算卡】开发环境搭建(一)

[复制链接]
  • TA的每日心情
    慵懒
    2023-6-28 14:17
  • 签到天数: 299 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2020-11-22 23:27:27 | 显示全部楼层 |阅读模式
    分享到:
    • 官方光盘

    官方有一个光盘文件压缩包,大小为1.5G,其内提供了说明文档、镜像、工具(串口驱动)、linux源码(用于编译linux各个组件、交叉编译链)、MIPI例程
    镜像和linux源码都分为两部分,一个是针对普通linux系统,另一个是针对xilinx专门的petalinux。

    (一)普通linux开发部分-烧录进EMMC的镜像
    提供了Bootloader、Kernel、Filesystem,以及交叉编译工具链。
    构建linux镜像过程
    1-编译uboot->生成u-boot.elf->用petalinux或者命令行制作出BOOT.bin
    2-编译Kernel->生成 Image 文件 和 dtb 设备树
    3-编译Filesystem,官方提供的是一个Qt文件系统,也可以上ubuntu官网下个ubuntu的rootfs,制作出来的镜像还能跑APT->生成rootfs->打包成rootfs.tar

    但是官方所提供的教程制作的镜像是烧录进EMMC内部的,生成的 rootfs.tar 也是给EMMC用的,把上述文件拷贝进TF卡,TF卡启动之后命令行执行烧录程序。但TF卡想要启动,又必须要制作TF卡自身的文件系统。这就用到了ramdish文件系统了,这根要烧录进EMMC那个文件系统不一样,这是一个运行在RAM里面的小型文件系统,掉电之后所有修改消失。仅仅是用来提供临时使用。

    如果我不想用这种掉电还原的文件系统,又想用TF卡启动,官方没有提供这一选项(petalinux制作镜像的教程倒是有),经过我的探索,应该是需要修改uboot里面的ramdisk部分源代码,重新编译,但这里编译出来的 u-boot.elf 又需要 petalinux 来制作 BOOT.bin,这里就啰嗦了,我在安装petalinux上花了太多时间,而用命令行来制作 BOOT.bin的方法又没有找到。

    完成 BOOT.bin 后,只需要把它、dtb 文件树、uimage内核拷进TF卡的FAT32分区即可启动,xilinx的芯片在这一点上一直非常方便,不需要把这些固定到某一个地址,只需要文件名称匹配即可。
    但是文件系统部分是需要烧录的,要把TF卡挂载进linux系统,把上面生成的Qt文件系统rootfs拷进TF新建的EXT4分区内。

    (二)petalinux部分-烧录进EMMC的镜像
    petalinux单编译烧录进EMMC的镜像,还是挺简单的,大体只有4个命令就输出了4个所需的组件:
    编译uboot.elf:
    petalinux-build -c u-boot
    生成BOOT.bin
    petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf--u-boot=images/linux/u-boot.elf --pmufw --atf --fpgaimages/linux/system.bit
    生成image.ub:
    petalinux-build -c kernel
    生成带dtb文件树的image.ub:
    petalinux-build -c device-tree
    生成设备树:
    petalinux-build -c rootfs

    接下来的操作跟上面普通linux的一样,把 tf 卡分成两个分区,第一个FAT32,第二个EXT4
    把image.ub和BOOT.bin拷进FAT32
    把rootfs在linux下拷进EXT4

    (三)petalinux部分-使用TF卡的镜像
    使用TF卡的镜像制作比烧录进EMMC的镜像还要简单,可能里面有些复杂的配置都被官方解决了,只需要一个命令即可创建整个环境:
    petalinux-create -t project -s fx_czu3eg_01.bsp
    然后是编译:
    petalinux-build
    然后用于TF卡的镜像的组件image.ub,rootfs.tar.gz都被编译好了,但 BOOT.BIN 还需要把 u-boot.elf 打包而成。
    petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --u-boot=images/linux/u-boot.elf --pmufw --atf --fpga images/linux/system.bit

    虽然命令简单,但编译过程一点不简单,在虚拟机上配了4G+3核足足编译了2个多小时,作为一个6核主机,虚拟机编译的时候连实体系统都卡得动不了,看了一下:
    编译Opencv.png
    连opencv都被编译了,难怪这么久,这个个版本为3.4.3的opencv,比百度AI那个镜像里面带的3.3.0还要新。
    编译完成之后,一看大小,光是这个工程就有26G!
    SROZ)A(K5@4J1FW(NGO3FD3.png


    • 安装petalinux的Ubuntu版本问题

    1-尝试用以前安装的2018.3版本的petalinux
    petalinux使用起来虽然方便,但安装起来非常痛苦。
    在此之前我仅有一个安装了2018.3版本的ubuntukylin16下的petalinux,用这个版本来编译官方提供的bsp包生成的工程,下场就是:
    20183编译.png

    官方的都是基于petalinux2019.1的,这又跟百度AI的镜像不一样,再加上petalinux本身版本之间不兼容,还挑linux版本,让人非常纠结,除了petalinux以外,我只在ros上面见过这么啰嗦的设计。

    2-尝试在 ubuntu kylin 20.04 下安装

    考虑到petalinux 本身庞大、petalinux-build生成的包也不小,再加上还想在ubunut里安装个vivado,还要装两个petalinux,想想就有点方。于是开了我的双系统——ubuntu kylin 20.04,这时候我完全没有意识到这个动作是何其的不明智,事实上连最新版的petalinux2020.1都只支持到ubuntu18.04
    问题很快随之而来。petalinux安装文件一直不认python包,我通过修改/var/lib/dpkg/status愣是把他装上了。

    但每次开petalinux都要重新把status改一遍,用完该回来,否则apt仓库会出错无法更新。

    3-ubuntu kylin 20.04 下的问题
    但很快我又放弃了,因为ubuntu kylin 20.04 即使配置了
    网关:192.168.1.127
    IP:192.168.1.255
    依旧PING不通开发板 192.168.1.254
    而且安装的VIVADO一旦启动这个系统卡死,再也无法操作。

    4-又回到虚拟机上,咬牙把第二个petalinux装上了。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 14:01 , Processed in 0.115096 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.