meta-kendryte 的编译和使用

本章介绍如何编译和运行堪智K510的例子。 具体内容如下:

1.构建镜像

build_portal环境搭建及使用

2.烧录镜像

2.1 烧录引导程序

板卡可以正常启动无需下载

2.2 烧卡

  1. 将 Micro SD卡插入计算机:

  2. 输入以下命令查看连接中的 Micro SD卡地址:

    lsblk
    

    如下图2-2-1所示,示例中的 Micro SD卡地址为/dev/sdb

    ../../_images/2-2-1.png
  3. 输入以下命令,进入分区配置:

    sudo fdisk /dev/sdb
    

    示例2-2-2输出:

    ../../_images/2-2-2.png
  4. 分别输入以下命令删除原来的分区并创建新的分区:

    d(多次执行删除所有分区)--->o,n--->p(根据创建分区数,重复执行),w
    

    说明:为保持某些默认设置,请按Enter回车键,本次创建两个分区。 使用t选项,选择第一个分区,然后选择c,把分区system id类型设置为fat。然后使用a,选择第一个分区为boot类型。

    示例2-2-3输出:

    ../../_images/2-2-3.png
  5. 创建完分区之后,还需要对分区进行格式化。把sdb1的fstype格式化为fat,sdb2的fstype格式化为ext2分区。mke2fs可以用-t选项指定为ext2:

    sudo mkfs.vfat -F 32 -n "boot" /dev/sdb1
    sudo mke2fs -t ext2 -F -L "rootfs" /dev/sdb2
    
  6. 从计算机中移除 Micro SD卡,并重新插入以挂载系统镜像。

  7. 输入以下命令查看是否挂载成功:

    df -h
    

    系统输出如下。请记录下图高亮处的挂载路径。 图2-2-4示例输出如下:

    ../../_images/2-2-4.png
  8. 进入到rootfs系统软件包、Kernel和dtb、环境配置等这些文件所在路径,输入以下命令复制镜像文件到Micro SD卡:

    sudo cp bootm-bbl.img <Mount_Location-sdb1>
    sudo cp k510.dtb <Mount_Location-sdb1>
    sudo cp u-boot_burn.bin <Mount_Location-sdb1>
    sudo cp uboot-sd.env <Mount_Location-sdb1>
    
    tar -xvf core-image-kendryte-xxx.rootfs.tar -C <Mount_Location-sdb2>
    chmod 755 -R <Mount_Location-sdb2>/*
    sync
    

    说明: <Mount_Location>指之前分区的挂载路径,文件系统core-image-kendryte-xxx.rootfs.tar解压放在第二分区,其余镜像文件放在第一分区。

  9. 从计算机中移除 Micro SD 卡,并将该卡插入堪智K510板卡,然后启动堪智K510板卡。

  10. K510通过BOOT0和BOOT1两个硬件管脚的状态决定芯片启动方式,目前我们使用SD卡启动(BOOT0=1/BOOT1=0)。开启开关,k510根据配置加载内核以及根文件系统,最后进入到登录界面。

  1. 输入用户名,如: kendryte login: root

  1. 运行实例

    1. 运行实例helloworld

    /# cd /usr/bin/
    /#  ./helloworld
    Hello World!!!
    /#
    
    1. 运行tensorflow实例

    root@kendryte:/usr/share/tensorflow/lite/examples/label_image# ./label_image \
    > --tflite_model ./mobilenet_v1_1.0_224.tflite \
    > --labels ./labels.txt \
    > --image ./grace_hopper.bmp
    INFO: Loaded model ./mobilenet_v1_1.0_224.tflite
    INFO: resolved reporter
    INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
    INFO: invoked
    INFO: average time: 3439.94 ms
    INFO: 0.860175: 653 653:military uniform
    INFO: 0.0481016: 907 907:Windsor tie
    INFO: 0.00786705: 466 466:bulletproof vest
    INFO: 0.00644932: 514 514:cornet, horn, trumpet, trump
    INFO: 0.0060802: 543 543:drumstick
    root@kendryte:/usr/share/tensorflow/lite/examples/label_image#