LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   Udev, rc.S & rc.hotplug interactions (http://www.linuxquestions.org/questions/slackware-14/udev-rc-s-and-rc-hotplug-interactions-474577/)

SlackwareInAZ 08-16-2006 09:15 PM

Udev, rc.S & rc.hotplug interactions
 
Lately, since the udev and sysvinit updates have been coming fast and furious, I notice that during bootup I have an error where /etc/rc.d/rc.S is trying to mount usbfs when it is already loaded in /etc/mtab presumably by udev.

Patrick first talked about during the 7/26 current changelog, and again on 08/01.

The error first started when I followed Patrick's advice listed in the 08/12 current changelog regarding not needing rc.hotplug when running a kernel 2.6.15 or newer (am using 2.17.8).

With rc.hotplug enabled, no error, With it disabled, my workaround was to comment out the references to mounting usbfs about 2/3 the way down rc.S. No more error. This is with the newest udev 97-2 and sysvinit -64 with rc.hotplug disabled.

P.S. Everything works fine with my rc.S modification and I haven't updated to the 08/16 changes, but I am curious what the correct solution is and is anybody else having this problem using rc.S "out of the box"?

Thanks for any suggestions and assistance,
Gary :)

rkelsen 08-16-2006 09:23 PM

I haven't seen this exact problem, but I did have problems with Pat's rc.optical-symlinks script. This problem has now been fixed, after having emailed Pat with the details on Sunday.

Perhaps you should drop Pat a line, because I'm sure he'd like to have this fixed before release time.

Apply the latest changes first, and see if the problem is still occurring.

SlackwareInAZ 08-17-2006 06:55 PM

rkelsen,

Just upgraded to the newest upgrades listed in the 08/16 current changelog. Sysvinit is -65. Udev is 97-i486-3. Newest rc.hotplug, too.

Problem still exists with the "out of the box" rc.S configuration.

I am not a coder, but I think I see the issue.

In rc.udev, line #66:

# Mount usbfs:
if ! grep -wq usbfs /proc/mounts ; then
if [ -d /proc/bus/usb ]; then
mount usbfs -t usbfs /proc/bus/usb -o devgid=10,devmode=0666
fi
fi
fi

And voila, usbfs is mounted and added to /etc/mtab as follows:

none /proc/bus/usb usbfs rw,devmode=0666,devgid=10 0 0

In rc.S at line 290:

# Mount usbfs if we're not using hotplug:
if grep -wq usbfs /proc/filesystems; then
if /bin/grep -wq nohotplug /proc/cmdline || /bin/test ! -x /etc/rc.d/rc.hotplug ; then
/sbin/mount -v usbfs /proc/bus/usb -t usbfs
fi
fi

I think if this code was modified to check to see if either/or rc.udev/rc.hotplug is running, rc.S would not try to mount usbfs again.

So how does this code need to be massaged to check for udev running?

Or how do I throw this back at Patrick, as I agree that a fix is probably very simple and would love for it to be fixed before Slackware 11 is finalized.

Thanks, Gary ;)

rkelsen 08-17-2006 07:30 PM

Quote:

Originally Posted by SlackwareInAZ
In rc.udev, line #66:

# Mount usbfs:
if ! grep -wq usbfs /proc/mounts ; then
if [ -d /proc/bus/usb ]; then
mount usbfs -t usbfs /proc/bus/usb -o devgid=10,devmode=0666
fi
fi
fi

And voila, usbfs is mounted and added to /etc/mtab as follows:

none /proc/bus/usb usbfs rw,devmode=0666,devgid=10 0 0

In rc.S at line 290:

# Mount usbfs if we're not using hotplug:
if grep -wq usbfs /proc/filesystems; then
if /bin/grep -wq nohotplug /proc/cmdline || /bin/test ! -x /etc/rc.d/rc.hotplug ; then
/sbin/mount -v usbfs /proc/bus/usb -t usbfs
fi
fi

I think if this code was modified to check to see if either/or rc.udev/rc.hotplug is running, rc.S would not try to mount usbfs again.

I'm not a programmer either, but it appears to me that rc.S runs first.

Also, it seems that the code in rc.udev checks to see if there's a usbfs mounted before it does the same.
Quote:

Originally Posted by SlackwareInAZ
Or how do I throw this back at Patrick, as I agree that a fix is probably very simple and would love for it to be fixed before Slackware 11 is finalized.

Maybe there needs to be another test in rc.S to look for an executable /etc/rc.udev before running that code?

Anyhow, send Pat a short email describing the symptoms and the conditions which cause them (i.e. non-executable rc.hotplug).


All times are GMT -5. The time now is 04:28 AM.