Recommendation for a very cheap SBC for kernel development with GNU-compliance in mind?

https://lemmy.world/post/4411968

Recommendation for a very cheap SBC for kernel development with GNU-compliance in mind? - Lemmy.world

Sorry, my question is a little weird, and is related to the hardware side of things. I’ve been really interested in contributing to the Hurd server and the experimental micro/nano kernel. But the issue is that I don’t know anything about kernel or system development. I wanted to start by creating the “Hello world” equivalent of kernel. I’m thinking of learning C17, since I’ve heard that most of the issues with C11 was fixed in C17, and I want to wait for C2x to be a little mature, and also avoid it’s possible pitfalls for now, but I’m also open to trying either of Zig or Vale (not sure if the memory allocation would be a problem). I’ve some across some articles saying that GNU folks are very strict about their hardware as well, and keeping that in mind, I want to use that constraint starting from the time I self-teach myself. Is there any cheap hardware that is in compliance with GNU? How about RISC-V processors? They should be GNU compliant, I assume? Are there any other options? I’m really tight on budget as I’m jobless right now - so my option must be under ₹1k, but I also don’t want to use something like a breadboard because that would be additional money I’ll have to spend. I want a full-blown SBC with very low specifications (RAM in mBs or kBs, single/dual core with very low IPC and frequency) because I have no clue on how to access display from other board without display connectors. I’ve not researched on other architecture, but I’m also okay with openPOWER and other open standards. Here’s a few boards I’ve come across: - Seeed Studio XIAO ESP32C3 [https://in.element14.com/seeed-studio/113991054/development-board-risc-arduino/dp/4060379?st=risc-v] - Sipeed BL808 M1s [https://robu.in/product/sipeed-bl808-m1s-risc-v-module-with-wifi-bt/] - Sipeed Longan Nano [https://robu.in/product/sipeed-longan-nano-risc-v-gd32vf103cbt6-development-board/] - DFRobot Beetle ESP32 – C3 [https://robu.in/product/dfrobot-beetle-esp32-c3-risc-v-core-development-board/] (perhaps the most promising out of the three?) But none of them are in SBC format, and I’m also not sure if either of them have display capabilities for console-like interface. And what about using storage drive? Should I worry about boot interface like BIOS and UEFI?

The Ox64 is very neat, however it’s kind of a pain to get running
128Mb Ox64 SBC - PINE STORE

CORE 64-bit 480MHz RV64 C906 32-bit 320MHz RV32 E907 32-bit 150MHz RV32 E902 MEMORY 728KB internal SRAM 64MB internal PSRAM 128Mb (16MB) XSPI Flash microSD slot I/O INTERFACE UART I2C SPI I2S CAMERA INTERFACE MIPI-CSI 2 lanes COMMUNICATION 802.11 b/g/n 2.4GHz Wifi BLE 5.0 Zigbee USB 10/100Mbps Ethernet thru optional add-on board EXPANSION 40 pins Breadboard friendly form factor PACKAGE CONTENTS 128Mb Ox64 board Device Warranty: 30 Days  

PINE STORE
Woah, $8 SBC? How does it compare to raspberry pi? I’m sure way less resources. But still $8 to run Linux sounds awesome.
Yeah it’s way less powerful, it’s kind of halfway between an Arduino/ESP32 and a Raspberry Pi
why not start with hardware, with great linux kernel support? As you know linux is very big bcz the amount of drivers its support and there are already lots of good books written for its development. It will help you to become ready for other kernel development projects.
Learning Linux for kernel development would take a lot of time, as it is quite big, and it will take a lot of effort to go through the source code. And it is also vastly different from the micro/nano-kernel like architecture I’m trying to contribute to. I wanted to touch smaller projects like like L4 or Mach for starters. Besides, my early goal is to create the most basic kernel, well, not even a kernel, a very basic program that can be run using the BIOS.

Riscv qemu, it’s great and surprisingly fast nowadays.

If you get good you can adjust the hardware as you go too.

Have you considered QEMU? Not only can it emulate many different architectures (including RISC-V) but you’ll find the debug experience a lot nicer than messing around getting a JTAG probe up and running.
Oh yes, I have played with QEMU a little before. Would it be alright to use emulation though? Because processor timings might vary in real life, right? Could that cause any potential issue?
Generally you should be ok. While there is a performance penalty for emulation which makes guests appear less efficient than they otherwise would be its still plenty fast enough for system emulation of a target running a full OS. If you are in particular looking to optimise some very time sensitive routine or want to measure real world latency then it would be best to do that on real hardware. Also while QEMU emulates a large array of devices we aim for compliance with the specification/datasheet rather than bug-for-bug compatibility with actual silicon. Running on an x86_64 host your image will also be a bit more tolerant of memory barrier issues (assuming a weak order guest architecture). However as you stated you are just getting started in kernel/systems development I think working with emulation is a good first step to get familiar with how things go together before you start investing in actual hardware.
Ox64 by Pine64 is Risc-V based and is missing a FOSS firmware for mechanical keyboard configuring. It costs only 8$: wiki.pine64.org/wiki/Ox64
Ox64

PINE64
I’ve also heard that the board wifi hasn’t been fixed, has it?