Add ability to run init script through config var
[akaros.git] / kern / kfs / ifconfig
1 #!/bin/ash
2
3 if [ "$#" -eq "1" ]
4 then
5         MACHINE=$1
6 fi
7
8 #bind -a '#I' /net
9 #bind -a '#l0' /net
10 #cat /net/ipifc/clone
11 ## bind the ether0 to it
12 #echo 'bind ether /net/ether0' > /net/ipifc/0/ctl
13 #exit
14
15 # ifconfig it
16
17 export cputype=amd64
18 export objtype=$cputype
19 export service=cpu
20 export authid=bootes
21 export rootdir=/root
22 export rootspec=''
23 export rootsrv=boot
24
25 NIC="0"
26 #authentication='nvram=/boot/adm/nvram auth/factotum -sfactotum -S'      # -a ...
27 # test xyzip=(0 0 0 104.9.33)
28 # test fsaddr='tcp!135.$xyzip(4)^!564'
29 # (me network server server-addr
30 # wrong addresses.
31
32 # qemu is the default
33 me=10.0.2.15
34 mask=255.255.255.0
35 # brho: i don't know what exactly 'remote' is supposed to be, but that is
36 # the third argument processed by adding to an ipifc.  if we pass nothing,
37 # it'll build 'remote' by masking me & mask.
38 remote=10.0.2.0
39 route=10.0.2.2
40
41 if [ "x$MACHINE" = "xc89" ]
42 then
43         # c89's config.  use c96 for eth0 (.196).  if you want, we can also use
44         # c97 (.197):
45         # $ cat /9/net/ipifc/clone (get e.g. 2)
46         # $ echo "add 169.229.49.197 255.255.255.0" > /9/net/ipifc/2/ctl
47         me=169.229.49.196
48         mask=255.255.255.0
49         remote=169.229.49.0
50         route=169.229.49.1
51         # the i350 NIC that is plugged in is the first NIC
52         NIC="0"
53 fi
54
55 if [ "x$MACHINE" = "xhossin" ]
56 then
57         # brho's soda hall desktop
58         me=128.32.37.46
59         mask=255.255.255.0
60         remote=128.32.37.0
61         route=128.32.37.1
62 fi
63 #
64 # Post the read-only filesystem in #s/$beetroot
65 # and mount it on /boot so the commands in /boot/$cputype/bin
66 # are available to create the namespace (namespaces like to
67 # mount #s/boot on / and that should not be the read-only
68 # filesystem).
69 # Must set hostowner to be that of the owner of the nvram file
70 # before paqfs starts otherwise factotum will not be able to
71 # open it.
72 #
73 #/boot/echo -n sys > '#c/hostowner'
74 #/boot/paqfs -p -S $beetroot -m /boot -q /boot/$beetroot
75 #cd /boot/$cputype/bin
76 bind -b '#c' /dev
77 #bind '#d' /fd
78 #bind -c '#e' /env
79 bind -b '#p' /proc
80 #bind -b -c '#s' /srv
81 bind -b '#s' /srv
82
83 #
84 # Configure the networks.
85 #
86 bind -a '#I' /net
87 bind -a \#l$NIC /net
88
89 # note: dhcp is possible, just not done yet.
90 #get an instance of a network stack
91 i=`cat /net/ipifc/clone`
92 # bind the ether0 to it
93 echo "bind ether /net/ether$NIC " > /net/ipifc/$i/ctl
94 # ifconfig it
95 echo "add $me $mask $remote" > /net/ipifc/$i/ctl
96 echo "add 0 0 $route" > /net/iproute
97 echo I am $me, default route $route
98
99 i=`cat /net/ipifc/clone`
100 echo "bind loopback /dev/null " > /net/ipifc/$i/ctl
101 echo "add 127.0.0.1 255.0.0.0 127.0.0.0 " > /net/ipifc/$i/ctl
102
103 cs&
104 if [ ! -e "#s/cs" ] 
105 then
106         echo "cs hasn't created #s/cs yet, sleeping until it does..."
107         until [ -e "#s/cs" ] 
108         do 
109                 usleep 1000
110         done
111 fi
112 mount -a \#s/cs /net
113
114 # this is noisy, so it is off by default.
115 #echo debug > /net/cs
116
117 bind -a \#K /prof/
118
119 echo "ifconfig complete"