Source: tiny-initramfs
Followup-For: Bug #1063142
Control: tags -1 patch
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256
The attached patch works for both linux-image-6.5.0-5-amd64 (uncompressed
kernel modules) and linux-image-6.6.13-amd64 (xz-compressed kernel
modules).
There are other compressors possible for kernel modules (gzip and zstd),
but I targeted this fix as much as possible.
- --
Vriendelijke groet, Kind regards,
Victor Westerhuis
- -- System Information:
Debian Release: trixie/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (100, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 6.6.13-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_NL.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8),
LANGUAGE=en_GB:en_US:en:nl_NL:nl
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
- -- no debconf information
-BEGIN PGP SIGNATURE-
iQJHBAEBCAAxFiEE6OxII3T+o0Ujs6ECQz2Rq5dHQPsFAmXAwcETHHZpY3RvckB3
ZXN0ZXJodS5pcwAKCRBDPZGrl0dA+xJUD/9RtYxcePghLf2n9ZGA+V/zPRanexXj
9PflsIPJ8+fWDd5JfHBzVPWAUabEZotggzSkppGKegOLWKGTMqQishsFX39MmbrA
Ht/O7wusUmpLBXu2tp8mfAEFvAxnKAzUzoIKi9PZKAurRyk1imzrNxieQBCfotgd
WsKumqHaXOpVFQuRZfxunK9D3t/HRZwG99aMtSo5DemZASnh4BT4H66XkQaG0wwb
Nb60o5Gdy6KMs/IJMLA2I9lo/uVHHPMeOoOu3M33uB0D5q9bDDqshnAzxflBCazw
P864wswsYipt+npn7resBR76O5i7MhR+UryO7rJpKbt3FCf9dtQSn9707256wX6o
5eoFQfybzyoiX22uUbUabie7a/lIPQhBoGDjhnmxw/5HJ/Uqiws7WsqBQhvL2uDA
bFAFi5/HYMTh7yj01PNNa6F0Ep0SzG35ywiXT5VSFuWLd/FzYNaJLYxv+0ZkBMID
LIMIp89qCQ1SqDKS194BkDC680u00lPgC2jLHTtMODEiBJH8kf9ZYzcQCSj01Agx
ajhm+dR5ckmKb+PBXZzIqjpc7b1+CR+gmjhwrQPq+AFV73tTjtpKOMhOYtEfuffD
AM92tO2t/A523iPxpGUPjpQcjTJqc3ylBwnMjtyzXjvWu32cLyE9Ue6e9Gt4/v6L
FYag/VjpodGFnw==
=M4yi
-END PGP SIGNATURE-
diff -Nru tiny-initramfs-0.1/debian/changelog
tiny-initramfs-0.1/debian/changelog
--- tiny-initramfs-0.1/debian/changelog 2017-09-12 17:49:40.0 +0200
+++ tiny-initramfs-0.1/debian/changelog 2024-02-05 11:33:39.0 +0100
@@ -1,3 +1,10 @@
+tiny-initramfs (0.1-5.1) unstable; urgency=high
+
+ * Non-maintainer upload.
+ * Decompress kernel modules included in initramfs. (Closes: #1063142)
+
+ -- Victor Westerhuis Mon, 05 Feb 2024 11:33:39 +0100
+
tiny-initramfs (0.1-5) unstable; urgency=medium
[ Free Ekanayaka ]
diff -Nru tiny-initramfs-0.1/debian/control tiny-initramfs-0.1/debian/control
--- tiny-initramfs-0.1/debian/control 2017-09-12 17:49:40.0 +0200
+++ tiny-initramfs-0.1/debian/control 2024-02-05 11:32:21.0 +0100
@@ -24,7 +24,7 @@
Package: tiny-initramfs-core
Architecture: linux-any
Multi-Arch: foreign
-Depends: cpio, ${shlibs:Depends}, ${misc:Depends}
+Depends: cpio, xz-utils, ${shlibs:Depends}, ${misc:Depends}
Built-Using: ${Built-Using}
Description: Minimalistic initramfs implementation (core tools)
A very minimalistic initramfs implementation for booting Linux
diff -Nru tiny-initramfs-0.1/debian/extra/functions
tiny-initramfs-0.1/debian/extra/functions
--- tiny-initramfs-0.1/debian/extra/functions 2017-09-12 17:49:40.0
+0200
+++ tiny-initramfs-0.1/debian/extra/functions 2024-02-05 11:33:39.0
+0100
@@ -208,9 +208,18 @@
fi
/sbin/modprobe --all --ignore-install --set-version="${VERSION}" --quiet
--show-depends "$@" | \
awk '$1 == "insmod" { print; }' | while read dummy_type mod_file
mod_options ; do
-mod_name=${mod_file##*/}
+mod_name=$(basename "$mod_file" | sed -E 's/(.*\.ko)(\..*)?/\1/')
+mod_compression=$(basename "$mod_file" | sed -E 's/(.*\.ko)(\..*)?/\2/')
if ! grep -q ^/"${mod_name}" "${initramfs_dir}/modules" ; then
- cp "${mod_file}" "${initramfs_dir}/${mod_name}"
+ if [ "$mod_compression" = .xz ] ; then
+xzcat "${mod_file}" > "${initramfs_dir}/${mod_name}"
+ elif [ -z "$mod_compression" ] ; then
+cp "${mod_file}" "${initramfs_dir}/${mod_name}"
+ else
+echo "$0: WARNING: unable to determine compression for modules while
adding modules" >&2
+echo "YOUR SYSTEM MIGHT NOT BOOT WITH THIS INITRAMFS." >&2
+cp "${mod_file}" "${initramfs_dir}/${mod_name}"
+ fi
printf "%s\n" "/${mod_name}${mod_options:+ $mod_options}" >>
"${initramfs_dir}/modules"
fi
done