wok-next annotate busybox/stuff/init @ rev 20712
libtorrent: fix rtorrent building for non-64bit archs
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Sun May 27 12:13:53 2018 +0300 (2018-05-27) |
parents | |
children |
rev | line source |
---|---|
al@19875 | 1 #!/bin/busybox sh |
al@19875 | 2 |
al@19875 | 3 export PATH=/bin |
al@19875 | 4 export HOME=/ |
al@19875 | 5 export TERM=vt100 |
al@19875 | 6 |
al@19875 | 7 if [ -d /etc ]; then |
al@19875 | 8 [ -n "$domain" ] && echo search $domain > /etc/resolv.conf |
al@19875 | 9 for i in $dns; do |
al@19875 | 10 echo nameserver $i |
al@19875 | 11 done >> /etc/resolv.conf |
al@19875 | 12 [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" |
al@19875 | 13 [ -n "$subnet" ] && NETMASK="netmask $subnet" |
al@19875 | 14 if ifconfig $interface ${ip:-0.0.0.0} $BROADCAST $NETMASK; then |
al@19875 | 15 while route del default gw 0.0.0.0 dev $interface; do |
al@19875 | 16 : |
al@19875 | 17 done |
al@19875 | 18 for i in $router; do |
al@19875 | 19 route add default gw $i dev $interface |
al@19875 | 20 done |
al@19875 | 21 fi |
al@19875 | 22 exit |
al@19875 | 23 fi |
al@19875 | 24 |
al@19875 | 25 mkdir /tmp /mnt /proc /etc |
al@19875 | 26 mount -t proc none /proc |
al@19875 | 27 mount -t devtmpfs none /dev |
al@19875 | 28 |
al@19875 | 29 arg() { |
al@19875 | 30 root="$(sed "s/^/ /; s/$/ /; / $1=/!d; s/.* $1=\\([^ ]*\\).*/\\1/" </proc/cmdline)" |
al@19875 | 31 [ -n "$root" ] |
al@19875 | 32 } |
al@19875 | 33 |
al@19875 | 34 arg init |
al@19875 | 35 init=${root:-/sbin/init} |
al@19875 | 36 [ -n "$(sed 's/$/ /; s/^/ /; / ro /!d' /proc/cmdline)" ] && ro="-o ro" |
al@19875 | 37 [ -n "$(sed 's/$/ /; s/^/ /; / rw /!d' /proc/cmdline)" ] && ro="-o rw" |
al@19875 | 38 |
al@19875 | 39 arg root && |
al@19875 | 40 root="$(echo $root | sed 's|/|\\\\/|g')" && |
al@19875 | 41 root="$(blkid | sed "s/\"//g; /$root/!d; s/:.*//;q")" && |
al@19875 | 42 [ -n "$root" ] && |
al@19875 | 43 mount $ro $root /mnt |
al@19875 | 44 |
al@19875 | 45 arg loopfs && |
al@19875 | 46 losetup /dev/loop0 /mnt/$root && |
al@19875 | 47 mount /dev/loop0 /mnt |
al@19875 | 48 |
al@19875 | 49 arg subroot && |
al@19875 | 50 cp /bin/busybox /mnt/$root/dev/shm && |
al@19875 | 51 chroot="$root/dev/shm/busybox chroot $root" |
al@19875 | 52 |
al@19875 | 53 [ -x /mnt/$root/$init ] && |
al@19875 | 54 umount /dev && |
al@19875 | 55 umount /proc && |
al@19875 | 56 exec switch_root mnt $chroot $init |
al@19875 | 57 |
al@19875 | 58 [ -d /proc/bus/usb ] && |
al@19875 | 59 mount -t usbfs usbfs /proc/bus/usb |
al@19875 | 60 |
al@19875 | 61 while read type dir; do |
al@19875 | 62 grep -qs $type /proc/filesystems || continue |
al@19875 | 63 [ -d "$dir" ] || mkdir $dir |
al@19875 | 64 mount -t $type none $dir |
al@19875 | 65 done <<EOM |
al@19875 | 66 sysfs /sys |
al@19875 | 67 devpts /dev/pts |
al@19875 | 68 EOM |
al@19875 | 69 |
al@19875 | 70 TTY=$(tty 2>/dev/null) |
al@19875 | 71 TTY=${TTY:-/dev/tty1} |
al@19875 | 72 |
al@19875 | 73 stty -F $TTY rows 30 2>/dev/null # for jslinux only |
al@19875 | 74 |
al@19875 | 75 udhcpc -b -s /init |
al@19875 | 76 while true; do |
al@19875 | 77 busybox | sed '/Current/,$!d' |
al@19875 | 78 setsid sh -c "exec sh <$TTY >$TTY 2>&1" |
al@19875 | 79 done |