diff options
| author | Miquel Sabaté Solà <mssola@mssola.com> | 2026-02-26 14:42:58 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <mssola@mssola.com> | 2026-02-27 08:04:53 +0100 |
| commit | 790751ff456d770b5882c834eba931bdd7862c02 (patch) | |
| tree | 11ab3aa1088283977ecd6dda844d23d02f7abc3d /.config | |
| parent | ea1d180a628f146aae4e321fe545fcddb2d577c7 (diff) | |
| download | dotfiles-790751ff456d770b5882c834eba931bdd7862c02.tar.gz dotfiles-790751ff456d770b5882c834eba931bdd7862c02.zip | |
kbuild: add the 'freezeezy' profile
This is the profile for my x86_64 development box.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
Diffstat (limited to '.config')
| -rw-r--r-- | .config/kbuild/freezeezy/install.sh | 56 | ||||
| -rw-r--r-- | .config/kbuild/freezeezy/uninstall.sh | 48 |
2 files changed, 104 insertions, 0 deletions
diff --git a/.config/kbuild/freezeezy/install.sh b/.config/kbuild/freezeezy/install.sh new file mode 100644 index 0000000..2009bfa --- /dev/null +++ b/.config/kbuild/freezeezy/install.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +# Copyright (C) 2026-Ω Miquel Sabaté Solà <mikisabate@gmail.com> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +set -ex + +## +# Ensure you are root and dependencies are met. + +if [ "$EUID" -ne 0 ];then + echo "kbuild (error): run this as root." + exit 1 +fi + +if [ ! -f /usr/bin/dracut ]; then + echo "kbuild (error): you need 'dracut'." + exit 1 +fi + +if [ ! -f /usr/sbin/btrfs ]; then + echo "kbuild (error): you need 'btrfs'." + exit 1 +fi + +## +# Before anything at all, create a snapshot. + +btrfs subvolume snapshot / /.snapshots/pre-kernel-$name + +## +# Copy files into filesystem and generate initramfs. + +make modules_install +# NOTE: headers are not installed on purpose. +# Manual make install +cp arch/x86/boot/bzImage /boot/vmlinuz-$name +cp .config /boot/config-$name +cp System.map /boot/System.map-$name +dracut --kver=$name -f + +## +# Update grub. + +grub2-mkconfig -o /boot/grub2/grub.cfg diff --git a/.config/kbuild/freezeezy/uninstall.sh b/.config/kbuild/freezeezy/uninstall.sh new file mode 100644 index 0000000..efb94b7 --- /dev/null +++ b/.config/kbuild/freezeezy/uninstall.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# Copyright (C) 2026-Ω Miquel Sabaté Solà <mikisabate@gmail.com> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +set -ex + +if [ "$EUID" -ne 0 ];then + echo "kbuild (error): run this as root." + exit 1 +fi + +if [ ! -f /usr/sbin/btrfs ]; then + echo "kbuild (error): you need 'btrfs'." + exit 1 +fi + +## +# Remove files. + +rm -rf /lib/modules/$name +rm -f /boot/initrd-$name +rm -f /boot/initrd.img-$name +rm -f /boot/vmlinuz-$name +rm -f /boot/System.map-$name +rm -f /boot/config-$name + +## +# Update grub. + +grub2-mkconfig -o /boot/grub2/grub.cfg + +## +# If everything was alright, it's now safe to remove the snapshot we took on +# install.sh. + +btrfs subvolume delete /.snapshots/pre-kernel-$name |
