Magellan Linux

Diff of /tags/udev-185-r4/udev.rc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1725 by niro, Mon Apr 2 13:08:49 2012 UTC revision 1868 by niro, Mon Jul 30 18:10:19 2012 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # $Header: /root/magellan-cvs/src/udev/udev.rc,v 1.2 2010-08-18 00:57:31 niro Exp $  # $Id$
3    
4  udev_version()  udev_version()
5  {  {
# Line 8  udev_version() Line 8  udev_version()
8   if [[ -x /sbin/udev ]]   if [[ -x /sbin/udev ]]
9   then   then
10   version=$(/sbin/udev -V)   version=$(/sbin/udev -V)
  # We need it without a leading '0', else bash do the wrong thing  
  version=${version##0}  
  # Older udev's will print nothing  
  [[ -z ${version} ]] && version=0  
11   elif [[ -x /sbin/udevd ]]   elif [[ -x /sbin/udevd ]]
12   then   then
13   version=$(/sbin/udevd --version)   version=$(/sbin/udevd --version)
14   version=${version##0}   elif [[ -x /lib/udev/udevd ]]
15   [[ -z ${version} ]] && version=0   then
16     version=$(/lib/udev/udevd --version)
17     elif [[ -x /usr/lib/systemd/systemd-udevd ]]
18     then
19     version=$(/usr/lib/systemd/systemd-udevd --version)
20   fi   fi
21    
22     # We need it without a leading '0', else bash do the wrong thing
23     version=${version##0}
24     # Older udev's will print nothing
25     [[ -z ${version} ]] && version=0
26    
27   echo "${version}"   echo "${version}"
28  }  }
29    
# Line 26  populate_udev() Line 31  populate_udev()
31  {  {
32   local opts   local opts
33    
  # tell modprobe.sh to be verbose to $CONSOLE  
  echo CONSOLE=${CONSOLE} > /dev/.udev_populate  
   
34   # populate /dev with devices already found by the kernel   # populate /dev with devices already found by the kernel
35   rc_print "  Populating /dev with existing devices through uevents ..."   rc_print "  Populating /dev with existing devices through uevents ..."
36   if [[ ${RC_COLDPLUG} = yes ]]   if [[ ${RC_COLDPLUG} = yes ]]
37   then   then
38   /sbin/udevadm trigger   udevadm trigger
39   else   else
40   # do not run any init-scripts   # do not run any init-scripts
41   /sbin/udevadm control --env do_not_run_plug_service=1   udevadm control --property=do_not_run_plug_service=1
42    
43   # only create device nodes   udevadm trigger --type=subsystems --action=add
44   /sbin/udevadm trigger --attr-match=dev   udevadm trigger --type=devices --action=add
   
  # run persistent-net stuff  
  /sbin/udevadm trigger --subsystem-match=net  
45   fi   fi
46   evaluate_retval   evaluate_retval
47    
  # loop until everything is finished  
  rc_print "  Letting udev process events ..."  
  /sbin/udevadm settle --timeout=60  
  evaluate_retval  
   
48   # unset this variable   # unset this variable
49   /sbin/udevadm control --env do_not_run_plug_service=   udevadm control --property=do_not_run_plug_service=
50    
  rm -f /dev/.udev_populate  
51   return 0   return 0
52  }  }
53    
# Line 63  seed_dev() Line 56  seed_dev()
56   # seed /dev with some things that we know we need   # seed /dev with some things that we know we need
57   rc_print "  Seeding /dev with needed nodes ..."   rc_print "  Seeding /dev with needed nodes ..."
58   (   (
59   [ ! -c /dev/console ] && mknod /dev/console c 5 1   [ ! -c /dev/console ] && mknod -m 600 /dev/console c 5 1
60   [ ! -c /dev/tty1 ] && mknod /dev/tty1 c 4 1   [ ! -c /dev/tty1 ] && mknod -m 620 /dev/tty1 c 4 1
61   [ ! -c /dev/null ] && mknod /dev/null c 1 3   [ ! -c /dev/tty ] && mknod -m 666 /dev/tty c 5 0
62     [ ! -c /dev/null ] && mknod -m 666 /dev/null c 1 3
63    
64   # create kmsg too, so udev can add its start-message to dmesg   # create kmsg too, so udev can add its start-message to dmesg
65   [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11   [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
66    
  # copy over any persistant things  
  if [[ -d /lib/udev/devices ]]  
  then  
  cp -RPp /lib/udev/devices/* /dev 2>/dev/null  
  fi  
   
  # not provided by sysfs but needed  
  ln -snf /proc/self/fd /dev/fd  
  ln -snf fd/0 /dev/stdin  
  ln -snf fd/1 /dev/stdout  
  ln -snf fd/2 /dev/stderr  
  [[ -e /proc/kcore ]] && ln -snf /proc/kcore /dev/core  
   
67   # create problematic directories   # create problematic directories
68   mkdir -p /dev/pts /dev/shm   mkdir -p /dev/pts /dev/shm
69   )   )
# Line 92  seed_dev() Line 73  seed_dev()
73  # main function  # main function
74  start_devicemanager()  start_devicemanager()
75  {  {
76     local udev_prefix=""
77     local udev_daemon=""
78    
79     # get the right daemon and prefix for newer udev/systemd-udev installations
80     if [ -x /sbin/udevd ]
81     then
82     udev_daemon="/sbin/udevd"
83     udev_prefix=""
84     elif [ -x /lib/udev/udevd ]
85     then
86     udev_daemon="/lib/udev/udevd"
87     udev_prefix=""
88     elif [ -x /usr/lib/systemd/systemd-udevd ]
89     then
90     udev_daemon="/usr/lib/systemd/systemd-udevd"
91     udev_prefix="/usr"
92     fi
93    
94   # check if /dev/console exists outside tmpfs   # check if /dev/console exists outside tmpfs
95   [ -c /dev/console ] ; need_redirect=$?   [ -c /dev/console ] ; need_redirect=$?
96    
97   # create a ramdisk for populating udev   # create a ramdisk for populating udev
98   if [[ -z $(grep '[[:space:]]/dev[[:space:]]' /proc/mounts | cut -d ' ' -f2) ]]   if [[ -z $(grep '[[:space:]]/dev[[:space:]]' /proc/self/mountinfo) ]]
99   then   then
100   rc_print "Mounting udev at /dev ..."   rc_print "Mounting udev at /dev ..."
101   # many video drivers needed exec access   # many video drivers needed exec access
# Line 109  start_devicemanager() Line 108  start_devicemanager()
108   evaluate_retval   evaluate_retval
109   fi   fi
110    
111   # if a device tarball exists load it and if it is activated   # if a device tarball exists load it but only if it is activated in the config
112   rc_print "Configurating system to use udev ..."   rc_print "Configurating system to use udev ..."
113   if [[ ${RC_DEVICE_TARBALL} = yes ]]   if [[ ${RC_DEVICE_TARBALL} = yes ]]
114   then   then
115   rc_print "  Populating /dev with saved device nodes ..."   if [[ -f ${udev_prefix}/lib/udev/state/devices.tar.bz2 ]]
116   tar -jxpf /lib/udev/state/devices.tar.bz2 -C /dev   then
117   evaluate_retval   rc_print "  Populating /dev with saved device nodes ..."
118     tar -jxpf ${udev_prefix}/lib/udev/state/devices.tar.bz2 -C /dev
119     evaluate_retval
120     fi
121   fi   fi
122    
123   # other needed device nodes with udev   # other needed device nodes with udev
# Line 141  start_devicemanager() Line 143  start_devicemanager()
143   if [ ${need_redirect} -eq 1 ]   if [ ${need_redirect} -eq 1 ]
144   then   then
145   # we need to open fds 0 1 2   # we need to open fds 0 1 2
146   start-stop-daemon --start --exec /sbin/udevd -- --daemon </dev/console >/dev/console 2>/dev/console   start-stop-daemon --start --exec "${udev_daemon}" -- --daemon </dev/console >/dev/console 2>/dev/console
147   else   else
148   start-stop-daemon --start --exec /sbin/udevd -- --daemon   start-stop-daemon --start --exec "${udev_daemon}" -- --daemon
149   fi   fi
150   evaluate_retval   evaluate_retval
151    
152   # write root_link rule   # write root_link rule
153   /lib/udev/write_root_link_rule   if [ -x ${udev_prefix}/lib/udev/write_root_link_rule ]
154     then
155     ${udev_prefix}/lib/udev/write_root_link_rule
156     fi
157    
158   # populate udev device nodes   # populate udev device nodes
159   populate_udev   populate_udev
160    
# Line 165  start_devicemanager() Line 171  start_devicemanager()
171    
172  stop_devicemanager()  stop_devicemanager()
173  {  {
174     local udev_daemon=""
175    
176     # get the right daemon and prefix for newer udev/systemd-udev installations
177     if [ -x /sbin/udevd ]
178     then
179     udev_daemon="/sbin/udevd"
180     elif [ -x /lib/udev/udevd ]
181     then
182     udev_daemon="/lib/udev/udevd"
183     elif [ -x /usr/lib/systemd/systemd-udevd ]
184     then
185     udev_daemon="/usr/lib/systemd/systemd-udevd"
186     fi
187    
188   rc_print "Stopping udevd daemon ..."   rc_print "Stopping udevd daemon ..."
189   start-stop-daemon --stop --exec /sbin/udevd   start-stop-daemon --stop --exec "${udev_daemon}"
190   evaluate_retval   evaluate_retval
191  }  }

Legend:
Removed from v.1725  
changed lines
  Added in v.1868