forked from sig_altarch/RockyRpi
Started R9 branch based (roughly) on R8 branch
-Skip G.
This commit is contained in:
parent
24799b6e04
commit
1a15f993de
@ -2,7 +2,7 @@
|
|||||||
Scripts and kickstarts for building Rocky Linux for Raspberry Pi
|
Scripts and kickstarts for building Rocky Linux for Raspberry Pi
|
||||||
|
|
||||||
## Purpose of this Repo
|
## Purpose of this Repo
|
||||||
This repository contains kickstart scripts and commands for producing your own Rocky Linux 8 image for the Raspberry Pi. It's intended mostly for developers or other technical users. If you are simply interested in using Rocky on your Pi, it's much easier to grab the latest image from (currently): https://dl.rockylinux.org/pub/rocky/8/rockyrpi/aarch64/images/
|
This repository contains kickstart scripts and commands for producing your own Rocky Linux 9 image for the Raspberry Pi. It's intended mostly for developers or other technical users. If you are simply interested in using Rocky on your Pi, it's much easier to grab the latest image from (currently): https://dl.rockylinux.org/pub/rocky/9/rockyrpi/aarch64/images/
|
||||||
|
|
||||||
|
|
||||||
The readme.image.txt file has information and instructions for those interested in downloading and using the ready-made image.
|
The readme.image.txt file has information and instructions for those interested in downloading and using the ready-made image.
|
||||||
@ -25,7 +25,7 @@ The included script to create the image is quite simple. Simply run it (with su
|
|||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
`sudo ./createRocky8_Image.sh /home/myhomefolder/Rocky8_image/`
|
`sudo ./createRocky9_Image.sh /home/myhomefolder/Rocky9_image/`
|
||||||
|
|
||||||
|
|
||||||
The kickstart/image build process takes approximately 10 minutes on a Raspberry Pi 4 with a decently fast internet connection. Alternatively, you should be able to use any aarch64 hardware that meets the above requirements(Amazon EC2, etc)
|
The kickstart/image build process takes approximately 10 minutes on a Raspberry Pi 4 with a decently fast internet connection. Alternatively, you should be able to use any aarch64 hardware that meets the above requirements(Amazon EC2, etc)
|
||||||
@ -33,7 +33,7 @@ The kickstart/image build process takes approximately 10 minutes on a Raspberry
|
|||||||
|
|
||||||
## Customizing the Kickstart
|
## Customizing the Kickstart
|
||||||
|
|
||||||
All the setup logic for the image is contained within the kickstart file (Rocky8_Rpi.ks). It is intended to be readable and well documented, and you can of course change it anyway you please to produce custom images yourself.
|
All the setup logic for the image is contained within the kickstart file (Rocky9_Rpi.ks). It is intended to be readable and well documented, and you can of course change it anyway you please to produce custom images yourself.
|
||||||
|
|
||||||
|
|
||||||
# Contributing
|
# Contributing
|
||||||
|
@ -13,12 +13,16 @@ part / --asprimary --fstype=ext4 --size=2800 --label=RPIROOT
|
|||||||
|
|
||||||
|
|
||||||
# Repos setup:
|
# Repos setup:
|
||||||
repo --name="BaseOS" --baseurl=http://download.rockylinux.org/pub/rocky/8/BaseOS/aarch64/os/ --cost=100
|
repo --name="BaseOS" --baseurl=http://download.rockylinux.org/stg/rocky/9/BaseOS/aarch64/os/ --cost=100
|
||||||
repo --name="AppStream" --baseurl=http://download.rockylinux.org/pub/rocky/8/AppStream/aarch64/os/ --cost=200 --install
|
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/pub/rocky/8/BaseOS/aarch64/os/ --cost=300 --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
|
||||||
|
#--baseurl=https://download.rockylinux.org/pub/rocky/8/rockyrpi/aarch64/os/ --cost=100 --install
|
||||||
|
|
||||||
|
|
||||||
# Rocky Rpi kernel repo, we need a more permanent place for this:
|
# Rocky Rpi kernel repo, we need a more permanent place for this:
|
||||||
repo --name="rockyrpi" --baseurl=https://download.rockylinux.org/pub/rocky/8/rockyrpi/aarch64/os/ --cost=20
|
#repo --name="rockyrpi" --baseurl=https://download.rockylinux.org/pub/rocky/8/rockyrpi/aarch64/os/ --cost=20
|
||||||
repo --name="rockyextras" --baseurl=https://download.rockylinux.org/pub/rocky/8/extras/aarch64/os/ --cost=20
|
#repo --name="rockyextras" --baseurl=https://download.rockylinux.org/pub/rocky/8/extras/aarch64/os/ --cost=20
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -29,7 +33,7 @@ rootpw --lock
|
|||||||
# FIXME user creation here does not work ?
|
# FIXME user creation here does not work ?
|
||||||
# user --name="rocky" --password="rockylinux" --plaintext --gecos="Rocky default user" --groups=wheel --uid=1000
|
# user --name="rocky" --password="rockylinux" --plaintext --gecos="Rocky default user" --groups=wheel --uid=1000
|
||||||
timezone --isUtc --nontp UTC
|
timezone --isUtc --nontp UTC
|
||||||
selinux --enforcing
|
selinux --disabled
|
||||||
firewall --enabled --port=22:tcp
|
firewall --enabled --port=22:tcp
|
||||||
network --bootproto=dhcp --device=link --activate --onboot=on
|
network --bootproto=dhcp --device=link --activate --onboot=on
|
||||||
services --enabled=sshd,NetworkManager,chronyd
|
services --enabled=sshd,NetworkManager,chronyd
|
||||||
@ -42,6 +46,10 @@ lang en_US.UTF-8
|
|||||||
# Package selection:
|
# Package selection:
|
||||||
%packages
|
%packages
|
||||||
@core
|
@core
|
||||||
|
#-grub2-tools-minimal
|
||||||
|
#-grub2-tools
|
||||||
|
#-grubby
|
||||||
|
#-grub2-common
|
||||||
chrony
|
chrony
|
||||||
cloud-utils-growpart
|
cloud-utils-growpart
|
||||||
net-tools
|
net-tools
|
||||||
@ -50,7 +58,9 @@ vim
|
|||||||
bash-completion
|
bash-completion
|
||||||
nano
|
nano
|
||||||
|
|
||||||
rocky-release-rpi
|
|
||||||
|
# will enable rocky-release-rpi after full 9 release (and we have it in the -extras repo)
|
||||||
|
#rocky-release-rpi
|
||||||
raspberrypi2-firmware
|
raspberrypi2-firmware
|
||||||
raspberrypi2-kernel4
|
raspberrypi2-kernel4
|
||||||
|
|
||||||
@ -68,7 +78,7 @@ console=ttyAMA0,115200 console=tty1 root= rootfstype=ext4 elevator=deadline root
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Run this once to fix the wifi:
|
# 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
|
#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?
|
# Apparently kickstart user was not working, attempt to do it here?
|
||||||
@ -79,9 +89,9 @@ echo "rockylinux" | passwd --stdin rocky
|
|||||||
# First, the all-important README :
|
# First, the all-important README :
|
||||||
|
|
||||||
cat >/home/rocky/README << EOF
|
cat >/home/rocky/README << EOF
|
||||||
== Rocky 8 Raspberry Pi Image ==
|
== Rocky 9 Raspberry Pi Image ==
|
||||||
|
|
||||||
This is a Rocky 8 install intended for Raspberry Pi 3b and 4 devices (architecture is aarch64).
|
This is a Rocky 9 install intended for Raspberry Pi 3b and 4 devices (architecture is aarch64).
|
||||||
|
|
||||||
This image WILL NOT WORK on a Raspberry Pi 1 or 2 (1.1 or earlier), we are 64-bit only, and have no support for 32-bit ARM processors. Sorry :-/.
|
This image WILL NOT WORK on a Raspberry Pi 1 or 2 (1.1 or earlier), we are 64-bit only, and have no support for 32-bit ARM processors. Sorry :-/.
|
||||||
|
|
||||||
@ -92,8 +102,7 @@ The newer Pi Zero devices should be supported, as well as the Raspberry Pi 2 v.
|
|||||||
|
|
||||||
IMAGE NOTES / DIFFERENCES FROM STOCK ROCKY 8:
|
IMAGE NOTES / DIFFERENCES FROM STOCK ROCKY 8:
|
||||||
|
|
||||||
- Based on Rocky Linux 8.5, points to production Rocky 8 aarch64 repositories
|
- Based on Rocky Linux 9, points to production Rocky 9 aarch64 repositories
|
||||||
- Has an additional repository that contains kernel packages for Raspberry Pi
|
|
||||||
- Includes script that fixes the wifi. Simple edit of a txt firmware settings file. Will need to be run whenever linux-firmware gets upgraded
|
- Includes script that fixes the wifi. Simple edit of a txt firmware settings file. Will need to be run whenever linux-firmware gets upgraded
|
||||||
- Includes @minimal-install , plus a few quality of life packages like vim, bash-completion, etc.
|
- Includes @minimal-install , plus a few quality of life packages like vim, bash-completion, etc.
|
||||||
- Initial User "rocky" (default password: "rockylinux"). Root password disabled, rocky user is a sudoer
|
- Initial User "rocky" (default password: "rockylinux"). Root password disabled, rocky user is a sudoer
|
||||||
@ -143,12 +152,16 @@ rm -f /etc/machine-id
|
|||||||
touch /etc/machine-id
|
touch /etc/machine-id
|
||||||
|
|
||||||
# Ensure no ssh keys are present
|
# Ensure no ssh keys are present
|
||||||
rm -f /etc/ssh/*_key*
|
rm -f "/etc/ssh/*_key*"
|
||||||
|
|
||||||
|
|
||||||
# Clean yum cache
|
# Clean yum cache
|
||||||
yum clean all
|
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
|
%end
|
||||||
|
|
||||||
# Add the PARTUUID of the rootfs partition to the kernel command line
|
# Add the PARTUUID of the rootfs partition to the kernel command line
|
@ -1,41 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# 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: ./Rocky8_Rpi4_mkimage.sh /path/to/outputfolder/
|
|
||||||
#
|
|
||||||
# Needs to be run in the same directory as the rocky rpi kickstart, as it relies on it!
|
|
||||||
#
|
|
||||||
# Exit with error if we don't have an output directory:
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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 ./Rocky8_Rpi4.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}"
|
|
28
createRocky9_Image.sh
Executable file
28
createRocky9_Image.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
# 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/
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Needs to be run in the same directory as the rocky rpi kickstart, as it relies on it!
|
||||||
|
#
|
||||||
|
|
||||||
|
# Exit with error if we don't have an output directory:
|
||||||
|
OUTDIR=$1
|
||||||
|
|
||||||
|
if [[ -z "$OUTDIR" ]]; then
|
||||||
|
echo "Need to run this script with a path to output directory. Like: ${0} /path/to/output/"
|
||||||
|
exit 1
|
||||||
|
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}"
|
||||||
|
|
||||||
|
chown -R $SUDO_USER. "${OUTDIR}"
|
@ -1,6 +1,6 @@
|
|||||||
(This file comes from the kickstart/appliance-creator repo: https://git.resf.org/sig_altarch/RockyRpi )
|
(This file comes from the kickstart/appliance-creator repo: https://git.resf.org/sig_altarch/RockyRpi )
|
||||||
|
|
||||||
Rocky 8 Raspberry Pi Images
|
Rocky 9 Raspberry Pi Images
|
||||||
|
|
||||||
They have been tested on Raspberry Pi 3 and 4.
|
They have been tested on Raspberry Pi 3 and 4.
|
||||||
|
|
||||||
|
14
skips_todo
14
skips_todo
@ -1,13 +1,7 @@
|
|||||||
#- Disable root pw, disable root ssh, add rocky login w/ default pw
|
- Build fixes for wifi on 9
|
||||||
|
|
||||||
- Detect PARTUUID and automatically swap /boot/cmdline.txt
|
- Finalize and release rpi Rocky 9 image
|
||||||
|
|
||||||
#- script to fix wifi txt file, in /root/, and also run it at the end
|
- re-sync kernel RPM from pgreco upstream
|
||||||
|
|
||||||
#- install extra packages: nano,vim,bash-completion
|
- port builds and imports to Peridot
|
||||||
|
|
||||||
#- Add rpi-kernel repo file
|
|
||||||
|
|
||||||
- Add README , with notes and how-to's for writing sd card, fixing wifi, and expanding partition
|
|
||||||
|
|
||||||
- Adjust swap/rootfs sizes(?)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user