525d86686e
Update the init scripts have to use udevadm where appropriate. The udev package no longer provides separate udev utilities like udevtrigger and udevsettle. These have been incorporated into the udev admin program udevadm. Replace the udevextras sub package with config options to the udev package. Update the preinit script to check for '/lib/udev/devices', and copy it to '/dev/ if it is found, then to conditionaly setup /dev the old way with mknod etc. Udev now recommends using the directory '/lib/udev/devices' to initialize the '/dev' directory at startup. Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> SVN-Revision: 17378
93 lines
2.4 KiB
Bash
Executable file
93 lines
2.4 KiB
Bash
Executable file
#!/bin/sh
|
|
# Copyright (C) 2006 OpenWrt.org
|
|
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
|
. /etc/diag.sh
|
|
|
|
failsafe_ip() {
|
|
ifconfig $ifname 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up
|
|
}
|
|
|
|
failsafe() {
|
|
[ -n "$ifname" ] && grep "$ifname" /proc/net/dev >/dev/null && {
|
|
failsafe_ip
|
|
netmsg 192.168.1.255 "Entering Failsafe!"
|
|
telnetd -l /bin/login.sh <> /dev/null 2>&1
|
|
}
|
|
lock /tmp/.failsafe
|
|
ash --login
|
|
}
|
|
|
|
mount proc /proc -t proc
|
|
mount sysfs /sys -t sysfs
|
|
|
|
size=$(awk '/MemTotal:/ {l=5242880;mt=($2*1024);print((s=mt/2)<l)&&(mt>l)?mt-l:s}' /proc/meminfo)
|
|
mount tmpfs /tmp -t tmpfs -o size=$size,nosuid,nodev,mode=1777
|
|
|
|
if grep devfs /proc/filesystems > /dev/null; then
|
|
mount devfs /dev -t devfs
|
|
M0=/dev/pty/m0
|
|
M1=/dev/pty/m1
|
|
HOTPLUG=/sbin/hotplug-call
|
|
|
|
elif [ -x /sbin/hotplug2 ]; then
|
|
mount -t tmpfs tmpfs /dev -o size=512K
|
|
mknod /dev/console c 5 1
|
|
/sbin/hotplug2 --set-worker /lib/hotplug2/worker_fork.so --set-rules-file /etc/hotplug2-init.rules --no-persistent --set-coldplug-cmd /sbin/udevtrigger
|
|
/sbin/hotplug2 --set-worker /lib/hotplug2/worker_fork.so --set-rules-file /etc/hotplug2-init.rules --persistent &
|
|
M0=/dev/ptmx
|
|
M1=/dev/ptmx
|
|
HOTPLUG=
|
|
|
|
elif [ -x /sbin/udevd ]; then
|
|
mount -n -t tmpfs -o mode=0755 udev /dev
|
|
[ -d /lib/udev/devices ] && cp -af /lib/udev/devices/* /dev/
|
|
[ -c /dev/console ] || mknod -m 0600 /dev/console c 5 1
|
|
[ -c /dev/null ] || mknod -m 0666 /dev/null c 1 3
|
|
/sbin/udevd --daemon --resolve-names=never
|
|
/sbin/udevadm trigger
|
|
/sbin/udevadm settle
|
|
M0=/dev/pty/ptmx
|
|
M1=/dev/pty/ptmx
|
|
HOTPLUG=
|
|
fi
|
|
|
|
[ -d /dev/pts ] || mkdir -p /dev/pts
|
|
[ -d /dev/shm ] || mkdir -p /dev/shm
|
|
mount devpts /dev/pts -t devpts
|
|
|
|
# the shell really doesn't like having stdin/out closed
|
|
# that's why we use /dev/pty/m0 and m1 as replacement
|
|
# for /dev/console if there's no serial console available
|
|
dd if=/dev/console of=/dev/null bs=1 count=0 >/dev/null 2>/dev/null && {
|
|
M0=/dev/console
|
|
M1=/dev/console
|
|
}
|
|
|
|
exec <$M0 >$M1 2>&0
|
|
|
|
echo "- preinit -"
|
|
echo "Press CTRL-C for failsafe"
|
|
trap 'FAILSAFE=true' INT
|
|
trap 'FAILSAFE=true' USR1
|
|
[ -e /etc/preinit.arch ] && . /etc/preinit.arch
|
|
set_state preinit
|
|
echo "$HOTPLUG" > /proc/sys/kernel/hotplug
|
|
export FAILSAFE
|
|
eval ${FAILSAFE:+failsafe}
|
|
lock -w /tmp/.failsafe
|
|
|
|
if [ -z "$INITRAMFS" ]; then
|
|
mount_root
|
|
[ -f /sysupgrade.tgz ] && {
|
|
echo "- config restore -"
|
|
cd /
|
|
mv sysupgrade.tgz /tmp
|
|
tar xzf /tmp/sysupgrade.tgz
|
|
rm -f /tmp/sysupgrade.tgz
|
|
sync
|
|
}
|
|
|
|
echo "- init -"
|
|
|
|
exec /sbin/init
|
|
fi
|