Plumbing stuff to all the grid users by mistake, all the time.


I'm mostly exploring the big unknown here. No project in mind beyond seeing what's possible and what works.


Laptop is an HP Compaq nx 7300. Had weird issues running 9front natively, would hang.

Now it's running debian stable, which starts a qemu 9front image as a CPU server. At first I started using qemu on the command line, later switched to libvirt. libvirt helps you make the NAT automatically with tap interfaces and all that stuff. The laptop gets its network through wifi, which makes me not want to use a bridge interface.

Once the machine is started, I can connect using spicy (gtk SPICE client) or drawterm. The virt-manager SPICE console works too, but it scales incorrectly at fullscreen, which is lame (things look blurry). spicy doesn't have that problem.

./drawterm -a -h -u glenda
spicy -h -p 5900

drawterm has the big advantage that I can manage my keyboard layout from the host, and it just werks on the guest.

Also if you ever need firefox (gasp!) or whatever, the primary clipboard is shared.

Sometimes when I tab out and back in, drawterm seems to have frozen. Making it windowed and fullscreen again seems to fix things. Also pressing ctrl and alt to make sure they haven't got stuck as 'pressed' helps.

To get working audio through drawterm, a legacy /dev/dsp file is needed on the host. To that end, `modprobe snd-pcm-oss`.

I'm running the mate desktop, and I had to add a keyboard binding to make windows fullscreen (in this case, the drawterm window).

I downloaded the gridstart and chat scripts to ~/bin/rc/. I also copied /bin/ircir to ~/bin/rc and modified it to pass the user parameter to my znc. Still, #9front on freenode seems dead.


Everybody is welcome to add more questions or answers, though it's mostly questions I ask and answer myself.

- What is /n?

- What is /mnt?

- What is /srv?

They all hold 9p filesystem thingies, right?

So when you dial a network thing it gets a file in /srv, and then you mount that in /n to actually get to the files.

- What are namespaces? #things?

- How do I make a new namespace? That works as a sandbox kind of thing right?

- Why does `9fs 9fat` work from the console but not from drawterm?

- how do I find a file? (locate/find)

- why run a cpu server?

- can I make a term server `-a -A tcp!*!564`?

those are options for hjfs(4) btw

- what happens if I remove the -A (for auth)

- how can I skip the bootargs prompt?

nobootprompt= instead of bootargs in plan9.ini!

- what's factotum? how does auth work?

- can I do drawterm connections without a password? I hate typing passwords!

- also what's the `-a` for in drawterm?

- how does one reload the page in mothra?

there is a box on top, if you type in a mothra window the text goes to the Go: prompt (or it shows up in alt mode) there you can enter both URLs and commands. The "r" command reloads the page, so "r", then return does the trick.

- or edit the url

m3 snarf, then paste. but it's annoying because the Go box has no cursor, you can only backspace or type!

So you can snarf it, paste in acme, edit, then plumb I guess

- open link in a new window?

- what's the hit list for? bookmarks?

- on the plumber, how come things open in the existing mothra/acme?

- where are the rules?


it says there editor=sam, but things actually open in acme?

at the start there's a bunch of "plumb to X", what does that do?

then for instance the web rule says:

type	is	text
data	matches	'https?://[^ ]+'
plumb	to	web

which is pretty understandable on a high level, but what does plumb to web really do?

/mnt/plumb/web is a weird file... does the plumber just write the url to it? no, echo won't work.

is mothra reading from that file anyway?

- how does 9p/9p2000 work? why is paging an image over gridram slow? latency has something to do with it!

cpu% time cp /n/gridram/bloom.jpg .
0.00u 0.70s 123.07r 	 cp /n/gridram/bloom.jpg .


- llvm target?

You've thought about it too, don't lie now!