一.开发者常见问题
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