Installation Fedora-Rawhide (20190516) on HiFive Unleashed SD card


(santvasu@gmail.com) #1

Dear All
I have being following https://fedoraproject.org/wiki/Architectures/RISC-V/Installing
to install fedora on HiFive unleashed,

There are the steps i followed. (the files were extracted using guestfish utilities)

sudo dd if=bbl-5.1.0-0.rc1.git0.1.1.riscv64.fc31.riscv64 of=/dev/sdc1 bs=4096
sudo dd if=Fedora-Developer-Rawhide-20190516.n.0-sda2.raw of=/dev/sdc2 bs=1M

some i am missing something, and its not booting

However for the following 2 case i was able to get the board booted with linux
A) SiFive HiFive Unleashed Getting Started Guide,
Ch 7. Software Development Flow
B) Openembedded YOCTO based installation.

Requesting to kindly provide pointers, and will be much appreciated.

thanks and regards
santhosh


(Jim Wilson) #2

Fedora is using the upstream linux kernel, but not all drivers required by the HiFive Unleashed hardware are upstream yet, so that kernel will not boot on the board. It only boots on qemu. You can use any working kernel (e.g. freedom-u-sdk) with the Fedora rootfs and that should work.

If you want, you can try
https://github.com/sifive/freedom-u-sdk/issues/111#issuecomment-499684627
I have not tried this myself.


(santvasu@gmail.com) #3

@jimw
Thank for the quick reply and the solution. :slight_smile: It worked perfectly fine.,
Fedora rootfs dated 20190126.n.0 was used.

The following info would be known to the veterans out there.
However just sharing the same…

A) freedom-u-sdk/conf/linux_defconfig was modified as follows
#CONFIG_CMDLINE=“earlyprintk”
CONFIG_CMDLINE=“earlyprintk root=/dev/mmcblk0p2 rootwait”

   CONFIG_CGROUPS=y

B) Top level freedom-u-sdk/Makefile was modified as given below

#$(vmlinux): $(linux_srcdir) $(linux_wrkdir)/.config $(buildroot_initramfs_sysroot_stamp)
#$(MAKE) -C $< O=$(linux_wrkdir)
#CONFIG_INITRAMFS_SOURCE="$(confdir)/initramfs.txt $(buildroot_initramfs_sysroot)"
#CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)
#CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)
#CROSS_COMPILE=riscv64-unknown-linux-gnu-
#ARCH=riscv
#vmlinux

$(vmlinux): $(linux_srcdir) $(linux_wrkdir)/.config
$(MAKE) -C $< O=$(linux_wrkdir)
CROSS_COMPILE=riscv64-unknown-linux-gnu-
ARCH=riscv
vmlinux

if there is a better way to do it pl do share the same.

thanks a bunch :slight_smile:
santhosh