summaryrefslogtreecommitdiff
path: root/source/a/mkinitrd
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/mkinitrd')
-rw-r--r--source/a/mkinitrd/geninitrd33
-rw-r--r--[-rwxr-xr-x]source/a/mkinitrd/init0
-rwxr-xr-xsource/a/mkinitrd/mkinitrd.SlackBuild12
-rw-r--r--source/a/mkinitrd/setup.01.mkinitrd38
4 files changed, 82 insertions, 1 deletions
diff --git a/source/a/mkinitrd/geninitrd b/source/a/mkinitrd/geninitrd
new file mode 100644
index 00000000..db7995ab
--- /dev/null
+++ b/source/a/mkinitrd/geninitrd
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+# Copyright 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# This is a simple script to regenerate the initial ramdisk when a new
+# kernel is installed. It will generate /boot/initrd.gz which will be
+# suitable for *most* uses for whatever kernel is linked to the
+# /boot/vmlinuz-generic (or /boot/vmlinuz-generic-smp) symlink. The
+# linked kernel must be named properly with the kernel version in the
+# filename (the same naming scheme as the kernels shipped in Slackware).
+#
+# If you use an encrypted root, you'll need to make your initrd manually.
+
+cd $(dirname $0)/../..
+chroot . /var/lib/pkgtools/setup/setup.01.mkinitrd
diff --git a/source/a/mkinitrd/init b/source/a/mkinitrd/init
index 7e238ac6..7e238ac6 100755..100644
--- a/source/a/mkinitrd/init
+++ b/source/a/mkinitrd/init
diff --git a/source/a/mkinitrd/mkinitrd.SlackBuild b/source/a/mkinitrd/mkinitrd.SlackBuild
index 7538dbd1..38ea9485 100755
--- a/source/a/mkinitrd/mkinitrd.SlackBuild
+++ b/source/a/mkinitrd/mkinitrd.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=mkinitrd
VERSION=${VERSION:-1.4.11}
BB=1.28.3
-BUILD=${BUILD:-8}
+BUILD=${BUILD:-9}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -120,6 +120,16 @@ cat $CWD/mkinitrd.conf.5 | gzip -9c > $PKG/usr/man/man5/mkinitrd.conf.5.gz
cat $CWD/mkinitrd.8 | gzip -9c > $PKG/usr/man/man8/mkinitrd.8.gz
cat $CWD/mkinitrd_command_generator.8 | gzip -9c > $PKG/usr/man/man8/mkinitrd_command_generator.8.gz
+mkdir -p $PKG/var/lib/pkgtools/setup
+cp -a $CWD/setup.01.mkinitrd $PKG/var/lib/pkgtools/setup
+chown root:root $PKG/var/lib/pkgtools/setup/setup.01.mkinitrd
+chmod 755 $PKG/var/lib/pkgtools/setup/setup.01.mkinitrd
+
+mkdir -p $PKG/usr/sbin
+cp -a $CWD/geninitrd $PKG/usr/sbin
+chown root:root $PKG/usr/sbin/geninitrd
+chmod 755 $PKG/usr/sbin/geninitrd
+
mkdir -p $PKG/etc
cp -a $CWD/mkinitrd.conf.sample $PKG/etc/mkinitrd.conf.sample
# ARM systems often need more time to find devices:
diff --git a/source/a/mkinitrd/setup.01.mkinitrd b/source/a/mkinitrd/setup.01.mkinitrd
new file mode 100644
index 00000000..b8004470
--- /dev/null
+++ b/source/a/mkinitrd/setup.01.mkinitrd
@@ -0,0 +1,38 @@
+#!/bin/sh
+#BLURB="Generate /boot/initrd.gz for the generic kernel"
+
+# First, clear the existing initrd-tree:
+if [ -f $(readlink -f boot/vmlinuz-generic) -o -f $(readlink -f boot/vmlinuz-generic-smp) ]; then
+ rm -rf boot/initrd-tree
+fi
+
+# Next, if boot/vmlinuz-generic is a symlink to a kernel, generate a ramdisk
+# using the modules for that kernel:
+if [ -f $(readlink -f boot/vmlinuz-generic) ]; then
+ KERNEL_SYMLINK="boot/vmlinuz-generic"
+ KERNEL_VERSION="$(readlink -f $KERNEL_SYMLINK | sed "s/-smp/_smp/g" | rev | cut -f 1 -d - | rev | sed "s/_smp/-smp/g")"
+dialog --title "GENERATING INITIAL RAMDISK" --infobox \
+ "Generating an initial ramdisk for use with the $KERNEL_VERSION generic \
+kernel. The initial ramdisk contains kernel modules needed to mount the \
+root partition, and must be regenerated whenever the kernel is updated. To \
+regenerate the initrd, select this setup script from within pkgtool, or run \
+'geninitrd' which will produce an initial ramdisk (/boot/initrd.gz) for the \
+kernel pointed to by the /$KERNEL_SYMLINK symlink." 9 68
+ chroot . /usr/share/mkinitrd/mkinitrd_command_generator.sh -k $KERNEL_VERSION | sed "s/-c -k/-k/g" | chroot . bash 1> /dev/null 2> /dev/null
+fi
+
+# If boot/vmlinuz-generic-smp is a symlink to a kernel, also include the
+# modules for that kernel:
+if [ -f $(readlink -f boot/vmlinuz-generic-smp) ]; then
+ KERNEL_SYMLINK="boot/vmlinuz-generic-smp"
+ KERNEL_VERSION="$(readlink -f $KERNEL_SYMLINK | sed "s/-smp/_smp/g" | rev | cut -f 1 -d - | rev | sed "s/_smp/-smp/g")"
+dialog --title "GENERATING INITIAL RAMDISK" --infobox \
+ "Generating an initial ramdisk for use with the $KERNEL_VERSION generic \
+kernel. The initial ramdisk contains kernel modules needed to mount the \
+root partition, and must be regenerated whenever the kernel is updated. To \
+regenerate the initrd, select this setup script from within pkgtool, or run \
+'geninitrd' which will produce an initial ramdisk (/boot/initrd.gz) for the \
+kernel pointed to by the /$KERNEL_SYMLINK symlink." 9 68
+ chroot . /usr/share/mkinitrd/mkinitrd_command_generator.sh -k $KERNEL_VERSION | sed "s/-c -k/-k/g" | chroot . bash 1> /dev/null 2> /dev/null
+fi
+