Exciting... thanks for this update! Even if not "usable" quite yet, it's thrilling to see progress on this. :)
Efraim Flashner writes: > Last week my HiFive Umatched¹ board came and was quite the object of > interest at the local computer store as I picked up a case, PSU and > graphics card. > > Couple of observations about the board first: > It boots very slowly. I think it takes about 5 minutes from power-on to > being able to sign in at TTY1. > It has an NVMe slot which I haven't populated yet. > Ubuntu has an image for the board² which booted up just fine and I'm > using, since I didn't want to spend too long getting Debian to run on > the board. > Upstream u-boot support was merged days ago³ so we should be able to add > support to our u-boot package soon-ish™. > > Porting Guix comes with two parts: building the bootstrap-tarballs and > adding support for the new architecture in (gnu packages bootstrap). > Support for riscv was added to GCC with 7.1.0 so I had to bump the > bootstrap GCC to 7 (and adjust some inputs), and guile-2.0.14 didn't > known the endianness of riscv64 so instead of patching it I bumped the > bootstrap guile to 3.0. I uploaded my bootstrap-tarballs to my regular > spot after signing them and switched over to the riscv machine. > > Building Guix from sources is much easier thanks to the work of Vagrant, > I was able to apt install most of the dependencies on riscv. The > packaged version of guile-zlib was too old in 21.04 so I built that from > source (0.1.0 is available in Debian experimental), and I also had to > build gnutls from source for the guile-3.0 bindings. I added the riscv > binaries to (gnu packages bootstrap) and temporarily switched the > raw-build function to look for 3.0 guile libraries instead of 2.0. > > Where I'm at right now: > Downloading using the daemon (builtin:download) fails currently, it says > it doesn't have permissions to open-file to write downloaded files to > the store. > I haven't built anything using the bootstrap binaries to see if they > actually work yet. > > > (ins)efraim@unmatched:~$ neofetch --off > efraim@unmatched > ---------------- > OS: Ubuntu 21.04 riscv64 > Host: SiFive HiFive Unmatched A00 > Kernel: 5.11.0-1007-generic > Uptime: 3 days, 15 hours, 57 mins > Packages: 782 (dpkg) > Shell: bash 5.1.4 > Terminal: /dev/pts/0 > CPU: (4) > GPU: NVIDIA GeForce GT 730 > Memory: 350MiB / 15995MiB > > (ins)efraim@unmatched:~$ lscpu > Architecture: riscv64 > Byte Order: Little Endian > CPU(s): 4 > On-line CPU(s) list: 0-3 > Thread(s) per core: 4 > Core(s) per socket: 1 > Socket(s): 1 > L1d cache: 32 KiB > L1i cache: 32 KiB > L2 cache: 2 MiB > > > ¹https://www.sifive.com/boards/hifive-unmatched > ²http://cdimage.ubuntu.com/releases/21.04/release/ > ³https://source.denx.de/u-boot/u-boot/-/commit/d8729a114e1e98806cffb87d2dca895f99a0170a