summaryrefslogtreecommitdiffstats
path: root/main/udev/udev.initd
diff options
context:
space:
mode:
Diffstat (limited to 'main/udev/udev.initd')
-rwxr-xr-xmain/udev/udev.initd239
1 files changed, 0 insertions, 239 deletions
diff --git a/main/udev/udev.initd b/main/udev/udev.initd
deleted file mode 100755
index 26774ab4a..000000000
--- a/main/udev/udev.initd
+++ /dev/null
@@ -1,239 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Run udevd and create the device-nodes"
-
-[ -e /etc/udev/udev.conf ] && . /etc/udev/udev.conf
-
-rc_coldplug=${rc_coldplug:-${RC_COLDPLUG:-YES}}
-
-depend()
-{
- provide dev
- if yesno "${rc_device_tarball:-no}"; then
- need sysfs udev-mount udev-dev-tarball
- else
- need sysfs udev-mount
- fi
- before checkfs fsck
-
- # udev does not work inside vservers
- keyword novserver
-}
-
-cleanup()
-{
- # fail more gracely and not leave udevd running
- start-stop-daemon --stop --exec /sbin/udevd
- exit 1
-}
-
-disable_hotplug_agent()
-{
- if [ -e /proc/sys/kernel/hotplug ]; then
- echo "" >/proc/sys/kernel/hotplug
- fi
-}
-
-root_link()
-{
- /lib/udev/write_root_link_rule
-}
-
-rules_disable_switch()
-{
- # this function disables rules files
- # by creating new files with the same name
- # in a temp rules directory with higher priority
- local d=/dev/.udev/rules.d bname="$1" onoff="$2"
-
- if yesno "${onoff}"; then
- mkdir -p "$d"
- echo "# This file disables ${bname} due to /etc/conf.d/udev" \
- > "${d}/${bname}"
- else
- rm -f "${d}/${bname}"
- fi
-}
-
-start_udevd()
-{
- # load unix domain sockets if built as module, Bug #221253
- if [ -e /proc/modules ] ; then
- modprobe -q unix 2>/dev/null
- fi
- ebegin "Starting udevd"
- start-stop-daemon --start --exec /sbin/udevd -- --daemon
- eend $?
-}
-
-# populate /dev with devices already found by the kernel
-populate_dev()
-{
- if get_bootparam "nocoldplug" ; then
- rc_coldplug="NO"
- ewarn "Skipping udev coldplug as requested in kernel cmdline"
- fi
-
- ebegin "Populating /dev with existing devices through uevents"
- if yesno "${rc_coldplug}"; then
- udevadm trigger
- else
- # Do not run any init-scripts, Bug #206518
- udevadm control --env do_not_run_plug_service=1
-
- # only create device nodes
- udevadm trigger --attr-match=dev
-
- # run persistent-net stuff, bug 191466
- udevadm trigger --subsystem-match=net
- fi
- eend $?
-
- ebegin "Waiting for uevents to be processed"
- 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
- svc="${svcfile##*/}"
- [ -x "${svcfile}" ] || continue
-
- # do not display this - better: do only inject it later :)
- [ "$svc" = "udev-postmount" ] && continue
-
- services="${services} ${svc}"
- done
- [ -n "${services}" ] && einfo "Device initiated services:${HILITE}${services}${NORMAL}"
-}
-
-inject_postmount_initd() {
- if ! mark_service_hotplugged udev-postmount; then
- IN_HOTPLUG=1 /etc/init.d/udev-postmount start >/dev/null 2>&1
- fi
- #einfo "Injected udev-postmount service"
-}
-
-check_persistent_net()
-{
- # check if there are problems with persistent-net
- local syspath= devs= problem=false
- for syspath in /sys/class/net/*_rename*; do
- if [ -d "${syspath}" ]; then
- devs="${devs} ${syspath##*/}"
- problem=true
- fi
- done
-
- ${problem} || return 0
-
- eerror "UDEV: Your system has a problem assigning persistent names"
- eerror "to these network interfaces: ${devs}"
-
- einfo "Checking persistent-net rules:"
- # the sed-expression lists all duplicate lines
- # from the input, like "uniq -d" does, but uniq
- # is installed into /usr/bin and not available at boot.
- dups=$(
- RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'
- . /lib/udev/rule_generator.functions
- find_all_rules 'NAME=' '.*' | \
- tr ' ' '\n' | \
- sort | \
- sed '$!N; s/^\(.*\)\n\1$/\1/; t; D'
- )
- if [ -n "${dups}" ]; then
- ewarn "The rules create multiple entries assigning these names:"
- eindent
- ewarn "${dups}"
- eoutdent
- else
- ewarn "Found no duplicate names in persistent-net rules,"
- ewarn "there must be some other problem!"
- fi
- return 1
-}
-
-check_udev_works()
-{
- # should exist on every system, else udev failed
- if [ ! -e /dev/zero ]; then
- eerror "Assuming udev failed somewhere, as /dev/zero does not exist."
- return 1
- fi
- return 0
-}
-
-start()
-{
- # do not run this on old baselayout where udev-addon gets loaded
- if [ ! -f /etc/init.d/sysfs ]; then
- eerror "The $SVCNAME init-script is written for baselayout-2!"
- eerror "Please do not use it with baselayout-1!".
- return 1
- fi
-
- _start
-
- display_hotplugged_services
-
- inject_postmount_initd
-}
-
-_start()
-{
- root_link
- rules_disable_switch 75-persistent-net-generator.rules "${persistent_net_disable:-no}"
- rules_disable_switch 75-cd-aliases-generator.rules ${persistent_cd_disable:-no}
-
- disable_hotplug_agent
- start_udevd || cleanup
- start_udevmonitor
- populate_dev || cleanup
-
- check_persistent_net
-
- check_udev_works || cleanup
- stop_udevmonitor
-
- return 0
-}
-
-stop() {
- ebegin "Stopping udevd"
- start-stop-daemon --stop --exec /sbin/udevd
- eend $?
-}
-