VMMCP: better support incoming interrupts. Fix idiot bug where Dune stripped rflags...
[akaros.git] / kern / kfs / ifconfig
1 #!/bin/ash
2
3 MAC=`cat '#ether/ether0/addr'`
4
5 #bind -a '#ip' /net
6 #bind -a '#ether.0' /net
7 #cat /net/ipifc/clone
8 ## bind the ether0 to it
9 #echo 'bind ether /net/ether0' > /net/ipifc/0/ctl
10 #exit
11
12 # ifconfig it
13
14 export cputype=amd64
15 export objtype=$cputype
16 export service=cpu
17 export authid=bootes
18 export rootdir=/root
19 export rootspec=''
20 export rootsrv=boot
21
22 NIC="0"
23 #authentication='nvram=/boot/adm/nvram auth/factotum -sfactotum -S'      # -a ...
24 # test xyzip=(0 0 0 104.9.33)
25 # test fsaddr='tcp!135.$xyzip(4)^!564'
26 # (me network server server-addr
27 # wrong addresses.
28
29 if [ -f '/etc/network/default' ]
30 then
31         source /etc/network/default
32 else
33         echo '/etc/network/default not found'
34 fi
35
36 if [ -f '/etc/network/local' ]
37 then
38         source /etc/network/local
39 else
40         echo '/etc/network/local not found'
41 fi
42
43 if [ -d '/etc/network/local.d' ]
44 then
45         for cfg in /etc/network/local.d/*
46         do
47                 source $cfg
48         done
49 else
50         echo '/etc/network/local.d not found'
51 fi
52
53 #
54 # Post the read-only filesystem in #s/$beetroot
55 # and mount it on /boot so the commands in /boot/$cputype/bin
56 # are available to create the namespace (namespaces like to
57 # mount #s/boot on / and that should not be the read-only
58 # filesystem).
59 # Must set hostowner to be that of the owner of the nvram file
60 # before paqfs starts otherwise factotum will not be able to
61 # open it.
62 #
63 #/boot/echo -n sys > '#c/hostowner'
64 #/boot/paqfs -p -S $beetroot -m /boot -q /boot/$beetroot
65 #cd /boot/$cputype/bin
66 bind -b '#cons' /dev
67 #bind '#d' /fd
68 #bind -c '#e' /env
69 bind -b '#proc' /proc
70 #bind -b -c '#srv' /srv
71 bind -b '#srv' /srv
72
73 #
74 # Configure the networks.
75 #
76 bind -a '#ip' /net
77 bind -a \#ether.$NIC /net
78
79 # note: dhcp is possible, just not done yet.
80 #get an instance of a network stack
81 i=`cat /net/ipifc/clone`
82 # bind the ether0 to it
83 # the kernel sets errno, though it doesn't return -1 or anything.  but our bb
84 # hacks doesn't know any better, and echo will think it was an error
85 echo "bind ether /net/ether$NIC " > /net/ipifc/$i/ctl 2> /dev/null
86 # ifconfig it
87 echo "add $me $mask $remote" > /net/ipifc/$i/ctl
88 echo "add 0 0 $route" > /net/iproute
89 echo I am $me, default route $route
90
91 i=`cat /net/ipifc/clone`
92 echo "bind loopback /dev/null " > /net/ipifc/$i/ctl
93 echo "add 127.0.0.1 255.0.0.0 127.0.0.0 " > /net/ipifc/$i/ctl
94
95 cs&
96 if [ ! -e "#srv/cs" ]
97 then
98         echo "cs hasn't created #srv/cs yet, sleeping until it does..."
99         until [ -e "#srv/cs" ]
100         do
101                 usleep 1000
102         done
103 fi
104 mount -a \#srv/cs /net
105
106 # this is noisy, so it is off by default.
107 #echo debug > /net/cs
108
109 bind -a \#kprof /prof/
110
111 echo "ifconfig complete"