Print backtraces when we do a warn()
[akaros.git] / Documentation / using_go9p_netroot
1 We can serve the root file system for NxM directly from Linux or OS X,
2 allowing access to the full Linux namespace during run-time.
3 For this, we use go9p. 
4
5 You need to have Go installed, e.g.
6
7 pacman -S go
8
9 apt-get install golang
10
11 You should now have things set up in /usr/lib/go.
12 To install new things, as a non-priveleged user,
13 you need a local place to build packages.
14
15 Set a GOPATH, e.g.
16  $ export GOPATH=~/go:/usr/lib/go
17  $ go get github.com/rminnich/go9p/ufs # fetches dependencies
18
19 This *should* work
20
21  $ go install github.com/rminnich/go9p/ufs
22
23 ufs ends up in:
24
25 /home/rminnich/go/bin/ufs
26
27 You can now run ufs, specifying the appropriate root directory:
28
29  $ sudo ~/go/bin/ufs -addr=:564 -root=whereever
30
31 Here is an example qemu command which some of us use:
32
33 A more complex usage (Ron's case) involves serving a root file system
34 to an NxM instance being run on an Arch virtual machine guest in
35 vmware fusion. That's not near as hard as it sounds. The OSX machine
36 is called rminnich-macbookair; the arch Linux guest VM is called arch.
37
38 On OSX, we start two commands:
39
40 $ ufs -addr:7777
41
42 $ ssh -R 564:rminnich-macbookair:7777 root@arch
43
44 This ssh command sets up a reverse proxy on the arch linux guest to
45 the ufs server running on OSX.  On arch linux, we run the qemu command
46 shown above. When we get the root is from prompt, we use the ip
47 address 10.0.2.2. That's it.