当前位置: 首页 > ops >正文

[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. 下载支持的镜像之一:
    • 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
  2. 将预装服务器镜像烧录到 microSD 卡。
  3. 将 microSD 卡插入开发板。
  4. 设置启动源为 microSD 卡。
  5. 将 USB UART 转接器连接到 GPIO 排针的 UART 接口。
  6. 给开发板上电。
  7. 当显示Hit any key to stop autoboot时,按下Enter
  8. 使用以下命令重置 U-Boot 环境:
env default -f -a
env save
  1. 重新启动开发板。
  2. 等待输出行确认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
  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:
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
  1. Switch the board off.

Boot the live server image

  1. 下载支持的镜像之一:
    • Ubuntu 25.04(勇猛海雀)镜像:ubuntu-25.04-live-server-riscv64.iso
    • Ubuntu 24.04.3 LTS(高贵食蚁兽)镜像:ubuntu-24.04.3-live-server-riscv64.iso
  2. 将实时服务器镜像烧录到 microSD 卡。
  3. 将 microSD 卡插入开发板。
  4. 确保启动源为 SPI Flash,而非 microSD 卡。
  5. 将 USB UART 适配器连接到 GPIO 排针上的 UART。
  6. 给开发板上电。
  7. 如果之前没有安装操作系统,U-Boot 会启动 microSD 卡上的GRUB。跳至第 9 步。
  8. 如果已存在操作系统,当显示“按任意键停止自动启动”时按下 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
  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开关选择。

GPIO01GPIO00Boot Source
00SPI flash
01microSD card
10eMMC
11UART

例如,要从 microSD 卡启动,DIP 开关应按如下方式设置:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

或者,要从SPI闪存启动,请按如下方式设置DIP开关:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Cloud-init seed

标为“CIDATA”的FAT分区中存在cloud-init种子示例文件。详情请参阅为无外设使用配置开发板。

UART console

UART控制台可通过 [GPIO引脚访问。假设 USB 转TTL串口适配器采用标准配色方案,需进行如下连接:

BoardAdapter
GND, pin 6GND, black
TX, pin 8RX, white
RX, pin 10TX, green

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用以下设置进行连接:

  • 115200 baud
  • 8 data bits
  • no parity
  • 1 stop bit
  • no flow control

Limitations

  • 板载 GPU 不受支持。
  • PCIe 支持不完整:可以使用 NVMe 驱动器,但 Wi-Fi 网卡和外部 GPU 无法工作。
http://www.xdnf.cn/news/20016.html

相关文章:

  • 智慧城市SaaS平台之智慧城管十大核心功能(五):监督检查综合管理系统
  • AI急速搭建网站:Gemini、Bolt或Jules、GitHub、Cloudflare Pages实战全流程!
  • FastAPI 中的 Pydantic 的作用
  • docker 部署RustDesk服务
  • 零知开源——基于STM32F103RBT6的智能风扇控制系统设计与实现
  • 头一次见问这么多kafka的问题
  • 针对nvm不能导致npm和node生效的解决办法
  • java.nio.file.InvalidPathException异常
  • 文章采集发布帝国ECMS网站技巧
  • K8s访问控制(一)
  • MySQL高级进阶(流程控制、循环语句、触发器)
  • 电机试验平台:从实验到应用的创新突破
  • OpenCV C++ 进阶:图像直方图与几何变换全解析
  • 大数据毕业设计推荐:基于Spark的零售时尚精品店销售数据分析系统【Hadoop+python+spark】
  • 孟子GPT
  • Ruoyi-vue-plus-5.x第五篇Spring框架核心技术:5.1 Spring Boot自动配置
  • React中使用DDD(领域驱动设计)
  • java,通过SqlSessionFactory实现动态表明的插入和查询(适用于一个版本一个表的场景)
  • c51串口通信原理及实操
  • 进程和线程创建销毁时mutex死锁问题分析
  • 神经网络之深入理解偏置
  • Go语言实战案例- 命令行参数解析器
  • Gin + Viper 实现配置读取与热加载
  • swing笔记
  • 【Flutter】flutter_local_notifications并发下载任务通知实践
  • 深度学习基础概念【持续更新】
  • 前端安全防护深度实践:从XSS到供应链攻击的全面防御
  • JAiRouter 配置文件重构纪实 ——基于单一职责原则的模块化拆分与内聚性提升
  • 消费品企业客户数据分散?CRM 系统来整合
  • Python包管理工具全对比:pip、conda、Poetry、uv、Flit深度解析