Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 May 2016 10:36:28 -0700
From:      John Baldwin <jhb@freebsd.org>
To:        'freebsd-arch' <freebsd-arch@freebsd.org>
Subject:   Default KMODDIR
Message-ID:  <1702887.zov9WbhYWY@ralph.baldwin.cx>

next in thread | raw e-mail | index | archive | help
I'd like to change KMODDIR's default from /boot/kernel to /boot/modules.
Kernel builds already set KMODDIR explicitly in sys/conf/kern.pre.mk, so
the only modules affected would be modules built standalone outside of a
kernel build.  There are two cases to consider I think:

1) Someone has installed a custom kernel and finds they need module
   'foo' that wasn't in their custom kernel.  They might do:

# cd /sys/modules/foo
# make all install
# kldload foo

   For myself, if I need this I find myself instead modifying my kernel
   config to include the module in MODULES_OVERRIDE and then doing a
   'make buildkernel && make reinstallkernel' as this will work after my
   next source upgrade.

   In this case, foo.ko would now end up in /boot/modules rather than
   /boot/kernel.  Note that if a user just does 'make load' instead of
   'make install' then nothing changes.

2) A module lives outside of the tree (or a vendor wishes to ship a
   newer version as a standalone module).  All of these modules (including
   all of the one in ports) currently have to override KMODDIR explicitly
   in the module Makefile.

It is the 2) case I would like to make more seamless by changing the
default.  This does change the behavior for 1) if someone is doing 
'make install' rather than 'make load' from a module build directory.

Strawman diff:

Index: share/mk/bsd.own.mk
===================================================================
--- share/mk/bsd.own.mk (revision 298711)
+++ share/mk/bsd.own.mk (working copy)
@@ -49,7 +49,7 @@
 #
 #
 # KMODDIR      Base path for loadable kernel modules
-#              (see kld(4)). [/boot/kernel]
+#              (see kld(4)). [/boot/modules]
 #
 # KMODOWN      Kernel and KLD owner. [${BINOWN}]
 #
@@ -165,11 +165,7 @@
 BINMODE?=      555
 NOBINMODE?=    444
 
-.if defined(MODULES_WITH_WORLD)
 KMODDIR?=      /boot/modules
-.else
-KMODDIR?=      /boot/kernel
-.endif
 KMODOWN?=      ${BINOWN}
 KMODGRP?=      ${BINGRP}
 KMODMODE?=     ${BINMODE}


-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1702887.zov9WbhYWY>