Pumice based on Rocky Linux 10 using this great resource. A customised Rocky Linux install to my liking and for you to use, modify and make into your own. By default you'll get a very basic Gnome install. I use this as a daily driver on a bunch of systems and it's been very stable. As can be expected from an enterprise Linux like Rocky/RHEL. I like to use Rocky as I need that 1:1 RHEL following sometimes but it should be possible to adapt this to use Alma Linux, CentOS and Fedora too. You'd need to adjust the repo's, image that podman uses and of course the package selection. Most of these projects have kiwi configurations available so it shouldn't be too difficult to find the correct repo url and package/group selections.
When possible I use Flatpak versions of apps, this uses more disk space but it also means we can run the latest versions and not have to worry about dependancies and such. It is also more secure running in a sandbox that can be controlled per app with Flatseal. Plus many projects sort of require or prefer it when you use their official Flatpak when reporting bugs or issues. I don't mind the extra space used. But it is of course possible to use regular packages (if available) instead. Just edit config.sh to change or remove the Flatpak stuff and edit config.xml to add the packages or groups you wish to add (or remove).
It should work out of the box on most hardware. When it's needed to save space the hardware-support group could be removed and individual firmware packages can be installed instead. Dark mode is enabled by default and Cockpit is installed as well. Open https://localhost:9090 in a browser post install to easily manage the system and virtual machines and such. Building will be very straight forward on any dnf system and on most other distro's as well, all you need is podman.
On other platforms like macOS and Windows it is possible too but out of the scope for me. I've tested this on RHEL 9/10-beta, CentOS Stream 10, Alma 9/10-beta and Rocky 9 without issues. I'm very impressed with kiwi and how easy it is to build an almost spin worthy customised iso in minutes.
sudo dnf install -y podman git
git clone https://github.com/zearp/pumice-rocky && cd pumice-rocky
sudo setenforce permissive
sudo nano config.xml && sudo nano config.sh && ls -lha root/
sudo podman pull quay.io/rockylinux/rockylinux:10
sudo podman run --privileged --rm -it -v /dev:/dev -v $PWD:/code:z -w /code quay.io/rockylinux/rockylinux:10 /bin/bash
Run these commands inside the downloaded image:
rpm -i https://www.elrepo.org/elrepo-release-10.el10.elrepo.noarch.rpm && dnf -y install epel-release
dnf -y install kiwi policycoreutils && dnf -y --refresh update
kiwi-ng --type=iso --profile="Pumice" --color-output system build --description="." --target-dir ./outdir
You can track progress by tailing the log file in another terminal:
tail -f outdir/build/image-root.log
Exit with exit and copy the generated image from outdir.
Podman leaves things behind, to clean up the mess run:
sudo podman system prune --all --volumes --force
Secure boot needs to be disabled for this. Download the rpm from here then run these commands:
sudo rpm -i amdgpu-install*.rpm
sudo amdgpu-install --usecase=graphics,multimedia,dkms,opencl
sudo reboot
More info on the installation of the driver can be found here.
Secure boot needs to be disabled for this too. Running the stock RHEL kernel can have some negative side effects such as missing modules of some of the RHEL patches. Thanks to the El Repo project we can use the normal Linux kernel too. Enable the El Repo repo and install the current mainline or lts kernel, you can replace ml with lt to follow the lts kernel:
sudo dnf -y config-manager --set-enabled elrepo elrepo-extras elrepo-kernel
sudo dnf -y install kernel-ml kernel-ml-modules-extra
sudo reboot
If it works as expected and you're ready to switch run the follow commands to set our new default and optionally remove the RHEL kernel:
sudo echo -e "DEFAULTKERNEL=kernel-ml-core\nUPDATEDEFAULT=yes" | sudo tee /etc/sysconfig/kernel
sudo dnf -y remove kernel kernel-core
- You can build multiple images without exiting if you change the output folder in the
kiwi-ngcommand - /etc/rc.d/rc.local is used to run some firstboot commands and removes itself
- You can customise the file system by adding, removing or editing files in the
rootfolder - Read the
kiwidocs: https://osinside.github.io/kiwi/image_description/elements.html
