Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 426698 - sys-apps/kmod-9-r2 breaks depmod usage in linux's Makefile
Summary: sys-apps/kmod-9-r2 breaks depmod usage in linux's Makefile
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal critical (vote)
Assignee: udev maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-15 11:54 UTC by Kyle McFarland
Modified: 2012-07-17 16:15 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kyle McFarland 2012-07-15 11:54:32 UTC
The kernel's Makefile uses /sbin/depmod[1] to create modules.dep (which is needed for modprobe to load modules) and other files in the /lib/modules/<kernelver>/ directory during make modules_install.

With kmod-9-r1/-r2 /sbin/depmod isn't created anymore, causing the kernel's build system to silently fail that step. Which subsequently breaks modprobe in that kernel if it doesn't already have appropriate modules.dep (and no ebuilds using linux-mod.eclass are installed, which runs depmod itself).

I'm assuming like modprobe depmod should be in /sbin as well, so adding:
dosym /usr/bin/kmod /sbin/depmod
(and possibly removing depmod from the list installed to /usr/bin)

to kmod's src_install fixes the issue here.

[1]: Pandia linux # grep "DEPMOD" Makefile 
DEPMOD          = /sbin/depmod
quiet_cmd_depmod = DEPMOD  $(KERNELRELEASE)
      cmd_depmod = $(CONFIG_SHELL) $(srctree)/scripts/depmod.sh $(DEPMOD) \

(Interestingly there's also this comment in the kernel's Makefile:
# This depmod is only for convenience to give the initial
# boot a modules.dep even before / is mounted read-write.  However the
# boot script depmod is the master version.

I'm assuming that's not the case for gentoo currently atleast though (nothing else here created modules.dep after booting anyway, though that was with depmod in /usr/bin), correct me if I'm wrong and something else is supposed to be creating them)

Reproducible: Always

Steps to Reproduce:
1. Build a kernel that would create a new dir in /lib/modules with a few modules enabled (LOCALVERSION might be useful)
2. make modules_install
3. ls /lib/modules/new_kernel_version
Actual Results:  
Pandia linux # make modules_install
   [...]
   DEPMOD  3.4.3-gentoo-testing

Pandia linux # ls /lib/modules/3.4.3-gentoo-testing/
build  kernel  modules.builtin  modules.order  source

(modules don't get loaded automatically and modprobe fails to load modules while booted in that kernel - insmod works however)

Expected Results:  
Pandia linux # make modules_install
   [...]
   DEPMOD  3.4.3-gentoo-testing

Pandia linux # ls /lib/modules/3.4.3-gentoo-testing/
build              modules.builtin      modules.devname  modules.symbols.bin
kernel             modules.builtin.bin  modules.order    source
modules.alias      modules.dep          modules.softdep
modules.alias.bin  modules.dep.bin      modules.symbols

(modules get loaded automatically and modprobe loads modules properly)

emerge --info:
Portage 2.1.11.7 (default/linux/amd64/10.0/desktop, gcc-4.6.3, glibc-2.15-r2, 3.5.0-rc7-drm-intel-next-1+ x86_64)
=================================================================
System uname: Linux-3.5.0-rc7-drm-intel-next-1+-x86_64-Intel-R-_Core-TM-_i5-3570K_CPU_@_3.40GHz-with-gentoo-2.1
Timestamp of tree: Sun, 15 Jul 2012 07:30:01 +0000
app-shells/bash:          4.2_p36
dev-lang/python:          2.7.3-r2, 3.2.3-r1
dev-util/cmake:           2.8.8-r3
dev-util/pkgconfig:       0.27
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.10.5
sys-apps/sandbox:         2.6
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.5, 1.12.2
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.3-r2, 4.6.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.4-r1 (virtual/os-headers)
sys-libs/glibc:           2.15-r2
Repositories: gentoo tfkyles_projects tfkyles_randomness tfkyle_gst
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-g -O2 -pipe -march=core-avx-i"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-g -O2 -pipe -march=core-avx-i"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--quiet-build=n"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles news parse-eapi-ebuild-head protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.csclub.uwaterloo.ca/gentoo-distfiles"
LANG="en_CA.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/home/kyle/Projects/ebuilds/projects /home/kyle/Projects/ebuilds/randomness /home/kyle/Projects/ebuilds/gst"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 apache2 avahi avx bash-completion berkdb bluetooth branding bzip2 cairo calendar caps ccdb cdda cdparanoia cdr cjk cli consolekit cracklib crypt css cups curl cxx dbus djvu doc dri dts dv dvb dvd dvdr emboss encode examples exif fam fbcon ffmpeg firefox flac fontconfig fortran ftp fuse gd gdbm geoip ggi gif gmp gnutls gphoto2 gpm gstreamer gtk handbook iconv icu idn ieee1394 imap ipv6 jabber jingle jit joystick jpeg jpeg2k kde kontact lame lcms libffi libnotify libsamplerate libwww lm_sensors lua lzma mad matroska mime mmap mms mmx mng modules mp3 mp4 mpeg msn mudflap multilib ncurses nls nntp nptl ogg opengl openmp pam pango pcre pdf perl plasma png policykit ppds pppd python qt3support qt4 quicktime readline rss samba sasl sdl semantic-desktop session simplexml smp sndfile snmp sockets sound speex spell sqlite sqlite3 sse sse2 sse3 sse4 sse4_1 ssl ssse3 startup-notification subversion svg taglib tcpd theora threads tiff tk truetype udev udisks unicode upower usb v4l vcd videos vim-syntax vnc vorbis vpx webkit wmf wxwidgets x264 xattr xcb xml xmlrpc xmpp xorg xpm xsl xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="canon ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel radeon vesa modesetting" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Sebastian Rose 2012-07-17 08:35:38 UTC
I can confirm this issue. I wasn't able to load any modules with modprobe after a kernel update with kmod-9-r2. Running depmod -a manually after module installation fixes the problem.
Comment 2 Alexandre Rostovtsev (RETIRED) gentoo-dev 2012-07-17 10:32:53 UTC
Confirming and classifying as "critical" since this renders systems unbootable :/
Comment 3 Samuli Suominen (RETIRED) gentoo-dev 2012-07-17 12:23:49 UTC
In longterm, we need to get a patch to kernel's Makefile to not suck so much and just try $PATH too

In shortterm, we need the depmod symlink moved back where it was with a comment to this bug in the ebuild
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2012-07-17 12:33:50 UTC
(In reply to comment #3)
> In shortterm, we need the depmod symlink moved back where it was with a
> comment to this bug in the ebuild

done

> In longterm, we need to get a patch to kernel's Makefile to not suck so much
> and just try $PATH too

opening new bug for this
Comment 5 Samuli Suominen (RETIRED) gentoo-dev 2012-07-17 12:41:42 UTC
bug 426992 for next step