【进迭时空双周报】-(20250505-0519)

一.开发者常见问题

1.已解决问题

问题类型 链接
软件与生态支持 软件与生态支持
性能相关 性能相关
开发工具与编译 开发工具与编译
使用与配置 使用与配置
产品相关 产品相关
指令集与编程语言 指令集与编程语言

软件与生态支持

问题】请问bianbu系统级软件库里有运程登录软件吗?就是用musebook远程登录网络中的服务器
回答】默认有ssh客户端的。ssh cli试试,远程服务器ifconfig看网络IP,本机执行ssh 你的名字@IP

问题】出厂预装的那个系统到哪可以下载
回答Index of /image/k1/version 烧录最新的bianbu 2.1.2,生态产品可以体验最新的bianbu-computer 2.1.4

问题】咱们的板子可以安装其他版本的内核吗?我从linux官网上下的6.7的内核,可以编译完安装使用吗
回答https://gist.github.com/pigmoral/14ba169c07f5b24b92ad9652b762dd49
能跑,这位神跑起来了主线kernel

问题】请问下有哪些可以在rvv和标量之间对比提升比较大的库嘛
回答】那其实主要也就是 ncnn openblas fftw这种

问题】java是不是和k1不匹配?因为硬件架构不同?
回答】软件仓库里有的。sudo apt install default-jdk

问题】现在docker有吗?RISCV架构容器多吗
回答https://hub.docker.com/search?architecture=riscv64 不多,也就3070个项目支持吧cncf很多项目还需要等Debian Trixie 发布,目前火热的mcp 官方比较不在意%

问题】请问K1实现vfmadot这个指令了吗,vmadot可以使用,编译vfmadot会报错unrecognized opcode
回答】没有

问题】话说是不是有可能进迭去要一个wps的riscv64版本
回答】永中office在K1的使用效果不错,目前永中在大力支持哈。

问题】Jupiter notebook是个独立的应用,应该是操作系统层面的安装,可为啥老师要从python里用pip install jupyter安装?
回答】pip是python的包管理器,用起来比较方便。你可以参考该视频了解一下在K1上的具体使用: https://b23.tv/dQ3nlUMJupyter notebook是个网络程序。
python库都是从服务器调取的本地装的话,就是在本地启一个服务

问题】openwebui对应容器的 Dockerfile 是否开源? 如果方便的话能否发一下学习?
回答】OpenWebUI使用指南 - AI - 进迭RISC-V论坛

性能相关

问题】兆芯ZHAOXIN KX-6640MA处理器的sse指令集的浮点性能优于avx,为什么?
回答】参考 https://chipsandcheese.com/p/the-weird-and-wacky-world-of-via-part-2-zhaoxins-not-quite-electric-boogaloo?utm_source=publication-searchavx
拆成了两个128-bit microops去做,所以吞吐肯定不会比sse好但是avx会对lujiazui的rob有负面影响,再加上latency大很久之前我测6640ma的ncnn的时候就发现sse比avx性能略好

开发工具与编译

问题】请教一下prima.cpp集群的用法,我这边安装了,然后启动的时候卡在了这个界面,你这边知道怎么回事嘛
回答】这是正常的,master还没启动的话,就是这样,worker会等待master。

问题】主线内核是基于什么硬件呢?x86 or arm?
回答】全支持,loongarch 都有,loongarch 上游化做得很好

问题】进迭原封不动地使用主线内核是可以实现的吗?
回答https://lore.kernel.org/all/?q=s:k1 可以看下主线的情况,目前是基本可用状态

问题】之前一直说要做ATLAS但进迭好像没有放native toolchain,思考 -mcpu=spacemit-x60 和对应的 cost model 有吗?atlas的话编译时要用本机测blocking factor/cache edge之类的,然后似乎之前也没人写过rvv kernel所以大概需要比较强的自动向量化支持?
回答】bianbu上的toolchain,进迭扩展指令的汇编器支持是有加上去的。gcc-13和llvm-18是有-mcpu=spacemit-x60.
gcc-14和llvm-19还没加,以后会加上。
调度的model的话,主要是加的llvm的,gcc里面没有配很详细的向量的costmodel确实也还需要调下,目前用来做向量化效果不太好而且cost model调好的情况下似乎llvm的自动向量化效果也不是太好,这个是rvv特别问题。

问题】用了C910V怎么能编译成K1能用的呢?opts: TARGET=RISCV64_ZVL256B BINARY=64 ARCH=riscv64
回答】这不行,910是071的版本x280的话,编译选项里面要去掉那个vl512的,其他不用改

问题】请问进迭优化的clang和lld有文档吗
回答】bianbu没有单独写文档,跟 进迭时空开发者社区 交叉编译工具链这个一样,主要就是加-mcpu=spacemit-x60来启用

问题】工具链sysroot里面似乎没有wayland相关的头文件?
回答】没有,默认只有基础的头文件

问题】有制作sysroot的方法吗
回答】交叉编译工具链吗?sysroot就在工具链解压后的sysroot目录下,如果额外准备了库或者头文件,直接拷贝进去到对应的目录就行如果不拷贝到工具链的目录,编译的时候用-I和-L等参数来指定别的搜索路径也行

问题】工具链缺少wayland相关的头文件,有没有自行制作工具链sysroot的方法
回答】交叉编译工具链sysroot就在工具链解压后的sysroot目录下,如果额外准备了库或者头文件,直接拷贝进去到对应的目录就行。
但如果涉及的文件较多,例如想把整个bianbu的rootfs拿过来用,或许可以考虑用sshfs将bianbu的文件系统挂载过来用,但没有做过太多实验,可能要实测下碰到具体问题再解决。

问题】MUSE-Pi在适配新的摄像头(例如OV8858)把ov8858_sensor.c写好,把ov8858相关的ov8858_spm.c等相关编写好之后,如何编译新的,以及怎么替换掉开发板对应的内容呢
回答】根据CMakeLists.txt编译规则进行替换即可。以bianbu-24.04/0.2.32版本为例,需要替换的so和bin文件包括:
usr\bin\cam-test /usr/bin/
usr\lib\libisp.so /usr/lib/
usr\lib\libcppfw-2.0.so /usr/lib/
usr\lib\libcpp.so /usr/lib/
usr\lib\libispeagle.so /usr/lib/
usr\lib\libtuningtools.so /usr/lib/
usr\lib\libvi.so /usr/lib/
usr\lib\libccic.so /usr/lib/
usr\lib\libsdkcam.so /usr/lib/
usr\lib\libcam_sensors.so /usr/lib/
添加新sensor支持时,不需要修改CMakeLists.txt。cmake时会自动检索目录进行编译。

使用与配置

问题】今早打开musebook,发现浏览器无法正常打开昨天在学习linux命令的时候把hostname由k1改成了新的名字,还在hosts文件里添加了静态IP地址和新的名字之间的关联。这应该不会影响到浏览器的正常打开吧?
回答】应该不会,但是在现代发行版中,可能修改hostname会涉及到其他配置变更,建议如果有hostnamectl命令的话尽量用这个命令去修改

问题】请教个问题,怎么在用户层获取pvr gpu型号
回答】glxinfo或者进入谷歌浏览器输入chrome://gpu

问题】apt-get update 报签名无效,EXPKEYSIG,有知道怎么解决的吗?
回答常见问题 | Bianbu | 进迭时空开发者社区

问题】有没有能把本机bianbu的都拷贝过去的方法
回答】要不scp强行全拷贝出来,或者把磁盘上的文件系统拷贝出来再挂载,或者看怎么从bianbu的镜像里解出来?
没有实际操作过或者考虑用sshfs将板子的目录挂载过来,当成sysroot来用?

问题】请问有没有方法在用户层获取IMG GPU的占用率还有显存占用
回答】su cd /sys/kernel/debug/pvr/ watch cat status

问题】dify使用本地大模型ollama时,初次使用时,使用 ip 访问 ip/install 这个显示 localhost:5001 访问不到,现在强制替换了 js 文件中的 localhost 为我自己的 ip,请问这个有没有更优雅的解决方法
回答】可以尝试在docker-compose里面自己修改端口号,docker-compose在这:https://archive.spacemit.com/spacemit-ai/dify/spacemit-dify.tar.gz

问题】SDL2无法在wayland环境初始化,疑似GPU驱动问题,默认的gnome wayland和安装xfce后在llvmpipe下运行,添加启动环境变量强制为x11
回答】在编译SDL2之前需要安装libdrm-dev这个库,然后可以正常运行。

产品相关

问题】请问k1的这些板卡,eeprom里存的以太网mac全都是fe:fe:fe:xx:xx:xx吗?
回答】这些是随机临时地址,第一次随机生成,后面就不变了。除非擦除了eeprom,可以通过烧写工具烧录客户定制地址

问题】请问x60的bf16是只有ime扩展吗
回答】标准vector指令,都支持bf16,ime扩展不支持

问题】k1的板子,有办法看CPU的温度么
回答】/sys/class/thermal/

问题】请问,A60还有A100,是X60和X100改名了,还是说有新的芯片呢
回答】a60是带ai扩展的

问题】biandu镜像是否有对MUSE Paper机器的支持呢??我用工具将biandu镜像刷到MUSE Paper,但是这会使机器的屏幕失灵噢。。。
回答】musepaper仅支持openharmony,暂无支持bianbu的计划

指令集与编程语言

问题】和risc-v机器指令集对应的汇编语言 与和mips/龙芯机器指令集对应的汇编语言一样吗?
回答】这里说的【汇编语言】可能是指人能看和写的【助记符】,理论上,每一个架构都有自己的助记符,是不一样的。
RISC-V 的汇编语言是借鉴了 MIPS 的,所以看起来会像。 x86 和 arm 的就跟 RISC-V 的不太像。但是基本上描述的都是加减大小跳转几个操作。
linux kernel 里面启动阶段和一些特殊处理,如果涉及架构,每个架构一般都对应一个汇编文件。
打开 deepwiki,搜 linux,然后打开页面开看,deepwiki 直接看子系统,不会的就审问它

问题】书上说linux内核是由c语言和汇编语言写成的,那除了懂c还要懂汇编?
回答】c语言也是汇编一步步自举出来的,早期的c没有这么多限制和花头,就是简单的汇编语言翻译器。汇编也是种高级机器语言助记符,是各家计算机硬件的公司用机器语言做出来抢市场的。这也就是为啥诞生于pdp11的c语言有地址运算符,而同期基于的6502的各家编译器都是简单的basic的原因…有兴趣可以看看这个dmr的这个页面,或者搜索关键字“pre k&r C language”

2.导入内部问题

问题】有muse pi安装Ubuntu的教程吗?

问题】问下k1下跑util-linux相关的测试时,有人碰到过无法创建tty的问题么script: failed to create pseudo-terminal: No such device

问题】大家有没有编译出能在k1上明显能利用到向量扩展进行性能优化的opencv or openblas的教程嘛,包括源码以及编译工具链的选择https://zhuanlan.zhihu.com/p/18825495043 按这个教程报错

问题】请问一下,有群友遇到 在k1上已经设置 openblas 8线程,但是运行 rvv1.0 版本的 openblas benchmark 程序的CPU利用率低于400%的情况吗,这种情况有办法解决嘛

问题】bianbu 提供的 libVK_IMG 似乎没编译进去 X 支持的代码这样 X 用不了(包括 Xwayland能不能开一下 X 支持在编译驱动的时候如果原来有 WINDOW_SYSTEM=wayland ,加上 SUPPORT_XWAYLAND=1

问题】Hi, I have an orange pi rv2 and was wondering if anyone could share some useful links for that board.
I like the board it is very low power but was wondering how to use the npu and gpu. thanks.

问题】Godot引擎无法使用vulkan图形后端

二.优秀案例

YouTube

SpacemiT MUSE Pi Pro RISC-V SBC Software Test - YouTube

Unboxing SpacemiT MUSE Pi Pro RISC-V SBC - YouTube

I Ran an LLM on a 6W RISC-V SBC - YouTube

三.新闻速递

RISC-V LLVM Scheduler Tuning For SpacemiT-X60 On Clang Yields 4~18% Speedups - Phoronix

Jupiter NX SoM - An NVIDIA Jetson Nano/NX alternative powered by SpacemiT K1 octa-core RISC-V SoC - CNX Software

Banana Pi BPI-CM6 is an octa-core RISC-V system-on-module compatible with Raspberry Pi CM5 carrier boards - CNX Software