meta-visionfive2 的编译和使用¶
本章介绍如何编译和运行星光2的例子。 具体内容如下:
1.构建镜像¶
2.烧录镜像¶
2.1 烧录引导程序¶
板卡可以正常启动无需下载
2.2 烧卡¶
将 Micro SD卡插入计算机:
输入以下命令查看连接中的 Micro SD卡地址:
lsblk如下图2-2-1所示,示例中的 Micro SD卡地址为/dev/sdb
输入以下命令,进入分区配置:
sudo fdisk /dev/sdb示例2-2-2输出:
分别输入以下命令删除原来的分区并创建新的分区:
d--->o,n--->p(根据创建分区数,重复执行),w说明:为保持某些默认设置,请按Enter回车键,本次创建两个分区。
格式化 Micro SD 卡,并创建文件系统:
sudo mkfs.vfat /dev/sdb1 sudo mkfs.vfat /dev/sdb2从计算机中移除 Micro SD卡,并重新插入以挂载系统镜像。
输入以下命令查看是否挂载成功:
df -h
系统输出如下。请记录下图高亮处的挂载路径。 图2-2-3示例输出如下:
进入到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>指此前记录第二分区的挂载路径。
从计算机中移除 Micro SD 卡,并将该卡插入昉·星光2,然后启动昉·星光2。
使用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 #当不需要进入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 ...切换到root账户登录: sudo -i
运行实例
运行实例helloworld
root@StarFive:/usr/share/docker# cd /usr/bin root@StarFive:/usr/bin# ./helloworld Hello World!!! root@StarFive:/usr/bin#