I'm trying to pass arguments to bttv module (card=0x96). The arguments are ok when using modprobe bttv. After restart OpenRC does not seem to pass the arguments to bttv module at all. Reproducible: Always Steps to Reproduce: 1. Add bttv to conf.d/modules 2. Add bttv_args="card=0x96" 3. Restart and check bttv parameters with dmgs Actual Results: card=0 & autodetection Expected Results: card=0x96
Created attachment 288271 [details] dmesg with card=0
Created attachment 288273 [details] modules with card=0x96
Portage 2.1.10.11 (default/linux/x86/10.0/desktop, gcc-4.4.5, glibc-2.12.2-r0, 2.6.39-gentoo-r3 i686) ================================================================= System uname: Linux-2.6.39-gentoo-r3-i686-Intel-R-_Celeron-R-_CPU_2.20GHz-with-gentoo-2.0.3 Timestamp of tree: Thu, 29 Sep 2011 19:45:01 +0000 app-shells/bash: 4.1_p9 dev-lang/python: 2.7.1-r1, 3.1.3-r1 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.68 sys-devel/automake: 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.5 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.36.1 (virtual/os-headers) sys-libs/glibc: 2.12.2 Repositories: gentoo ACCEPT_KEYWORDS="x86" ACCEPT_LICENSE="* -@EULA" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=native -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -march=native -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles fixpackages news parallel-fetch parallel-install protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="" GENTOO_MIRRORS="http://distfiles.gentoo.bg http://ftp.gentoo.bg http://mirrors.telepoint.bg/gentoo" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" 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="" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="7zip X a52 aac aalib acl acpi alsa apache2 bash-completion berkdb bluetooth branding bzip2 cairo cdda cdr cgi cli consolekit cpudetection cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif faac fam ffmpeg firefox flac fortran gdbm gdu gif gpm iconv jpeg jpeg2k jpg lcms ldap libnotify libpcre libperl mad mmx mng modules mp3 mp4 mpeg mudflap mysql ncurses nls nptl nptlonly ogg opengl openmp openssl pam pango pcre pdf perl php png policykit ppds pppd python qt3support readline sdl session speex spell sse ssl startup-notification svg symlink sysfs tcpd theora threads tiff truetype udev unicode unzip usb v4l v4l2 vcd vorbis x264 x86 xcb xml xorg xulrunner xv xvid zip zlib zvbi" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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 stage tables krita karbon braindump" CAMERAS="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" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Where did you get <modulename>_args? It's module_<modulename>_args/module_<modulename>_args_<kv>. With <kv> being the same as the rest of the variables to load modules.
(In reply to comment #4) > Where did you get <modulename>_args? > > It's module_<modulename>_args/module_<modulename>_args_<kv>. > > With <kv> being the same as the rest of the variables to load modules. He used the right syntax in his config so I assume a typo in the description.
Adding module_snd-bt87x_args="123123" produces 2 errors: <... ommited ...> /etc/init.d/../conf.d/modules: line 23: module_snd-bt87x_args=123123: command not found <... ommited ...> INIT: Entering runlevel: 3 /etc/init.d/../conf.d/modules: line 23: module_snd-bt87x_args=123123: command not found I have no idea if having this twice is of any importance though.
(In reply to comment #5) > (In reply to comment #4) > > Where did you get <modulename>_args? > > > > It's module_<modulename>_args/module_<modulename>_args_<kv>. > > > > With <kv> being the same as the rest of the variables to load modules. > > He used the right syntax in his config so I assume a typo in the description. Yep - I'm using module_bttv_args.
(In reply to comment #6) > Adding module_snd-bt87x_args="123123" produces 2 errors: > > <... ommited ...> > > /etc/init.d/../conf.d/modules: line 23: module_snd-bt87x_args=123123: command > not found > > <... ommited ...> > > INIT: Entering runlevel: 3 > > /etc/init.d/../conf.d/modules: line 23: module_snd-bt87x_args=123123: command > not found > > > I have no idea if having this twice is of any importance though. You can't use "-" in variable names.
works fine for me: conf.d/modules: modules="r8712u" module_r8712u_args="foo" debug start: ... + eval modprobe -q '' r8712u foo ++ modprobe -q r8712u foo ... run the command: /etc/init.d/modules --debug start >& log then post the "log" file as an attachment
Created attachment 288381 [details] modules --debug log file
your log shows it working fine: ++ modprobe -q bttv card=0x96,0x96
Indeed the following works: rmmod bttv /etc/init.d/modules stop /etc/init.d/modules start The problem however is that on the first boot the parameters are not there as can be seen from dmesg. I created /etd/modules.d/bttv.conf with: options card=0x96,0x96 This seems to workaround the issue but I'm not sure this is the right way to configure bttv. Seems other users have the same problem/solution as mentioned on this Russian Gentoo IRC chat: http://irclog.ru/freenode-gentoo-ru-2010-11-11-part1/
enable logging in /etc/rc.conf, add "set -x" to the top of start() in /etc/init.d/modules, and reboot. post the boot log with the set -x output as an attachment.
Created attachment 288395 [details] rc log
that also says it worked: ++ modprobe -q bttv card=0x96,0x96 + eend 0 ... [ ok ] maybe you have some udev rules or something that autoload bttv *before* the modules init.d script runs, and that's why /etd/modules.d/bttv.conf worked. doing `modprobe` on a module that's already loaded will simply do nothing.
(In reply to comment #15) > that also says it worked: > ++ modprobe -q bttv card=0x96,0x96 > + eend 0 ... > [ ok ] > > maybe you have some udev rules or something that autoload bttv *before* the > modules init.d script runs, and that's why /etd/modules.d/bttv.conf worked. > > doing `modprobe` on a module that's already loaded will simply do nothing. Thanks. I think this was the problem: setting rc_coldplug="NO" in /etc/conf.d/udev did the trick. Just for info: I have only the standard rules ("70-persistent-cd.rules" and "70-persistent-net.rules") as far as I can tell.