本文主要记录使用 Mars 运行 Ubuntu 时遇到的一些问题和解决办法,作为官方文档的细节补充,主要流程参考官方文档。镜像下载 | Milk-V
引导Ubuntu镜像
在手动更新上游源构建的 U-boot 时,即执行一下命令时
load mmc 1:1 $kernel_addr_r /usr/lib/u-boot/starfive_visionfive2/u-boot-spl.bin.normal.out
load mmc 1:1 $kernel_addr_r /usr/lib/u-boot/starfive_visionfive2/u-boot.itb
报错无法找到对应的路径和文件。
经检查发现烧录的镜像应该使用预安装的服务器版本镜像,下载地址:ubuntu-24.04-preinstalled-server-riscv64+milkvmars.img.xz
其余的根据官方文档的正常流程即可启动 Ubuntu
烧录 Bootloader
在前面更新上有源构建的 U-boot 时,由于我一开始没有使用预安装的镜像,导致 U-boot 错误加载,Bootloader损坏需要更新。官方文档中有提供升级教程:Mars Bootloader 引导程序升级 | Milk-V (milkv.io),但是由于我没有双公头 USB 数据线,尝试其他办法。
主要参考:赛昉文档 使用 SecureCRT 串口工具进行传输。
上电前,将启动模式跳线切换为UART模式(RGPIO_1,RGPIO_0: 1,1),然后按住 Mars 的升级键按键后进行上电。串口输出一下内容表示正确进入升级模式
(C)StarFive
CCCCCCCCCCCCC
更新需要用到的文件即下载链接如下:
jh7110-devkits-recovery-20230918.bin
mars_u-boot-spl.bin.normal.out
mars_visionfive2_fw_payload.img
根据 赛昉文档 通过 XMODEM 依次传输以上文件,完成后断电,将启动模式恢复(默认RGPIO_1,RGPIO_0: 0,0)。上电就可以看到串口输出 Bootloader 正常日志。
Ubuntu 启动
正常引导 Ubuntu 镜像后,首次启动设置完用户和密码后就可以进入 Ubuntu了
ubuntu@ubuntu:~$
一开始我打算使用 Wi-Fi 连接网络
cd /etc/netplan/
sudo vi 50-cloud-init.yaml
文件内容如下:
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
zz-all-en:
dhcp4: true
match:
name: en*
optional: true
zz-all-eth:
dhcp4: true
match:
name: eth*
optional: true
version: 2
于是直接使用网线连接接入网络。
成功接入网络后我尝试使用 Vscode SSH 进行控制,但是由于不支持远程主机的体系结构,无法建立连接。最终使 MobaXterm 进行远程连接。