diff options
author | William Hubbs <w.d.hubbs@gmail.com> | 2016-08-18 16:25:56 -0500 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2016-08-19 11:08:27 -0500 |
commit | 73cdf10f1f513be7b5dec4f1cc91e0c68cda689b (patch) | |
tree | a44f527e733cda77d83be6fb13cf9af892ae5a44 | |
parent | 1a55d46645b376cd27f394796934150120a08387 (diff) |
Deprecate automatic loading of modules
In the hwclock, procfs and sysfs service scripts, we automatically
attempt to load the kernel modules we need before we take any action. We
shouldn't do this, because there are systems which do not use kernel
modules and do not have the kmod package installed.
With this change, we continue to load the modules ourselves, but we warn
the admin that they need to be added to /etc/conf.d/modules or built
into the kernel.
In the future, this automatic loading will be dropped.
X-Gentoo-Bug: 342313
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=342313
-rw-r--r-- | init.d/hwclock.in | 10 | ||||
-rw-r--r-- | init.d/procfs.in | 8 | ||||
-rw-r--r-- | init.d/sysfs.in | 6 |
3 files changed, 19 insertions, 5 deletions
diff --git a/init.d/hwclock.in b/init.d/hwclock.in index 2cd1ef31..d28ac850 100644 --- a/init.d/hwclock.in +++ b/init.d/hwclock.in @@ -30,6 +30,7 @@ fi depend() { provide clock + want modules if yesno $clock_adjfile; then use root else @@ -81,7 +82,7 @@ get_noadjfile() start() { - local retval=0 errstr="" + local retval=0 errstr="" modname setupopts if [ -z "$utc_cmd" ]; then @@ -96,7 +97,12 @@ start() [ -e "$rtc" ] && break done if [ ! -e "${rtc}" ]; then - modprobe -q rtc-cmos || modprobe -q rtc || modprobe -q genrtc + for x in rtc-cmos rtc genrtc; do + modprobe -q $x && modname=$x && break + done + [ -n "$modname" ] && + ewarn "The $modname module needs to be configured in \ + @SYSCONFDIR@/conf.d/modules or built in." fi fi diff --git a/init.d/procfs.in b/init.d/procfs.in index de618733..055b5f45 100644 --- a/init.d/procfs.in +++ b/init.d/procfs.in @@ -13,7 +13,8 @@ description="Mounts misc filesystems in /proc." depend() { - use modules devfs + use devfs + want modules need localmount keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver } @@ -22,7 +23,10 @@ start() { # Setup Kernel Support for miscellaneous Binary Formats if [ -d /proc/sys/fs/binfmt_misc -a ! -e /proc/sys/fs/binfmt_misc/register ]; then - modprobe -q binfmt-misc + if modprobe -q binfmt-misc; then + ewarn "The binfmt-misc module needs to be configured in \ + @SYSCONFDIR@/conf.d/modules or built in." + fi if grep -qs binfmt_misc /proc/filesystems; then ebegin "Mounting misc binary format filesystem" mount -t binfmt_misc -o nodev,noexec,nosuid \ diff --git a/init.d/sysfs.in b/init.d/sysfs.in index 6929810d..87adacd9 100644 --- a/init.d/sysfs.in +++ b/init.d/sysfs.in @@ -15,6 +15,7 @@ sysfs_opts=nodev,noexec,nosuid depend() { + want modules keyword -docker -lxc -prefix -systemd-nspawn -vserver } @@ -102,7 +103,10 @@ mount_misc() # it will NOT appear in /proc/filesystems yet if [ -d /sys/firmware/efi/efivars ] \ && ! mountinfo -q /sys/firmware/efi/efivars; then - modprobe -q efivarfs + if modprobe -q efivarfs; then + ewarn "The efivarfs module needs to be configured in \ + @SYSCONFDIR@/conf.d/modules or built in" + fi if grep -qs efivarfs /proc/filesystems; then ebegin "Mounting efivarfs filesystem" mount -n -t efivarfs -o ${sysfs_opts} \ |