meta-starfive 的编译和使用

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

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-11.png
  3. 输入以下命令,进入分区配置:

    sudo fdisk /dev/sdb
    

    示例2-2-2输出:

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

    d--->o--->n--->w--->y
    

    说明:为保持某些默认设置,请按Enter回车键。

  5. 格式化 Micro SD 卡,并创建文件系统:

    sudo mkfs.vfat /dev/sdb1
    
  6. 从计算机中移除 Micro SD卡,并重新插入以挂载系统镜像。

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

    df -h
    

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

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

    sudo cp Image.gz <Mount_Location>
    sudo cp rootfs.cpio.gz <Mount_Location>
    sudo cp <dtb_File_Name> <Mount_Location>
    sync
    

    说明: <Mount_Location>指此前记录的挂载路径。 <dtb_File_Name>指 dtb 文件名。请注意不同的单板计算机将使用到不同的dtb 文件,详细请参考《赛昉科技 40-Pin GPIO Header 用户指南》中描述dtb 文件的表格。 示例命令:

    sudo cp Image.gz /media/user/6411-3C3F/
    sudo cp rootfs.cpio.gz /media/user/6411-3C3F/
    sudo cp jh7100-starfive-visionfive-v1.dtb /media/user/6411-3C3F/
    sync
    
  9. 从计算机中移除 Micro SD 卡,并将该卡插入昉·星光,然后启动昉·星光。

  10. 使用USB转串口转换器,将昉·星光连接至计算机,然后打开minicom,等待昉·星光进入u-boot模式。以下示例输出表明昉··星光已进入u-boot模式: 示例输出:

    U-Boot 2022.04-rc2-VisionFive (Mar 07 2022 - 21:12:22 +0800)StarFive
    
    CPU:   rv64imafdc
    Model: StarFive VisionFive V1
    DRAM:  8 GiB
    Core:  13 devices, 9 uclasses, devicetree: separate
    SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
    Loading Environment from SPIFlash... cadence_spi spi@11860000 :Can not get reset: -524
    *** Warning - bad CRC, using default environment
    
  11. 输入以下命令:

    setenv kernel_comp_addr_r 0x90000000;setenv kernel_comp_size 0x10000000;setenv kernel_addr_r 0x84000000;setenv fdt_addr_r
    0x88000000;setenv ramdisk_addr_r 0x88300000
    
    fatls mmc 0:1
    fatload mmc 0:1 ${kernel_addr_r} Image.gz
    fatload mmc 0:1 ${fdt_addr_r} jh7100-starfive-visionfive-v1.dtb
    fatload mmc 0:1 ${ramdisk_addr_r} rootfs.cpio.gz
    booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
    
  12. 输入用户名和密码登录,如: Username: root Password: starfive

  13. 运行实例

    1. 运行实例helloworld

    sh-5.1# cd /usr/bin/
    sh-5.1# ./helloworld
    Hello World!!!
    sh-5.1#
    
    1. 运行ncnn实例squeezenet

    bash-5.1# cd /usr/share/ncnn/squeezenet
    bash-5.1# ./squeezenet ../testpic/car.jpg
    817 = 0.866784
    n04285008 sports car, sport car
    511 = 0.107477
    n03100240 convertible
    751 = 0.011277
    n04037443 racer, race car, racing car
    bash-5.1#