目录
写在前面
内核编译
烧录失败的示例(这种情况下就和插上空卡一样)
进入系统
串口进入
SSH接入
写在前面
基本上大部分的问题都能在开源社区上得到答案,记录下我遇到的问题.
附上开源社区
MilkV Community
这里的引脚图和板子的丝印有点对不上,比如说后面串口0.
内核编译
在这里,需要用到 Mirco sd卡,准确的说是TF卡,TF卡比sd卡小,可通过一个转接器适配SD卡.
参考
基于Ubuntu20.04详细的Duo编译环境搭建指南 - Duo - MilkV Community
若直接快速开始则烧录官网提供的以及编译好的镜像
Releases · milk-v/duo-manifest (github.com)
可参考
Boot the Duo | Milk-V (milkv.io)s
比如说通过这个balenaElcher软件烧录镜像,我遇到的问题校验失败,问了群里的佬是不需要管校验是否成功,但把SD卡插回DUO结果依然跑不起来.
我的解决方案:
- 在win11下格式化sd卡,选择NTFS文件系统。
- 用windows32Diskmanger成功烧录了镜像。
烧录失败的示例(这种情况下就和插上空卡一样)
:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
E:Boot failed (8).
E:ra=0x440a264
E:RESET:panic:-1
WD.C.SCS/0/0.WD.URPL.SDI/25000000/6000000.SNF.USBI.BS/EMMC.PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
E:Boot failed (8).
E:ra=0x440a264
E:RESET:panic:-1
WD.C.SCS/0/0.WD.URPL.SDI/25000000/6000000.SNF.USBI.BS/EMMC.PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
E:Boot failed (8).
E:ra=0x440a264
E:RESET:panic:-1
WD.C.SCS/0/0.WD.URPL.SDI/25000000/6000000.SNF.USBI.BS/EMMC.PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
E:Boot failed (8).
E:ra=0x440a264
E:RESET:panic:-1
WD.C.SCS/0/0.WD.URPL.SDI/25000000/6000000.SNF.USBI.BS/EMMC.PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
E:Boot failed (8).
E:ra=0x440a264
E:RESET:panic:-1
WD.C.SCS/0/0.WD.URPL.SDI/25000000/6000000.SNF.USBI.BS/EMMC.PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
E:Boot failed (8).
E:ra=0x440a264
E:RESET:panic:-1
WD.C.SCS/0/0.WD.URPL.SDI/25000000/6000000.SNF.USBI.BS/EMMC.PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
E:Boot failed (8).
E:ra=0x440a264
E:RESET:panic:-1
WD.C.SCS/0/0.WD.URPL.SDI/25000000/6000000.SNF.USBI.BS/EMMC.PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
E:Boot failed (8).
E:ra=0x440a264
E:RESET:panic:-1
WD.C.SCS/0/0.WD.URPL.SDI/25000000/6000000.SNF.USBI.BS/EMMC.PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
PS. E:load param1 (-78)
进入系统
串口进入
通过USB转TTL串口连接可以成功进入。波特率115200.引脚按宣传图上去配置即可。
SSH接入
这里就需要用到RNDIS了.
我之前还在想一块板子如果本身不提供WIFI,怎么可能会有局域网下的IP地址。
结果就是RNDIS.
什么是RNDIS:
RNDIS(Remote Network Driver Interface Specification)是微软定义的一种网络设备接口规范。它允许USB设备(如手机、平板电脑)使用USB数据线与主机(如PC)连接后,通过USB接口实现网络功能。RNDIS的主要作用是:1. 允许USB设备在连接到主机后,表现为一个标准的以太网适配器,并被分配网络地址。这使得USB设备可以像常规网络设备一样访问网络。2. 使USB设备的网络功能不依赖于特定的主机平台或操作系统。只要主机支持RNDIS协议,就可以实现与USB设备的网络互联。3. 简化USB设备的网络协议栈设计,只需要实现RNDIS协议即可支持多种主流操作系统。
有了IP地址于是可以SSH进行连接而不需要每次都需要USB转TTL插串口线。使得交互变得便捷。
参考官方文档上的:
Set up the working environment | Milk-V (milkv.io)
遇到的问题:
win11 下通过typec去连接duo开发板,结果显示没有RNIDS设备,如果有RNDIS设备却没有驱动则会在其他设备那显示叹号!.
于是查资料,判断是否是系统文件缺失的问题:(至于为什么要查,来自gpt的回复)
如图 RNDISMP.sys存在,所以不会是系统的问题.
后面换了一根TYPEC线,问题得到解决.(结果却是线的问题),再根据官方文档上来更新RNDIS驱动问题解决。
成功进入系统开始愉快继续折腾: