Successfully built and booted 6.1.72 kernel!

A little success story here amid all the pain of cutting teeth… I managed to successfully build the 6.1.72 linux kernel from the Sophgo repo, install it, and boot it! And everything seems to be working!
Side note: most of my SD-card boot pain has been shelved since I figured out how to get the onboard SPI-flash bootloader to hand off directly to a boot partition on my NVMe. More details to follow…


Obligatory boring video (faster than watching paint dry tho!!!)


Nice to see it can keep all the cores busy.

1 Like

YES! Please post details on how you accessed and modified the SPI-flash image.


Even if just briefly, can you describe what tools you used to access the SPI? There are two SPI interfaces in the DTB that get instantiated, but I’m not sure what linux tools to use to access the flash connected to those SPI

1 Like

I would also be interested in the details on what you were able to achieve with the SPI.

Anything new you can share about that?

1 Like

Not sure what OP did, but the board came with a bootloader preloaded in the SPI that will boot if no bootloader on SD can be found.

There are two mtd devices, mtd0 holds a conf.ini file which is read by the zsbl, that lets you configure the bootstages, i.e. loading edk2 instead of u-root(LinuxBook). The other, mtd1, holds a firmware binary that contains all the stages. You can flash those using standard mtd-utils. More info about that:

You can grab daily builds of the firmware binaries from the artifacts that are build as part of the github action of Workflow runs · sophgo/bootloader-riscv · GitHub . The sophgo-bootloader-single is what you should be getting for the pioneer board. The -multi is for pisces, which I guess is some experimental multi-socket board. Note that ultimately the device tree is passed from the firmware to the kernel, not what is specified by e.g. extlinux. Therefore, while there are still a lot of moving parts, you should only update kernel and bootloader simultaneously.


@skeuchel Thanks for the info, that’s very useful!

By the way, I noticed on the bootloader repo you mentioned you’ve installed NixOS on the pioneer. This is something I’m also very interested in trying. Do you have any notes about the set up process for that? I haven’t looked to closely into the existing RISC-V efforts on NixOS yet so not sure how difficult that should be at this point.

1 Like

I nixos-installed a cross-compiled version on my desktop machine to a sata ssd drive, booted into it and then recompiled natively. Currently, nixos does not officially support riscv64, so you do not have any binary caches. You have to patch/override multiple packages for them to compile and things also tend to break. For instance, since the switch to gcc-13 building systemd fails. You can find some of the patches that I used here: GitHub - skeuchel/nixpkgs at riscv64 I got a graphical display with xfce running at some point, but I switched entirely to headless now.

I would love to write up more, but I am swamped with work until the end of the month. So I cannot do more than just some of these breadcrumbs.