You can now boot Fedora 25 for RISC-V in Fabrice Bellard’s RISCVEMU RISC-V emulator. Here’s how in four simple steps:
diskimage-linux-riscv64-XXX.tar.gz from Fabrice’s site.
- Download the latest stage 4 disk image for Fedora/RISC-V from here.
- Compile riscvemu. You should just need to do
- Run everything like this:
./riscvemu -b 64 ../diskimage-linux-riscv64-XXX/bbl.bin stage4-disk.img
If you’re going to do serious work inside the disk image then you’ll probably want to customize it with extra packages. See these instructions.
$ file builder/virt-builder
builder/virt-builder: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), dynamically linked, interpreter /lib/ld.so.1, for
GNU/Linux 2.6.32, BuildID[sha1]=184c9522f22abc5c325ac5a1ee2d272b225d5503, not stripped
Probably the least useful copy of virt-builder since there’s no qemu and no network. However it does demonstrate that we can now build large mixed C / OCaml binaries on RISC-V successfully.
I pushed OCaml 4.04.0 to Fedora Rawhide last week. There are loads of new features for OCaml users, but the ones that particularly affect Fedora are:
- New, upstream POWER (ppc64, ppc64le) backend, replacing the downstream one that we have maintained for a few years. I was quite apprehensive about this change because I had tried the new backend during the OCaml 4.03 release cycle and found it to be quite unstable. However the latest version looks rock solid and has no problem compiling the entire Fedora+OCaml software suite.
- New, upstream S/390x backend. I actually found and fixed a bug, go me!
- New, non-upstream RISC-V backend. I found a bug in this backend too, but it proved to be easy to fix. You can now install and run most of the OCaml packages on Fedora/RISC-V.
And talking about Fedora/RISC-V, it took a month, but the mass-rebuild of all Fedora packages completed, and now we’ve got about ⅔rds of all Fedora packages available for RISC-V. That’s quite a lot:
$ du -sh SRPMS/ RPMS/
Some of the talks from ORCONF 2016 which I’ve enjoyed recently.
lowRISC project update:
Ha ha only joking. However when we started out on building Fedora on the free RISC-V architecture, the goal we decided on was to get every package in the Fedora @Core group built.
I’m happy to announce that we have done that. Almost.
There are two mandatory packages that we’re not building, dracut and plymouth. Luckily neither are relevant to RISC-V at the moment since we’re not using an initramfs and there is no graphical boot device.
Another milestone is we have built more than 5,000 Fedora packages. Fedora has about 18,400 packages in total, so that’s a respectable chunk.
Here is what Fedora/RISC-V looks like when it is booting in QEMU:
Props to Stefan O’Rear, David Abdurachmanov for doing most of the real work.
$ ls -l SRPMS | wc -l
The autobuilder is really getting though the package list, having attempted to rebuild nearly 4,000 so far.
Bootstrapping Fedora on the new RISC-V architecture continues apace.
I have now written a small autobuilder which picks up new builds from the Fedora Koji build system and attempts to build them in the clean “stage4” environment.
Getting latest packages from Koji ...
Running: 0 (max: 16) Waiting to start: 7
uboot-tools-2016.09.01-1.fc25.src.rpm | 11 MB 00:10
uboot-tools-2016.09.01-1.fc25 build starting
tuned-2.7.1-2.fc25.src.rpm | 136 kB 00:00
tuned-2.7.1-2.fc25 build starting
rubygem-jgrep-1.4.1-1.fc25.src.rpm | 24 kB 00:00
rubygem-jgrep-1.4.1-1.fc25 build starting
qpid-dispatch-0.6.1-3.fc25.src.rpm | 1.3 MB 00:01
qpid-dispatch-0.6.1-3.fc25 build starting
python-qpid-1.35.0-1.fc25.src.rpm | 235 kB 00:01
python-qpid-1.35.0-1.fc25 build starting
java-1.8.0-openjdk-aarch32-220.127.116.11-4.160812.fc25.src.rpm | 53 MB 00:54
java-1.8.0-openjdk-aarch32-18.104.22.168-4.160812.fc25 build starting
NetworkManager-strongswan-1.4.0-1.fc25.src.rpm | 290 kB 00:00
NetworkManager-strongswan-1.4.0-1.fc25 build starting
MISSING DEPS: NetworkManager-strongswan-1.4.0-1.fc25 (see
... etc ...
Given that we don’t have GCC in the stage4 environment yet, almost all of them currently fail due to missing dependencies, but we’re hoping to correct that soon. In the mean time a few packages that have no C dependencies can actually compile. This way we’ll gradually build up the number of packages for Fedora/RISC-V, and that process will accelerate rapidly once we’ve got GCC.
You can browse the built packages and build logs here: https://fedorapeople.org/groups/risc-v/