12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #!/bin/sh
- # $Id$
-
- PATH=/sbin:/bin
-
- echo Busybox /linuxrc starting
-
- echo Mounting /proc filesystem
- mount -t proc none /proc
-
- echo=echo
- if grep '\bquiet\b' /proc/cmdline > /dev/null; then
- echo=true
- quiet=1
- fi
-
- $echo Creating root device
- mknod /dev/root b 1 0 2>/dev/null
- chmod 700 /dev/root
- echo 0x100 > /proc/sys/kernel/real-root-dev
-
- $echo Inserting modules
- if [ -z "$quiet" ]; then
- /bin/insert-modules
- else
- /bin/insert-modules >/dev/null
- fi
-
- $echo Bringing up loopback interface
- ifconfig lo 127.0.0.1 up
- route add -net 127.0.0.0 netmask 255.0.0.0 lo
-
- # Hack required for prism2 cards
- # It is not yet possible to use iwconfig to configure these cards,
- # so we need wlanctl.
- if ifconfig wlan0 down 2> /dev/null; then
- $echo Setting up wireless link
- wlanctl wlan0 lnxreq_ifstate ifstate=enable
- wlanctl wlan0 lnxreq_autojoin ssid= authtype=opensystem
- fi
-
- $echo Obtaining IP address via DHCP
- $echo Trying to obtain IP address via wired link [eth0]
- if udhcpc -i eth0 -f -n -q -s /bin/udhcpc-post; then
- $echo Successfully obtained IP address via wired link [eth0]
- else
- $echo Failed to obtain IP address via wired link [eth0]
- $echo Trying to obtain IP address via wireless link [wlan0]
- udhcpc -i wlan0 -f -n -q -s /bin/udhcpc-post
- fi
-
- if [ -d /sysroot/initrd ]; then
- $echo Unmounting /proc prior to pivot_root
- umount /proc
-
- $echo Pivoting root to /sysroot
- pivot_root /sysroot /sysroot/initrd
- cd /
-
- $echo Remounting devfs at correct place
- mount -t devfs none /dev
-
- $echo Releasing locks on old devfs
- exec 0</dev/null
- exec 1>/dev/console
- exec 2>/dev/console
-
- $echo Unmounting old devfs
- umount /initrd/dev
- else
- # Failed to mount root: report error and hang
- echo FATAL ERROR: Failed to mount root filesystem
- echo Press Alt-SysRq-B or hit the reset switch to reboot
- while : ; do sleep 6000 ; done
- fi
|