meta-visionfive2 的编译和使用

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

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

    sudo fdisk /dev/sdb
    

    示例2-2-2输出:

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

    d--->o,n--->p(根据创建分区数,重复执行),w
    

    说明:为保持某些默认设置,请按Enter回车键,本次创建两个分区。

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

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

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

    df -h
    

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

    ../../_images/2-2-32.png
  8. 进入到rootfs系统软件包、Kernel和dtb这三个镜像文件所在路径,输入以下命令复制镜像文件到Micro SD卡第二个分区,并分别重命名为fs.cpio.gz/image.bin/jh7110.dtb(强制):

    sudo mkdir <Mount_Location>/boot/
    sudo cp uEnv.txt <Mount_Location>/boot/
    sudo cp Image.gz--5.15+git0+7b7b4eddd8-r0-starfive-dubhe-20230228072749.bin <Mount_Location>/image.bin
    sudo cp dubhe-image-initramfs-starfive-dubhe-20230228072749.cpio.gz <Mount_Location>/fs.cpio.gz
    sudo cp jh7110-visionfive-v2--5.15+git0+7b7b4eddd8-r0-starfive-dubhe-20230228072749.dtb <Mount_Location>/jh7110.dtb
    sync
    

    说明: <Mount_Location>指此前记录第二分区的挂载路径。

  9. 从计算机中移除 Micro SD 卡,并将该卡插入昉·星光2,然后启动昉·星光2。

  10. 使用USB转串口转换器,将昉·星光2连接至计算机,然后打开minicom,若需要进入uboot配置参数,则按任意键终止系统autoboot,配置好后重启即可。以下示例输出表明昉·星光2已进入u-boot模式,示例输出:

    U-Boot 2021.10 (Dec 25 2022 - 20:59:18 +0800), Build: jenkins-github_visionfive2-4
    
    CPU:   rv64imacu
    Model: StarFive VisionFive V2
    DRAM:  8 GiB
    MMC:   sdio0@16010000: 0, sdio1@16020000: 1
    Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
    OK
    StarFive EEPROM format v2
    ...
    Hit any key to stop autoboot:  0
    StarFive #
    
  11. 当不需要进入uboot进行配置等操作时,系统会自动加载boot/uEnv.txt,导入环境配置,加载镜像文件,启动系统:

    Importing environment from mmc1 ...
    357 bytes read in 10 ms (34.2 KiB/s)
    ## Warning: defaulting to text format
    46738 bytes read in 9 ms (5 MiB/s)
    8968937 bytes read in 381 ms (22.4 MiB/s)
    182319005 bytes read in 7616 ms (22.8 MiB/s)
    Uncompressing Kernel Image
    Moving Image from 0x44000000 to 0x40200000, end=41980000
    ## Flattened Device Tree blob at 48000000
    Booting using the fdt blob at 0x48000000
    Using Device Tree in place at 0000000048000000, end 000000004800e691
    
    Starting kernel ...
    
  12. 切换到root账户登录: sudo -i

  13. 运行实例

    1. 运行实例helloworld

    root@StarFive:/usr/share/docker# cd /usr/bin
    root@StarFive:/usr/bin# ./helloworld
    Hello World!!!
    root@StarFive:/usr/bin#