* [9fans] building small Plan 9 network at home (LONG)
@ 2003-12-24 4:38 okamoto
2003-12-24 4:43 ` okamoto
2003-12-24 4:45 ` okamoto
0 siblings, 2 replies; 3+ messages in thread
From: okamoto @ 2003-12-24 4:38 UTC (permalink / raw)
To: 9fans
It's very straightforward to have a standalone Fossil+Venti
machine at home. However, i'm afraid it's not so easy to
have that network at home. So, this is my small attempt to
offer an example of mine with the hope to help someone
who wants to has Plan 9 home network.
Here, I assume you have standalone kfs based machine already.
My Plan 9 network at home is very small, which has only three
machine, called venus(Venti+Fossil+CPU server), surveyor(RedHat
9.0 or Plan 9 terminal) and mars(Win2000 or Plan 9 terminal),
and the purpose of this document is to build venus. Mars and
Surveyor will boot from floppy drive when I want to run 9term.
Venus server has two disks, sdC0 and sdC1, and will boot from
sdC0 using 9fat partition.
Regarding how to make venti/fossil file system, you can read the
related documents on Plan 9 wiki page. I think it's worth to add
a point here. Don't forgewt to fossil/flfmt /dev/sdC0/other before
to make it run. You'll have active, snapshot and archive directory
under the other filesystem, those are not neccessary, and you can
remove them from fossilcons(8), and add some neccessary diectories
there, such as lp/tmp, lp/log etc.
Now, let's go (may be long sorry).
1) fdisk and prep sdC0 and sdC1
Mine is as follows:
sdC0
--rw-r----- S 0 sys sys 104857600 Dec 23 15:39 /dev/sdC0/9fat
--rw-r----- S 0 sys sys 0 Dec 23 15:39 /dev/sdC0/ctl
--rw-r----- S 0 sys sys 20490559488 Dec 23 15:39 /dev/sdC0/data
--rw-r----- S 0 sys sys 8821071872 Dec 23 15:39 /dev/sdC0/fossil
--rw-r----- S 0 sys sys 4831787008 Dec 23 15:39 /dev/sdC0/isect
--rw-r----- S 0 sys sys 512 Dec 23 15:39 /dev/sdC0/nvram
--rw-r----- S 0 sys sys 6194552832 Dec 23 15:39 /dev/sdC0/other
--rw-r----- S 0 sys sys 20489140224 Dec 23 15:39 /dev/sdC0/plan9
-lrw------- S 0 sys sys 0 Dec 23 15:39 /dev/sdC0/raw
--rw-r----- S 0 sys sys 536870400 Dec 23 15:39 /dev/sdC0/swap
All the partition of sdC1(120GB) is dedicated to Venti.
2) The contents of 9fat partition
alrw-rw-rw- M 55 bill trog 181812 Dec 8 20:38 /n/9fat/9LOAD
--rw-rw-rw- M 55 bill trog 2046150 Dec 8 20:38 /n/9fat/9PCDISK
--rw-rw-rw- M 55 bill trog 2404282 Dec 24 00:42 /n/9fat/9pcvnsf
--rw-rw-rw- M 55 bill trog 899193 Dec 24 00:42 /n/9fat/9pcvnsf.gz
--rw-rw-rw- M 55 bill trog 2404273 Dec 19 05:17 /n/9fat/9pcvnsfJ
--rw-rw-rw- M 55 bill trog 899175 Dec 19 05:17 /n/9fat/9pcvnsfJ.gz
--rw-rw-rw- M 55 bill trog 411 Dec 23 05:51 /n/9fat/PLAN9.INI
Plan9.ini of venus is as foolows:
# Celereon 366, 512MB, Fossil+Venti+Auth
#bootfile=sdC0!fs!/386/9pcauth
bootfile=sdC0!9fat!9pcvnsf
#bootfile=sdC0!9fat!9pcvnsfJ
#bootfile=fd0!9pcvnsf.gz
sysname=venus
*nomp=1
#ether0=type=ne2000 port=0x6500 irq=9
#ether0=type=83815
ether=type=i82557
audio0=type=sb16 irq=5 port=0x220 dma=5
#audio0=type=sb16 irq=7 port=0x220 dma=5
mouseport=ps2
#mouseport=0
monitor=multisync
vgasize=1376x1024x8
Don't bother with audio0 line. ☺
3) make 9pcdntf under /sys/src/9/pc
My pcvnsf file is as follows:
-----------cut here--------
dev
root
cons
arch
pnp pci
env
pipe
proc
mnt
srv
dup
rtc
ssl
tls
cap
kprof
ether netif
ip arp chandial ip ipv6 ipaux iproute netlog nullmedium pktmedium ptclbsum386 inferno
draw screen vga vgax
mouse mouse
vga
sd
floppy dma
lpt
audio dma
pccard
i82365 cis
uart
usb
link
devpccard
devi82365
apm apmjump
ether2000 ether8390
ether2114x pci
ether589 etherelnk3
ether79c970 pci
ether8003 ether8390
ether8139
ether82543gc pci
ether82557 pci
ether83815 pci
etherec2t ether8390
etherelnk3 pci
etherga620 pci
etherigbe pci ethermii
ethersink
ethersmc devi82365 cis
etherwavelan wavelan devi82365 cis pci
ethermedium
pcmciamodem
netdevmedium
loopbackmedium
usbuhci
misc
archmp mp apic
sdata pci sdscsi
sd53c8xx pci sdscsi
sdmylex pci sdscsi
uarti8250
uartpci pci
vga3dfx +cur
vgaark2000pv +cur
vgabt485 =cur
vgaclgd542x +cur
vgaclgd546x +cur
vgact65545 +cur
vgacyber938x +cur
vgaet4000 +cur
vgahiqvideo +cur
vgai81x +cur
vgamach64xx +cur
vgamga2164w +cur
vgamga4xx +cur
vganeomagic +cur
vganvidia +cur
vgargb524 =cur
vgas3 +cur vgasavage
vgat2r4 +cur
vgatvp3020 =cur
vgatvp3026 =cur
vgavmware +cur
ip
il
tcp
udp
ipifc
icmp
icmp6
port
int cpuserver = 1;
boot cpu boot #S/sdC0/
il
tcp
local
bootdir
/386/bin/rc
/rc/lib/rcmain
/386/bin/bind
/386/bin/cat
/386/bin/cp
/386/bin/echo
/386/bin/mount
/386/bin/sleep
/386/bin/ip/ipconfig
/386/bin/auth/factotum
/386/bin/fossil/fossil
/386/bin/venti/venti
/sys/lib/sysconfig/venusf/boot
/sys/lib/sysconfig/venusf/vnsfproto
/sys/lib/sysconfig/venusf/venti.conf
------cut here-----------
And, mk 'CONF=pcvnsf' install, and copy 9pcvnsf(.gz) to 9fat
partition, too.
You have to edit following three files under /sys/lib/sysconfig/venusf
directory before compile 9pcvnsf. My /sys/lib/sysconfig/venusf/boot,
vnsfproto, venti.conf files are:
3-1) boot
--------cut here-------
#!/boot/rc -m /boot/rcmain
cpuserver=yes
cd /boot
cp '#r/rtc' '#c/time'
bind -a '#I' /net
bind -a '#l0' /net
bind -a '#S' /dev
bind '#p' /proc
bind '#d' /fd
bind -a /boot /
ipconfig loopback /dev/null 127.1
ipconfig -g 192.168.2.100 ether /net/ether0 add 192.168.2.10 255.255.255.0
if(~ $cpuserver yes){
factotum -sfactotum -S
# factotum -sfactotum -S -k
}
if not{
factotum -sfactotum -u
# add a key so mount and fossil can authenticate each other
# remove this key once factotum is initialized with other keys
factotum -g 'proto=p9sk1 user=sys dom=jitaku.localdomain !password=localhost'
}
# raw block cache(B), venti block chache(C) and index cache(I) are all 8 Mega bytes
venti -c venti.conf -B 16m -C 16m -h tcp!127.1!8000 -I 16m -w -a tcp!127.1!17034 &
sleep 10
venti=tcp!127.0.0.1!17034
fossil -c '. vnsfproto'
mount -c /srv/boot /root
bind -ac /root /
rootdir=/root
rootspec=''
echo dma on >/dev/sdC0/ctl
echo dma on >/dev/sdC1/ctl
if(~ $cpuserver yes)
/386/init -c
if not
/386/init -t
exec ./rc -m/boot/rcmain -i
----------cut here----------
3-2) vnsfproto
-----cut here------
srv -p fscons
srv -p fscmd
srv boot
fsys main config /dev/sdC0/fossil
# 36864 = (312MB - 8MB*3)*1024*1024/8192
# 29696 = (256MB - 8MB*3)*1024*1024/8192
#124928 = (1024MB - 16MB*3)*1024*1024/8192
# 59392 = (512MB - 16MB*3)*1024*1024/8192
fsys main open -c 36864
fsys main
users -r /active/adm/users
snaptime -s 60 -a 0500
listen il!*!17008
listen tcp!*!564
fsys other config /dev/sdC0/other
fsys other open -c 2000
#fsys main
--------cut here--------
3-3) venti.conf
-------cut here-------
index main
isect /dev/sdC0/isect
arenas /dev/sdC1/arenas
-----cut here-------
4) edit /lib/ndb/local file, and mine is as follows:
----------cut here--------
#
# files comprising the database, use as many as you like, see ndb(6)
#
database=
file=/lib/ndb/local
file=/lib/ndb/common
file=/lib/ndb/auth
#
#outside domain
#
dom=
ns=A.ROOT-SERVERS.NET
dom=A.ROO-SERVERS.NET ip=210.141.128.10 ip=210.141.128.13
auth=sources.cs.bell-labs.com authdom=outside.plan9.bell-labs.com
#systems on the local network
#
#auth=venus.jitaku.localdomain authdom=jitaku.localdomain
dom=jitaku.localdomain soa
refresh=3600 ttl=3600
ns=venus
mx=venus
mbox=okamoto@venus.jitaku.localdomain
smtp=venus.jitaku.localdomain
#install this network
#
ipnet=takakura ip=192.168.2.0 ipmask=255.255.255.0
ipgw=192.168.2.100
auth=venus authdom=jitaku.localdomain
fs=192.168.2.10
dns=192.168.2.10
dnsdomain=jitaku.localdomain
#END
# gateway of local
# Plan 9 venus ether0
#ip=192.168.2.10 ether=xxxxxxxxxxxx sys=venus
# dom=venus.jitaku.localdomain
# INSTALL fileserver
# AUTH server
# //NS DP83815 network card//
# ip=192.168.2.10 ether=xxxxxxxxxxxx sys=venus
# Intel XPRES-PRO/100
ip=192.168.2.10 ether=0002b3cbb91d sys=venus
dom=venus.jitaku.localdomain
bootf=/386/9pcvnsf
proto=il
#END
#=====Terminals======
#
# Plan 9 terminal by floppy boot (DELL Opitilex)
ip=192.168.2.100 ether=xxxxxxxxxxxx sys=mars
doms=mars.jitaku.localdomain
bootf=/386/9pcJ.gz
fs=venus
proto=il
# Plan 9 terminal from floppy boot
# and (RedHat Linux 7.2J)
# Network card Corega FEther PCI-TXS (Realtek 8139)
ip=192.168.2.20 ether=xxxxxxxxxxxx sys=surveyor
dom=surveyor.jitaku.localdomain
bootf=/386/9pc.gz
fs=venus
proto=il
# Terminal mercury (Cube PC Pen4 1.8GHz, RTL8139)
ip=192.168.2.15 ether=xxxxxxxxxxxx sys=mercury
dom=mercury.jitaku.localdomain
bootf=/386/9pcJ.gz
fs=venus
proto=il
# Terminal venus
#ip=192.168.2.10 ether=xxxxxxxxxxxx sys=venus
# dom=venus.jitaku.localdomain
# bootf=/386/9pcdisk
# proto=il
# gateway to chigaklu6.co.jp
#
#ip=192.168.1.3 ether=xxxxxxxxxxxx sys=p9gate
# dom=p9gate.chigaku6.co.jp
# bootf=/386/9pcdisk
# proto=il
# Terminal Tecra 720CT Notebook
ip=192.168.2.12 ether=xxxxxxxxxxxx sys=kenprvt
dom=kenprvt.jitaku.localdomain
bootf=/386/9pcdiskJ.gz
fs=venus
proto=il
----------cut here------------
The ether=xxxxxxxxxxxx should be replaced by an approapriate
number.
5) reboot the machine without floppy, and it'll boot from the sdC0,
and reads plan9.ini thre, and you'll be promted to enter authID,
authdomain and key etc, and do it which will be written to /dev/sdC0/nvram,
and from next time, it'll be read automatically.
good luck!
Kenji
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [9fans] building small Plan 9 network at home (LONG)
2003-12-24 4:38 [9fans] building small Plan 9 network at home (LONG) okamoto
@ 2003-12-24 4:43 ` okamoto
2003-12-24 4:45 ` okamoto
1 sibling, 0 replies; 3+ messages in thread
From: okamoto @ 2003-12-24 4:43 UTC (permalink / raw)
To: 9fans
> My Plan 9 network at home is very small, which has only three
> machine, called venus(Venti+Fossil+CPU server), surveyor(RedHat
> 9.0 or Plan 9 terminal) and mars(Win2000 or Plan 9 terminal),
> and the purpose of this document is to build venus.
Venus has 256x2 + 32 = 544MB memory, and Mars has 256MB
and Surveyor's 512MB memory.
Kenji
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [9fans] building small Plan 9 network at home (LONG)
2003-12-24 4:38 [9fans] building small Plan 9 network at home (LONG) okamoto
2003-12-24 4:43 ` okamoto
@ 2003-12-24 4:45 ` okamoto
1 sibling, 0 replies; 3+ messages in thread
From: okamoto @ 2003-12-24 4:45 UTC (permalink / raw)
To: 9fans
I forgot one more very important file, /rc/bin/cpurc for venus.
Here you go.
----cut here-----
#!/bin/rc -x
echo -n cpu >/env/service
date -u >/env/boottime
fileserver=venus
# replace FACEDOM with the local domain to be used in the faces database
facedom=FACEDOM
TIMESYNCACCURACY=1000000 # accuracy in nanosec
#ip/ipconfig -g 192.168.2.100 ether /net/ether0 192.168.2.10 255.255.255.0 >/dev/null >[2=1]
ndb/cs
sysname=`{cat /dev/sysname}
ndb/dns -r
NPROC=`{wc -l /dev/sysstat}
NPROC=`{echo $NPROC|sed 's/ .*//'}
prompt=($sysname^'# ' ' ')
for(i in H w f t m v L S P U '$' Σ)
/bin/bind -a '#'^$i /dev >/dev/null >[2=1]
ip/dhcpd
ip/tftpd
aux/timesync -a $TIMESYNCACCURACY
auth/keyfs -w p -m /mnt/keys /adm/keys >/dev/null >[2=1]
aux/listen -q -t /rc/bin/service.auth -d /rc/bin/service il
aux/listen -q -t /rc/bin/service.auth -d /rc/bin/service tcp
if(~ $mouseport ask){
echo -n 'mouseport is (ps2, ps2intellimouse, 0, 1, 2)[ps2]: '
mouseport=`{read}
if(~ $#mouseport 0)
mouseport=ps2
}
if(~ $vgasize ask){
echo -n 'vgasize [640x480x8]: '
vgasize=`{read}
if(~ $#vgasize 0)
vgasize=640x480x8
}
if(~ $monitor ask){
echo -n 'monitor is [xga]: '
monitor=`{read}
if(~ $#monitor 0)
monitor=xga
}
if(test -f /dev/mousectl){
switch($mouseport){
case ps2 ps2intellimouse 0 1 2
if(~ $sysname VENUS)
aux/mouse -b 1200 $mouseport
if not
aux/mouse $mouseport
# parse vgasize into fields
vgasize=`{echo $vgasize}
if(! ~ $"monitor '' && ! ~ `{cat /dev/user} none){
aux/vga -l $vgasize
# aux/vga -ip $vgasize > /usr/okamoto/mars.$vgasize
}
if(~ $accupoint 1)
pipefile -dr /bin/aux/accupoint /dev/mouse
}
}
auth/cron >> /sys/log/cron >[2=1]&
swap /dev/sdC0/swap
mount -c /srv/boot /n/venusother other
------cut here-----
Kenji
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-12-24 4:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-24 4:38 [9fans] building small Plan 9 network at home (LONG) okamoto
2003-12-24 4:43 ` okamoto
2003-12-24 4:45 ` okamoto
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).