# Kickstart file for Fedora RISC-V (riscv64) Minimal F40 #repo --name="koji-override-0" --baseurl=http://fedora.riscv.rocks/repos-dist/f40/latest/riscv64/ #install text #reboot lang en_US.UTF-8 keyboard us # short hostname still allows DHCP to assign domain name network --bootproto dhcp --device=link --hostname=fedora-riscv --activate rootpw --plaintext fedora_rocks! firewall --enabled --ssh timezone --utc US/Eastern selinux --enforcing services --disabled=lm_sensors,libvirtd zerombr ignoredisk --only-use=vda clearpart --all --initlabel --disklabel=gpt --drives=vda part /boot/efi --size=500 --fstype=efi part /boot --size=1000 --fstype=ext4 --label=boot part btrfs.007 --size=8000 --fstype=btrfs --grow btrfs none --label=fedora btrfs.007 btrfs /home --subvol --name=home LABEL=fedora btrfs / --subvol --name=root LABEL=fedora bootloader --location=mbr --timeout=5 # Halt the system once configuration has finished. poweroff %packages @core @hardware-support # GRUB2 -grub2-efi-riscv64 -grub2-efi-riscv64-modules -grub2-tools-minimal -grub2-tools-extra -grub2-tools -grub2-efi-riscv64-cdboot -grub2-common efibootmgr # Add for sd-boot systemd-boot-unsigned edk2-ext4 kernel-uki-virt kernel kernel-core kernel-modules linux-firmware opensbi-unstable uboot-tools uboot-images-riscv64 # Remove this in %post dracut-config-generic -dracut-config-rescue # For user creation and manipulation shadow-utils passwd # Install the English locale, but not all the other ones glibc-langpack-en -glibc-all-langpacks nano chrony haveged watchdog # Lets resize / on first boot #dracut-modules-growroot cloud-utils-growpart # Avoid pulling these packages by default via COMPS -valgrind -s390utils %end %post # Disable default repositories (not riscv64 in upstream) dnf config-manager --set-disabled rawhide updates updates-testing fedora fedora-cisco-openh264 dnf -y remove dracut-config-generic # systemd on no-SMP boots (i.e. single core) sometimes timeout waiting for storage # devices. After entering emergency prompt all disk are mounted. # For more information see: # https://www.suse.com/support/kb/doc/?id=7018491 # https://www.freedesktop.org/software/systemd/man/systemd.mount.html # https://github.com/systemd/systemd/issues/3446 # We modify /etc/fstab to give more time for device detection (the problematic part) # and mounting processes. This should help on systems where boot takes longer. sed -i 's|noatime|noatime,x-systemd.device-timeout=300s,x-systemd.mount-timeout=300s|g' /etc/fstab # Create regular user /usr/sbin/useradd -c "Fedora RISCV User" riscv echo fedora_rocks! | passwd --stdin riscv /usr/sbin/usermod -aG wheel riscv /usr/sbin/usermod -aG mock riscv # Create Fedora RISC-V repo cat << EOF > /etc/yum.repos.d/fedora-riscv.repo [fedora-riscv] name=Fedora RISC-V baseurl=http://fedora.riscv.rocks/repos-dist/f40/latest/riscv64/ #baseurl=https://dl.fedoraproject.org/pub/alt/risc-v/repo/fedora/f40/latest/riscv64/ #baseurl=https://mirror.math.princeton.edu/pub/alt/risc-v/repo/fedora/f40/latest/riscv64/ enabled=1 gpgcheck=0 [fedora-riscv-debuginfo] name=Fedora RISC-V - Debug baseurl=http://fedora.riscv.rocks/repos-dist/f40/latest/riscv64/debug/ #baseurl=https://dl.fedoraproject.org/pub/alt/risc-v/repo/fedora/f40/latest/riscv64/debug/ #baseurl=https://mirror.math.princeton.edu/pub/alt/risc-v/repo/fedora/f40/latest/riscv64/debug/ enabled=0 gpgcheck=0 [fedora-riscv-source] name=Fedora RISC-V - Source baseurl=http://fedora.riscv.rocks/repos-dist/f40/latest/src/ #baseurl=https://dl.fedoraproject.org/pub/alt/risc-v/repo/fedora/f40/latest/src/ #baseurl=https://mirror.math.princeton.edu/pub/alt/risc-v/repo/fedora/f40/latest/src/ enabled=0 gpgcheck=0 EOF # Create Fedora RISC-V Koji repo cat << EOF > /etc/yum.repos.d/fedora-riscv-koji.repo [fedora-riscv-koji] name=Fedora RISC-V Koji baseurl=http://fedora.riscv.rocks/repos/f40-build/latest/riscv64/ enabled=0 gpgcheck=0 EOF # Disable tmpfs for /tmp # Most boards don't have a lot of RAM. systemctl mask tmp.mount # setup login message cat << EOF | tee /etc/issue /etc/issue.net Welcome to the Fedora/RISC-V disk image https://fedoraproject.org/wiki/Architectures/RISC-V Build date: $(date --utc) Kernel \r on an \m (\l) The root password is 'fedora_rocks!'. root password logins are disabled in SSH starting Fedora 31. User 'riscv' with password 'fedora_rocks!' in 'wheel' and 'mock' groups is provided. To install new packages use 'dnf install ...' To upgrade disk image use 'dnf upgrade --best' If DNS isn’t working, try editing ‘/etc/yum.repos.d/fedora-riscv.repo’. For updates and latest information read: https://fedoraproject.org/wiki/Architectures/RISC-V Fedora/RISC-V ------------- Koji: http://fedora.riscv.rocks/koji/ SCM: http://fedora.riscv.rocks:3000/ Distribution rep.: http://fedora.riscv.rocks/repos-dist/ Koji internal rep.: http://fedora.riscv.rocks/repos/ EOF # Remove machine-id on pre generated images rm -f /etc/machine-id touch /etc/machine-id # remove random seed, the newly installed instance should make it's own rm -f /var/lib/systemd/random-seed # Note that running rpm recreates the rpm db files which aren't needed or wanted rm -f /var/lib/rpm/__db* # Start with a clean dnf history rm -rf /var/lib/dnf/history.* # go ahead and pre-make the man -k cache (#455968) /usr/bin/mandb # make sure there aren't core files lying around rm -f /core* releasever=$(rpm --eval '%{fedora}') rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-primary echo "Packages within this disk image" rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn /usr/bin/bootctl install cp -a /usr/share/edk2/drivers /boot/efi/EFI/systemd echo "timeout 5" > /boot/efi/loader/loader.conf # setup discoverable partitions /usr/sbin/sfdisk --part-type /dev/vda 2 BC13C2FF-59E6-4262-A352-B275FD6F7172 # Linux extended boot /usr/sbin/sfdisk --part-type /dev/vda 3 72ec70a6-cf74-40e6-bd49-4bda08e8f224 # Linux root (riscv64) %end # EOF