Looking at where the blacklists come from, it looks like kernel
autogenerates "blacklist_linux_4.15-0-15-generic.conf" files which have
a combination of OSS and watchdog blacklists.
this indeed is not very nice/easy to override.
I wonder if the "watchdog" like modules should be shipped in separate
files elsewhere on disk, and collected into a "watchdog.conf" file which
matches blacklists for all installed kernels? That way it would be
easier for admin to override it, by dropping in an empty /etc/modules-
load.d/watchdog.conf?
Not sure how to make these modules 'available' yet not autoloaded. Split
them into a separate -watchdog-modules binary package? not installed =
not autoloaded? without any blacklists at all?
** Description changed:
- Before systemd-modules-load, /etc/init.d/kmod would load modules
- directly with "modprobe" (and _not_ "modprobe -b"):
+ Impossible / hard to force the system to load a watchdog module because
+ it is blacklisted by the kernel auto-generated list of "watchdog"
+ modules.
+
+ /etc/modules used to "just work" before.
+
+ ===
+
+
+ Before systemd-modules-load, /etc/init.d/kmod would load modules directly
with "modprobe" (and _not_ "modprobe -b"):
load_module() {
- local module args
- module="$1"
- args="$2"
+ local module args
+ module="$1"
+ args="$2"
- if [ "$VERBOSE" != no ]; then
- log_action_msg "Loading kernel module $module"
- modprobe $module $args || true
- else
- modprobe $module $args > /dev/null 2>&1 || true
- fi
+ if [ "$VERBOSE" != no ]; then
+ log_action_msg "Loading kernel module $module"
+ modprobe $module $args || true
+ else
+ modprobe $module $args > /dev/null 2>&1 || true
+ fi
}
However, under 18.04, systemd-modules-load will _ignore_ modules that
are manually listed in /etc/modules and process them with the blacklist
(the same as "modprobe -b" would). This means that it is not possible to
manually load modules that are blacklisted (like watchdog modules):
systemd-238/src/modules-load/modules-load.c:
static int load_module(struct kmod_ctx *ctx, const char *m) {
- const int probe_flags = KMOD_PROBE_APPLY_BLACKLIST;
+ const int probe_flags = KMOD_PROBE_APPLY_BLACKLIST;
...
- default:
- err = kmod_module_probe_insert_module(mod,
probe_flags,
- NULL, NULL,
NULL, NULL);
+ default:
+ err = kmod_module_probe_insert_module(mod,
probe_flags,
+ NULL, NULL,
NULL, NULL);
- if (err == 0)
- log_info("Inserted module '%s'",
kmod_module_get_name(mod));
- else if (err == KMOD_PROBE_APPLY_BLACKLIST)
- log_info("Module '%s' is blacklisted",
kmod_module_get_name(mod));
+ if (err == 0)
+ log_info("Inserted module '%s'",
kmod_module_get_name(mod));
+ else if (err == KMOD_PROBE_APPLY_BLACKLIST)
+ log_info("Module '%s' is blacklisted",
kmod_module_get_name(mod));
Blacklists should _not_ be applied by systemd-modules-load.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1767172
Title:
Regression: /etc/modules checked against blacklist
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1767172/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs