From Fedora Project Wiki
No edit summary
No edit summary
Line 1: Line 1:
= Build Fedora Image for RISC-V development board =
= Build Fedora Image for RISC-V development board =


== Environment ==
== Setup Environment ==


We use [http://fedora.riscv.rocks/kojifiles/work/tasks/8517/1128517/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz latest Fedora Qemu image for RISC-V64] from [https://riscv.rocks riscv.rocks] or [http://openkoji.iscas.ac.cn/pub/dl/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz a mirror in China] to boot a RISC-V Qemu for building a Fedora Remix image.
We use [http://fedora.riscv.rocks/kojifiles/work/tasks/8517/1128517/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz latest Fedora Qemu image for RISC-V64] from [https://riscv.rocks riscv.rocks] or [http://openkoji.iscas.ac.cn/pub/dl/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz a mirror in China] to boot a RISC-V Qemu for building a Fedora Remix image.


== Appliance ==
== Making Image by Appliance-tools ==


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 image and Uncompress
* Download Pre-build image and Uncompress
<pre>
<pre>
$ wget http://fedora.riscv.rocks/kojifiles/work/tasks/8517/1128517/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz
$ wget http://fedora.riscv.rocks/kojifiles/work/tasks/8517/1128517/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz
Line 21: Line 21:
</pre>
</pre>


* Resize images
* 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 52: Line 52:
# growpart /dev/vda 2
# growpart /dev/vda 2
# resize2fs /dev/vda2
# resize2fs /dev/vda2
# reboot
</pre>
</pre>


Line 58: Line 59:
The original Kickstart files is from [https://riscv.rocks riscv.rocks]: [http://fedora.riscv.rocks:3000/davidlt/fedora-riscv-kickstarts.git  fedora-riscv-kickstarts].
The original Kickstart files is from [https://riscv.rocks riscv.rocks]: [http://fedora.riscv.rocks:3000/davidlt/fedora-riscv-kickstarts.git  fedora-riscv-kickstarts].


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


For Allwinner D1, the kickstart file REPO is [https://gitee.com/etux/fedora_on_riscv64_allwinner_d1_kickstart here] .
For Allwinner D1, the example kickstart file REPO is [https://gitee.com/etux/fedora_on_riscv64_allwinner_d1_kickstart here] .
 
For StarFive Starlight Board, the kickstart file REPO is [https://gitee.com/etux/fedora_on_riscv64_jh7100_kickstart here] .


For StarFive Starlight Board, the example kickstart file REPO is [https://gitee.com/etux/fedora_on_riscv64_jh7100_kickstart here] .


* Run appliance tool to build new image
* Run appliance tool to build new image

Revision as of 12:51, 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.

  • Download Pre-build image and Uncompress
$ wget http://fedora.riscv.rocks/kojifiles/work/tasks/8517/1128517/Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz
$ xz -d Fedora-Developer-Rawhide-20210421.n.0-sda.raw.xz
  • Download Firmware
$ wget http://openkoji.iscas.ac.cn/pub/dl/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 root file system 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 new image
IMAGE_NAME=Fedora-d1-riscv64-developer-xfce-with-esp-Rawhide-sda.raw
IMAGE_VERSION=1.0
IMAGE_RELEASE=f33
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}