保姆级教程:在Milk-V Duo 256M上编译运行Sophpi SDK,解决rootfs缺失问题

张开发
2026/5/25 5:55:13 15 分钟阅读
保姆级教程:在Milk-V Duo 256M上编译运行Sophpi SDK,解决rootfs缺失问题
深度解析在Milk-V Duo 256M上构建完整Sophpi系统的关键步骤第一次接触SG200x系列芯片的开发板时最令人头疼的问题莫过于编译出的系统无法正常启动——控制台反复报错连最基本的命令行工具都找不到。这往往是由于默认配置中缺少rootfs根文件系统造成的。本文将手把手带你解决这个痛点从环境配置到镜像烧录完整呈现构建可运行系统的全流程。1. 开发环境准备与源码获取在开始之前确保你的开发主机满足以下基础要求操作系统推荐使用Ubuntu 20.04 LTS或更新版本工具链已安装git、make及交叉编译工具链存储空间至少预留50GB可用空间源码及编译产物较大获取Sophpi SDK源码时需要注意仓库采用子模块设计。执行以下命令克隆主仓库git clone -b sg200x-evb gitgithub.com:sophgo/sophpi.git cd sophpi ./scripts/repo_clone.sh --gitclone scripts/subtree.xml提示由于子仓库数量较多下载过程可能耗时较长。建议在网络状况良好的环境下操作或使用--depth1参数减少克隆深度。2. 关键配置启用rootfs生成默认配置下Sophpi SDK不会生成完整的根文件系统这会导致编译出的镜像无法提供基本的使用环境。以下是必须修改的核心配置项初始化编译环境source build/cvisetup.sh defconfig sg2002_wevb_riscv64_sd进入menuconfig界面启用rootfs选项menuconfig导航至ROOTFS options --- [*] Enable buildroot generate rootfs保存配置后检查build/.config文件应包含CONFIG_BUILDROOT_FSy如果通过menuconfig无法保存配置需要手动编辑defconfig文件vim build/boards/cv181x/sg2002_wevb_riscv64_sd/sg2002_wevb_riscv64_sd_defconfig添加或修改CONFIG_BUILDROOT_FSy3. 完整编译流程与问题排查执行全量编译前建议先清理之前的构建产物clean_all然后启动完整编译过程视硬件配置可能需要1-3小时build_all常见编译错误及解决方案错误类型可能原因解决方法子模块下载失败网络连接问题手动执行git submodule update --init工具链缺失未安装依赖运行sudo apt-get install build-essential libncurses-dev权限不足非root用户操作检查目录权限避免使用sudo编译编译成功后使用以下命令生成可烧录镜像pack_burn_image生成的镜像文件位于install/soc_sg2002_wevb_riscv64_sd/目录下文件名格式为sophpi-duo-YYYYMMDD-HHMM.img。4. 镜像烧录与系统验证推荐使用BalenaEtcher工具进行镜像烧录支持Windows/macOS/Linux多平台将Micro SD卡插入读卡器打开Etcher选择编译生成的.img文件选择目标存储设备点击Flash!开始烧录烧录完成后将SD卡插入Milk-V Duo 256M开发板通过串口终端观察启动日志。成功启动的标志是看到类似以下输出[ 0.000000] Linux version 5.10.0 (buildubuntu) (riscv64-buildroot-linux-gnu-gcc) [ 0.000000] Machine model: milkv-duo256 ... Welcome to Buildroot buildroot login:5. 进阶技巧模块化编译当只需要修改特定组件时可以分步编译以节省时间# 编译FSBL(First Stage Bootloader) build_fsbl # 编译U-Boot build_uboot # 编译Linux内核 build_kernel # 单独构建根文件系统 build_rootfs这种编译方式特别适合以下场景仅修改了内核驱动需要调整rootfs中的软件包调试bootloader相关问题记得在分步编译完成后仍需执行pack_burn_image重新打包镜像。6. 开发板功能验证系统成功启动后建议运行以下基础测试存储检测df -h确认挂载点显示正常外设检查ls /dev查看关键设备节点是否存在网络测试如果连接了网络模块ifconfig -a ping 8.8.8.8性能监测top观察系统资源占用情况遇到任何功能异常时首先检查电源供应是否充足推荐5V/2ASD卡接触是否良好串口连接配置是否正确115200波特率7. 开发资源扩展为了充分发挥SG2002芯片的1.0TOPS算力可以进一步探索TPU加速部署深度学习模型到内置张量处理器双核调度利用RISC-V/ARM双架构协同处理外设开发通过丰富的GPIO接口连接传感器实际项目中最耗时的往往是环境配置阶段。建议将配置好的开发环境打包为Docker镜像方便团队共享和后续复用。

更多文章