Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 160987 - rc.sysinit breaks udevd on non modular kernel
Summary: rc.sysinit breaks udevd on non modular kernel
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: initscripts
Version: 4
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Bill Nottingham
QA Contact: Brock Organ
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-06-19 13:44 UTC by Andrew Clayton
Modified: 2014-03-17 02:54 UTC (History)
1 user (show)

Fixed In Version: 8.12-1
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-06-20 16:35:01 UTC


Attachments (Terms of Use)
Patch to fix udev with non moduar kernel. (deleted)
2005-06-23 04:11 UTC, Andrew Clayton
no flags Details | Diff

Description Andrew Clayton 2005-06-19 13:44:54 UTC
Description of problem:

After upgrading my machine from FC3 to FC4, I found that the udevd process 
would no longer run.

I am running a 2.6.12 without module support. This setup worked prior to FC4.

After investigating this for some time. I have found the following.

With when I boot FC4 with a modular kernel, /proc/sys/kernel/hotplug is 
set to /sbin/udevsend and udevd runs ok.

If I boot with a non modular kernel, /proc/sys/kernel/hotplug is to
/sbin/hotplug and after the system has booted, the udevd process is 
not running. 

If I add the following line:

sysctl -w kernel.hotplug="/sbin/udevsend" >/dev/null 2>&1

after:

# Initialize hardware
if [ -f /proc/sys/kernel/modprobe ]; then
   if ! strstr "$cmdline" nomodules && [ -f /proc/modules ] ; then
       sysctl -w kernel.modprobe="/sbin/modprobe" >/dev/null 2>&1
       sysctl -w kernel.hotplug="/sbin/udevsend" >/dev/null 2>&1
   else
       # We used to set this to NULL, but that causes 'failed to exec' messages"
       sysctl -w kernel.modprobe="/bin/true" >/dev/null 2>&1
       sysctl -w kernel.hotplug="/bin/true" >/dev/null 2>&1
   fi
fi

in /etc/rc.d/rc.sysinit this allows udevd to work on a non modular kernel.


Version-Release number of selected component (if applicable):


How reproducible:

Always.

Steps to Reproduce:
1. Boot a kernel without modules support
2.
3.
  
Actual results:

The udevd process is not running. 

Expected results:

The udevd process to be running.

Additional info:

Just let me know if you need any more.

Cheers,

Andrew Clayton

Comment 1 Bill Nottingham 2005-06-20 16:35:01 UTC
Added in CVS, will be in 8.12-1.

Comment 2 Andrew Clayton 2005-06-23 04:11:28 UTC
Created attachment 115852 [details]
Patch to fix udev with non moduar kernel.

Comment 3 Andrew Clayton 2005-06-23 04:17:16 UTC
Woops my comments got wacked.

Basically, the fix in my initial submit has some issues. Namely device nodes
weren't being created at boot for attached usb storage devices.

The line I added needs to come out and a change made to a line a wee bit above it.

The patch fix's the problem.

Cheers,

Andrew


Comment 4 Andrew Clayton 2005-06-23 04:19:12 UTC
Argghh.

I forgot to mention that the patch is against the rc.sysinit from
initscripts-8.11.1-1


Comment 5 Bill Nottingham 2005-06-23 04:22:21 UTC
Why would you need that? What is it set to before that?

Comment 6 Andrew Clayton 2005-06-23 04:38:56 UTC
OK,

Booting a 2.6.12 with out modular support gives,

$ cat /proc/sys/kernel/hotplug 
/sbin/hotplug

And when the system is finished booting, udevd is not running and no device 
nodes for my attached (and swicthed on) usb storage devices have been created.

With that patch, /proc/sys/kernel/hotplug is set to /sbin/udevsend and udevd is
running as nornmal and device nodes for my usb storage devices do get created.


Cheers,


Note You need to log in before you can comment on or make changes to this bug.