Plan 9 Wiki Wish List

This page is a wish list for the Plan 9 Wiki documentation. Feel free to add items you think should be included in the Wiki, or remove items that have been added.



Some docs on how to set up the wiki would be nice. The man page is a little thin, and there are a few html pages missing in the distribution (create.html for one). When the wiki does work, editing a page produces

Object not found
The object %s open %s failed: %r does not exist on this server.

Note: wikifs must be started before httpd.


CPU servers, File servers, auth servers, terminal servers... is there an overview of what the minimum recommended Plan 9 system somewhere? The docs hint that a standalone cpu server would be a good thing, as would a file server, and also an auth server. What is the ideal, and what are lesser but acceptable alternatives?

-- Added page for the above at Expanding your Grid. Mycroftiv.

You can do most things logging in as "glenda" or "none" with the default installation. However, part of the idea behind Plan 9 is being able to import resources from other machines and use them as if they were local. You can expand on the default installation by making it a hybrid CPU, Authentication, DHCP, and kfs file server. Follow the instructions in Configuring a standalone CPU server. It's recommended you read the following pages before attempting it:

After converting your installation into a hybrid cpu/auth/kfs server it'll still seem pretty much the same as before. The difference is you can now serve other Plan 9 terminals and systems. See:

Remember to setup authentication properly and add users to the keyfs database. I think the syntax for auth(8) would be

auth/changeuser -p username

this should generate the necessary keys for 'username'.

On another machine you can then begin to experiment compiling the kernel for a terminal which uses the CPU, disk, or both from the server. Play around with the 'pcdisk' kernel config file instead of the 'pccpudisk' config file. My instructions are a bit brief but should give you some idea of what you're aiming for.

Other important configuration files are /rc/bin/cpurc* for CPU servers, and /rc/bin/termrc* for setting up terminals. In the network database (/lib/ndb/local) of the server, you should setup the configuration for terminals with lines like

ip= sys=aquitania ether=abc12345def

Sometimes it's hard to read web documentation without a web-browser... you can use the VNC client if you have a spare machine:

vncv machine_running_VNC_server


It would be nice if the Wiki had sections on how to write device drivers for vga, ether, and so on, describing the "theory of operations." Also, waserror()/poperror()/... stuff is really confusing. I'd like to see explanations on what they are for, when to use and how to use them.