|  | #!/bin/ash | 
|  |  | 
|  | if [ "$#" -eq "1" ] | 
|  | then | 
|  | MACHINE=$1 | 
|  | fi | 
|  |  | 
|  | #bind -a '#I' /net | 
|  | #bind -a '#l0' /net | 
|  | #cat /net/ipifc/clone | 
|  | ## bind the ether0 to it | 
|  | #echo 'bind ether /net/ether0' > /net/ipifc/0/ctl | 
|  | #exit | 
|  |  | 
|  | # ifconfig it | 
|  |  | 
|  | export cputype=amd64 | 
|  | export objtype=$cputype | 
|  | export service=cpu | 
|  | export authid=bootes | 
|  | export rootdir=/root | 
|  | export rootspec='' | 
|  | export rootsrv=boot | 
|  |  | 
|  | #authentication='nvram=/boot/adm/nvram auth/factotum -sfactotum -S'      # -a ... | 
|  | # test xyzip=(0 0 0 104.9.33) | 
|  | # test fsaddr='tcp!135.$xyzip(4)^!564' | 
|  | # (me network server server-addr | 
|  | # wrong addresses. | 
|  |  | 
|  | # qemu is the default | 
|  | me=10.0.2.15 | 
|  | mask=255.255.255.0 | 
|  | # brho: i don't know what exactly 'remote' is supposed to be, but that is | 
|  | # the third argument processed by adding to an ipifc.  if we pass nothing, | 
|  | # it'll build 'remote' by masking me & mask. | 
|  | remote=10.0.2.0 | 
|  | route=10.0.2.2 | 
|  |  | 
|  | if [ "x$MACHINE" = "xc89" ] | 
|  | then | 
|  | # c89's config.  use c96 for eth0 (.196).  if you want, we can also use | 
|  | # c97 (.197): | 
|  | # $ cat /9/net/ipifc/clone (get e.g. 2) | 
|  | # $ echo "add 169.229.49.197 255.255.255.0" > /9/net/ipifc/2/ctl | 
|  | me=169.229.49.196 | 
|  | mask=255.255.255.0 | 
|  | remote=169.229.49.0 | 
|  | route=169.229.49.1 | 
|  | fi | 
|  |  | 
|  | if [ "x$MACHINE" = "xhossin" ] | 
|  | then | 
|  | # brho's soda hall desktop | 
|  | me=128.32.37.46 | 
|  | mask=255.255.255.0 | 
|  | remote=128.32.37.0 | 
|  | route=128.32.37.1 | 
|  | fi | 
|  | # | 
|  | # Post the read-only filesystem in #s/$beetroot | 
|  | # and mount it on /boot so the commands in /boot/$cputype/bin | 
|  | # are available to create the namespace (namespaces like to | 
|  | # mount #s/boot on / and that should not be the read-only | 
|  | # filesystem). | 
|  | # Must set hostowner to be that of the owner of the nvram file | 
|  | # before paqfs starts otherwise factotum will not be able to | 
|  | # open it. | 
|  | # | 
|  | #/boot/echo -n sys > '#c/hostowner' | 
|  | #/boot/paqfs -p -S $beetroot -m /boot -q /boot/$beetroot | 
|  | #cd /boot/$cputype/bin | 
|  | bind -b '#c' /dev | 
|  | #bind '#d' /fd | 
|  | #bind -c '#e' /env | 
|  | bind -b '#p' /proc | 
|  | #bind -b -c '#s' /srv | 
|  | bind -b '#s' /srv | 
|  |  | 
|  | # | 
|  | # Configure the networks. | 
|  | # | 
|  | bind -a '#I' /net | 
|  | bind -a '#l0' /net | 
|  |  | 
|  | # note: dhcp is possible, just not done yet. | 
|  | #get an instance of a network stack | 
|  | i=`cat /net/ipifc/clone` | 
|  | # bind the ether0 to it | 
|  | echo "bind ether /net/ether0 " > /net/ipifc/$i/ctl | 
|  | # ifconfig it | 
|  | echo "add $me $mask $remote" > /net/ipifc/$i/ctl | 
|  | echo "add 0 0 $route" > /net/iproute | 
|  | echo I am $me, default route $route | 
|  |  | 
|  | i=`cat /net/ipifc/clone` | 
|  | echo "bind loopback /dev/null " > /net/ipifc/$i/ctl | 
|  | echo "add 127.0.0.1 255.0.0.0 127.0.0.0 " > /net/ipifc/$i/ctl |