{"id":20989110,"url":"https://github.com/zearp/pumice","last_synced_at":"2025-03-13T11:43:27.784Z","repository":{"id":225639091,"uuid":"758228864","full_name":"zearp/pumice","owner":"zearp","description":"Rocky Linux the way I like it","archived":false,"fork":false,"pushed_at":"2024-04-05T01:49:26.000Z","size":1079,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-05T02:30:30.882Z","etag":null,"topics":["pumice","rocky-linux","rockylinux"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zearp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-15T21:53:31.000Z","updated_at":"2024-04-14T22:40:27.466Z","dependencies_parsed_at":"2024-03-07T16:42:38.721Z","dependency_job_id":"d888df33-19b6-49b0-bf62-c6d4fb01fc8c","html_url":"https://github.com/zearp/pumice","commit_stats":null,"previous_names":["zearp/pumice"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zearp%2Fpumice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zearp%2Fpumice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zearp%2Fpumice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zearp%2Fpumice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zearp","download_url":"https://codeload.github.com/zearp/pumice/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243401482,"owners_count":20285051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pumice","rocky-linux","rockylinux"],"created_at":"2024-11-19T06:23:51.884Z","updated_at":"2025-03-13T11:43:27.760Z","avatar_url":"https://github.com/zearp.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pumice\n![pumice](https://github.com/zearp/pumice/assets/63272687/cff79de2-c50d-454f-ac3e-356605e24398)\n\nMy spin on Rocky Linux. Nothing fancy. Bare bones with only the things I need and want. The aim of this repo is to have my stuff easily available to myself and anyone interested. It is essentially a kickstart file that can be modified to suit your needs and build an iso with. Compared to a normal Rocky Linux dark mode is enabled by default, third party repo's been added and a different (minimal) selection of packages is used. Kickstarts are a great way to customise Rocky Linux. The iso can be installed without an active internet connection.\n\u003cdetails\u003e\n  \u003csummary\u003ePackages:\u003c/summary\u003e\n  \n  - GUI Stuff:\n    - Cockpit, manage stuff (remotely) from your browser\n    - Eye of Gnome image viewer\n    - Evince document viewer\n    - Flatseal to manage Flatpak permissions\n    - gedit, simple text editor\n    - Gnome disk utility\n    - Gnome font vieuwer\n    - Gnome schreenshot tool\n    - Gnome software centre\n    - Gnome system monitor\n    - Gnome terminal\n    - Gnome tweaks\n    - Nautilus file manager\n    - Plymouth spinner boot theme\n  - Shell utils:\n    - bat 🦀\n    - btop\n    - eza 🦀\n    - grubby\n    - htop\n    - nano\n    - nvme-cli\n    - pciutils\n    - pfetch 🦀\n    - usbutils\n    - ripgrep 🦀\n    - rsync\n    - wget\n    - zsh\n    - and many others!\n  - Extra repo's:\n    - RPM Fusion\n    - EPEL\n    - El Repo\n    - Flatpaks via the Gnome software centre\n\n\u003c/details\u003e\n\n#### Contents:\n* [Installation](#installation)\n* [Post install](#post-install)\n* [Updating](#updating)\n\n### Installation\n1. Disable SELinux:\n   ```sh\n   sudo setenforce 0\n   ```\n2. Install required packages:\n   ```sh\n   sudo dnf -y --refresh update \u0026\u0026 sudo dnf -y install epel-release\n   sudo dnf -y install --nogpgcheck rpmfusion-free-release \\\n   https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm\n   sudo dnf -y install mock mock-rpmfusion-free mock-rpmfusion-nonfree\n   ```\n3. Add yourself to the mock group and logout:\n   ```sh\n   sudo usermod -a -G mock $USER \u0026\u0026 exit\n   ```\n4. Log back in and create ```/etc/mock/pumice.cfg``` and paste in the following:\n   ```sh\n   include('rocky+epel-9-x86_64.cfg')\n   include('templates/rpmfusion_free-epel.tpl')\n   include('templates/rpmfusion_nonfree-epel.tpl')\n   config_opts['root'] = \"pumice-9-{{ target_arch }}\"\n   config_opts['description'] = 'Pumice 9'\n   ```\n5. Initialise and enter the mock environment:\n   ```sh\n   mock -r pumice --init --nobest\n   mock -r pumice --install lorax-lmc-novirt nano pykickstart git\n   mock -r pumice --shell --isolation=simple --enable-network\n   ```\n   \u003csup\u003eThe --nobest option is not strickly needed, just sometimes its fails to initialise and this option prevents/fixes it.\u003c/sup\u003e\n   \n6. From inside the mock enviroment download the kickstart file and edit, then flatten it:\n   ```sh\n   git clone https://github.com/zearp/pumice \u0026\u0026 cd pumice/kickstart\n   nano pumice.ks\n   ksflatten -c pumice.ks -o flat.ks\n   ```\n7. Generate the iso with the following command:\n   ```sh\n   livemedia-creator --ks flat.ks --no-virt --resultdir /var/lmc --project=\"Pumice\" --make-iso \\\n   --volid Pumice-9 --iso-only --iso-name Pumice-9-x86_64.iso --releasever=9 --nomacboot \u0026\u0026 exit\n   ```\n8. When it's done we'll move the iso file to the current directory and clean up:\n   ```sh\n   sudo mv /var/lib/mock/pumice-9-x86_64/root/var/lmc/Pumice-9-x86_64.iso .\n   sudo chown $USER:$USER Pumice-9-x86_64.iso\n   mock -r pumice --scrub=all\n   ```\n9. Re-enable SELinux:\n   ```sh\n   sudo setenforce 1\n   ```\nThat's all, you can now use the iso file to install.\n\n# Post install\nSome (hopefully) useful post install stuff.\n\n### Remove left overs.\n```\nsudo dnf -y remove anaconda\\*\nsudo dnf clean all\n```\nOptionally if you just want to use ```dnf``` remove flatpak, flatseal and gnome-software.\n```\nsudo dnf -y remove flatpak\\* flatseal gnome-software\n```\nOn AMD iGPU/GPU systems the Intel driver can be removed too:\n```\nsudo dnf -y remove intel-media-driver\n```\n\n### Verify SELinux\nSecurity is paramount so let's make sure SELinux is running in ```enforcement``` mode. run the following command to check the current enforcement status:\n```\nsudo getenforce\n```\nIf it shows ```Enforcing``` we don't need to do anything. If it shows ```Permissive``` run the following command, reboot and check the enforcement status again:\n```\nsudo fixfiles onboot\n```\nFor more information please refer to [this](https://docs.rockylinux.org/guides/security/learning_selinux) page.\n\n### Check for and install firmware updates\nRun these commands one by one and only update if you want to. If everything is workign fine it might not be needed to update anything. Refer to the release notes and change logs for each firmware update.\n```\nsudo fwupdmgr refresh\nsudo fwupdmgr get-updates\n## make sure you need/want these updates!\nsudo fwupdmgr update\n```\n### Cockpit\nCockpit is a nice web frontend to do basic monitoring and managements tasks. I suggest using it not only on servers but anywhere and also when you need to troubleshoot issues. It has some great utilities and access to log files and services and so on. The default location is ```https://localhost:9090```. For more information please read [this](https://www.redhat.com/sysadmin/intro-cockpit) page.\n\nTo get started run the following commands:\n```\nsudo dnf -y install cockpit \u0026\u0026 sudo systemctl enable --now cockpit.socket\n```\nYou can now open ```https://localhost:9090``` in your browser. It is possible to use a Let's encrypt certiffcate using ```certbot```.\n\n### El Repo kernel\nSometimes you need a more modern kernel, for example very recent hardware. We can use the El Repo repository for that. The only cost is that secure boot will no longer function. To enable and install El Repo's 6.x kernel run the following commands:\n```\nsudo dnf install kernel-lt kernel-lt-modules-extra\n```\nNow reboot and press the escape key to show the grub menu and select the new kernel from the list.\n\nWe can replace ```lt``` for ```ml``` if you want even newer mainline kernel as opposed to the long term support kernel. If everything works well run the following commands to set a new default kernel and remove the old default kernel:\n```\nsudo echo -e \"DEFAULTKERNEL=kernel-lt-core\\nUPDATEDEFAULT=yes\" | sudo tee /etc/sysconfig/kernel\nsudo dnf -y remove kernel kernel-core\n```\nYou can also modify the kickstart to build your iso with a 6.x kernel instead. For more information see [this](https://elrepo.org/wiki/doku.php?id=kernel-lt) page. In order to compile modules it may be needed to install the ```kernel-lt-devel``` package.\n\n### AMD Drivers\nOnly works with the stock 5.x kernels. This will give you OpenCL and some additonal video encoders/decoders. Download the latest installer rpm [here](https://repo.radeon.com/amdgpu-install/latest/rhel/9.4/) and install it:\n```\nsudo rpm -i amdgpu-install*.rpm\nsudo amdgpu-install --usecase=graphics,multimedia,dkms,opencl\nsudo reboot\n```\n\n### Firefox\nFor hardware encoding set ```media.ffmpeg.vaapi.enabled``` and ```gfx.webrender.all``` to true in ```about:config``` and restart Firefox. To test check cpu/gpu usage in ```nvtop``` or ```intel_gpu_top```. The latter may have to be compiled from source or if you dare manually install the Fedora package (```igt-gpu-tools```). If you use the Flatpak version it may also be needed to run Firefox in Wayland mode by adding an enviroment option using Flatseal. This shouldn't be needed anymore.\n\nIt is recommended to block unsupported codecs using [this](https://addons.mozilla.org/en-US/firefox/addon/enhanced-h264ify) add-on. For example, my NUC 8 does not support AV1 but does support VP8/9 and h264. Setting the add-on to only block AV1 tries to makes it so videos are being decoded by the gpu. To see which codecs are supported you can use the ```vainfo``` command.\n\nYou will see entries like ```VAProfileH264``` and so on. Disable any you don't have but are listed in the ```enhanced-h264ify``` add-on. This way Firefox won't be rendering videos ususing the cpu (as much). If you run into a video that doesn't play disabling the add-on and refreshing the page should fix it and let Firefox use the cpu to render the video.\n\nWhile we're at it let's install [uBlock Origin](https://addons.mozilla.org/en-GB/firefox/addon/ublock-origin) to block some ads and trackers.\n\n### Misc.\n- Change shell to zsh:\n  ```sh\n  sudo usermod --shell /usr/bin/zsh $USER\n  ```\n- Less flickering when booting and old school network interface names:\n  ```sh\n  sudo grubby --update-kernel=ALL --args=\"loglevel=3 systemd.show_status=auto rd.udev.log_level=3 vt.global_cursor_default=0 biosdevname=0 net.ifnames=0\"\n  ```\n- Sort apps alphabetically, logout and in to apply, don't use sudo here:\n  ```sh\n  gsettings set org.gnome.shell app-picker-layout \"[]\"\n  ```\n- Flatpak dark mode fix, add an enviroment variable using Flatseal:\n  ```sh\n  GTK_THEME=Adwaita-dark\n  ```\n- Sync login screen settings (gdm):\n  ```sh\n  sudo cp ~/.config/monitors.xml /var/lib/gdm/.config/\n  ```\n- Remove brightness slider (when applicable):\n  ```sh\n  sudo grubby --update-kernel ALL --args acpi_backlight=none\n  ```\n- Enable 8bitdo xbox gamepad:\n  ```sh\n  sudo nano /etc/udev/rules.d/99-8bitdo-xinput.rules\n  ```\n  ```\n  ACTION==\"add\", ATTRS{idVendor}==\"2dc8\", ATTRS{idProduct}==\"310a\", RUN+=\"/sbin/modprobe xpad\", RUN+=\"/bin/sh -c 'echo 2dc8 310a \u003e /sys/bus/usb/drivers/xpad/new_id'\"\n  ```\n  ```sh\n  sudo udevadm control --reload-rules \u0026\u0026 sudo udevadm trigger\n  ```\n- Compiling kernel modules:\n  ```sh\n  sudo dnf -y install kernel-devel dkms\n  ```\n- Disable sleep/suspend completely, disable it in Gnome settings first or else you get false positive notifications about impending suspends. Re-run with ```unmask``` to re-enable:\n  ```sh\n  sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target\n  ```\n- The firewall (```firewalld```) is enabled and allowing; cockpit and ssh. For some basics on opening ports/services and more information please refer to [this](https://docs.rockylinux.org/guides/security/firewalld-beginners) page.\n\n# Updating\nEasy mode!\n```\nsudo dnf --refresh update\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzearp%2Fpumice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzearp%2Fpumice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzearp%2Fpumice/lists"}