[VF2] Boot Ubuntu和Debian发行版

这篇文章基于前面的两篇文章

  1. [VF2] StarFive VisionFive 2(昉·星光 2 )硬件简介
  2. [VF2] Flashing a new u-boot version

从本篇文章开始,我们开始探讨最新的UbuntuDebian发行版(not for starfive only)怎么在VF2上成功boot,包括烧录到EMMC/USB/NVME上的方法和踩过的坑。

这个过程分为三步:

  1. 更新Flash上的SPL和U-Boot到最新版本,以引导Ubuntu(如果按之前的文章已经更新,可跳过),
  2. 烧写发行版到SD卡
  3. 从SD卡Boot,安装发行版到EMMC或NVME,这一步和传统安装Ubuntu的方法没啥区别

Using the pre-installed server image

  1. 下载支持的镜像之一:
  2. 将预装服务器镜像烧录到 microSD 卡。
  3. 将 microSD 卡插入开发板。
  4. 设置启动源为 microSD 卡。
  5. 将 USB UART 转接器连接到 GPIO 排针的 UART 接口。
  6. 给开发板上电。
  7. 当显示Hit any key to stop autoboot时,按下Enter
  8. 使用以下命令重置 U-Boot 环境:
plaintext 复制代码
env default -f -a
env save
  1. 重新启动开发板。
  2. 等待输出行确认cloud-init已完成运行;该服务负责生成 SSH 密钥并创建默认用户:
plaintext 复制代码
[   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
  1. 使用用户名 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

  1. 将预装的服务器镜像烧录到 microSD 卡。
  2. 将 microSD 卡插入开发板。
  3. 将启动源设置为 microSD 卡。
  4. 将 USB UART 转接器连接到 GPIO 排针上的 UART 接口。
  5. 给开发板上电。
  6. 当显示Hit any key to stop autoboot时,按下 Enter 键。
  7. 输入以下命令将 U-Boot 烧录至 SPI:
plaintext 复制代码
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
  1. 关闭开发板电源。

  2. 将启动源设置为SPI闪存。

  3. 给开发板上电。

  4. 当显示Hit any key to stop autoboot时,按下Enter

  5. 输入以下命令重置U-Boot环境:

    env default -f -a
    env save

  6. Switch the board off.

Boot the live server image

  1. 下载支持的镜像之一:
  2. 将实时服务器镜像烧录到 microSD 卡。
  3. 将 microSD 卡插入开发板。
  4. 确保启动源为 SPI Flash,而非 microSD 卡。
  5. 将 USB UART 适配器连接到 GPIO 排针上的 UART。
  6. 给开发板上电。
  7. 如果之前没有安装操作系统,U-Boot 会启动 microSD 卡上的GRUB。跳至第 9 步。
  8. 如果已存在操作系统,当显示"按任意键停止自动启动"时按下 Enter 键,并输入:
plaintext 复制代码
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
  1. 在 GRUB 菜单中,选择"试用或安装 Ubuntu Server"。
  2. 加载安装程序需要一些时间。加载完成后,请按照 Ubuntu Server 安装教程 操作。
  3. 安装完成后,请勿取出 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 无法工作。
相关推荐
etcix5 小时前
for my debian 12 mxlinux install the podman
运维·debian·podman
feifeigo1235 小时前
在Ubuntu上配置Nginx实现开机自启功能
数据库·nginx·ubuntu
kaikaile19956 小时前
在Ubuntu平台搭建RTMP直播服务器使用SRS简要指南
linux·服务器·ubuntu
huazhixuthink11 小时前
PostgreSQL三种关闭方式的区别
数据库·postgresql
Web极客码18 小时前
在Ubuntu 20.04的服务器上查找的服务器的IP地址
服务器·tcp/ip·ubuntu
FL162386312919 小时前
[ubuntu][C++]onnxruntime安装cpu版本后测试代码
linux·c++·ubuntu
逻辑羊驼19 小时前
VSCode+MobaXterm+X11可视化界面本地显示
运维·服务器·ubuntu·3d
云的牧人1 天前
Ubuntu 22 redis集群搭建
linux·运维·ubuntu
小猪写代码1 天前
Ubuntu 文件权限管理
linux·ubuntu