jirutka / akms

Alpine Kernel Module Support – aka DKMS for Alpine Linux
MIT License
29 stars 2 forks source link

Fix problem with loading overlay module right after kernel is upgraded #5

Closed jirutka closed 3 years ago

jirutka commented 3 years ago
apk upgrade
(1/8) Upgrading connman (1.40-r4 -> 1.40-r5)
Executing connman-1.40-r5.post-upgrade
(2/8) Upgrading connman-openrc (1.40-r4 -> 1.40-r5)
(3/8) Upgrading connman-nftables (1.40-r4 -> 1.40-r5)
(4/8) Upgrading ead (1.15-r1 -> 1.16-r1)
(5/8) Upgrading ead-openrc (1.15-r1 -> 1.16-r1)
(6/8) Upgrading iwd (1.15-r1 -> 1.16-r1)
(7/8) Upgrading iwd-openrc (1.15-r1 -> 1.16-r1)
(8/8) Upgrading linux-lts (5.10.55-r0 -> 5.10.56-r0)
Executing busybox-1.33.1-r3.trigger
Executing kmod-29-r0.trigger
depmod: WARNING: could not open modules.order at /lib/modules/5.10.55-0-lts: No such file or directory
depmod: WARNING: could not open modules.builtin at /lib/modules/5.10.55-0-lts: No such file or directory
Executing kernel-hooks-0.1-r1.trigger
kernel-hooks: executing hook 20-akms.hook (lts, 5.10.56-0, 5.10.55-0)
akms: Uninstalling module all (5_git20210716-r0) from kernel 5.10.55-0-lts
akms: Building module rtw89 5_git20210716-r0 for kernel 5.10.56-0-lts
mount: mounting overlay on /tmp/akms/1628117069/overlay failed: No such device
akms: ERROR: Failed to mount OverlayFS on top of / at /tmp/akms/1628117069/overlay
umount: can't unmount /tmp/akms/1628117069/overlay: Invalid argument
akms: ERROR: Failed to umount root overlay at /tmp/akms/1628117069/overlay, unmount it and remove manually!
kernel-hooks: ERROR: hook 20-akms.hook failed, skipping hooks for linux-lts
Executing dbus-1.12.20-r2.trigger
Executing mkinitfs-3.5.0-r0.trigger
==> initramfs: creating /boot/initramfs-lts
OK: 1274 MiB in 270 packages
akms: ERROR: Failed to mount OverlayFS on top of / at /tmp/akms/1628117069/overlay

^ This actually means that mount failed to load overlay module because /lib/modules/$(uname -r) has been already removed by the upgrade.

jirutka commented 3 years ago

Fixed by loading overlay module after the system is started using OpenRC’s modules service that reads (/usr)/lib/modules-load.d/*.conf and /etc/modules-load.d/*.conf. I checked the other packages and it seems that dropping a file into /usr/lib/modules-load.d/ is the preferred way to do it.

https://github.com/alpinelinux/aports/commit/15bf4fef33a7463194a172bca97991b3c772a297