I have found several annoying things about my LicheePi Console, which mostly have to do with software. The one I bought came with a 1 TB NVMe SSD (which now I feel should have been a smaller one as it was about a third of the price of the whole thing), and annoyingly the default kernel that it shipped with does not detect this SSD for some reason. Indeed it turned out to be a software issue, since an apt-get dist-upgrade installs a new kernel that detects the SSD, but this new kernel for some reason has no support for the battery and temperature sensors (the sysfs directories for these are gone). I think this might be because RevyOS is geared primarily to the LicheePi 4A board, not the LicheePi Console 4A. It’s annoying. The kernels also don’t have CONFIG_USB_HIDDEV and CONFIG_USB_HIDRAW that are needed in order to get FIDO2 keys working. I use these everywhere and they really should be built in. It seems that the only way to see the uboot menu for now is to plug into the serial console…which seems to mean that I have to solder headers or wires on the serial console pins or otherwise find a way to connect them to one of my FT232/CH340 USB dongles. Soldering is out because that means I’ll then need to disassemble the whole thing, and I’m not prepared to do that yet. I might be able to use hooks to do it if it comes down to that.
It’s also infuriating that the boot process that starts such SBCs is so poorly documented. U-Boot’s documentation is so opaque and disorganized that it is hard to even find a place to start (there isn’t even a FAQ). I hadn’t even realised at first that the extlinux.conf file doesn’t actually refer to the extlinux/syslinux bootloader but is actually a configuration file for U-Boot that uses a similar format. Then there are these device tree files that I later learned are supposed to describe the underlying hardware, like ACPI tables on x86 PCs, and I’ve still got no idea how to use them properly. You get conflicting information from search engines when you try to look them up. There seems to be no one place where all of this, especially how it all fits together to start an SBC and boot the Linux kernel in the end, is explained. I’m pretty sure that while many of these boards (Raspberry Pi/Pine64/Odroid/Sipeed etc) have to do special things to get them started up there’s still a lot that’s common between them all. This really shouldn’t be such black magic!
I’ve at least gotten Ren’py built for RISC-V and it’s more or less working, if a bit slow, and hardware acceleration support is fine. Still don’t know if I can get Electron or Arduino IDE built but we will see about those.

Leave a comment