| # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| description "Start the udev daemon" |
| author "chromium-os-dev@chromium.org" |
| |
| # Start udev early so flimflam can be notified of "wlan0". The |
| # general "trigger" for remaining devices is now in the udev-addon |
| # job |
| start on starting boot-services |
| |
| respawn |
| expect fork |
| |
| pre-start script |
| # udev uses inotify to monitor the dynamic rules directory |
| # /dev/.udev/rules.d; however, this directory must exist before |
| # udevd runs, or the inotify won't find the directory even if it |
| # is created later. This is an issue with udev-146. Udev |
| # versions 156 and later do not exhibit this problem, and for |
| # those this test is not necessary. |
| if [ ! -d /dev/.udev/rules.d ]; then |
| mkdir -p /dev/.udev/rules.d |
| fi |
| |
| # If the driver for built-in WIFI is a module, the udev-addon job |
| # will have recorded the driver name on the previous boot cycle. |
| # Load that driver now so flimflam can config the wireless LAN sooner, |
| # ideally by the time login screen is up. |
| # |
| # Note: failure to probe the module here is NOT fatal. |
| drvfile=/var/lib/preload-wifi-driver |
| if [ -s $drvfile ] ; then |
| drv=$(head -1 $drvfile) |
| if ! modprobe "$drv" >/dev/null 2>&1 ; then |
| # If modprobe didn't like the alias file for some reason, just |
| # move it out of the way. The udev-addon job will make a new |
| # one. |
| mv $drvfile $drvfile.bad |
| MESSAGE="udev pre-start: modprobe $drv failed." |
| MESSAGE="$MESSAGE Renamed $drvfile with .bad suffix." |
| logger "$MESSAGE" |
| fi |
| fi |
| end script |
| |
| exec udevd --daemon |