From Fedora Project Wiki
Line 9: Line 9:
Appliance-tools is used to build Fedora images, which has already installed in the image.
Appliance-tools is used to build Fedora images, which has already installed in the image.


=== Download Pre-build image and Uncompress ===
=== Run Fedora on QEMU ===
 
==== Download Pre-build image and Uncompress ====
<pre>
<pre>
$ wget https://openkoji.iscas.ac.cn/pub/dl/riscv/qemu/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz
$ wget https://openkoji.iscas.ac.cn/pub/dl/riscv/qemu/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz
Line 15: Line 17:
</pre>
</pre>


=== Download Firmware ===
==== Download Firmware ====


<pre>
<pre>
Line 21: Line 23:
</pre>
</pre>


=== Resize Image ===
==== Resize Image ====


The original image size is not enough for image building, we need enlarge it first.
The original image size is not enough for image building, we need enlarge it first.
Line 29: Line 31:
</pre>
</pre>


=== Boot RISC-V Qemu ===
==== Boot RISC-V Qemu ====


<pre>
<pre>
Line 46: Line 48:
</pre>
</pre>


=== Resize rootfs '''on Qemu''' ===
==== Resize rootfs '''on Qemu''' ====


<pre>
<pre>

Revision as of 17:54, 5 September 2021

Build Fedora Image for RISC-V development board

Setup Environment

We use latest Fedora Qemu image for RISC-V64 from riscv.rocks or a mirror in China to boot a RISC-V Qemu for building a Fedora Remix image.

Making Image by Appliance-tools

Appliance-tools is used to build Fedora images, which has already installed in the image.

Run Fedora on QEMU

Download Pre-build image and Uncompress

$ wget https://openkoji.iscas.ac.cn/pub/dl/riscv/qemu/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz
$ xz -d Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz

Download Firmware

$ wget https://openkoji.iscas.ac.cn/pub/dl/riscv/qemu/fw_payload-uboot-qemu-virt-smode.bin

Resize Image

The original image size is not enough for image building, we need enlarge it first.

$ qemu-img resize Fedora-Developer-Rawhide-20210421.n.0-sda.raw +40G

Boot RISC-V Qemu

qemu-system-riscv64    -nographic \
                       -machine virt \
                       -smp 4 \
                       -m 2G \
                       -kernel fw_payload-uboot-qemu-virt-smode.bin \
                       -bios none \
                       -object rng-random,filename=/dev/urandom,id=rng0 \
                       -device virtio-rng-device,rng=rng0 \
                       -device virtio-blk-device,drive=hd0 \
                       -drive file=Fedora-Developer-Rawhide-20210421.n.0-sda.raw,format=raw,id=hd0 \
                       -device virtio-net-device,netdev=usernet \
                       -netdev user,id=usernet,hostfwd=tcp::10000-:22

Resize rootfs on Qemu

# growpart /dev/vda 2
# resize2fs /dev/vda2
# reboot

Prepare kick start file

The original Kickstart files is from riscv.rocks: fedora-riscv-kickstarts.

The kick start file for a specific board can be modified from these files.

For Allwinner D1, the example kickstart file REPO is here .

For StarFive Starlight Board, the example kickstart file REPO is here .

Run appliance tool to build a new image on QEMU

On QEMU, boot into Fedora Image, then

IMAGE_NAME=Fedora-d1-riscv64-developer-xfce-with-esp-Rawhide
IMAGE_VERSION=Rawhide
IMAGE_RELEASE=`date +%Y%m%d-%H%M%S`
OUTPUT_DIR=./images
CACHE_DIR=./cache
KS_FILE=./fedora-riscv64-d1-developer-xfce-rawhide.ks
appliance-creator -c kickstartfile.ks \
                  --cache ${CACHE_DIR} \
                  --format raw \
                  --name ${IMAGE_NAME} \
                  --version ${IMAGE_VERSION} \
                  --release ${IMAGE_RELEASE} \
                  -o ${OUTPUT_DIR}

The result will be in the current dir, named Fedora-d1-riscv64-developer-xfce-with-esp-Rawhide-*.raw.xz