No edit summary |
|||
Line 4: | Line 4: | ||
* Extract it: `gzip -d k1-fedora-minimal.img.gz` | * Extract it: `gzip -d k1-fedora-minimal.img.gz` | ||
* Write it to an SD Card`dd if=k1-fedora-minimal.img of=/dev/sdX bs=64M status=progress` | * Write it to an SD Card`dd if=k1-fedora-minimal.img of=/dev/sdX bs=64M status=progress` | ||
* | |||
* | == Recommended Steps == | ||
* Resize `/boot`. (partition 5) The image only has a 256MB /boot partition, which is too small for installing multiple kernels. | |||
* Move `/` (partition 6) to an NVME disk and resize it. If you do this mount `/boot' and update `root=/dev/mmcblk0p6` to `root=/dev/nvme0n1p1` in `extlinux/extlinux.conf` | |||
== Boot and Complete == | |||
* Boot | * Boot | ||
* Replace `/etc/yum.repos.d/fedora-riscv-koji.repo` with | * Replace `/etc/yum.repos.d/fedora-riscv-koji.repo` with | ||
Line 24: | Line 28: | ||
== Optional: Install updated SpacemiT kernel repo == | == Optional: Install updated SpacemiT kernel repo == | ||
Rust projects have been observed failing to build with 6.1 kernel that comes on the image. It also does not have selinux enabled, | Rust projects have been observed failing to build with 6.1.15 kernel that comes on the image. It also does not have selinux enabled, modules necessary for firewalld to run, etc. | ||
I am attempting to maintain and keep up to date an LTS 6.6 kernel that more closely resembles a Fedora config with patches from https://gitee.com/bianbu-linux/linux-6.6/ until we have a proper mainline kernel. The Bianbu repo is based off 6.6.36. At the time of writing I have been able to keep it up to the current LTS release, 6.6.52. | I am attempting to maintain and keep up to date an LTS 6.6 kernel that more closely resembles a Fedora config with patches from https://gitee.com/bianbu-linux/linux-6.6/ until we have a proper mainline kernel. The Bianbu repo is based off 6.6.36. At the time of writing I have been able to keep it up to the current LTS release, 6.6.52. | ||
Line 43: | Line 47: | ||
baseurl=https://people.redhat.com/jmontleo/fedora/linux/releases/41/spacemit/source/tree | baseurl=https://people.redhat.com/jmontleo/fedora/linux/releases/41/spacemit/source/tree | ||
</pre> | </pre> | ||
* extlinux update | * This script is not required, but will automatically update `/boot/extlinux/extlinux.conf` when a new kernel is installed. To use it save it as `/etc/kernel/install.d/99-update-extlinux.install`, ensuring the cmdline `root=` settings matches your root device. | ||
* | <pre> | ||
cat << EOF > /boot/extlinux/extlinux.conf | |||
menu title Fedora boot menu | |||
prompt 0 | |||
timeout 50 | |||
default F41S1 | |||
EOF | |||
index=0 | |||
for i in $(ls -1vr /boot/vmlinuz*); do | |||
index=$((index+1)) | |||
version=$(echo $i | sed 's,/boot/vmlinuz-,,g' | sed 's,\.unzboot,,g') | |||
if [ ${index} == 1 ]; then | |||
unlink /boot/dtb | |||
ln -sf dtb-${version} /boot/dtb | |||
fi | |||
if [ "${version}" == "6.1.15+" ]; then | |||
export spacemit=spacemit | |||
else | |||
export spacemit=dtb/spacemit | |||
fi | |||
cat << EOF >> /boot/extlinux/extlinux.conf | |||
label F41S${index} | |||
menu label Fedora 41 ${version} | |||
linux /vmlinuz-${version} | |||
initrd /initramfs-${version}.img | |||
fdtdir /${spacemit} | |||
append console=ttyS0,115200 root=/dev/nvme0n1p1 rootfstype=ext4 rootwait rw earlycon clk_ignore_unused quiet | |||
EOF | |||
done | |||
</pre> | |||
* `chmod +x /etc/kernel/install.d/99-update-extlinux.install` | |||
* Change `SELINUX=enforcing` to `SELINUX=permissive` in `/etc/selinux/config` | |||
* touch /.autorelabel | * touch /.autorelabel | ||
* `dnf -y install ... ... ... ...` | * `dnf -y install ... ... ... ...` | ||
* `dnf -y remove ... ... ... ...` | * `dnf -y remove ... ... ... ...` | ||
* reboot, let relabel complete | * `reboot`, let relabel complete | ||
* | * Change `SELINUX=permissive` back to `SELINUX=enforcing` in `/etc/selinux/config` | ||
* `reboot` | |||
== Install and Configure Koji == | == Install and Configure Koji == |
Revision as of 04:31, 26 September 2024
Configuring Banani Pi / Jupiter as a Koji Builder
Prepare Fedora
- Download the image:
wget https://openkoji.iscas.ac.cn/pub/dist-repos/dl/Milk-V/Jupiter/images/latest/k1-fedora-minimal.img.gz
- Extract it:
gzip -d k1-fedora-minimal.img.gz
- Write it to an SD Card
dd if=k1-fedora-minimal.img of=/dev/sdX bs=64M status=progress
Recommended Steps
- Resize
/boot
. (partition 5) The image only has a 256MB /boot partition, which is too small for installing multiple kernels. - Move
/
(partition 6) to an NVME disk and resize it. If you do this mount/boot' and update
root=/dev/mmcblk0p6to
root=/dev/nvme0n1p1in
extlinux/extlinux.conf`
Boot and Complete
- Boot
- Replace
/etc/yum.repos.d/fedora-riscv-koji.repo
with
[fedora-riscv-koji] name=Fedora RISC-V Koji baseurl=http://fedora.riscv.rocks/repos/f41-build/latest/riscv64/ enabled=1 gpgcheck=0 [fedora-riscv-openkoji] name=Fedora RISC-V Koji baseurl=http://openkoji.iscas.ac.cn/kojifiles/repos/f41-build/latest/riscv64/ enabled=0 gpgcheck=0
dnf -y update
Optional: Install updated SpacemiT kernel repo
Rust projects have been observed failing to build with 6.1.15 kernel that comes on the image. It also does not have selinux enabled, modules necessary for firewalld to run, etc.
I am attempting to maintain and keep up to date an LTS 6.6 kernel that more closely resembles a Fedora config with patches from https://gitee.com/bianbu-linux/linux-6.6/ until we have a proper mainline kernel. The Bianbu repo is based off 6.6.36. At the time of writing I have been able to keep it up to the current LTS release, 6.6.52.
- Add
/etc/yum.repos.d/spacemit.repo
[spacemit] name=spacemit enabled=1 gpgcheck=0 baseurl=https://people.redhat.com/jmontleo/fedora/linux/releases/41/spacemit/riscv64/ priority=98 [spacemit-source] name=spacemit-source enabled=0 gpgcheck=0 baseurl=https://people.redhat.com/jmontleo/fedora/linux/releases/41/spacemit/source/tree
- This script is not required, but will automatically update
/boot/extlinux/extlinux.conf
when a new kernel is installed. To use it save it as/etc/kernel/install.d/99-update-extlinux.install
, ensuring the cmdlineroot=
settings matches your root device.
cat << EOF > /boot/extlinux/extlinux.conf menu title Fedora boot menu prompt 0 timeout 50 default F41S1 EOF index=0 for i in $(ls -1vr /boot/vmlinuz*); do index=$((index+1)) version=$(echo $i | sed 's,/boot/vmlinuz-,,g' | sed 's,\.unzboot,,g') if [ ${index} == 1 ]; then unlink /boot/dtb ln -sf dtb-${version} /boot/dtb fi if [ "${version}" == "6.1.15+" ]; then export spacemit=spacemit else export spacemit=dtb/spacemit fi cat << EOF >> /boot/extlinux/extlinux.conf label F41S${index} menu label Fedora 41 ${version} linux /vmlinuz-${version} initrd /initramfs-${version}.img fdtdir /${spacemit} append console=ttyS0,115200 root=/dev/nvme0n1p1 rootfstype=ext4 rootwait rw earlycon clk_ignore_unused quiet EOF done
chmod +x /etc/kernel/install.d/99-update-extlinux.install
- Change
SELINUX=enforcing
toSELINUX=permissive
in/etc/selinux/config
- touch /.autorelabel
dnf -y install ... ... ... ...
dnf -y remove ... ... ... ...
reboot
, let relabel complete- Change
SELINUX=permissive
back toSELINUX=enforcing
in/etc/selinux/config
reboot
Install and Configure Koji
- Add
/etc/yum.repos.d/koji.repo
(Nothing past 1.33 works right or me with the current server)
[koji] name=koji enabled=1 gpgcheck=0 baseurl=https://people.redhat.com/jmontleo/fedora/linux/releases/41/koji/riscv64/ priority=98 [koji-source] name=koji-source enabled=0 gpgcheck=0 baseurl=https://people.redhat.com/jmontleo/fedora/linux/releases/41/koji/source/tree
dnf -y install ... ... ...
- ...
- ...