Title. I’m very experienced with my favourite distro and can only say that their builds are quite generic, RV64GC centered and with very generic default cflags which produce compatible but slow-ish binaries (up to 10x slower than built for JH7110 with clang). So, one might require complete rebuild, which I’m tasked with now on my brand new VF2 V1.3B.
Also, they provide(d) quite “dirty” bootstrap images, I run into one when I booted it on VF1 and it contained two versions of package descriptors in /var/log/packages
. Their kernel idk for which target (qemu?) but never ran on any VF for me, I had to cross-compile with StarFive config in the beginning.
There is no easy installation method because official Slackware installer requires you to boot from something first but currently there is no boot media to start with for riscv64.
Today my own Slackware on my board is fully self-hosting, I built everything on it, from U-Boot to X11. It just takes some patience.
Index of /slarm64 package tree
Index of /slackware/rootfs bootstrap minimal rootfs
Official Slackware source tree is taken verbatim, then patches (if needed) are applied from Index of /slarm64/slarm64-current. Patches just fix SlackBuilds to be riscv64 compatible, they don’t add anything beyond that which is good.
As for kernel, I would suggest going with plain Debian one taken verbatim for first time, and rebuild if needed. If you ever ran Slackware, you know how to do this.
As for SBo (SlackBuilds.org, largest repository of all third party software build scripts outside of Slackware scope, think like Arch’s AUR), often it is required to run autoreconf -fvi
or replace config.sub
and config.guess
prior to any ./configure
in packages with autotools to update architecture detection. Otherwise they mostly fail because riscv64-slackware-linux
is not known to them.
I made a hack around: because patching every SlackBuild is PITA (because they’re all different), I just found a common command which occurs in every SlackBuild: chown -R root:root .
, created /usr/src/bin/chown
with content like:
#!/bin/sh
# chown -R root:root .
# fix autolulz stupidity
if [ "`/bin/basename ${0}`" = "chown" -a "${1}" = "-R" -a "${2}" = "root:root" -a "${3}" = "." ]; then
if ! pwd | egrep -q '^/tmp'; then exec /bin/chown "${@}"; fi
/usr/bin/find -type f -name config.sub -exec /bin/cp -a /usr/share/autoconf/build-aux/config.sub '{}' ';'
/usr/bin/find -type f -name config.guess -exec /bin/cp -a /usr/share/autoconf/build-aux/config.guess '{}' ';'
fi
exec /bin/chown "${@}"
and placed /usr/src/bin
ontop of $PATH
. Works flawlessly!