Cleanup for Rpi9

- Fixed locale issue in image
- Added the rocky9-rpi release package back (used from a bootstrap for now)
- Added notes about building a 9 image only on 9

-Skip G.
This commit is contained in:
Skip Grube 2022-07-05 20:55:47 +00:00
parent 1a15f993de
commit 1bfa5a621a
3 changed files with 50 additions and 23 deletions

View File

@ -12,12 +12,13 @@ The readme.image.txt file has information and instructions for those interested
Producing the Rpi Image requires:
* A Fedora or EL-based distribution (Rocky/CentOS/RHEL/etc.) **running on aarch64 hardware**
* Fedora 34 or higher, OR an EL9-based distribution **running on aarch64 hardware**
* NOTE: It MUST be EL9, or you will have RPMDB+SELinux issues! We do not support building this image on EL8 or lower
* Packages
* git
* epel-release (if using an EL distro)
* appliance-tools (contains the appliance-creator program that makes the image)
* EPEL repo enabled (extra packages for enterprise linux)
* The appliance-creator program from appliance-tools package ( ```sudo dnf install appliance-tools``` )
## Making an Image

View File

@ -16,7 +16,7 @@ part / --asprimary --fstype=ext4 --size=2800 --label=RPIROOT
repo --name="BaseOS" --baseurl=http://download.rockylinux.org/stg/rocky/9/BaseOS/aarch64/os/ --cost=100
repo --name="AppStream" --baseurl=http://download.rockylinux.org/stg/rocky/9/AppStream/aarch64/os/ --cost=200 --install
repo --name="PowerTools" --baseurl=http://download.rockylinux.org/stg/rocky/9/BaseOS/aarch64/os/ --cost=300 --install
repo --name="rockyrpi" --baseurl=https://bootstrap9.releng.rockylinux.org/RockyRpi_9_Test/rpi_repo/ --cost=100 --install
repo --name="rockyrpi" --baseurl=https://bootstrap9.releng.rockylinux.org/RockyRpi_9_Test/rpi_repo/ --cost=50 --install
#--baseurl=https://download.rockylinux.org/pub/rocky/8/rockyrpi/aarch64/os/ --cost=100 --install
@ -59,12 +59,19 @@ bash-completion
nano
# Need these for setting default locale of en-US:
langpacks-en
glibc-all-langpacks
# will enable rocky-release-rpi after full 9 release (and we have it in the -extras repo)
#rocky-release-rpi
rocky-release-rpi
raspberrypi2-firmware
raspberrypi2-kernel4
%end
@ -77,8 +84,6 @@ cat > /boot/cmdline.txt << EOF
console=ttyAMA0,115200 console=tty1 root= rootfstype=ext4 elevator=deadline rootwait
EOF
# Run this once to fix the wifi:
#sed -i 's/boardflags3=0x48200100/boardflags3=0x44200100/g' /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
# Apparently kickstart user was not working, attempt to do it here?
@ -125,21 +130,11 @@ Thanks for your interest on Rocky-on-Rpi, feel free to share your experience or
EOF
# Next, script to fix the wifi firmware setting:
cat >/home/rocky/fix-wifi-rpi4.sh << 'EOF'
#!/bin/bash
# Simple hacky fix to correct wifi settings on the Rpi4 so it loads properly:
# Run the fix-wifi script (extracts the .xz firmware) - should be installed via the rocky-release-rpi package
fix-wifi-rpi.sh
sed -i 's/boardflags3=0x48200100/boardflags3=0x44200100/g' /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
echo "Patched /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt . You can reboot and wifi should work, or do: rmmod brcmfmac; modprobe brcmfmac; "
EOF
chmod 755 /home/rocky/fix-wifi-rpi4.sh
chown -R rocky:rocky /home/rocky
# Cleanup before shipping an image
@ -155,6 +150,7 @@ touch /etc/machine-id
rm -f "/etc/ssh/*_key*"
# Clean yum cache
yum clean all
@ -162,9 +158,14 @@ yum clean all
# Fix weird sssd bug, where it gets its folder owned by the unbound user:
chown -R sssd:sssd /var/lib/sss/{db,pipes,mc,pubconf,gpo_cache}
%end
# Add the PARTUUID of the rootfs partition to the kernel command line
# We must do this *outside* of the chroot, by grabbing the UUID of the loopmounted rootfs
%post --nochroot
# Extract the UUID of the rootfs partition from /etc/fstab

View File

@ -4,7 +4,7 @@
# Simple script that runs a Rocky Raspberry pi creation (via appliance-creator), then inserts a UUID to the kernel boot line of the image
# after-the-fact
#
# Usage: ./Rocky9_Rpi4_mkimage.sh /path/to/outputfolder/
# Usage: ./createRocky9_Image.sh /path/to/outputfolder/
#
#
# Needs to be run in the same directory as the rocky rpi kickstart, as it relies on it!
@ -13,16 +13,41 @@
# Exit with error if we don't have an output directory:
OUTDIR=$1
if [[ -z "$OUTDIR" ]]; then
OUTDIR=$1
LOGDIR="logs"
LOGFILE="/create_image`date +"%y%m%d"`.log"
LOGFILE2="create_image`date +"%y%m%d"`.log.2"
if [[ -z "${OUTDIR}" ]]; then
echo "Need to run this script with a path to output directory. Like: ${0} /path/to/output/"
exit 1
fi
if [[ -d ${LOGDIR} ]]; then
echo "$LOGDIR exists..."
else
mkdir -p "${LOGDIR}"
touch $LOGDIR/$LOGFILE
fi
if [[ -d ${OUTDIR} ]]; then
echo "$OUTDIR exists..."
else
mkdir -p "${OUTDIR}"
fi
mkdir -p "${OUTDIR}"
# Actually create the image. Our kickstart data should be in the same git repo as this script:
# (This takes a while, especially building on an rpi. Patience!)
appliance-creator -v -c ./Rocky9_Rpi.ks -n RockyRpi --version=`date +"%Y%m%d"` --release=1 --vmem=2048 --vcpu=2 --no-compress -o "${OUTDIR}"
appliance-creator -v -c ./Rocky9_Rpi.ks -n RockyRpi \
--version=`date +"%Y%m%d"` --release=1 \
-d --logfile $LOGDIR/LOGFILE \
--vmem=2048 --vcpu=2 --no-compress -o "${OUTDIR}"
chown -R $SUDO_USER. "${OUTDIR}"
#chown -R $SUDO_USER. "${OUTDIR}"