开发板版本为 V1.3b 已经成功尝试使用官方提供的debian镜像与openEuler 23.03-v1-xfce启动。
在尝试使用openEuler 22.03-v2 base与xfce启动时黑屏无反应,电源指示灯(红灯)亮,CPU指示灯(绿灯)不亮。
上述操作均使用HDMI接口。除SD卡与HDMI接口外无其它外设连接,启动模式尝试过QSPI(00)与SDIO(01)。
怀疑是固件问题,请问有无朋友遇到过类似问题?
开发板版本为 V1.3b 已经成功尝试使用官方提供的debian镜像与openEuler 23.03-v1-xfce启动。
在尝试使用openEuler 22.03-v2 base与xfce启动时黑屏无反应,电源指示灯(红灯)亮,CPU指示灯(绿灯)不亮。
上述操作均使用HDMI接口。除SD卡与HDMI接口外无其它外设连接,启动模式尝试过QSPI(00)与SDIO(01)。
怀疑是固件问题,请问有无朋友遇到过类似问题?
openeuler22.03,很老了,22年的,比openeuler23还老,既然23能用,还需要研究22吗?我没用过openeuler for vf2,因为到目前为止还是官方的镜像最好用。你如果继续研究openeuler22, 你可以尝试连接上UART串口通信,看看有啥提示输出。
你还可以尝试把官方提供的debian2409镜像,升级到debian13,看看vf2在debian最新系统上的表现。升级到debian13,你可以参考这里
具体什么原因,只能看 uart 的输出确认。不过你新版本没问题,反而旧版本不行?
你最好确认一下内核,是不是 JH7110 的,而且版本号是不是匹配。
uboot 有过几次升级,按说应该兼容旧内核。但是详细原因也真不好说是不是 uboot 版本的支持问题。
PS:明确一点是 uboot 的上游版本和 starfive 的内核不兼容。用 uboot 上游版本,可以支持 EFI ,但是只能用 kernel.org 那边的新内核。同时上游的内核,也无法在 starfive 的 uboot 上启动。现在很多发行版都选择上游 uboot 配 6.12 系列了。你看看你手里的不能启动的这个系统,是不是也被替换了非 starfive 发布的内核吧。
你好,我之前已经附上了系统启动时串口输出的日志,但是帖子处于审核状态,没有展示出来。
你好,我发现了一个可能的潜在问题原因。我在OpenEuler官网中看到了22.03LTS的Linux内核为5.10,而StarFive2的Uboot代码仓库自述文件中描述 * 支持 Linux 内核 5.15.0、6.6.20、6.12.5。我翻阅了之前发布的所有Uboot版本,均未找到支持引导5.10Linux内核启动的Uboot,但在社区中确实存在openEuler22.03运行在StarFive2的先例这里。请问是否存在一版可以引导5.10Linux内核启动的固件而我没有发现?
感谢你的回答,我需要使用ROS2来控制工业机器人,ROS2官方并不提供对RISC-V的支持,OpenEuler SIG有对ROS2 Humble在OpenEuler 22.03上的移植与支持维护,所以我需要安装22.03。我手头上没有USB转TTL,新买的还在快递,等快递到了我查看一下有什么信息输出。
你好,我借到了一个USB转TTL模块,后附在使用22.03系统镜像时的启动信息。
SD卡在烧录Debian镜像时可以正常启动,所以大概率不是SD卡的问题。
我已经使用官方文档中提供的recovery方法将uboot与SPL固件更新到了v5.14.1,更新固件后有一个新的变化,在使用2203镜像QSPI引导启动时,可以显示板卡的logo页面,而之前是纯黑屏,但无法进入系统的问题仍然存在。
QSPI模式日志:
U-Boot SPL 2021.10 (May 07 2025 - 15:41:57 +0800)
LPDDR4: 4G version: g8ad50857.
Trying to boot from SPI
OpenSBI v1.2
/ __ \ / | _ _ |
| | | | __ ___ _ __ | ( | |) || |
| | | | '_ \ / _ \ '_ \ ___ | _ < | |
| || | |) | __/ | | |) | |) || |
_/| ./ _|| ||/|/___|
| |
|_|
Platform Name : StarFive VisionFive V2
Platform Features : medeleg
Platform HART Count : 5
Platform IPI Device : aclint-mswi
Platform Timer Device : aclint-mtimer @ 4000000Hz
Platform Console Device : uart8250
Platform HSM Device : —
Platform PMU Device : —
Platform Reboot Device : pm-reset
Platform Shutdown Device : pm-reset
Platform Suspend Device : —
Firmware Base : 0x40000000
Firmware Size : 392 KB
Firmware RW Offset : 0x40000
Runtime SBI Version : 1.0
Domain0 Name : root
Domain0 Boot HART : 1
Domain0 HARTs : 0*,1*,2*,3*,4*
Domain0 Region00 : 0x0000000002000000-0x000000000200ffff M: (I,R,W) S/U: ()
Domain0 Region01 : 0x0000000040000000-0x000000004003ffff M: (R,X) S/U: ()
Domain0 Region02 : 0x0000000040040000-0x000000004007ffff M: (R,W) S/U: ()
Domain0 Region03 : 0x0000000000000000-0xffffffffffffffff M: (R,W,X) S/U: (R,W,X)
Domain0 Next Address : 0x0000000040200000
Domain0 Next Arg1 : 0x0000000042200000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Domain0 SysSuspend : yes
Boot HART ID : 1
Boot HART Domain : root
Boot HART Priv Version : v1.11
Boot HART Base ISA : rv64imafdcbx
Boot HART ISA Extensions : none
Boot HART PMP Count : 8
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 34
Boot HART MHPM Count : 2
Boot HART MIDELEG : 0x0000000000000222
Boot HART MEDELEG : 0x000000000000b109
U-Boot 2021.10 (May 07 2025 - 15:41:57 +0800), Build: jenkins-github_visionfive2_6.6-10
CPU: rv64imacu_zba_zbb
Model: StarFive VisionFive V2
DRAM: 4 GiB
MMC: sdio0@16010000: 0, sdio1@16020000: 1
Loading Environment from SPIFlash… SF: Detected gd25lq128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
StarFive EEPROM format v2
--------EEPROM INFO--------
Vendor : StarFive Technology Co., Ltd.
Product full SN: VF7110B1-2310-D004E000-00001763
data version: 0x2
PCB revision: 0xb2
BOM revision: A
Ethernet MAC0 address: 6c:cf:39:00:52:34
Ethernet MAC1 address: 6c:cf:39:00:52:35
--------EEPROM INFO--------
In: serial
Out: serial
Err: serial
Model: StarFive VisionFive V2
Net: eth0: ethernet@16030000, eth1: ethernet@16040000
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1 is current device
Try booting from MMC1 …
Can’t set block device
Card did not respond to voltage select! : -110
starfive_pcie pcie@2B000000: Port link up.
starfive_pcie pcie@2B000000: Starfive PCIe bus probed.
PCI: Failed autoconfig bar 10
starfive_pcie pcie@2C000000: Port link down.
starfive_pcie pcie@2C000000: Starfive PCIe bus probed.
PCI: Failed autoconfig bar 10
Device 0: unknown device
Device 0: unknown device
Tring booting distro …
switch to partitions #0, OK
mmc1 is current device
Try booting from MMC1 …
Can’t set block device
Retrieving file: /extlinux/extlinux.conf
Can’t set block device
Error reading config file
Card did not respond to voltage select! : -110
Device 0: unknown device
Device 0: unknown device
StarFive #
SDIO模式启动日志:
▒▒BOOT fail,Error is 0xffffffff
Kitanosakana,你好,感谢你给我连续回复了4条信息。之前我不知道你研究openEuler是为了ros2, 以为你是作为桌面使用。我使用和研究vf2主要是启动正常的官方镜像,所以引导问题我没太多研究。现在你已经提供了引导信息,可以等待论坛里的大神高手回复,或者去问问openEuler的研发者(虽然他们好像已经停止支持vf2有一两年); 或者你到vf2的英文论坛提问,英文区的人比中文区多,而且中文区很多人也去英文区的看贴的。
真有这个内核版本的:
但是太老了,我怀疑 starfive 只有最老版本的 uboot 才能支持启动。
你可能需要去 github 上面找旧版本源代码自己编译才行。
我建议你还是升级一下内核,用新版内核来启动这个旧系统。
如果不想升级内核,还是先看看启动的 log 吧,也不排除可能是其他原因。比如文件系统什么的。
不排除你可能遇到的就是 SD 卡问题…… VF2 挑 TF 卡。
忘了之前有人说是什么原因,好像是供电设计有问题,导致有些卡会触发切换高速状态,但是供电问题导致切换失败。
已经有成果的情况下,按说你从上游拿源代码自己编译实现 RISCV 下工作应该不是问题。
其实 ROS2 只要没有调用硬件专属指令,没有特殊的硬件依赖算法,直接编译就行。这种本来就有硬件问题的软件,按说也不会轻易去写绑定硬件的代码。
你好,问题已经被我初步定为并修复,是一个uboot启动脚本环境变量初始化错误导致的。具体见 VisionFive 2: U-Boot Fails to Autoboot openEuler from SD Card; HDMI Non-Functional After Workaround · Issue #113 · starfive-tech/VisionFive2
其实不是 bug ,而是当初就是这么设计的,硬写的 TF 卡分区结构(当然,你也确实可以说这是个问题,但是 starfive 的 debian 结构和这个设置一致)。
现在上游 uboot 已经改用 EFI 启动了,会自动找 EFI 的分区进行启动。
直接用发行版自己的u-boot启动就好。starfive的u-boot只兼容自己的kernel,而且有很多硬编码