(also posted on @selfhost)

RISC-V is a non-proprietary instruction set that is an alternative to ARM. I had thought that we were still waiting for a stable Linux distribution on RISC-V devices, but it turns out many RISC-V machines can run Debian already.

Does anyone have a RISC-V device that they use regularly? How has it been working?

  • I have a Milk-V Mars but it really isn’t performant enough for any task I have for an SBC. Distro support seems to be a pain too, as the provided Debian image isn’t meant to run on repos aside from a Debian snapshot from 2022.

    I really do hope things improve. I’m planning on moving over to an RK3588 ARM board for desktop daily drivering but one day I’m hoping a decently affordable RISC V alternative will turn up.

  • Yes, I have a VisionFive 2 and I use it to host some websites. I have am Arch Linux image compiled by a user in a forum, but the userspace packages are from a RISC-V repository from a other people working in Arch in general.

    I could run my websites but it wasn’t easy at first, because, yes I have Docker but there are almost no images for riscv64, so I had to do some compiling and build images in a local registry. Bu now it works pretty well.

    • It sounds like the answer to “can I run this application on RISC-V” is very dependent on what the backend for that application is. What’s the backend stack for your websites? Are they static HTML sites, or do they have other components? Someone else mentioned that they built postgres and mariadb Docker images for RISC-V, but I don’t even know which programming languages can be compiled for RISC-V right now.

      • Yes. My apps are not static: one is a Django app (Python) using Postgres. I had to compile both Postgres and Python but that’s because I wanted to use them in Docker but there were no images available (maybe there are now, things change fast in this world).

        Other was a Rust app, also using Postgres. For this I had to wait until a cryptography library (ring) added support to RISC-V since they use some assembly to improve the performance. After that, it was fine.

        I’ve been experimenting with more stuff, in general almost all important languages work, but beware that even if it works, they might not be as performant as in ARM or x86. Java for example, worked but the JVM didn’t have a JIT so it was very slow (this is fixed now, but some distros still ship it without JIT AFAIK).