this post was submitted on 09 Apr 2024
38 points (100.0% liked)

Self Hosted - Self-hosting your services.

11401 readers
1 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules

Important

Beginning of January 1st 2024 this rule WILL be enforced. Posts that are not tagged will be warned and if not fixed within 24h then removed!

Cross-posting

If you see a rule-breaker please DM the mods!

founded 3 years ago
MODERATORS
 

Lately I've been really liking the idea of having something hosted on a RISC-V machine. RISC-V is a non-proprietary instruction set that is a competitor to ARM. The idea of having a something running on an open source operating system, running on an open standard CPU, served from my house, gives me a warm fuzzy feeling.

I was under the impression that most Linux distributions were unstable on RISC-V. Turns out, I'm wrong about that. From a quick search, the following have official Debian images:

and the Pine64 Star64 has a community-maintained Armbian image.

Does anyone here have a RISC-V single-board computer doing anything practical for you?

top 17 comments
sorted by: hot top controversial new old
[–] [email protected] 16 points 7 months ago (1 children)

Probably not what you're asking for, but I have an impression, that your primary motivation is curiosity and just good feeling of using the open platform, so I figured I'll mention it.

I'm using ESP32-C3 boards with some sensors and ESPHome to monitor air quality in my house. The board is RISC-V based and can be bought for real cheap. (single digit $ price generally) ESPHome is quite easy to work with and (If you're realistic with your expectations around very low power device) also quite powerful.

Honestly the ESPHome itself is almost too good if you're really curious as it abstracts the differences between various boards quite well. You're just editing a yaml file to define your desired functionality.

Even if you're hesitant to do some soldering, you can get pretty far if you buy board and sensors with pre-soldered pins and some jumper wires.

[–] [email protected] 2 points 7 months ago

That is very cool, I hadn't heard of that before. I have never done anything with a microcontroller, but I'm thinking about it for RISC-V. It sounds like that might be one of the better ways of getting a RISC-V device in practical use, until more software packages become available for a full Linux machine.

[–] [email protected] 6 points 7 months ago (1 children)

I do! Since a while I selfhost with my risc-v Unmatched board. There are prebuilt Ubuntu Server images available. Its mainly for software which you have the source code for, and are willing to build from source. I've made use of docker buildx for cross cmpilation a fair bit as well. Go and Rust has good support. A good start can be to check out the riscv-bringup repo from carlosedp. Its definitely early days though, you need to be pretty motivated. Debian support is scheduled for next year AFAIK.

So, what do I actually use it for? nginx + tailscale so far

[–] [email protected] 3 points 7 months ago (1 children)

I should say as well, postgres, mariadb and memcached all support riscv, you just got to build it yourself. I have found the riscv64 ubuntu docker images useful as well to use as a base - for example the riscv64/ubuntu one.

[–] [email protected] 4 points 7 months ago (1 children)

Here's how I build my own images. More details are in the repo, feel free to re-use https://gitlab.com/olof-nord/selfhosted/-/blob/main/images/Makefile

[–] [email protected] 3 points 7 months ago

Wow, thanks! That's fantastic. I hadn't even thought about the fact that Docker images will have to be recreated for RISC-V, but it sounds like some of the most important parts of the stack are useable already. Nice to see that nginx works -- I was leaning towards moving my blog to a RISC-V SBC, and it's just a static HTML site.

[–] [email protected] 6 points 7 months ago

I've been wanting to run things on a RISCV processor but the feedback from hardware pins is extremely bad as of now. It is improving gradually.

Once a clean SPI interface is made which can be used simply with pin connections, then more layers of compiler, binary utils and OS etc. can be built on top of it.

[–] [email protected] 5 points 7 months ago (1 children)

Debian has official support for RISC V boards, but they don't have officially available images for those boards (at least not the Mars).

[–] [email protected] 5 points 7 months ago

Only unstable, right?

[–] [email protected] 4 points 7 months ago (2 children)

Currently, waiting for the Milk-V Oasis. Looking forward to a fully-compliant implementation in the SG2380. Should make for better mainline support.

[–] [email protected] 5 points 7 months ago (1 children)

That looks so cool. I was completely unaware that there were desktop motherboards with RISC-V CPUs. I thought they were all still SBCs.

[–] [email protected] 2 points 7 months ago

It's set for release in H2 of this year. This should be an actual desktop-class processor, performance-wise. Mini-ITX form factor too! The RISC-V processors are going through generations blazingly fast. Probably partly because we hobbyists get to do some QA.

I would caution though that this is still likely in the territory of "dev board". Probably not going to be mainstream-ready and will have plenty of quirks. But, it's a really big step forward.

[–] [email protected] 4 points 7 months ago (2 children)

I'm thinking it might be my 2.5G router when it drops. Or worst case, maybe retire the Atom I'm using for a NAS.

I've been using some much smaller CH32V305 based keyboard controllers for a while, recently built a fightstick aroubd the platform. Now if only I fidn't suck at joystick games, having grown up on gamepads.

[–] [email protected] 3 points 7 months ago (1 children)

A homemade RISC-V fightstick? This is combining all of my favorite things! I bought a leverless controller recently (an SGF Bridget).

I'm only vaguely familiar with microcontrollers, but I know there are libraries out there for using an Arduino to make a mechanical keyboard or fightstick. Is there something similar for the CH32V305?

[–] [email protected] 1 points 7 months ago

This is the firmware I've been working on. Basically I wrote it because at the time (early 2023) there wasn't a "good" keyboard firmware like QMK or ZMK for the CH32V305. Now it supports keyboards, joysticks, and a rudimentary pointing device made out of a PS2-style analogue stick.

https://gitlab.com/hakfoo1/ch32v-keyboard/-/tree/fightstick?ref_type=heads

That branch has the mapping I used. Note this firmware has a keyboard-centric assumption that switches are wired as a matrix (between two sense lines), even if that matrix is 1x24, rather than just grounding a sense line individually.

The stick portion was one of those "Pandora Box" devices that was built into a cabinet and pre-wired to a crappy Android TV box.

I bought it because I figured it was probably cheaper than cutting a decent looking cabinet and buying the buttons off AliExpress. That also meant it came with a predefined cable harness to fit the Android box. In the hopes of making it tidy, and reversible, I ordered a little throwaway PCB that accepted the existing 40-pin plug and bridged it to a nanoCH32V305 breakout board. Of course, I made a design mistake, so the PCB had bodge wires, so not much was saved.

If you're starting from scratch, you could direct-wire to the MCU breakout board.

[–] [email protected] 2 points 7 months ago

I'm intending to use an Oasis for a NAS and virtualization host. If it plays nice, maybe put together a cluster.

I've been using some much smaller CH32V305 based keyboard controllers for a while, recently built a fightstick aroubd the platform. Now if only I fidn't suck at joystick games, having grown up on gamepads.

Right there with you. I didn't have a console as a kid so, I'm pretty bad at fighting games. Have been holding back a bit in the MCUs as well but, mainly due to time constraints and waiting for my new hobby dev system to arrive. But, have a good number of plans for MCUs and other things - hopefully the SG2380 gets a bare chip release, like the SG2000/2002 because I want to try making a motherboard/SOM to move towards a fully FOSHW computer (pretty sure that the SG2380 isn't going to be OSHW initially but, being fully-compliant should be a good place to start).

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago)

Do you run anything on a RISC-V processor?

Probably more than you think. Your printer could be.