Build Fedora Image for RISC-V development board
Making Image by Appliance-tools
Appliance-tools is used to build Fedora images, which has already installed in the image.
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.
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
Alternative: build Image by oepkgs.net ==
We also can build RISC-V images by oepkgs.net
Please follow register work flow to register an account in oepkgs.net.
Gitee.com
Repo to control tasks on [oepkgs.net](https://oepkgs.net) should be hosting on [Gitee.com](https://gitee.com) site. The repo URL should be sent to admin of [oepkgs.net](https://oepkgs.net) on register.
[This file](https://gitee.com/ocean8192/prjtst/blob/master/d1_xfce_img.json) is an example of for image build task.
kickstart
We need proper kickstart files to control image build.
Follow web hook setup workflow to configure task trigger web hooks.
The instruction can be found on oepkgs.net koji web.