一.开发者常见问题
1.已解决问题
工具链与开发环境
【问题】K1能连vscode吗
【回答】VSCodium
【问题】官方的gcc编译环境有推荐的版本吗?是否在最新的gcc15下没法编一键过,需要换到gcc11
【回答】bianbu2.1的是gcc13
【问题】musepi可以查看npu使用率吗?
【回答】跑 nn 的就是 cpu,扩展了指令集
内核与底层调试
【问题】进迭对linux LTS内核是采用backporting的机制吗?
【回答】需要才backporting
【问题】在按rv spec使用opensbi的pmp set配置pmp后,pmp get读取相关csr正常,但手动访存没有触发异常。
【回答】做了个简单的示例,需要注意的有2个点
1、如果是M态下访问,则需要设置PMP_L
2、配置后需要执行sfence.vma指令
测试程序:
int sbi_hart_map_saddr_entry(unsigned long entry, unsigned long addr, unsigned long size)
{
unsigned int pmp_flags = (PMP_L);
unsigned long order, base = 0;
struct sbi_scratch *scratch = sbi_scratch_thishart_ptr();
for (order = MAX(sbi_hart_pmp_log2gran(scratch), log2roundup(size));
order <= __riscv_xlen; order++) {
if (order < __riscv_xlen) {
base = addr & ~((1UL << order) - 1UL);
if ((base <= addr) &&
(addr < (base + (1UL << order))) &&
(base <= (addr + size - 1UL)) &&
((addr + size - 1UL) < (base + (1UL << order))))
break;
} else {
return SBI_EFAIL;
}
}
pmp_set(entry, pmp_flags, base, order);
asm __volatile(“sfence.vma”);
return SBI_OK;
}
sbi_printf(“step0\n”);
*(volatile int *)0x40180000 = 0;
sbi_printf(“step1\n”);
extern int sbi_hart_map_saddr_entry(unsigned long entry, unsigned long addr, unsigned long size);
sbi_hart_map_saddr_entry(2, 0x40180000, 0x80000);
sbi_printf(“step2\n”);
*(volatile int *)0x40180000 = 0;
sbi_printf(“step3\n”);
【问题】编号越小的pmp优先级越高,napot范围匹配首先命中的pmp进行判断。也就是说假设两个pmp配置存在区域重叠,可以被一个访存同时匹配,则处理器会选择较小的pmp判断。是这样吗?
【回答】spec里允许重叠,以低序号为命中
【问题】请问这个k1是否支持非对齐内存访问,支持的话在哪里可以配置
【回答】标量支持非对齐访问, 默认就支持不用专门配。向量不支持非对齐访问。
【问题】Godot引擎无法使用vulkan图形后端
【回答】在 img-gpu-powervr=24.26603887bb8 中解决。
使用方法:
安装 rvgdvm 后,进入对应目录,使用以下命令运行 godot.linuxbsd.editor.rv64.llvm:
Shell
取消自动换行
复制
~/.rvgdvm/versions/4.4.1$ ./godot.linuxbsd.editor.rv64.llvm --display-driver wayland --rendering-driver vulkan
可以看到运行输出:
Shell
取消自动换行
复制
Godot Engine v4.4.1.stable.custom_build.dafc47390 (2025-04-25 09:38:02 UTC) - https://godotengine.org
Vulkan 1.3.277 - Forward+ - Using Device #0: ImgTec - PowerVR B-Series BXE-2-32 MC1
Editing project: /home/bianbu/新建游戏项目
Godot Engine v4.4.1.stable.custom_build.dafc47390 (2025-04-25 09:38:02 UTC) - https://godotengine.org
Vulkan 1.3.277 - Forward+ - Using Device #0: ImgTec - PowerVR B-Series BXE-2-32 MC1
系统镜像与部署
【问题】muse pi pro用官方源码编译的sd卡镜像,在poweroff时日志显示没有I2C transfer handler。我看好像源码中确实没有handler,这个会影响什么吗?
【回答】我们驱动没有注册i2c master_xfer_atomic传输模式,看内核的处理这里就是一个警告。你应该修改了相关配置
【问题】muse box 能装openwrt吗
【回答】目前官方仅支持muse pi 和muse n1的:简介 | Bianbu Linux | 进迭时空开发者社区 可以自己做适配
2.导入内部问题
【问题】请问在 Muse Pi Pro 上面启动 Linux 6.6.63 的内核(从官方仓库编译出来的) + Debian Trixie 的 initramfs(其中 firmware 和 modules 是从 BianbuOS 2.3 的镜像里提取的)和 rootfs,会遇到 sudo 执行的所有指令都返回 error: bad address 怎么解决
【问题】请问能提供minimal版本的源码吗?现有的源码仓库有模块没法正常编,注释并处理掉依赖后系统起不来,很难定位问题
【问题】有沒有人用spacemit K1 跑openwrt?? 能不能幫我攪個r8125網卡的ipk? 謝謝了![流淚]
【问题】希望进迭能够提供 aarch64 平台原生的交叉编译工具链,gcc和相关工具
【问题】MUSE Pi识别不到插入的SSD
【问题】可以在virtualbox之类的虚拟机管理器中挂载bianbu的镜像吗
二.优秀案例
Bilibili
【Bainbu Robot】【解决方案】基于RISC-V芯片Bianbu Robot 机器人解决方案_哔哩哔哩_bilibili
三.新闻速递
OpenCV新模块HAL riscv-rvv:通过RVV 1.0解放RISC-V CPU的更多性能