[VF2] Boot Ubuntu和Debian发行版
这篇文章基于前面的两篇文章
- [VF2] StarFive VisionFive 2(昉·星光 2 )硬件简介
- [VF2] Flashing a new u-boot version
从本篇文章开始,我们开始探讨最新的Ubuntu
和Debian
发行版(not for starfive only)怎么在VF2上成功boot,包括烧录到EMMC
/USB
/NVME
上的方法和踩过的坑。
这个过程分为三步:
- 更新Flash上的SPL和U-Boot到最新版本,以引导Ubuntu(如果按之前的文章已经更新,可跳过),
- 烧写发行版到SD卡
- 从SD卡Boot,安装发行版到EMMC或NVME,这一步和传统安装Ubuntu的方法没啥区别
Using the pre-installed server image
- 下载支持的镜像之一:
- Ubuntu 25.04(勇猛海雀)镜像:ubuntu-25.04-preinstalled-server-riscv64+jh7110.img.xz
- Ubuntu 24.04.3 LTS(高贵食蚁兽)镜像:ubuntu-24.04.3-preinstalled-server-riscv64+jh7110.img.xz
- 将预装服务器镜像烧录到 microSD 卡。
- 将 microSD 卡插入开发板。
- 设置启动源为 microSD 卡。
- 将 USB UART 转接器连接到 GPIO 排针的 UART 接口。
- 给开发板上电。
- 当显示
Hit any key to stop autoboot
时,按下Enter
。 - 使用以下命令重置 U-Boot 环境:
env default -f -a
env save
- 重新启动开发板。
- 等待输出行确认
cloud-init
已完成运行;该服务负责生成 SSH 密钥并创建默认用户:
[ 35.682018] cloud-init[909]: Cloud-init v. 24.1.3-0ubuntu3 finished at Tue, 23 Apr 2024 07:44:59 +0000. Datasource DataSourceNoCloud [seed=/var/lib/cloud/seed/nocloud-net][dsmode=net]. Up 35.65 seconds
- 使用用户名 ubuntu 和默认密码 ubuntu 登录;系统将提示设置新密码。
Using the live server image
live installer image用于将Ubuntu安装到eMMC、USB或NVMe驱动器。要启动live image,必须在SPI Flash上安装U-Boot。
Install U-Boot to the SPI flash
- 将预装的服务器镜像烧录到 microSD 卡。
- 将 microSD 卡插入开发板。
- 将启动源设置为 microSD 卡。
- 将 USB UART 转接器连接到 GPIO 排针上的 UART 接口。
- 给开发板上电。
- 当显示
Hit any key to stop autoboot
时,按下Enter
键。 - 输入以下命令将 U-Boot 烧录至 SPI:
sf probe
load mmc 1:1 $kernel_addr_r /usr/lib/u-boot/starfive_visionfive2/u-boot-spl.bin.normal.out
sf update $kernel_addr_r 0 $filesize
load mmc 1:1 $kernel_addr_r /usr/lib/u-boot/starfive_visionfive2/u-boot.itb
sf update $kernel_addr_r 0x100000 $filesize
- 关闭开发板电源。
- 将启动源设置为SPI闪存。
- 给开发板上电。
- 当显示
Hit any key to stop autoboot
时,按下Enter
。 - 输入以下命令重置U-Boot环境:
env default -f -a
env save
- Switch the board off.
Boot the live server image
- 下载支持的镜像之一:
- Ubuntu 25.04(勇猛海雀)镜像:ubuntu-25.04-live-server-riscv64.iso
- Ubuntu 24.04.3 LTS(高贵食蚁兽)镜像:ubuntu-24.04.3-live-server-riscv64.iso
- 将实时服务器镜像烧录到 microSD 卡。
- 将 microSD 卡插入开发板。
- 确保启动源为 SPI Flash,而非 microSD 卡。
- 将 USB UART 适配器连接到 GPIO 排针上的 UART。
- 给开发板上电。
- 如果之前没有安装操作系统,U-Boot 会启动 microSD 卡上的GRUB。跳至第 9 步。
- 如果已存在操作系统,当显示“按任意键停止自动启动”时按下
Enter
键,并输入:
load mmc 1:1 $fdt_addr_r dtb/starfive/jh7110-starfive-visionfive-2-v1.3b.dtb
# for the 1.2a version of the board:
# load mmc 1:1 $fdt_addr_r dtb/starfive/jh7110-starfive-visionfive-2-v1.2a.dtb
load mmc 1:1 $kernel_addr_r EFI/boot/bootriscv64.efi
bootefi $kernel_addr_r $fdt_addr_r
- 在 GRUB 菜单中,选择“试用或安装 Ubuntu Server”。
- 加载安装程序需要一些时间。加载完成后,请按照 Ubuntu Server 安装教程 操作。
- 安装完成后,请勿取出 microSD 卡,直接重启开发板。
注意: U-Boot 不允许操作系统写入UEFI变量。您可以使用 U-Boot 的 eficonfig
命令手动完成此操作。
Boot source selection
StarFive VisionFive 2开发板可从SPI闪存、microSD卡、eMMC或UART启动固件。启动源通过DIP开关选择。
GPIO01 | GPIO00 | Boot Source |
---|---|---|
0 | 0 | SPI flash |
0 | 1 | microSD card |
1 | 0 | eMMC |
1 | 1 | UART |
例如,要从 microSD 卡启动,DIP 开关应按如下方式设置:
或者,要从SPI闪存启动,请按如下方式设置DIP开关:
Cloud-init seed
标为“CIDATA”的FAT分区中存在cloud-init种子示例文件。详情请参阅为无外设使用配置开发板。
UART console
UART控制台可通过 [GPIO引脚访问。假设 USB 转TTL串口适配器采用标准配色方案,需进行如下连接:
Board | Adapter |
---|---|
GND, pin 6 | GND, black |
TX, pin 8 | RX, white |
RX, pin 10 | TX, green |
使用以下设置进行连接:
- 115200 baud
- 8 data bits
- no parity
- 1 stop bit
- no flow control
Limitations
- 板载 GPU 不受支持。
- PCIe 支持不完整:可以使用 NVMe 驱动器,但 Wi-Fi 网卡和外部 GPU 无法工作。