Linux HOWTOs

About | Home | Search

HOWTO: module-init-tools
Description: Kernels <= 2.4 use modutils, >= 2.5 uses this
Click here for ChangeLog
NOTE: I use GNU tar >= 1.13.25 so it's -j for .tar.bz2 files,
it's safe to assume that make, gcc, binutils, fileutils/coreutils, gawk, sed, and grep are prerequisites for almost everything

# module-init-tools 3.2.2
# =======================
# Slackware 9.1's 'module-init-tools' package includes version 0.9.14 (and
# modutils 2.4.25), 10.0's includes 3.0 (and modutils 2.4.25),
# and 10.1 and 10.2's include 3.1 (and modutils 2.4.27)

# module-init-tools 3.2.2 is for Linux kernels >= 2.5.48  If it detects a
# kernel with support for old-style modules, it'll try to run modprobe.old
# (see the note below about 'make moveold' for more about that).
# Once you remove the Slackware package, the old version of
# module-init-tools will be gone, and so will the renamed (*.old) modutils
# binaries.  If you will be booting 2.4.x kernels on your machine, make sure
# you install modutils first (for 'make moveold' below), then come back here.

test -f installed/module-init-tools-3.2.2.tar.bz2 &&
 mv installed/module-init-tools-3.2.2.tar.bz2 .
test ! -f module-init-tools-3.2.2.tar.bz2 &&

# Verify tarball w/ md5sum:
# (This came from my gpg-verified tarball)
echo "a1ad0a09d3231673f70d631f3f5040e9  module-init-tools-3.2.2.tar.bz2" | \
 md5sum -c

# Verify tarball w/ sha1sum:
# (This also came from my gpg-verified tarball)
echo "b51e8ac170be23a1f2e301a1dddd47a47ec2186a  module-init-tools-3.2.2.\
tar.bz2" | sha1sum -c

# Verify tarball w/ gpg:
( gpg --list-keys 517D0F0E > /dev/null 2>&1 || gpg --recv-keys 517D0F0E ) &&
 wget -nc\
module-init-tools-3.2.2.tar.bz2.sign &&
  gpg --verify module-init-tools-3.2.2.tar.bz2.sign &&
   rm module-init-tools-3.2.2.tar.bz2.sign

mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "modutils-*" -exec rm -r {} \;
find -maxdepth 1 -type d -name "module-init-tools-*" -exec rm -r {} \;
tar xjvf ~/module-init-tools-3.2.2.tar.bz2
cd module-init-tools-3.2.2
test $UID = 0 && chown -R root:root .
./configure --prefix=/ --enable-zlib

# Become root to clean up old files and to install it

# If you're upgrading from modutils to module-init-tools, run this to
# rename your old modutils utils and manpages (ie. 'man lsmod.old') to *.old
# and it'll fix the kallsyms and ksyms symlinks in /sbin.  This is done as
# a just-in-case, but also if you ever need to boot an older < 2.5.48
# kernel.  In that case, module-init-tools will try to run modprobe.old so
# you don't have to uninstall module-init-tools and reinstall modutils.  If
# you do this and decide to stick with >= 2.5.48 from now on, see the bottom
# for how/what to remove.
# If you do this and do create a module-init-tools package, be aware that
# the *.old files won't be a part of that package (or any other package).
make moveold

# Remove modutils and module-init-tools packages
test -x /sbin/removepkg && /sbin/removepkg modutils module-init-tools

# If you'd like to create a module-init-tools package for Slackware with checkinstall,
# follow these instructions instead of running 'make install'

# If you didn't create a package
make install

# Also if you're upgrading from modutils to module-init-tools, run this to
# convert your old /etc/modules.conf to /etc/modprobe.conf:
test ! -s /etc/modprobe.conf && ./generate-modprobe.conf /etc/modprobe.conf

## If you are using devfs:
# cp ./modprobe.devfs /etc/

# If you use kmod and use the /etc/cron.(daily|hourly|monthly|weekly) dirs,
# create a /etc/cron.hourly/kmod script to run every hour unloading unused
# modules.  You can of course just add a cron job directly to root's crontab
# to do this too.
echo '#!/bin/sh' > /etc/cron.hourly/kmod
echo '/sbin/rmmod -as' >> /etc/cron.hourly/kmod
chmod 700 /etc/cron.hourly/kmod

# After you build a kernel, make sure 'depmod x.x.x' is run, where x.x.x is
# the version of the kernel you're upgrading to.  Some(/most/all?)
# distributions run 'modprobe -a' on boot-up and 'make install_modules' runs
# depmod, so you may not have to run it manually.

# Become yourself again

mkdir -p -m 0700 installed
rm -f installed/modutils-*.tar.* installed/module-init-tools-*.tar.*
mv module-init-tools-3.2.2.tar.bz2 installed/

# If you decide to stick with a kernel >= 2.5.48 from now on and no longer
# need the renamed *.old binaries and manpages as a fallback, run this to
# remove them:
for f in lsmod modprobe rmmod depmod insmod modinfo ; do
  rm -f /sbin/$f.old /usr/man/man8/$f.old.8 /usr/share/man/man8/$f.old.8

Back to the list

Last updated: Tue, 07 Aug 2018 12:06:17 -0400
Jason Englander <jason at englanders dot us>