-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* initramfs update (remove shitty commits)
- Loading branch information
Showing
3 changed files
with
203 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,183 @@ | ||
diff --git a/debian/control b/debian/control | ||
index 76a5627..70b8ff4 100644 | ||
--- a/debian/control | ||
+++ b/debian/control | ||
@@ -29,7 +29,6 @@ Multi-Arch: foreign | ||
Recommends: zstd, ${busybox:Recommends} | ||
Depends: coreutils (>= 8.24), | ||
cpio (>= 2.12), | ||
- dracut-install, | ||
klibc-utils (>= 2.0.4-8~), | ||
kmod, | ||
logsave | e2fsprogs (<< 1.45.3-1~), | ||
diff --git a/hook-functions b/hook-functions | ||
index 7fccf0e..1ad074c 100644 | ||
--- a/hook-functions | ||
+++ b/hook-functions | ||
@@ -93,35 +93,47 @@ add_firmware() | ||
# Call apply_add_modules to copy the kernel modules. | ||
manual_add_modules() | ||
{ | ||
- for module in "$@"; do | ||
- echo "$module" >> "$__MODULES_TO_ADD" | ||
- done | ||
-} | ||
- | ||
-# Copy the kernel modules that were marked in manual_add_modules | ||
-apply_add_modules() | ||
-{ | ||
- # shellcheck disable=SC2046 | ||
- _call_dracut_install $(sort -u "$__MODULES_TO_ADD") | ||
- true > "$__MODULES_TO_ADD" | ||
-} | ||
- | ||
-_call_dracut_install() | ||
-{ | ||
- local dracut_verbose fw_path_para | ||
+ local prefix kmod options firmware | ||
|
||
if [ $# -eq 0 ]; then | ||
return | ||
fi | ||
|
||
- if [ "${verbose?}" = "y" ]; then | ||
- dracut_verbose=-v | ||
- fi | ||
+ # modprobe --ignore-install inhibits processing of 'install' | ||
+ # configuration lines, so that instead we will see 'insmod | ||
+ # module.ko' as we want. However it also means that 'softdep' | ||
+ # configuration lines and embedded softdep information is not | ||
+ # processed. So we run twice, with and without this option. | ||
+ # shellcheck disable=SC2034 | ||
+ { /sbin/modprobe --all --set-version="${version?}" --ignore-install --quiet --show-depends "$@"; | ||
+ /sbin/modprobe --all --set-version="${version}" --quiet --show-depends "$@"; } | | ||
+ while read -r prefix kmod options ; do | ||
+ if [ "${prefix}" != "insmod" ]; then | ||
+ continue | ||
+ fi | ||
|
||
- read -r fw_path_para < /sys/module/firmware_class/parameters/path | ||
- /usr/lib/dracut/dracut-install -D "$DESTDIR" --kerneldir "/lib/modules/${version?}" \ | ||
- --firmwaredirs "${fw_path_para:+${fw_path_para}:}/lib/firmware/updates/${version?}:/lib/firmware/updates:/lib/firmware/${version?}:/lib/firmware" \ | ||
- ${dracut_verbose-} -o -m "$@" | ||
+ copy_file module "${kmod}" || continue | ||
+ | ||
+ # Add required firmware | ||
+ for firmware in $(modinfo -k "${version}" -F firmware "${kmod}"); do | ||
+ # Only print warning for missing fw of loaded module | ||
+ # or forced loaded module | ||
+ if ! add_firmware "$firmware"; then | ||
+ # Only warn about missing firmware if | ||
+ # /proc/modules exists | ||
+ if [ ! -e /proc/modules ] ; then | ||
+ continue | ||
+ fi | ||
+ | ||
+ kmod_modname="${kmod##*/}" | ||
+ kmod_modname="${kmod_modname%%.*}" | ||
+ if grep -q "^$kmod_modname\\>" /proc/modules "${CONFDIR}/modules"; then | ||
+ echo "W: Possible missing firmware /lib/firmware/${firmware} for module ${kmod_modname}" >&2 | ||
+ fi | ||
+ continue | ||
+ fi | ||
+ done | ||
+ done | ||
} | ||
|
||
# manual_add_modules() takes care of adding firmware for things that were built | ||
@@ -795,72 +807,6 @@ auto_add_modules() | ||
manual_add_modules $modules | ||
} | ||
|
||
-# 'depmod' only looks at symbol dependencies and the 'softdep' module | ||
-# information field; there is no way for modules to declare weaker | ||
-# dependencies (modules that *might* be needed at run-time) through | ||
-# module information, Until this is fixed, we need to handle those | ||
-# hidden dependencies. | ||
-hidden_dep_add_modules() | ||
-{ | ||
- # shellcheck disable=SC2046 | ||
- _call_dracut_install $( | ||
- { | ||
- cat "${DESTDIR}/lib/modules/${version}/modules.builtin" | ||
- if [ -d "${DESTDIR}/lib/modules/${version}/kernel" ]; then | ||
- find "${DESTDIR}/lib/modules/${version}/kernel" -name '*.ko*' | ||
- fi | ||
- } | | ||
- while read -r module; do | ||
- module="${module##*/}" | ||
- module="${module%%.*}" | ||
- case "$module" in | ||
- libcrc32c) | ||
- echo crc32c | ||
- ;; | ||
- ubifs) | ||
- echo deflate zlib lzo | ||
- ;; | ||
- btrfs) | ||
- echo crc32c | ||
- ;; | ||
- f2fs) | ||
- echo crc32 | ||
- ;; | ||
- mlx4_core) | ||
- echo mlx4_ib | ||
- ;; | ||
- mlx5_core) | ||
- echo mlx5_ib | ||
- ;; | ||
- i8042) | ||
- echo psmouse | ||
- ;; | ||
- nvme) | ||
- echo vmd | ||
- ;; | ||
- spi-rockchip) | ||
- echo pl330 | ||
- ;; | ||
- dw_mmc-rockchip) | ||
- echo rockchip-io-domain io-domain | ||
- ;; | ||
- mediatek-drm) | ||
- echo mediatek-drm-hdmi mtk_iommu mtk-smi | ||
- ;; | ||
- mtk_iommu) | ||
- echo mtk-smi | ||
- ;; | ||
- phy-mtk-mipi-dsi-drv) | ||
- echo nvmem_mtk-efuse | ||
- ;; | ||
- mt6397) | ||
- echo mtk-pmic-wrap | ||
- ;; | ||
- esac | ||
- done | ||
- ) | ||
-} | ||
- | ||
# Find the source for a script file. This is needed to work around | ||
# temporary directories mounted with the noexec option. The source | ||
# will be on / or /usr which must be executable. | ||
diff --git a/mkinitramfs b/mkinitramfs | ||
index 40e0fd1..bc90423 100755 | ||
--- a/mkinitramfs | ||
+++ b/mkinitramfs | ||
@@ -424,7 +424,6 @@ for file in /etc/modprobe.d/*.conf /lib/modprobe.d/*.conf ; do | ||
done | ||
|
||
# Copy kernel modules here, because some hooks rely on them being copied | ||
-apply_add_modules | ||
run_scripts /usr/share/initramfs-tools/hooks | ||
run_scripts "${CONFDIR}"/hooks | ||
|
||
@@ -433,10 +432,6 @@ for b in $(cd "${DESTDIR}/scripts" && find . -mindepth 1 -type d); do | ||
cache_run_scripts "${DESTDIR}" "/scripts/${b#./}" | ||
done | ||
|
||
-apply_add_modules | ||
-# Resolve hidden dependencies | ||
-hidden_dep_add_modules | ||
- | ||
# decompress modules for boot speed, if possible | ||
find "${DESTDIR}/${MODULESDIR}" -name '*.ko.*' | while read -r ko; do | ||
case "$ko" in |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters