Compare commits
9 Commits
main
...
expand-roo
Author | SHA1 | Date | |
---|---|---|---|
170cae556e | |||
372121f8ea | |||
f67f8b259f | |||
e4bbf85cbe | |||
84522f42fb | |||
1b06452c0b | |||
7ce90bb2f5 | |||
5ef45137cb | |||
3f924b22a6 |
@ -1 +1,3 @@
|
|||||||
This repo to hold the KS to generate generic aarch64 rocky images for SoC such as RPI, Rockchip and others...
|
# Kickstarts
|
||||||
|
|
||||||
|
KickStart repo based on https://github.com/psgreco/all-kickstarts/tree/wip-generic
|
||||||
|
3
Rocky-9-aarch64-generic-Minimal.ks
Normal file
3
Rocky-9-aarch64-generic-Minimal.ks
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
%include includes/rockyrepos9.ksi
|
||||||
|
%include includes/gen-reposcommon9.ksi
|
||||||
|
%include includes/gen-rockycommon9.ksi
|
20
createimage.sh
Normal file
20
createimage.sh
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
KSFILE=$1
|
||||||
|
KSNAME=${KSFILE%.ks}
|
||||||
|
|
||||||
|
if [ ! -f "${KSFILE}" ]; then
|
||||||
|
echo
|
||||||
|
echo "SYNOPSIS"
|
||||||
|
echo " $0 <KICKSTARTFILE>"
|
||||||
|
echo
|
||||||
|
echo "EXAMPLE"
|
||||||
|
echo " $0 Rocky-Userland-9-aarch64-Generic-Minimal-4.ks"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -x
|
||||||
|
appliance-creator -c ${KSFILE} \
|
||||||
|
-d -v --logfile /var/tmp/${KSNAME}.log \
|
||||||
|
--cache /root/cache --no-compress \
|
||||||
|
-o /var/tmp/appoutput --format raw --name ${KSNAME} | tee /var/tmp/${KSNAME}.log.2
|
9
includes/basecommon9.ksi
Normal file
9
includes/basecommon9.ksi
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
keyboard us --xlayouts=us --vckeymap=us
|
||||||
|
timezone --isUtc --nontp UTC
|
||||||
|
selinux --enforcing
|
||||||
|
firewall --enabled --port=22:tcp
|
||||||
|
network --bootproto=dhcp --device=link --activate --onboot=on
|
||||||
|
services --enabled=sshd,NetworkManager,chronyd
|
||||||
|
shutdown
|
||||||
|
bootloader --location=mbr --driveorder=sda
|
||||||
|
lang en_US.UTF-8
|
16
includes/gen-packages9.ksi
Normal file
16
includes/gen-packages9.ksi
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Package setup
|
||||||
|
%packages
|
||||||
|
dracut-config-generic
|
||||||
|
kernel
|
||||||
|
kernel-core
|
||||||
|
grub2-common
|
||||||
|
grub2-efi-aa64
|
||||||
|
grub2-efi-aa64-modules
|
||||||
|
grubby
|
||||||
|
efibootmgr
|
||||||
|
shim-aa64
|
||||||
|
systemd-udev
|
||||||
|
uboot-tools
|
||||||
|
-dracut-config-rescue
|
||||||
|
|
||||||
|
%end
|
6
includes/gen-partitions9.ksi
Normal file
6
includes/gen-partitions9.ksi
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Disk setup
|
||||||
|
clearpart --initlabel --all
|
||||||
|
part /boot/efi --asprimary --fstype=efi --size=512
|
||||||
|
part /boot --asprimary --fstype=ext4 --size=1024 --label=boot
|
||||||
|
part swap --asprimary --fstype=swap --size=512 --label=swap
|
||||||
|
part / --asprimary --fstype=ext4 --size=3072 --label=rootfs
|
56
includes/gen-postcommon9.ksi
Normal file
56
includes/gen-postcommon9.ksi
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
%post
|
||||||
|
# Setting correct yum variable to use raspberrypi kernel repo
|
||||||
|
#echo "generic" > /etc/dnf/vars/kvariant
|
||||||
|
#
|
||||||
|
# Creating rocky user and add to wheel group
|
||||||
|
/sbin/useradd -c "Rocky Linux default user" -G wheel -m -U rocky
|
||||||
|
echo "rockylinux" | passwd --stdin rocky
|
||||||
|
# Generic efi filename for VMs
|
||||||
|
mkdir -p /boot/efi/EFI/BOOT
|
||||||
|
if [ -d /boot/efi/EFI/rocky/ ] && [ -f /boot/efi/EFI/rocky/grubaa64.efi ];then
|
||||||
|
for j in grub.cfg grubenv;do
|
||||||
|
mv -f /boot/grub2/${j} /boot/efi/EFI/rocky/
|
||||||
|
ln -s ../efi/EFI/rocky/${j} /boot/grub2/${j}
|
||||||
|
done
|
||||||
|
cp -f /boot/efi/EFI/rocky/grubaa64.efi /boot/efi/EFI/BOOT/BOOTAA64.EFI
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -f /usr/share/uboot/rpi_3/u-boot.bin /boot/efi/rpi3-u-boot.bin
|
||||||
|
cp -f /usr/share/uboot/rpi_4/u-boot.bin /boot/efi/rpi4-u-boot.bin
|
||||||
|
|
||||||
|
rpm -e dracut-config-generic
|
||||||
|
|
||||||
|
#setup dtb link by running "creating 10-devicetree.install"
|
||||||
|
if [ -x /lib/kernel/install.d/10-devicetree.install ];then
|
||||||
|
/lib/kernel/install.d/10-devicetree.install remove
|
||||||
|
fi
|
||||||
|
|
||||||
|
### Write /etc/sysconfig/kernel
|
||||||
|
cat << EOF > /etc/sysconfig/kernel
|
||||||
|
# Written by image installer
|
||||||
|
# UPDATEDEFAULT specifies if new-kernel-pkg should make new kernels the default
|
||||||
|
UPDATEDEFAULT=yes
|
||||||
|
|
||||||
|
# DEFAULTKERNEL specifies the default kernel package type
|
||||||
|
DEFAULTKERNEL=kernel-core
|
||||||
|
EOF
|
||||||
|
chmod 644 /etc/sysconfig/kernel
|
||||||
|
|
||||||
|
### Write grub defaults, turn off OS probing as it is always wrong for image creation
|
||||||
|
cat << EOF > /etc/default/grub
|
||||||
|
GRUB_TIMEOUT=5
|
||||||
|
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
|
||||||
|
GRUB_DEFAULT=saved
|
||||||
|
GRUB_DISABLE_SUBMENU=true
|
||||||
|
GRUB_TERMINAL_OUTPUT="console"
|
||||||
|
GRUB_CMDLINE_LINUX=""
|
||||||
|
GRUB_DISABLE_RECOVERY="true"
|
||||||
|
GRUB_DISABLE_OS_PROBER="true"
|
||||||
|
GRUB_ENABLE_BLSCFG="false"
|
||||||
|
EOF
|
||||||
|
chmod 644 /etc/default/grub
|
||||||
|
# fixing the rpmdb
|
||||||
|
rpm --rebuilddb
|
||||||
|
# remove /boot/dtb for some rpi to boot
|
||||||
|
rm -f /boot/dtb
|
||||||
|
%end
|
1
includes/gen-reposcommon9.ksi
Normal file
1
includes/gen-reposcommon9.ksi
Normal file
@ -0,0 +1 @@
|
|||||||
|
repo --name="instKern" --baseurl=https://rockyrepos.gnulab.org/gen_aarch64_el9/ --cost=100 --install
|
9
includes/gen-rockycommon9.ksi
Normal file
9
includes/gen-rockycommon9.ksi
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
rootpw --lock
|
||||||
|
%include includes/basecommon9.ksi
|
||||||
|
%include includes/gen-partitions9.ksi
|
||||||
|
%include includes/packages9.ksi
|
||||||
|
%include includes/gen-packages9.ksi
|
||||||
|
%include includes/precommon9.ksi
|
||||||
|
%include includes/rockyreadme9.ksi
|
||||||
|
%include includes/gen-postcommon9.ksi
|
||||||
|
%include includes/postcommon9.ksi
|
25
includes/packages9.ksi
Normal file
25
includes/packages9.ksi
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Package setup
|
||||||
|
%packages
|
||||||
|
@core
|
||||||
|
|
||||||
|
# other necessary packages
|
||||||
|
bash-completion
|
||||||
|
chrony
|
||||||
|
cloud-utils-growpart
|
||||||
|
e2fsprogs
|
||||||
|
glibc-langpack-en
|
||||||
|
nano
|
||||||
|
net-tools
|
||||||
|
NetworkManager-wifi
|
||||||
|
|
||||||
|
# uboot stuff
|
||||||
|
bcm2711-firmware
|
||||||
|
bcm2835-firmware
|
||||||
|
bcm283x-firmware
|
||||||
|
bcm283x-overlays
|
||||||
|
uboot-images-armv8
|
||||||
|
|
||||||
|
# remove this
|
||||||
|
-java-11-*
|
||||||
|
|
||||||
|
%end
|
10
includes/postcommon9.ksi
Normal file
10
includes/postcommon9.ksi
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
%post
|
||||||
|
# Remove ifcfg-link on pre generated images
|
||||||
|
rm -f /etc/sysconfig/network-scripts/ifcfg-link
|
||||||
|
|
||||||
|
# Remove machine-id on pre generated images
|
||||||
|
rm -f /etc/machine-id
|
||||||
|
touch /etc/machine-id
|
||||||
|
|
||||||
|
%end
|
||||||
|
%include includes/rootfs-expand.ksi
|
4
includes/precommon9.ksi
Normal file
4
includes/precommon9.ksi
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
%pre
|
||||||
|
|
||||||
|
#End of Pre script for partitions
|
||||||
|
%end
|
11
includes/rockyreadme9.ksi
Normal file
11
includes/rockyreadme9.ksi
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
%post
|
||||||
|
# Mandatory README file
|
||||||
|
cat >/root/README << EOF
|
||||||
|
== Rocky Linux 9 ==
|
||||||
|
|
||||||
|
If you want to automatically resize your / partition, just type the following (as root user):
|
||||||
|
rootfs-expand
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
%end
|
6
includes/rockyrepos9.ksi
Normal file
6
includes/rockyrepos9.ksi
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Basic setup information
|
||||||
|
url --url="https://download.rockylinux.org/pub/rocky/9/BaseOS/aarch64/os/"
|
||||||
|
# Repositories to use
|
||||||
|
repo --name="rocky9-baseos" --baseurl=https://download.rockylinux.org/pub/rocky/9/BaseOS/aarch64/os/
|
||||||
|
repo --name="rocky9-appstream" --baseurl=https://download.rockylinux.org/pub/rocky/9/AppStream/aarch64/os/
|
||||||
|
repo --name="rocky9-powertools" --baseurl=https://download.rockylinux.org/pub/rocky/9/CRB/aarch64/os/
|
32
includes/rootfs-expand.ksi
Normal file
32
includes/rootfs-expand.ksi
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
%post
|
||||||
|
cat << EOF > /usr/local/bin/rootfs-expand
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euf -o pipefail
|
||||||
|
|
||||||
|
ROOT_PART=\$(mount | grep ' on / ' | awk '{print \$1}')
|
||||||
|
if [[ \${ROOT_PART} =~ "mmcblk" || \${ROOT_PART} =~ "nvme" ]]; then
|
||||||
|
DEV=\$(echo "\${ROOT_PART}" | rev | sed -r 's/^.{2}//' | rev)
|
||||||
|
INTERMEDIATE_DEV="\${DEV}p"
|
||||||
|
elif [[ \${ROOT_PART} =~ "vd" || \${ROOT_PART} =~ "sd" ]]; then
|
||||||
|
DEV=\$(echo "\${ROOT_PART}" | rev | sed -r 's/^.{1}//' | rev)
|
||||||
|
INTERMEDIATE_DEV="\${DEV}"
|
||||||
|
else
|
||||||
|
>&2 echo "\$0: device type unsupported"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
PART_NUM="\${ROOT_PART#"\$INTERMEDIATE_DEV"}"
|
||||||
|
|
||||||
|
echo "\${DEV} \${PART_NUM} \${ROOT_PART}"
|
||||||
|
|
||||||
|
echo "Extending partition \${PART_NUM} of \${DEV} to max size..."
|
||||||
|
growpart "\${DEV}" "\${PART_NUM}"
|
||||||
|
|
||||||
|
echo "Resising ext4 filesystem on \${ROOT_PART}..."
|
||||||
|
resize2fs "\${ROOT_PART}"
|
||||||
|
|
||||||
|
echo "Done."
|
||||||
|
df -kh | head -n 1 && df -kh | grep "\${DEV}" | sort
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x /usr/local/bin/rootfs-expand
|
||||||
|
%end
|
Loading…
Reference in New Issue
Block a user