summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Schwarzott <zzam@gentoo.org>2009-01-22 11:41:37 +0000
committerMatthias Schwarzott <zzam@gentoo.org>2009-01-22 11:41:37 +0000
commitebd6dc653e84a28a519429629e24e348ccedf03e (patch)
tree57d148352fcd5e2bd0c10721a1954c471a25d70c /sys-fs/udev/files
parentVersion bump. (diff)
downloadhistorical-ebd6dc653e84a28a519429629e24e348ccedf03e.tar.gz
historical-ebd6dc653e84a28a519429629e24e348ccedf03e.tar.bz2
historical-ebd6dc653e84a28a519429629e24e348ccedf03e.zip
Add expert options to change udevsettle timeout and to run udevmonitor at boot time to catch all events.
Package-Manager: portage-2.1.6.6/cvs/Linux 2.6.27-gentoo-r1 i686
Diffstat (limited to 'sys-fs/udev/files')
-rw-r--r--sys-fs/udev/files/136/udev.confd21
-rw-r--r--sys-fs/udev/files/136/udev.initd30
2 files changed, 50 insertions, 1 deletions
diff --git a/sys-fs/udev/files/136/udev.confd b/sys-fs/udev/files/136/udev.confd
index 4abfa911674d..605078b4056a 100644
--- a/sys-fs/udev/files/136/udev.confd
+++ b/sys-fs/udev/files/136/udev.confd
@@ -25,3 +25,24 @@ persistent_net_disable="no"
# in /etc/rc.conf: rc_hotplug="!*" or
# in /etc/conf.d/rc: rc_plug_services="!*"
#rc_coldplug="YES"
+
+
+
+
+# Expert options:
+
+# Timeout in seconds to wait for processing of uevents at boot.
+# There should be no need to change this.
+#udev_settle_timeout="60"
+
+# Run udevadmin monitor to get a log of all events
+# in /dev/.udev/udevmonitor.log
+#udev_monitor="YES"
+
+# Keep udevmonitor running after populating /dev.
+#udev_monitor_keep_running="no"
+
+# Set cmdline options for udevmonitor.
+# could be some of --env --kernel --udev
+#udev_monitor_opts="--env"
+
diff --git a/sys-fs/udev/files/136/udev.initd b/sys-fs/udev/files/136/udev.initd
index 1707ccea7737..a9c98fb5cbb3 100644
--- a/sys-fs/udev/files/136/udev.initd
+++ b/sys-fs/udev/files/136/udev.initd
@@ -90,13 +90,39 @@ populate_dev()
eend $?
ebegin "Waiting for uevents to be processed"
- udevadm settle --timeout=60
+ udevadm settle --timeout=${udev_settle_timeout:-60}
eend $?
udevadm control --env do_not_run_plug_service=
return 0
}
+# for debugging
+start_udevmonitor()
+{
+ yesno "${udev_monitor:-no}" || return 0
+
+ udevmonitor_log=/dev/.udev/udevmonitor.log
+ udevmonitor_pid=/dev/.udev/udevmonitor.pid
+
+ einfo "udev: Running udevadm monitor ${udev_monitor_opts} to get a log of all events"
+ start-stop-daemon --start --stdout "${udevmonitor_log}" \
+ --make-pidfile --pidfile "${udevmonitor_pid}" \
+ --background --exec /sbin/udevadm -- monitor ${udev_monitor_opts}
+}
+
+stop_udevmonitor()
+{
+ yesno "${udev_monitor:-no}" || return 0
+
+ if yesno "${udev_monitor_keep_running:-no}"; then
+ ewarn "udev: udevmonitor is still running and writing into ${udevmonitor_log}"
+ else
+ einfo "udev: Stopping udevmonitor: Log is in ${udevmonitor_log}"
+ start-stop-daemon --stop --pidfile "${udevmonitor_pid}" --exec /sbin/udevadm
+ fi
+}
+
display_hotplugged_services() {
local svcfile= svc= services=
for svcfile in "${RC_SVCDIR}"/hotplugged/*; do
@@ -191,11 +217,13 @@ _start()
disable_hotplug_agent
start_udevd || cleanup
+ start_udevmonitor
populate_dev || cleanup
check_persistent_net
check_udev_works || cleanup
+ stop_udevmonitor
return 0
}