aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2016-08-18 16:25:56 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2016-08-19 11:08:27 -0500
commit73cdf10f1f513be7b5dec4f1cc91e0c68cda689b (patch)
treea44f527e733cda77d83be6fb13cf9af892ae5a44
parent1a55d46645b376cd27f394796934150120a08387 (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.in10
-rw-r--r--init.d/procfs.in8
-rw-r--r--init.d/sysfs.in6
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} \