Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 389337 - sys-kernel/genkernel: busybox's modprobe ignores /etc/modules.conf
Summary: sys-kernel/genkernel: busybox's modprobe ignores /etc/modules.conf
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: genkernel (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Genkernel Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-02 16:26 UTC by Dustin Polke
Modified: 2017-09-04 23:41 UTC (History)
0 users

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 Dustin Polke 2011-11-02 16:26:37 UTC
After upgrading genkernel to 3.4.16 or newer, which uses now busybox-1.18.1, busybox's modprobe ignores options set in /etc/modules.conf.

genkernel-3.4.10.907-r1 which had an older version of busybox works correctly but seems not to support linux-3 kernels.

To have more than 8 loop devices, I have the following entry in /etc/modules.conf included in my initramfs:
options loop max_loop=16

But the system is only setting up default configured 8 loop devices:
$ ls -la /dev/loop*
brw-rw---- 1 root disk 7, 0 Nov  2 17:00 /dev/loop0
brw-rw---- 1 root disk 7, 1 Nov  2 17:00 /dev/loop1
brw-rw---- 1 root disk 7, 2 Nov  2 17:00 /dev/loop2
brw-rw---- 1 root disk 7, 3 Nov  2 17:00 /dev/loop3
brw-rw---- 1 root disk 7, 4 Nov  2 17:00 /dev/loop4
brw-rw---- 1 root disk 7, 5 Nov  2 17:00 /dev/loop5
brw-rw---- 1 root disk 7, 6 Nov  2 17:00 /dev/loop6
brw-rw---- 1 root disk 7, 7 Nov  2 17:00 /dev/loop7

If you need more information, please don't hesitate to ask for it. Here's my emerge --info:

Portage 2.1.10.11 (default/linux/amd64/10.0, gcc-4.5.3, glibc-2.12.2-r0, 3.0.6-gentoo-nouveau x86_64)
=================================================================
System uname: Linux-3.0.6-gentoo-nouveau-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T8100_@_2.10GHz-with-gentoo-2.0.3
Timestamp of tree: Wed, 02 Nov 2011 07:45:01 +0000
app-shells/bash:          4.1_p9
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.2-r3, 3.1.4-r3
dev-util/cmake:           2.8.4-r1
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.8.3-r1
sys-apps/sandbox:         2.4
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:       2.20.1-r1
sys-devel/gcc:            4.5.3-r1
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
sys-libs/glibc:           2.12.2
Repositories: gentoo DuPol alon-barlev science sunrise modified-ebuilds private-ebuilds betagarden
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA PUEL cadsoft skype-eula AdobeFlash-10.1"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=core2 -msse4.1 --param l1-cache-size=32     --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=generic"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/bin/mygenkernel /usr/sbin/run-crons /usr/share/cairo-dock/plug-ins/wifi/wifi /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -march=core2 -msse4.1 --param l1-cache-size=32     --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=generic"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--ask --autounmask=n"
FEATURES="assume-digests binpkg-logs buildpkg collision-protect distlocks ebuild-locks fixlafiles fixpackages multilib-strict news parallel-fetch protect-owned sandbox sfperms strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox"
FFLAGS=""
GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo/     ftp://de-mirror.org/distro/gentoo/     ftp://mirror.netcologne.de/gentoo/     ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo     ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,relro -Wl,-z,now"
LINGUAS="en de"
MAKEOPTS="-j5"
PKGDIR="/var/lib/portage/binpkg"
PORTAGE_COMPRESS=""
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--timeout=500"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/DuPol /var/lib/layman/alon-barlev /var/lib/layman/science /var/lib/layman/sunrise /usr/local/portage/modified /usr/local/portage/own /var/lib/layman/betagarden"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="X X509 Xaw3d a52 aac aalib accessibility acl acpi alsa amd64 amr apm audacious audiofile bash-completion battery berkdb bindist bl bluetooth branding bzip2 cairo cardbus cdaudio cdda cdinstall cjk cli consolekit cracklib crypt css ctype cups curl cxx dbus devil dga directfb dri dts dv dvd dvdr eds encode evo exchange exif fam fame fbcon fbcondecor fbsplash ffmpeg flac fontforge foomaticdb fortran ftp gd gdbm gif gimp git glade gmp gphoto2 gs gsm gstreamer gtk gtkhtml gtkstyle guile hddtemp hdf5 iconv icq icu idn ieee1394 imagemagick imap imlib iproute2 jack java javascript jpeg jpeg2k kerberos keyscrub kino kpathsea lame lapack laptop latex lcms libcaca libnotify libsamplerate libsexy libv4l2 libwww live lm_sensors logrotate loop-aes lzma lzo mad memlimit mikmod mime mjpeg mmx mmxext mng modules motif mp2 mp3 mp4 mpeg mplayer mudflap multilib musepack ncurses nls nntp nowin nptl nptlonly nsplugin ntp nuv nvidia ods ogg opengl openmp opensslcrypt pam pch pcmcia pcre pda pdf plotutils png posix ppds pppd print qt3support quicktime readline rtsp rubytests samba sasl schroedinger sdl server session simplexml slang sndfile soap sockets sou speex spell sse sse2 sse3 sse4.1 ssl ssse3 startup-notification stream subversion svg swat sysfs syslog system-sqlite tcpd tga theora threads tiff tordns truetype unicode usb userlocales v4l v4l2 vcd vdpau vim-syntax vim-with-x vorbis wcwidth wifi winbind wma wmf wxwindows x264 xanim xcomposite xinetd xls xml xmp xorg xpm xsl xterm-color xulrunner xv xvfb xvid xvmc zlib" ALSA_CARDS="hda-intel mpu401" 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 stage tables krita karbon braindump" CAMERAS="fuji 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="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en de" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nouveau nvidia dummy" 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, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS
Comment 1 Dustin Polke 2011-11-04 09:06:39 UTC
Okay, I had some time to look into this and fixed this for my case. Here is what I needed to do:

1) The default config for busybox is for version 1.7.4 which dates back as far as 2008. Since then, Linux Module Utilities has undergone some major changes. One is that CONFIG_MODPROBE_SMALL option has been added and is enable by default. I needed to disable this option and build busybox with the 'old' implementation of modutils. Help to CONFIG_MODPROBE_SMALL states that this is experimental code. Further, it states that additional module parameters should go to /etc/modules/$module_name files. But this didn't work for me.

2) I found that with CONFIG_MODPROBE_SMALL unset and helpers build the old way, now module parameters need to go to /etc/modprobe.d/$file. So this was a configuration problem on my side and does not affect genkernel.

3) genkernel ships a /sbin/modprobe script to handle proper insertion of modules and their dependencies and keeps track of which modules are already loaded. I don't know whether this still needed with recent busybox's modprobe. I didn't try to drop it and figure it out. However, when inserting a module with this script, lastly ${INSMOD} is invoked to do this, which is set to 'insmod' provided by busybox. Problem is that busybox's insmod implementation does not obey options stored in files under /etc/modprobe.d. I needed to change INSMOD value in initrd.defaults to 'busybox modprobe' to have module options to be obeyed.

I recommend to include a new default config for a more recent busybox version. I don't know which options are sane values, I just loaded the shipped config file and altered the configuration in the Linux Module Utilies section to my needs.

Maybe the included modprobe script is obsoleted by busybox's modprobe implementation and can be dropped.
Comment 2 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2017-09-04 23:41:02 UTC
genkernel has shipped a much newer busybox for a long time now (even matches that latest busybox at the time of writing this comment, 1.27.2).