MilkV Mars Ubuntu 使用记录

本文主要记录使用 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 进行远程连接。

Ref: