ref: c1c3627f2fbf624acadd188537ff24fe57f83a44
author: stanley lieber <stanley.lieber@gmail.com>
date: Wed Jan 20 11:34:46 EST 2016
import
--- /dev/null
+++ b/.hgignore
@@ -1,0 +1,3 @@
+^.*\.html
+^.*\.pdf$
+^.*\.ps$
binary files /dev/null b/1391401.jpg differ
binary files /dev/null b/2001thinkpad01.jpg differ
binary files /dev/null b/2001thinkpad02.jpg differ
binary files /dev/null b/380d.jpg differ
binary files /dev/null b/9fans.jpg differ
binary files /dev/null b/9frontsystem.jpg differ
binary files /dev/null b/acpi.gif differ
--- /dev/null
+++ b/appendixj.ms
@@ -1,0 +1,206 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures appendixj.ms | page
+.\" htmlroff -u -ms -mhtml appendixj.ms >appendixj.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "Appendix J - Junk
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa9.html">FQA 9 - Troubleshooting</a> |
+.html - <a href="appendixl.html">Appendix L - Languages</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+Appendix J - Junk
+.ihtml h1
+.NL
+.R
+.html - <a href="appendixj.html">html</a> |
+.html - <a href="appendixj.pdf">pdf</a> |
+.html - <a href="appendixj.ms">troff</a>
+
+.SH
+.ihtml h2 <h2>
+Raspberry Pi
+.R
+.ihtml h2
+.html - <br />
+.FG pie-in-face jpg
+
+.SH
+Prebuilt image
+.R
+
+sdcard image available for the raspberry pi:
+
+.ihtml ul <ul>
+.IP
+.ihtml a <a href="http://felloff.net/usr/cinap_lenrek/9front-pi-3125.9fcca5b8ac11.img.bz2.torrent">
+http://felloff.net/usr/cinap_lenrek/9front-pi-3125.9fcca5b8ac11.img.bz2.torrent
+.ihtml a
+
+.ihtml a <a href="http://intma.in/downloads/9front-pi-3125.9fcca5b8ac11.img.bz2">
+http://intma.in/downloads/9front-pi-3125.9fcca5b8ac11.img.bz2
+.ihtml a
+.LP
+.ihtml ul
+
+I used Richard Miller's
+.CW pi.uboot.sd.img
+as a base, you may want to update the firmware on the FAT partition with files from here:
+
+.ihtml a <a href="https://github.com/raspberrypi/firmware">
+https://github.com/raspberrypi/firmware
+.ihtml a
+
+older versions:
+
+9front 95b0756087eb from Sun Oct 20 22:38:35 CES 2013
+
+.ihtml ul <ul>
+.IP
+.ihtml a <a href="http://intma.in/downloads/9front_pi.img.gz.torrent">
+http://intma.in/downloads/9front_pi.img.gz.torrent
+.ihtml a
+
+.ihtml a <a href="http://intma.in/downloads/9front_pi.img.gz">
+http://intma.in/downloads/9front_pi.img.gz
+.ihtml a
+.LP
+.ihtml ul
+
+.SH
+Installation Instructions
+.R
+
+If you don't want to use the provided image, follow these instructions to make your own. You don't need a computer capable of running 9front, qemu will suffice.
+
+.SH
+Image
+.R
+
+Make a FAT partition containing all the necessary files to boot the Raspberry Pi. An easy way to do this is to use Richard Miller's
+.ihtml a <a href="http://plan9.bell-labs.com/sources/extra/pi.uboot.sd.img.gz">
+.CW pi.uboot.sd.img
+.ihtml a
+(it's small). Write it to your SD card or do the following if you're using qemu (installing to an SD card directly from qemu was
+.B very
+slow for me):
+.P1
+# set count to the size you want your image to be
+# (in 512b units, see dd manpage)
+dd if=/dev/zero of=9front-pi.img count=3782016
+
+# copy minimal image to beginning of the newly created image
+dd if=pi.uboot.sd.img of=9front-pi.img conv=notrunc
+.P2
+
+.SH
+Boot and Installation
+.R
+
+Now boot from the 9front CD. For
+.CW qemu
+see
+.ihtml a <a href="fqa3.html#3.3.1">
+FQA 3.3.1 - qemu,
+.ihtml a
+this is what I did:
+.P1
+qemu-system-i386 \e
+ -enable-kvm \e
+ -drive file=9front-pi.img,if=virtio \e
+ -cdrom 9front-3125.9fcca5b8ac11.iso \e
+ -boot d
+.P2
+
+Now do the installation (see
+.ihtml a <a href="fqa4.html">
+FQA 4 - 9front Installation Guide
+.ihtml a
+for help), use
+.CW hjfs .
+Since you don't need a
+.CW 9fat
+partition, you may want to delete the automatically created partitions and create your own (start at sector 2 or
+.CW prepdisk
+will complain). Note that since you've removed
+.CW 9fat ,
+the installer will prompt you to do the prepdisk step again, just type the next step in manually.
+
+After the installation you have a 9front system that only has 386 binaries.
+The next step is compile the arm binaries.
+
+.SH
+Compiling for ARM
+.R
+
+Reboot and boot from CD again, but this time use the newly created partition as root (e.g. local!/dev/sdF0/fs)
+
+Before compiling you need to create some directories under
+.CW /arm/bin :
+.P1
+echo allow >>/srv/hjfs.cmd # allow changing ownership of files
+cd /arm/bin
+for(i in audio auth aux bitsy btc dial disk fs games ip ip/httpd ndb nusb replica upas venti){
+ mkdir $i
+ chgrp -u sys $i
+ chgrp sys $i
+}
+.P2
+
+Then compile everything:
+.P1
+cd /sys/src
+objtype=arm mk install
+cd 9/bcm
+mk install && mk install 'CONF=picpuf'
+.P2
+
+And copy the kernel to the FAT partition:
+.P1
+dossrv >/dev/null >[2]/dev/null
+mount -c /srv/dos /n/dos /dev/sdF0/dos
+cp /arm/9pif /arm/9picpuf /n/dos
+.P2
+
+Then set the kernel in
+.CW /n/dos/config.txt
+to
+.CW 9pif
+or
+.CW 9picpuf
+for terminal or cpu kernel and boot the image with the Raspberry Pi.
+At this point you can delete the 386 binaries if you don't need them.
+
+Once booted on the Raspberry Pi, you're able to mount the dos partition with:
+.P1
+9fs pidos
+.P2
+
+This will mount the dos partition on
+.CW /n/pidos ,
+similar to how
+.CW
+9fs 9fat
+.R
+works.
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa9.html">FQA 9 - Troubleshooting</a> |
+.html - <a href="appendixl.html">Appendix L - Languages</a>
--- /dev/null
+++ b/appendixl.ms
@@ -1,0 +1,176 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures appendixl.ms | page
+.\" htmlroff -u -ms -mhtml appendixl.ms >appendixl.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA Appendix L - Languages
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="appendixj.html">FQA Appendix J - Junk</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA Appendix L - Languages
+.ihtml h1
+.NL
+.R
+.html - <a href="appendixl.html">html</a> |
+.html - <a href="appendixl.pdf">pdf</a> |
+.html - <a href="appendixl.ms">troff</a>
+
+.ihtml h2 <h2>
+.SH
+C
+.R
+.ihtml h2
+.html - <br />
+.FG yes gif
+
+Read:
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/compiler">
+.I
+Plan 9 C Compilers,
+.R
+.ihtml a
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/comp">
+.I
+How to Use the Plan 9 C Compiler
+.R
+.ihtml a
+
+.ihtml h2 <h2>
+.SH
+C++
+.R
+.ihtml h2
+.html - <br />
+.FG cosbyplusplus gif
+
+Read:
+.ihtml a <a href="http://harmful.cat-v.org/software/c++/I_did_it_for_you_all">
+.I
+Bjarne Stroustrup: "I Did It For You All..."
+.R
+.ihtml a
+
+.html - Don't click <a href="http://marcus.biz.tm/files/">this link</a>. Don't click <a href="http://marcus.biz.tm/hg/gnubin">this link</a> either. Definitely don't click <a href="http://www.quintile.net/plan9/c++/index.html">this link</a>.
+
+.ihtml h2 <h2>
+.SH
+C#
+.R
+.ihtml h2
+.html - <br />
+.FG csharp gif
+
+.ihtml h2 <h2>
+.SH
+Go
+.R
+.ihtml h2
+.html - <br />
+.FG golang gif
+
+.P1
+# automatically converted ca certs from mozilla.org
+hget http://curl.haxx.se/ca/cacert.pem >/sys/lib/tls/ca.pem
+
+# shell script that emulates git commands
+hget http://9front.org/extra/rc/git >$home/bin/rc/git
+chmod 775 $home/bin/rc/git
+
+# fetch the repository
+git clone https://go.googlesource.com/go
+cd go
+git checkout go1.4.2
+
+# build go
+cd src
+\&./make.rc
+
+# install documentation
+go get golang.org/x/tools/cmd/godoc
+
+# go!
+.P2
+Read:
+.ihtml a <a href="http://golang.org/doc/">
+.I
+Documentation - The Go Programming Language
+.R
+.ihtml a
+
+.ihtml h2 <h2>
+.SH
+Haskell
+.R
+.ihtml h2
+.html - <br />
+.FG haskell gif
+
+.ihtml h2 <h2>
+.SH
+Perl
+.R
+.ihtml h2
+.html - <br />
+.FG perl jpg
+
+Perl 5.8.0, ported to Plan 9:
+.ihtml a <a href="http://plan9.bell-labs.com/sources/extra/perl.iso.bz2">
+http://plan9.bell-labs.com/sources/extra/perl.iso.bz2
+.ihtml a
+
+.ihtml h2 <h2>
+.SH
+PHP
+.R
+.ihtml h2
+.html - <br />
+.FG php gif
+
+.ihtml h2 <h2>
+.SH
+Python
+.R
+.ihtml h2
+.html - <br />
+.FG python gif
+
+Python 2.5.1 is included with the 9front distribution, not because anyone loves Python, but because it was required by Mercurial (also loved by no one), which was required by Google Code (shutting down in 2015). An abject lesson in expediency.
+
+Jeff Sickel ported Python 2.7 to Plan 9.
+.html - Download it <a href="https://bitbucket.org/jas/cpython">here</a>.<p>David du Colombier's notes on to install Python (and Mercurial) are available <a href="http://9legacy.org/9legacy/doc/python/notes">here</a>.
+
+.ihtml h2 <h2>
+.SH
+Ruby
+.R
+.ihtml h2
+.html - <br />
+.FG rails jpg
+
+Read:
+.ihtml a <a href="http://harmful.cat-v.org/software/ruby/">
+.I
+Ruby is Not Even Funny
+.R
+.ihtml a
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="appendixj.html">FQA Appendix J - Junk</a>
binary files /dev/null b/bar.gif differ
binary files /dev/null b/belllabs.jpg differ
binary files /dev/null b/betweenthelines.jpg differ
binary files /dev/null b/books.jpg differ
--- /dev/null
+++ b/bp.ms
@@ -1,0 +1,1 @@
+.bp
binary files /dev/null b/c64.jpg differ
binary files /dev/null b/carson.png differ
binary files /dev/null b/catglitch.jpg differ
binary files /dev/null b/chicklet.jpg differ
binary files /dev/null b/cinapcatdrawing.png differ
binary files /dev/null b/cirno.jpg differ
binary files /dev/null b/cosbyplusplus.gif differ
--- /dev/null
+++ b/cover.ms
@@ -1,0 +1,23 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH ONE book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental and methods employed may change
+.\" drastically over time.
+.\" troff -ms -mpictures cover.ms | page
+.ds CH \" turn off page numbering
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.BP catglitch.ps
+
+
+.ps 64
+.ce 2
+
+9FRONT
+
+
+
+
+TBA
binary files /dev/null b/crash.jpg differ
binary files /dev/null b/cryptsetup.jpg differ
binary files /dev/null b/csharp.gif differ
binary files /dev/null b/csrc.jpg differ
binary files /dev/null b/cyclogram.gif differ
binary files /dev/null b/danflavin.jpg differ
binary files /dev/null b/desktops.png differ
--- /dev/null
+++ b/fixhtml
@@ -1,0 +1,6 @@
+#!/bin/rc
+{
+ echo ',s/\n<\/a>/<\/a> /g'
+ echo w
+ echo q
+} | sam -d $1 >[2]/dev/null
binary files /dev/null b/fork.jpg differ
--- /dev/null
+++ b/fqa.ms
@@ -1,0 +1,1402 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa.ms | page
+.\" htmlroff -u -ms -mhtml fqa.ms >fqa.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "9FRONT FREQUENTLY QUESTIONED ANSWERS
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa0.html">FQA 0 - Introduction To Plan 9</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+9FRONT FREQUENTLY QUESTIONED ANSWERS
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa.html">html</a> |
+.html - <a href="fqa.pdf">pdf</a> |
+.html - <a href="fqa.ms">troff</a>
+.html - <a name="0.1" />
+.html - <br />
+.FG 9frontsystem jpg
+.html - <br />
+.DS
+.I
+Those who can do, those who can't write and those who can't write make ezines.
+.R
+\(em Sape Mullender
+.DE
+
+.B ACHTUNG!
+This document's STRUCTURE \(em and some of its TEXT \(em is plagiarized! \(em from the
+.ihtml a <a href="http://www.openbsd.org/faq/">
+OPENBSD FAQ!!\&
+.ihtml a
+
+.B ACHTUNG!
+Information provided by this document may be outdated or just plain wrong. Use your brain. NO REFUNDS.
+
+.DS
+.I
+_sl's info is incorrect.
+.R
+\(em anth_x
+.DE
+
+.FG goaway jpg
+
+.ihtml h1 <h1>
+.SH
+0 - Introduction to Plan 9
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa0.html#0.1">
+0.1 - What is Plan 9?
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.1.1">
+0.1.1 - Plan 9 is not UNIX
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.1.1.1">
+0.1.1.1 - Plan 9 is not plan9port
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.1.1.2">
+0.1.1.2 - Plan 9 is not Inferno
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.1.2">
+0.1.2 - Plan 9 is not a product
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.1.3">
+0.1.3 - Plan 9 is not for you
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2">
+0.2 - Why Plan 9?
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2.1">
+0.2.1 - What do people like about Plan 9?
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2.1.1">
+0.2.1.1 - What do you use Plan 9 for?
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2.2">
+0.2.2 - What do people hate about Plan 9?
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2.2.1">
+0.2.2.1 - What is not in Plan 9
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2.3">
+0.2.3 - Why did Plan 9's creators give up on Plan 9?
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2.4">
+0.2.4 - What is the deal with Plan 9's weird license?
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2.4.1">
+0.2.4.1 - Richard Stallman hates the Plan Nine license (circa 2000)
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2.4.2">
+0.2.4.2 - Theo de Raadt hates the Plan 9 license (circa 2003)
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.2.4.3">
+0.2.4.3 - Everyone hates the Plan 9 license (circa 2014)
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.3">
+0.3 - Further Reading
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.3.1">
+0.3.1 - Plan 9 papers
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.3.2">
+0.3.2 - Man pages
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.3.3">
+0.3.3 - Web pages
+.ihtml a
+
+.ihtml a <a href="fqa0.html#0.3.4">
+0.3.4 - Books
+.ihtml a
+
+.ihtml h1 <h1>
+.SH
+1 - Introduction to 9front
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa1.html#1.1">
+1.1 - What is 9front?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.1.1">
+1.1.1 - Cirno's been our mascot for a while.
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.2">
+1.2 - On what systems does 9front run?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.3">
+1.3 - Why might I want to use 9front?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.3.1">
+1.3.1 - New Features
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.3.1.1">
+1.3.1.1 - New Programs
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.3.1.2">
+1.3.1.2 - New Hardware Support
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.4">
+1.4 - Is 9front really free?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.5">
+1.5 - How can I help support 9front?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.6">
+1.6 - Who maintains 9front?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.7">
+1.7 - When is the next release of 9front?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.8">
+1.8 - What is included with 9front?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.9">
+1.9 - Can I use 9front as a desktop system?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.10">
+1.10 - Why is/isn't ProductX included?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.11">
+1.11 - Fine, where can I get 9front?
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.11.1">
+1.11.1 - Mirrors
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.11.1.1">
+1.11.1.1 - 9front.iso
+.ihtml a
+
+.ihtml a <a href="fqa1.html#1.11.1.2">
+1.11.1.2 - Mercurial repository
+.ihtml a
+
+.ihtml h1 <h1>
+.SH
+2 - Getting to know 9front
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa2.html#2.1">
+2.1 - Web Pages
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.2">
+2.2 - Mailing Lists
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.2.1">
+2.2.1 - Mailing List Archives
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.2.2">
+2.2.2 - Other useful mailing lists
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.3">
+2.3 - Manual Pages
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.3.2">
+2.3.2 - How do I write my own manual page?
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.4">
+2.4 - Reporting Bugs
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.4.1">
+2.4.1 - Your bug report SUCKS
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.4.2">
+2.4.2 - How do I get more useful info for developers?
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.4.2.1">
+2.4.2.1 - Take a photo of the panic screen
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.4.2.2">
+2.4.2.2 - Make a stack trace of a crashed process
+.ihtml a
+
+.ihtml a <a href="fqa2.html#2.4.2.3">
+2.4.2.3 - Make a process snapshot
+.ihtml a
+
+.ihtml h1 <h1>
+.SH
+3 - Hardware
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa3.html#3.1">
+3.1 - Selecting Hardware
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2">
+3.2 - Known Working Hardware
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.0">
+3.2.0 - Input Devices
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.0.1">
+3.2.0.1 - Mice
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.0.1.1">
+3.2.0.1.1 - IBM/Lenovo
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.0.2">
+3.2.0.2 - Keyboards
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.0.2.1">
+3.2.0.2.1 - IBM/Lenovo
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.1">
+3.2.1 - Audio
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.2">
+3.2.2 - Graphics
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.2.1">
+3.2.2.1 - AGP
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.2.2">
+3.2.2.2 - Integrated
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.2.3">
+3.2.2.3 - PCI Express
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3">
+3.2.3 - Networking
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.1">
+3.2.3.1 - Ethernet
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.1.1">
+3.2.3.1.1 - Integrated
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.1.2">
+3.2.3.1.2 - USB
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.1.3">
+3.2.3.1.3 - PCMCIA
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.2">
+3.2.3.2 - WiFi
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.2.1">
+3.2.3.2.1 - Bridge (external)
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.2.2">
+3.2.3.2.2 - Mini-PCI
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.2.3">
+3.2.3.2.3 - Mini-PCI Express
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.2.4">
+3.2.3.2.4 - PCI
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.3.2.5">
+3.2.3.2.5 - PCMCIA
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.4">
+3.2.4 - Tablet Digitizers
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.4.1">
+3.2.4.1 - Serial
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.4.1.1">
+3.2.4.1.1 - Integrated
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.5">
+3.2.5 - Laptops
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.5.1">
+3.2.5.1 - Acer
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.5.2">
+3.2.5.2 - IBM/Lenovo
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.5.2.1">
+3.2.5.2.1 - ThinkPad
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.5.3">
+3.2.5.3 - Toshiba
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.5.3.1">
+3.2.5.3.1 - Satellite
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.6">
+3.2.6 - Desktops
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.6.1">
+3.2.6.1 - eMachines
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.6.2">
+3.2.6.2 - Igel
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.6.3">
+3.2.6.3 - Soekris
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.6.4">
+3.2.6.4 - IBM/Lenovo
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.2.6.4.1">
+3.2.6.4.1 - ThinkCentre
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3">
+3.3 - Virtual Machines
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1">
+3.3.1 - Qemu
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1.1">
+3.3.1.1 - Installation
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1.2">
+3.3.1.2 - Post-Installation Booting
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1.2.1">
+3.3.1.2.1 - Multiboot
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1.4">
+3.3.1.4 - Networking
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1.4.1">
+3.3.1.4.1 - Linux VDE
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1.4.2">
+3.3.1.4.2 - OpenBSD tun(4)
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1.4.3">
+3.3.1.4.3 - Windows TAP
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1.5">
+3.3.1.5 - Audio
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.1.6">
+3.3.1.6 - Graphics
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.2">
+3.3.2 - Virtualbox
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.2.1">
+3.3.2.1 - Ethernet
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.2.2">
+3.3.2.2 - Audio
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.2.3">
+3.3.2.3 - Graphics
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.2.4">
+3.3.2.4 - Known Working Versions
+.ihtml a
+
+.ihtml a <a href="fqa3.html#3.3.3">
+3.3.3 - Virtio
+.ihtml a
+
+.ihtml h1 <h1>
+.SH
+4 - 9front Installation Guide
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa4.html#4.1">
+4.1 - Pre-installation Checklist
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.2">
+4.2 - Creating bootable 9front install media
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.2.1">
+4.2.1 - ISO image
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.2.2">
+4.2.2 - USB drive
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.2.2.1">
+4.2.2.1 - Creating on Plan 9
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.2.2.2">
+4.2.2.2 - Creating on Linux
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.2.2.3">
+4.2.2.3 - Bootargs
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3">
+4.3 - Performing a simple install
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.1">
+4.3.1 - boot
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.2">
+4.3.2 - bootargs
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.3">
+4.3.3 - user
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.4">
+4.3.4 - vgasize, monitor, mouseport
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.4.1">
+4.3.4.1 - Changing screen resolution
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.5">
+4.3.5 - inst/start
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.6">
+4.3.6 - configfs
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.7">
+4.3.7 - partdisk
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.8">
+4.3.8 - prepdisk
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.9">
+4.3.9 - mountfs
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.10">
+4.3.10 - configdist
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.11">
+4.3.11 - confignet
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.11.1">
+4.3.11.1 - dhcp
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.11.2">
+4.3.11.2 - manual
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.12">
+4.3.12 - mountdist
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.13">
+4.3.13 - copydist
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.14">
+4.3.14 - sysname
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.15">
+4.3.15 - tzsetup
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.16">
+4.3.16 - bootsetup
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.3.17">
+4.3.17 - finish
+.ihtml a
+
+.ihtml a <a href="fqa4.html#4.4">
+4.4 - Encrypted Partitions
+.ihtml a
+
+
+.ihtml h1 <h1>
+.SH
+5 - Building the System from Source
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa5.html#5.1">
+5.1 - Why should I build my system from source?
+.ihtml a
+
+.ihtml a <a href="fqa5.html#5.2">
+5.2 - Building 9front from source
+.ihtml a
+
+.ihtml a <a href="fqa5.html#5.2.1">
+5.2.1 - Update sources
+.ihtml a
+
+.ihtml a <a href="fqa5.html#5.2.1.1">
+5.2.1.1 - hgrc
+.ihtml a
+
+.ihtml a <a href="fqa5.html#5.2.2">
+5.2.2 - Building from source
+.ihtml a
+
+.ihtml a <a href="fqa5.html#5.2.2.1">
+5.2.2.1 - Cross compiling
+.ihtml a
+
+.ihtml a <a href="fqa5.html#5.3">
+5.3 - Building an ISO
+.ihtml a
+
+.ihtml a <a href="fqa5.html#5.4">
+5.4 - Common Problems when Compiling and Building
+.ihtml a
+
+.ihtml h1 <h1>
+.SH
+6 - Networking
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa6.html#6.1">
+6.1 - Before we go any further
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2">
+6.2 - Network configuration
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.1">
+6.2.1 - Host name
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2">
+6.2.2 - Identifying and setting up your network interfaces
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1">
+6.2.2.1 - Wifi
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1.1">
+6.2.2.1.1 - Interfaces
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1.1.1">
+6.2.2.1.1.1 - wavelan
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1.1.2">
+6.2.2.1.1.2 - wavelanpci
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1.1.3">
+6.2.2.1.1.3 - iwl
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1.1.4">
+6.2.2.1.1.4 - rt2860
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1.1.5">
+6.2.2.1.1.5 - wpi
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1.2">
+6.2.2.1.2 - WPA
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1.3">
+6.2.2.1.3 - Wifi Roaming
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.2.1.4">
+6.2.2.1.4 - Wifi Debug
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.3">
+6.2.3 - IP address
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.4">
+6.2.4 - Default gateway
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.5">
+6.2.5 - DNS Resolution
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.5.1">
+6.2.5.1 - Caching DNS server
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.5.2">
+6.2.5.2 - DNS authoritative name server
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.6">
+6.2.6 - Network-wide configuration
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.7">
+6.2.7 - Activating the changes
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.7.1">
+6.2.7.1 - NIC
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.7.2">
+6.2.7.2 - cs
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.7.3">
+6.2.7.3 - dns
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.8">
+6.2.8 - Verifying network settings
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.8.1">
+6.2.8.1 - Checking routes
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.8.1.1">
+6.2.8.1.1 - Adding static routes
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.9">
+6.2.9 - Setting up your 9front box as a forwarding gateway
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.2.10">
+6.2.10 - Setting up aliases on an interface
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.3">
+6.3 - How do I filter and firewall with 9front?
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.4">
+6.4 - Dynamic Host Configuration Protocol (DHCP)
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.4.1">
+6.4.1 - DHCP client
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.4.2">
+6.4.2 - DHCP server
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.5">
+6.5 - PPP
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.6">
+6.6 - Setting up a network bridge in 9front
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.7">
+6.7 - How do I boot from the network?
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.7.1">
+6.7.1 - How do I tcp boot?
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.7.1.1">
+6.7.1.1 - Passing arguments to ipconfig at the bootargs prompt
+.ihtml a
+
+.ihtml a <a href="fqa6.html#6.7.2">
+6.7.2 - How do I boot using PXE?
+.ihtml a
+
+.ihtml h1 <h1>
+.SH
+7 - System Management
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa7.html#7.1">
+7.1 - Plan 9 Services Overview
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.1.1">
+7.1.1 - What is the kernel?
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.1.2">
+7.1.2 - What is the file server?
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.1.3">
+7.1.3 - What is the auth server?
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.1.4">
+7.1.4 - What is the cpu server?
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.1.5">
+7.1.5 - What is a terminal?
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.2">
+7.2 - Kernel configuration and maintenance
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.2.1">
+7.2.1 - How do I mount the 9fat partition?
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.2.2">
+7.2.2 - How do I modify plan9.ini?
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.2.3">
+7.2.3 - Kernel configuration file
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.2.4">
+7.2.4 - Kernel drivers
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.2.5">
+7.2.5 - How do I install a new kernel?
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.3">
+7.3 - Fileserver configuration and maintenance
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.3.1">
+7.3.1 - Adding users
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.3.2">
+7.3.2 - Configuring nvram
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.3.3">
+7.3.3 - Setting up a listener for network connections
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.3.4">
+7.3.4 - Mounting a file system from userspace
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.4">
+7.4 - Auth server configuration and maintenance
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.4.1">
+7.4.1 - Configuring an auth server
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.4.1.1">
+7.4.1.1 - Avoiding an ndb entry for the auth server
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.4.2">
+7.4.2 - Adding users
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.4.3">
+7.4.3 - secstored
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.4.3.1">
+7.4.3 - Adding users to secstore
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.5">
+7.5 - Cpu server configuration and maintenance
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.5.1">
+7.5.1 - Configuring a cpu server
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.6">
+7.6 - Terminal configuration and maintenance
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.6.1">
+7.6.1 - Configuring a terminal
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.6.2">
+7.6.2 - Configuring a Terminal to Accept cpu Connections
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.6.3">
+7.6.3 - UTC Timesync
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7">
+7.7 - Mail server configuration and maintenance
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7.1">
+7.7.1 - smtpd.conf
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7.2">
+7.7.2 - rewrite
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7.3">
+7.7.3 - names.local
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7.4">
+7.7.4 - remotemail
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7.5">
+7.7.5 - SMTP over TLS
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7.6">
+7.7.6 - IMAP4 over TLS
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7.7">
+7.7.7 - Spam Filtering
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7.7.1">
+7.7.7.1 - ratfs
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.7.7.2">
+7.7.7.2 - scanmail
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.8">
+7.8 - Web server configuration and maintenance
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.8.1">
+7.8.1 - ip/httpd
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.8.2">
+7.8.2 - rc-httpd
+.ihtml a
+
+.ihtml a <a href="fqa7.html#7.9">
+7.9 - TLS certificates
+.ihtml a
+
+.ihtml h1 <h1>
+.SH
+8 - Using 9front
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa8.html#8.1">
+8.1 - rc
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.1.1">
+8.1.1 - Prompts
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.1.2">
+8.1.2 - /env
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2">
+8.2 - rio
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.1">
+8.2.1 - The Pop-up Menu
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.2">
+8.2.2 - Window control
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.3">
+8.2.3 - Text in rio windows
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.4">
+8.2.4 - Scrolling
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.5">
+8.2.5 - Mouse Chording
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.6">
+8.2.6 - Keyboard Shortcuts
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.7">
+8.2.7 - Color scheme
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.8">
+8.2.8 - Why is rio like this?
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.9">
+8.2.9 - tips
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.9.1">
+8.2.9.1 - Taking a screenshot
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.2.9.2">
+8.2.9.2 - Prevent console messages from overwriting the screen
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.3">
+8.3 - Text Editors
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.3.1">
+8.3.1 - sam
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.3.1.1">
+8.3.1.1 - Scrolling
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.3.1.2">
+8.3.1.2 - Mouse Chording
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.3.1.3">
+8.3.1.3 - Why does sam have a separate snarf buffer from rio?
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.3.1.4">
+8.3.1.4 - Keyboard Shortcuts
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.3.2">
+8.3.2 - acme
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4">
+8.4 - Internet
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.1">
+8.4.1 - Mail
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.1.1">
+8.4.1.1 - upasfs
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.1.1.1">
+8.4.1.1.1 - Reading gmail via IMAP
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.1.2">
+8.4.1.2 - nedmail
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.1.3">
+8.4.1.3 - nupas
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.2">
+8.4.2 - NNTP
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.3">
+8.4.3 - IRC
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.3.1">
+8.4.3.1 - ircrc
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.3.2">
+8.4.3.2 - irc7
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.4">
+8.4.4 - FTP
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.5">
+8.4.5 - HTTP
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.5.1">
+8.4.5.1 - mothra
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.5.2">
+8.4.5.2 - abaco
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.5.3">
+8.4.5.3 - hget
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.5.4">
+8.4.5.4 - charon
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.5.5">
+8.4.5.5 - i
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.6">
+8.4.6 - SSH
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.6.1">
+8.4.6.1 - ssh
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.6.2">
+8.4.6.2 - ssh2
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.6.3">
+8.4.6.3 - scpu
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.6.4">
+8.4.6.4 - OpenSSH
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.6.5">
+8.4.6.5 - sftpfs
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.6.5.1">
+8.4.6.5.1 - Mounting a remote u9fs share over SSH
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.4.7">
+8.4.7 - secstore
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.5">
+8.5 - Audio
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.6">
+8.6 - External Media
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.6.1">
+8.6.1 - Mount an ISO9660 CD-ROM
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.6.2">
+8.6.2 - Burn a CD-ROM
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.6.3">
+8.6.3 - Mount a FAT formatted USB device
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.7">
+8.7 - Emulation
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.7.1">
+8.7.1 - Linux Emulation
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.7.2">
+8.7.2 - Nintendo
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.7.3">
+8.7.3 - Sega
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.8">
+8.8 - Additional Software
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.8.1">
+8.8.1 - 9front sources server
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.8.2">
+8.8.2 - 9front contrib
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.8.3">
+8.8.3 - Other public 9p servers
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.9">
+8.9 - Bootstrapping architectures not included on the ISO
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.9.1">
+8.9.1 - amd64
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.9.2">
+8.9.2 - Raspberry Pi
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.10">
+8.10 - ACPI
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.10.1">
+8.10.1 - Enabling ACPI
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.11">
+8.11 - MP Table Override
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.12">
+8.12 - Revision Control
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.12.1">
+8.12.1 - cvs
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.12.2">
+8.12.2 - git
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.12.3">
+8.12.3 - Mercurial
+.ihtml a
+
+.ihtml a <a href="fqa8.html#8.12.4">
+8.12.4 - svn
+.ihtml a
+
+.ihtml h1 <h1>
+.SH
+9 - Troubleshooting
+.R
+.ihtml h1
+
+.ihtml a <a href="fqa9.html#9.1">
+9.1 - First
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.2">
+9.2 - Booting
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.2.2">
+9.2.2 - Break into a shell
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.2.3">
+9.2.3 - Editing plan9.ini
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.2.4">
+9.2.4 - Boot media not recognized
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.2.5">
+9.2.5 - I moved my hard drive between ports
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.3">
+9.3 - Graphics
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.3.1">
+9.3.1 - Rio fails to start
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.3.2">
+9.3.2 - VESA BIOS does not contain a valid mode
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.4">
+9.4 - Networking
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.4.1">
+9.4.1 - Networking is not working
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.4.2">
+9.4.2 - Cannot resolve domain names
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.4.3">
+9.4.3 - /mnt/web/clone does not exist
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.4.4">
+9.4.4 - PCMCIA WiFi stopped working after reboot
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.5">
+9.5 - USB
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.5.1">
+9.5.1 - Devices not recognized or not working
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.5.2">
+9.5.2 - System freezes after showing memory sizes
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.6">
+9.6 - auth
+.ihtml a
+
+.ihtml a <a href="fqa9.html#9.99999999999999999999999999999999999999">
+9.99999999999999999999999999999999999999 - GIVE UP
+.ihtml a
+
+.ihtml h1 <h1>
+.SH
+Appendix
+.R
+.ihtml h1
+
+.ihtml a <a href="appendixj.html">
+J - Junk
+.ihtml a
+
+.ihtml a <a href="appendixl.html">
+L - Languages
+.ihtml a
+.html - <br />
+.FG toilet jpg
+.html - <br />
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa0.html">FQA 0 - Introduction To Plan 9</a>
--- /dev/null
+++ b/fqa0.ms
@@ -1,0 +1,948 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa0.ms | page
+.\" htmlroff -u -ms -mhtml fqa0.ms >fqa0.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 0 - Introduction To Plan 9
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa1.html">FQA 1 - Introduction To 9front</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 0 - Introduction to Plan 9
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa0.html">html</a> |
+.html - <a href="fqa0.pdf">pdf</a> |
+.html - <a href="fqa0.ms">troff</a>
+.html - <a name="0.1" />
+
+.ihtml h2 <h2>
+.SH
+0.1 - What is Plan 9?
+.R
+.ihtml h2
+.html - <br />
+.FG csrc jpg
+.html - <br />
+.FG plan9team1995 jpg
+
+Plan 9 is a research operating system from the same group who created UNIX at
+.ihtml a <a href="http://cm.bell-labs.com/cm/cs/alumni.html">
+Bell Labs Computing Sciences Research Center
+.ihtml a
+(CSRC). It emerged in the late 1980s, and its early development coincided with continuing development of the later versions of
+.ihtml a <a href="http://en.wikipedia.org/wiki/Research_Unix">
+Research UNIX.
+.ihtml a
+Plan 9 can be seen as an attempt to evolve some of the same ideas that informed UNIX into the era of networking and graphics.
+.ihtml a <a href="http://en.wikipedia.org/wiki/Rob_Pike">
+Rob Pike
+.ihtml a
+has described Plan 9 as "an argument" for simplicity and clarity, while others have described it as "UNIX, only moreso."
+
+From
+.I
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/names">
+The Use of Name Spaces in Plan 9:
+.ihtml a
+.R
+.html ul <ul>
+.QS
+Plan 9 argues that given a few carefully implemented abstractions it
+is possible to produce a small operating system that provides support
+for the largest systems on a variety of architectures and networks.
+.QE
+.html ul
+
+From the
+.ihtml a <a href="http://man.9front.org/1/intro">
+.CW
+intro(1)
+.R
+.ihtml a
+man page:
+
+.html ul <ul>
+.QS
+Plan 9 is a distributed computing environment assembled from
+separate machines acting as terminals, CPU servers, and file
+servers. A user works at a terminal, running a window
+system on a raster display. Some windows are connected to
+CPU servers; the intent is that heavy computing should be
+done in those windows but it is also possible to compute on
+the terminal. A separate file server provides file storage
+for terminals and CPU servers alike.
+.QE
+.html ul
+
+The two most important ideas in Plan 9 are:
+
+.ihtml ul <ul>
+.IP
+•
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/names">
+private namespaces
+.ihtml a
+(each process constructs a unique view of the hierarchical file system)
+
+•
+.ihtml a <a href="http://man.9front.org/5/intro">
+file interfaces
+.ihtml a
+(familiar from UNIX, but taken to the extreme: all resources in Plan 9 look like file systems)
+.LP
+.ihtml ul
+
+Most everything else in the system falls out of these two basic ideas.
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/intro">
+.CW
+intro(1);
+.R
+.ihtml a
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/9">
+.I
+Plan 9 from Bell Labs;
+.R
+.ihtml a
+.ihtml a <a href="http://doc.cat-v.org/plan_9/1st_edition/designing_plan_9">
+.I
+Designing Plan 9,
+.R
+.ihtml a
+originally delivered at the
+.ihtml a <a href="https://groups.google.com/forum/#!topic/uk.announce/wEUdLbrb_Uk">
+UKUUG Conference in London, July 1990;
+.ihtml a
+and
+.ihtml a <a href="fqa7.html">
+.I
+FQA 7 - System Management;
+.R
+.ihtml a
+for a more detailed overview of Plan 9's design.
+.html - <br />
+.FG fork jpg
+
+Today, Plan 9 continues in its original form, as well as in several derivatives and forks:
+
+.ihtml a <a href="http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs">
+Plan 9 from Bell Labs
+.ihtml a
+\(em The original Plan 9. Effectively dead, all the developers have been run out of the Labs and/or are on display at Google.
+
+.ihtml a <a href="http://en.wikipedia.org/wiki/Plan_9_from_User_Space">
+Plan 9 from User Space
+.ihtml a
+\(em Plan 9 userspace ported/imitated for UNIX (specifically OS X).
+
+.ihtml a <a href="http://www.9legacy.org">
+9legacy
+.ihtml a
+\(em David du Colombier's cherry picked collection of patches from various people/forks to Bell Labs Plan 9. (it is not a fork)
+
+.ihtml a <a href="http://www.9atom.org">
+9atom
+.ihtml a
+\(em Erik Quanstrom's fork of Plan 9, maintained to erik's needs and occasionally pilfered by 9front.
+
+.ihtml a <a href="http://9front.org">
+9front
+.ihtml a
+\(em (that's us) (we rule (we're the tunnel snakes))
+
+.ihtml a <a href="http://lsub.org/ls/nix.html">
+NIX
+.ihtml a
+\(em High performance cloud computing is NIX \(em imploded in a cloud of political acrimony and retarded bureaucratic infighting.
+
+.ihtml a <a href="http://nxm.coreboot.org/NxM">
+NxM
+.ihtml a
+\(em A kernel for manycore systems \(em never spotted in the wild.
+
+.ihtml a <a href="http://lsub.org/ls/research.html">
+Clive
+.ihtml a
+\(em A new operating system from Francisco J. Ballesteros, designed to generate grantwriting practice material and research projects for otherwise indolent students.
+
+.ihtml a <a href="http://akaros.cs.berkeley.edu/akaros-web/news.php">
+Akaros
+.ihtml a
+\(em Akaros is an open source, GPL-licensed operating system for manycore architectures. Has no bearing on anything but has attracted grant money.
+
+.ihtml a <a href="http://harvey-os.org/">
+Harvey
+.ihtml a
+\(em Harvey is an effort to get the Plan 9 code working with gcc and clang.
+
+.ihtml a <a href="http://www.vitanuova.com/inferno">
+Inferno
+.ihtml a
+\(em Inferno is a distributed operating system started at Bell Labs, but is now developed and maintained by
+.ihtml a <a href="http://www.vitanuova.com/">
+Vita Nuova Holdings
+.ihtml a
+as free software. Just kidding it is not developed or maintained.
+
+.html - <a name="0.1.1" />
+.ihtml h3 <h3>
+.SH
+0.1.1 - Plan 9 is not UNIX
+.R
+.ihtml h3
+.html - <br />
+.FG notunix jpg
+
+In the words of the
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/plan_9_wiki/fqa.html">
+Bell Labs Plan 9 wiki:
+.ihtml a
+
+.html ul <ul>
+.QS
+Plan 9 is not Unix. If you think of it as Unix, you may become
+frustrated when something doesn't exist or when it works differently
+than you expected. If you think of it as Plan 9, however, you'll find
+that most of it works very smoothly, and that there are some truly
+neat ideas that make things much cleaner than you have seen before.
+.QE
+.html ul
+
+Confusion is compounded by the fact that many UNIX commands exist on Plan 9 and behave in similar ways. In fact, some of Plan 9's userland (such as the
+.ihtml a <a href="http://doc.cat-v.org/bell_labs/upas_mail_system">
+.CW
+upas
+.R
+.ihtml a
+mail interface, the
+.ihtml a <a href="http://sam.cat-v.org">
+.CW
+sam
+.R
+.ihtml a
+text editor, and the
+.ihtml a <a href="http://man.9front.org/1/rc">
+.CW
+rc
+.R
+.ihtml a
+shell) are carried over directly from
+.ihtml a <a href="http://www.cs.bell-labs.com/10thEdMan">
+Research UNIX 10th Edition.
+.ihtml a
+Further investigation reveals that many ideas found in Plan 9 were explored in more primitive form in the later editions of
+.ihtml a <a href="http://en.wikipedia.org/wiki/Research_Unix">
+Research UNIX.
+.ihtml a
+
+However, Plan 9 is a completely new operating system that makes no attempt to conform to past prejudices. The point of the exercise (circa the late 1980s) was to avoid past problems and explore new territory. Plan 9 is not UNIX
+.I
+for a reason.
+.R
+
+Read:
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/UNIX_to_Plan_9_command_translation/fqa.html">
+.I
+UNIX to Plan 9 command translation,
+.R
+.ihtml a
+.ihtml a <a href="http://harmful.cat-v.org/cat-v/">
+.I
+UNIX Style, or cat -v Considered Harmful
+.R
+.ihtml a
+
+.html - <a name="0.1.1.1" />
+.ihtml h4 <h4>
+.SH
+0.1.1.1 - Plan 9 is not plan9port
+.R
+.ihtml h4
+
+.ihtml a <a href="https://en.wikipedia.org/wiki/Plan_9_from_user_space">
+Plan 9 from User Space
+.ihtml a
+(also known as plan9port or p9p) is a port of many Plan 9 from Bell Labs libraries and applications to UNIX-like operating systems. Currently it has been tested on a variety of operating systems including: Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Solaris and SunOS.
+
+Plan9port consists of a combination of mostly unaltered Plan 9 userland utilities packaged alongside various attempts to imitate Plan 9's kernel intefaces using miscellaneous available UNIX programs and commands. Some of the imitations are more successful than others. In all, plan9port does not accurately represent the experience of using actual Plan 9, but does provide enough functionality to make some users content with running acme on their Macbooks.
+
+.html - <a name="0.1.1.2" />
+.ihtml h4 <h4>
+.SH
+0.1.1.2 - Plan 9 is not Inferno
+.R
+.ihtml h4
+.html - <br />
+.FG inferno png
+
+.ihtml a <a href="http://www.vitanuova.com/inferno">
+Inferno
+.ihtml a
+is a distributed operating system also created at Bell Labs, but which is now developed and maintained by
+.ihtml a <a href="http://www.vitanuova.com/">
+Vita Nuova Holdings
+.ihtml a
+as free software. It employs many ideas from Plan 9 (and even shares some source code), but is a completely different OS.
+
+.B Note:
+Inferno shares some compatible interfaces with Plan 9, including the
+.ihtml a <a href="http://9p.cat-v.org">
+9P/Styx
+.ihtml a
+protocol.
+
+.html - <a name="0.1.2" />
+.ihtml h3 <h3>
+.SH
+0.1.2 - Plan 9 is not a product
+.R
+.ihtml h3
+
+.html ul <ul>
+.DS
+Path: utzoo!utgpu!water!watmath!clyde!bellcore!faline!thumper!ulysses!smb
+From: s...@ulysses.homer.nj.att.com (Steven Bellovin)
+Newsgroups: comp.unix.wizards
+Subject: Re: Plan 9? (+ others)
+Message-ID: <10533@ulysses.homer.nj.att.com>
+Date: 23 Aug 88 16:19:40 GMT
+References: <846@yunexus.UUCP> <282@umbio.MIAMI.EDU> <848@yunexus.UUCP>
+Organization: AT&T Bell Laboratories, Murray Hill
+Lines: 33
+
+``Plan 9'' is not a product, and is not intended to be. It is research --
+an experimental investigation into a different way of computing. The
+developers started from several basic assumptions: that CPUs are very
+cheap but that we don't really know how to combine them effectively; that
+*good* networking is very important; that an intelligent user interface
+(complete with dot-mapped display and mouse) is a Right Decision; that
+existing systems with networks, mice, etc., are not the correct way to
+do things, and in particular that today's workstations are not the way to
+go. (No, I won't bother to explain all their reasoning; that's a long
+and separate article.) Finally, the UNIX system per se is dead as a
+vehicle for serious research into operating system structure; it has grown
+too large, and is too constrained by 15+ years of history.
+
+Now -- given those assumptions, they decided to throw away what we have
+today and design a new system. Compatibility isn't an issue -- they are
+not in the product-building business. (Nor are they in the ``let's make
+another clever hack'' business.) Of course aspects of Plan 9 resemble
+the UNIX system quite strongly -- is it any surprise that Pike, Thompson,
+et al., think that that's a decent model to follow? But Plan 9 isn't,
+and is not meant to be, a re-implementation of the UNIX system. If you
+want, call it a UNIX-like system.
+
+Will Plan 9 ever be released? I have no idea. Will it remain buried?
+I hope not. Large companies do not sponsor large research organizations
+just for the prestige; they hope for an (eventual) concrete return in the
+form of concepts that can be made into (or incorporated into) products.
+
+
+ --Steve Bellovin
+
+Disclaimer: this article is not, of course, an official statement from AT&T.
+Nor is it an official statement of the reasoning behind Plan 9. I do think
+it's accurate, though, and I'm sure I'll be told if I'm wrong...
+.DE
+.html ul
+
+.html - <a name="0.1.3" />
+.ihtml h3 <h3>
+.SH
+0.1.3 - Plan 9 is not for you
+.R
+.ihtml h3
+
+.B
+Let's be perfectly honest.
+.R
+Many features that today's "computer experts" consider to be essential to computing (javascript, CSS, HTML5, etc.) either did not exist when Plan 9 was abandoned, or were purposely left out of the operating system. You might find this to be an unacceptable obstacle to adopting Plan 9 into your daily workflow. If you cannot imagine a use for a computer that does not involve a web browser, Plan 9 may not be for you.
+
+See:
+.ihtml a <a href="http://harmful.cat-v.org/software/">
+http://harmful.cat-v.org/software/
+.ihtml a
+
+.html - <a name="0.2" />
+.ihtml h2 <h2>
+.SH
+0.2 - Why Plan 9?
+.R
+.ihtml h2
+
+You may ask yourself, well, how did I get here? In the words of Plan 9 contributor
+.ihtml a <a href="http://swtch.com">
+Russ Cox:
+.ihtml a
+
+.html ul <ul>
+.QS
+Why Plan 9 indeed. Isn't Plan 9 just another Unix clone? Who cares?
+
+Plan 9 presents a consistent and easy to use interface. Once you've
+settled in, there are very few surprises here. After I switched to
+Linux from Windows 3.1, I noticed all manner of inconsistent behavior
+in Windows 3.1 that Linux did not have. Switching to Plan 9 from
+Linux highlighted just as much in Linux.
+
+One reason Plan 9 can do this is that the Plan 9 group has had the
+luxury of having an entire system, so problems can be fixed and
+features added where they belong, rather than where they can be. For
+example, there is no tty driver in the kernel. The window system
+handles the nuances of terminal input.
+
+If Plan 9 was just a really clean Unix clone, it might be worth using,
+or it might not. The neat things start happening with user-level file
+servers and per-process namespace. In Unix, /dev/tty refers to the
+current window's output device, and means different things to
+different processes. This is a special hack enabled by the kernel for
+a single file. Plan 9 provides full-blown per-process namespaces. In
+Plan 9 /dev/cons also refers to the current window's output device,
+and means different things to different processes, but the window
+system (or telnet daemon, or ssh daemon, or whatever) arranges this,
+and does the same for /dev/mouse, /dev/text (the contents of the
+current window), etc.
+
+Since pieces of file tree can be provided by user-level servers, the
+kernel need not know about things like DOS's FAT file system or
+GNU/Linux's EXT2 file system or NFS, etc. Instead, user-level servers
+provide this functionality when desired. In Plan 9, even FTP is
+provided as a file server: you run ftpfs and the files on the server
+appear in /n/ftp.
+
+We need not stop at physical file systems, though. Other file servers
+synthesize files that represent other resources. For example, upas/fs
+presents your mail box as a file tree at /mail/fs/mbox. This models
+the recursive structure of MIME messages especially well.
+
+As another example, cdfs presents an audio or data CD as a file
+system, one file per track. If it's a writable CD, copying new files
+into the /mnt/cd/wa or /mnt/cd/wd directories does create new audio or
+data tracks. Want to fixate the CD as audio or data? Remove one of
+the directories.
+
+Plan 9 fits well with a networked environment, files and directory
+trees can be imported from other machines, and all resources are files
+or directory trees, it's easy to share resources. Want to use a
+different machine's sound card? Import its /dev/audio. Want to debug
+processes that run on another machine? Import its /proc. Want to use
+a network interface on another machine? Import its /net. And so on.
+
+Russ Cox
+.QE
+.html ul
+
+.html - <a name="0.2.1" />
+.ihtml h3 <h3>
+.SH
+0.2.1 - What do people like about Plan 9?
+.R
+.ihtml h3
+
+Descriptive testmony by long time Plan 9 users Charles Forstyh, Anthony Sorace and Geoff Collyer:
+
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/what_do_people_like_about_plan_9/">
+http://www.plan9.bell-labs.com/wiki/plan9/what_do_people_like_about_plan_9/
+.ihtml a
+
+.html - <a name="0.2.1.1" />
+.ihtml h4 <h4>
+.SH
+0.2.1.1 - What do you use Plan 9 for?
+.R
+.ihtml h4
+
+.ihtml ul <ul>
+.QS
+if you dont know what this is usefull
+
+then its not for you
+.QE
+.ihtml ul
+
+See:
+.ihtml a <a href="fqa8.html">
+.I
+FQA 8 - Using 9front
+.R
+.ihtml a
+
+.html - <a name="0.2.2" />
+.ihtml h3 <h3>
+.SH
+0.2.2 - What do people hate about Plan 9?
+.R
+.ihtml h3
+
+.ihtml a <a href="http://jfloren.net">
+John floren
+.ihtml a
+provides a humorous(?) overview of
+.ihtml a <a href="http://jfloren.net/b/2012/4/27/0">
+a typical new user's reactions to Plan 9:
+.ihtml a
+
+.html ul <ul>
+.QS
+Hi! I'm new to Plan 9. I'm really excited to work with this
+new Linux system.
+
+I hit some questions.
+.br
+1 How do I run X11?
+.br
+2 Where is Emacs?
+.br
+3 The code is weird. It doesn't look like GNU C at all.
+Did the people who wrote Plan 9 know about C?
+.br
+4 I tried to run mozilla but it did not work. How come?
+.QE
+.html ul
+
+Is this guy you?
+
+Related:
+.ihtml a <a href="http://9front.org/buds.html">
+BUD/S
+.ihtml a
+
+.html - <a name="0.2.2.1" />
+.ihtml h4 <h4>
+.SH
+0.2.2.1 - What is not in Plan 9
+.R
+.ihtml h4
+
+A summary of common features you may have been expecting that are missing from Plan 9:
+
+.ihtml a <a href="http://c2.com/cgi/wiki?WhatIsNotInPlanNine">
+http://c2.com/cgi/wiki?WhatIsNotInPlanNine
+.ihtml a
+
+.html - <a name="0.2.3" />
+.ihtml h3 <h3>
+.SH
+0.2.3 - Why did Plan 9's creators give up on Plan 9?
+.R
+.ihtml h3
+.html - <br />
+.FG belllabs jpg
+
+All of the people who worked on Plan 9 have moved on from Bell Labs and/or
+no longer work on Plan 9. Various reasons have been articulated by various people.
+
+.ihtml a <a href="http://russ.cox.usethis.com">
+Russ Cox:
+.ihtml a
+
+.html ul <ul>
+.QS
+I ran Plan 9 from Bell Labs as my day to day work environment until
+around 2002. By then two facts were painfully clear. First, the
+Internet was here to stay; and second, Plan 9 had no hope of keeping
+up with web browsers. Porting Mozilla to Plan 9 was far too much
+work, so instead I ported almost all the Plan 9 user level software to
+FreeBSD, Linux, and OS X.
+.QE
+.html ul
+
+Russ Cox
+.ihtml a <a href="http://9fans.net/archive/2010/02/341">
+(again):
+.ihtml a
+
+.html ul <ul>
+.QS
+The standard set up for a Plan 9 aficionado here seems to
+be a Mac or Linux machine running Plan 9 from User Space
+to get at sam, acme, and the other tools. Rob, Ken, Dave, and I
+use Macs as our desktop machines, but we're a bit of an exception.
+Most Google engineers use Linux machines, and I know of
+quite a few ex-Bell Labs people who are happy to be using
+sam or acme on those machines. My own setup is two
+screens. The first is a standard Mac desktop with non-Plan 9
+apps and a handful of 9terms, and the second is a full-screen
+acme for getting work done. On Linux I do the same but the
+first screen is a Linux desktop running rio (formerly dhog's 8½).
+
+More broadly, every few months I tend to get an email from
+someone who is happy to have just discovered that sam is still
+maintained and available for modern systems. A lot of the time
+these are people who only used sam on Unix, never on Plan 9.
+The plan9port.tgz file was downloaded from 2,522 unique
+IP addresses in 2009, which I suspect is many more than
+Plan 9 itself. In that sense, it's really nice to see the tools
+getting a much wider exposure than they used to.
+
+I haven't logged into a real Plan 9 system in many years,
+but I use 9vx occasionally when I want to remind myself how
+a real Plan 9 tool worked. It's always nice to be back,
+however briefly.
+
+Russ
+.QE
+.html ul
+
+Russ Cox
+.ihtml a <a href="http://9fans.net/archive/2010/02/344">
+continues:
+.ihtml a
+
+.html ul <ul>
+.QS
+> Can you briefly tell us why you (Russ, Rob, Ken and Dave)
+.br
+> no longer use Plan9 ?
+.br
+> Because of missing apps or because of missing driver for your hardware ?
+.br
+> And do you still use venti ?
+
+Operating systems and programming languages have
+strong network effects: it helps to use the same system
+that everyone around you is using. In my group at MIT,
+that meant FreeBSD and C++. I ran Plan 9 for the first
+few years I was at MIT but gave up, because the lack of
+a shared system made it too hard to collaborate.
+When I switched to FreeBSD, I ported all the Plan 9 libraries
+and tools so I could keep the rest of the user experience.
+
+I still use venti, in that I still maintain the venti server that
+takes care of backups for my old group at MIT. It uses
+the plan9port venti, vbackup, and vnfs, all running on FreeBSD.
+The venti server itself was my last real Plan 9 installation.
+It's Coraid hardware, but I stripped the software and had installed
+my own Plan 9 kernel to run venti on it directly. But before
+I left MIT, the last thing I did was reinstall the machine using
+FreeBSD so that others could help keep it up to date.
+
+If I wasn't interacting with anyone else it'd be nice to keep
+using Plan 9. But it's also nice to be able to use off the shelf
+software instead of reinventing wheels (9fans runs on Linux)
+and to have good hardware support done by other people
+(I can shut my laptop and it goes to sleep, and even better,
+when I open it again, it wakes up!). Being able to get those
+things and still keep most of the Plan 9 user experience by
+running Plan 9 from User Space is a compromise, but one
+that works well for me.
+
+Russ
+.QE
+.html ul
+
+.ihtml a <a href="http://9fans.net/archive/2010/02/366">
+Rob Pike:
+.ihtml a
+
+.html ul <ul>
+.QS
+What Russ says is true but for me it was simpler. I used Plan 9 as my
+local operating system for a year or so after joining Google, but it
+was just too inconvenient to live on a machine without a C++ compiler,
+without good NFS and SSH support, and especially without a web
+browser. I switched to Linux but found it very buggy (the main
+problem was most likely a bad graphics board and/or driver, but still)
+and my main collaborator (Robert Griesemer) had done the ground work
+to get a Mac working as a primary machine inside Google, and Russ had
+plan9port up, so I pushed plan9port onto the Mac and have been there
+ever since, quite happily. Nowadays Apples are officially supported
+so it's become easy, workwise.
+
+I miss a lot of what Plan 9 did for me, but the concerns at work override that.
+
+-rob
+.QE
+.html ul
+
+.html - <a name="0.2.4" />
+.ihtml h3 <h3>
+.SH
+0.2.4 - What is the deal with Plan 9's weird license?
+.R
+.ihtml h3
+.html - <br />
+.FG intellectualproperty jpg
+
+Over the years Plan 9 has been released under various licenses, to the consternation of many.
+
+The first edition, released in 1992, was made available only to universities. The process for acquiring the software was convoluted and prone to clerical error. Many potential users had trouble obtaining it within a reasonable time frame and many complaints were voiced on the eventual
+.ihtml a <a href="fqa2.html#2.2.2">
+Plan 9 Internet mailing list.
+.ihtml a
+
+The second edition, released in 1995 in book-and-CD form under a relatively standard commercial license, was available via mailorder as well as through a special telephone number for a price of approximately $350 USD. It was certainly easier to acquire than the first edition, but many potential users still complained that the price was too high and that the license was too restrictive.
+
+.html - <a name="0.2.4.1" />
+.ihtml h4 <h4>
+.SH
+0.2.4.1 - Richard Stallman hates the Plan Nine license (circa 2000)
+.R
+.ihtml h4
+
+In the year 2000, the third edition of Plan 9 was finally released under a custom "open source" license, the
+.ihtml a <a href="http://">
+Plan 9 License.
+.ihtml a
+.ihtml a <a href="https://stallman.org/">
+Richard Stallman
+.ihtml a
+was not impressed:
+
+.html ul <ul>
+.QS
+When I saw the announcement that the Plan Nine software had been released
+as "open source", I wondered whether it might be free software as well.
+After studying the license, my conclusion was that it is not free; the
+license contains several restrictions that are totally unacceptable for
+the Free Software Movement. (See http://www.gnu.org/philosophy/free-sw.html.)
+.QE
+.html ul
+
+Read more here:
+
+.ihtml a <a href="http://www.linuxtoday.com/developer/2000070200704OPLFSW">
+http://www.linuxtoday.com/developer/2000070200704OPLFSW
+.ihtml a
+
+.html - <a name="0.2.4.2" />
+.ihtml h4 <h4>
+.SH
+0.2.4.2 - Theo de Raadt hates the Plan 9 license (circa 2003)
+.R
+.ihtml h4
+
+In the year 2002, the fourth edition of Plan 9 was released under the
+.ihtml a <a href="http://">
+Lucent Public License.
+.ihtml a
+This time, Theo de Raadt was not impressed:
+
+.html ul <ul>
+.QS
+The new license is utterly unacceptable for use in a BSD project.
+
+Actually, I am astounded that the OSI would declare such a license
+acceptable.
+
+That is not a license which makes it free. It is a *contract* with
+consequences; let me be clear -- it is a contract with consequences
+that I am unwilling to accept.
+.html ul
+.QE
+
+Read more here:
+
+.ihtml a <a href="http://9fans.net/archive/2003/06/270">
+http://9fans.net/archive/2003/06/270
+.ihtml a
+
+.html - <a name="0.2.4.3" />
+.ihtml h4 <h4>
+.SH
+0.2.4.3 - Everyone hates the Plan 9 license (circa 2014)
+.R
+.ihtml h4
+
+In 2014, portions of the Plan 9 source code were again re-licensed, this time under the
+.ihtml a <a href="http://www.gnu.org/licenses/gpl-2.0.html">
+GPLv2,
+.ihtml a
+for distribution with the
+.ihtml a <a href="http://en.wikipedia.org/wiki/University_of_California,_Berkeley">
+University of California, Berkeley's
+.ihtml a <a href="http://akaros.cs.berkeley.edu/akaros-web/">
+Akaros
+.ihtml a
+operating system. Predictably, various parties were not impressed.
+
+Russ Cox tried to make sense of the situation by commenting in a
+.ihtml a <a href="https://news.ycombinator.com/item?id=7232511">
+Hacker News thread:
+.ihtml a
+
+.html ul <ul>
+.QS
+When you ask "why did big company X make strange choice Y regarding
+licensing or IP", 99 times out of 100 the answer is "lawyers". If the Plan
+9 group had had its way, Plan 9 would have been released for free under a
+trivial MIT-like license (the one used for other pieces of code, like the
+one true awk) in 2003 instead of creating the Lucent Public License. Or in
+2000 instead of creating the "Plan 9 License". Or in 1995 instead of as a
+$350 book+CD that came with a license for use by an entire "organization".
+Or in 1992 instead of being a limited academic release.
+
+Thankfully I am not at Lucent anymore and am not privy to the tortured
+negotiations that ended up at the obviously inelegant compromise of "The
+University of California, Berkeley, has been authorised by Alcatel-Lucent
+to release all Plan 9 software previously governed by the Lucent Public
+License, Version 1.02 under the GNU General Public License, Version 2." But
+the odds are overwhelming that the one-word answer is "lawyers".
+.QE
+.html ul
+
+Some have suggested that confusion about licensing may have contributed to Plan 9's failure to supplant UNIX in the wider computing world.
+
+.html - <a name="0.3" />
+.ihtml h2 <h2>
+.SH
+0.3 - Further Reading
+.R
+.ihtml h2
+.html - <a name="0.3.1" />
+.ihtml h3 <h3>
+.SH
+0.3.1 - Plan 9 papers
+.R
+.ihtml h3
+
+Academic papers that describe the Plan 9 operating system are available here:
+
+.ihtml a <a href="http://doc.cat-v.org/plan_9/">
+http://doc.cat-v.org/plan_9/
+.ihtml a
+
+.html - <a name="0.3.2" />
+.ihtml h3 <h3>
+.SH
+0.3.2 - Man pages
+.R
+.ihtml h3
+
+.ihtml a <a href="http://man.9front.org/1/">
+Section (1)
+.ihtml a
+for general publicly accessible commands.
+
+.ihtml a <a href="http://man.9front.org/2/">
+Section (2)
+.ihtml a
+for library functions, including system calls.
+
+.ihtml a <a href="http://man.9front.org/3/">
+Section (3)
+.ihtml a
+for kernel devices (accessed via bind(1)).
+
+.ihtml a <a href="http://man.9front.org/4/">
+Section (4)
+.ihtml a
+for file services (accessed via mount).
+
+.ihtml a <a href="http://man.9front.org/5/">
+Section (5)
+.ihtml a
+for the Plan 9 file protocol.
+
+.ihtml a <a href="http://man.9front.org/6/">
+Section (6)
+.ihtml a
+for file formats.
+
+.ihtml a <a href="http://man.9front.org/7/">
+Section (7)
+.ihtml a
+for databases and database access programs.
+
+.ihtml a <a href="http://man.9front.org/8/">
+Section (8)
+.ihtml a
+for things related to administering Plan 9.
+
+.html - <a name="0.3.3" />
+.ihtml h3 <h3>
+.SH
+0.3.3 - Web pages
+.R
+.ihtml h3
+
+The official website for the Plan 9 project is located at:
+.ihtml a <a href="http://plan9.bell-labs.com/plan9">
+http://plan9.bell-labs.com/plan9
+.ihtml a
+
+Bell Labs Plan 9 wiki:
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/plan_9_wiki">
+http://www.plan9.bell-labs.com/wiki/plan9/plan_9_wiki
+.ihtml a
+
+Much valuable information can be found at
+.ihtml a <a href="http://cat-v.org">
+http://cat-v.org
+.ihtml a
+regarding aspects of UNIX, Plan 9 and software in general.
+
+.html - <a name="0.3.4" />
+.ihtml h3 <h3>
+.SH
+0.3.4 - Books
+.R
+.ihtml h3
+.html - <br />
+.FG books jpg
+
+.ihtml a <a href="http://plan9.stanleylieber.com/_books/comp/plan9/Introduction.To.OS.Abstractions.Using.Plan.9.From.Bell.Labs.draft.2007.pdf">
+.I
+Introduction to OS Abstractions Using Plan 9 From Bell Labs,
+.R
+.ihtml a
+by
+.ihtml a <a href="http://lsub.org/who/nemo">
+Francisco J Ballestros (nemo)
+.ihtml a
+
+.ihtml a <a href="http://plan9.stanleylieber.com/_books/comp/plan9/Notes.On.The.Plan.9.3rd.Edition.Kernel.Source.pdf">
+.I
+Notes on the Plan 9 3rd Edition Kernel,
+.R
+.ihtml a
+by
+.ihtml a <a href="http://lsub.org/who/nemo">
+Francisco J Ballestros (nemo)
+.ihtml a
+
+.ihtml a <a href="http://books.cat-v.org/computer-science/unix-programming-environment/">
+.I
+The UNIX Programming Environment,
+.R
+.ihtml a
+by
+.ihtml a <a href="http://genius.cat-v.org/brian-kernighan/">
+Brian W. Kernighan (bwk)
+.ihtml a
+and
+.ihtml a <a href="http://genius.cat-v.org/rob-pike/">
+Rob Pike (rob)
+.ihtml a
+(this book is the most clear, concise and eloquent expression of the Unix and 'tool' philosophies to date)
+
+.ihtml a <a href="http://fqa.9front.org/book.pdf">
+.I
+9front DASH 1
+.R
+.ihtml a
+(the document you are reading right now, in book form)
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - FQA 0 - Introduction To Plan 9 |
+.html - <a href="fqa1.html">FQA 1 - Introduction To 9front</a>
--- /dev/null
+++ b/fqa1.ms
@@ -1,0 +1,1109 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa1.ms | page
+.\" htmlroff -u -ms -mhtml fqa1.ms >fqa1.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 1 - Introduction To 9front
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa0.html">FQA 0 - Introduction To Plan 9</a> |
+.html - <a href="fqa2.html">FQA 2 - Getting To Know 9front</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 1 - Introduction to 9front
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa1.html">html</a> |
+.html - <a href="fqa1.pdf">pdf</a> |
+.html - <a href="fqa1.ms">troff</a>
+
+.FG 9frontsystem jpg
+
+.html - <a name="1.1" />
+.ihtml h2 <h2>
+.SH
+1.1 - What is 9front?
+.R
+.ihtml h2
+
+Plan9front (or 9front) is a fork of the
+.ihtml a <a href="http://plan9.bell-labs.com/plan9">
+Plan 9 from Bell Labs
+.ihtml a
+operating system. The project was started to remedy a perceived lack of devoted development resources inside Bell Labs,[citation needed] and has accumulated various
+.ihtml a <a href="http://code.9front.org/plan9front">
+fixes
+.ihtml a
+and
+.ihtml a <a href="fqa1.html#1.3.1">
+improvements.
+.ihtml a
+
+This FQA specifically covers only the most recent release of 9front.
+
+.html - <a name="1.1.1" />
+.ihtml h3 <h3>
+.SH
+1.1.1 - Cirno's been our mascot for a while.
+.R
+.ihtml h3
+
+.SH
+Our mascot
+.R
+
+.ihtml a <a href="http://glenda.cat-v.org/">
+Glenda
+.ihtml a
+is getting old, Cirno is now our mascot.
+.html - <br />
+.FG cirno jpg
+
+.ihtml a <a href="http://touhou.wikia.com/wiki/Cirno">
+http://touhou.wikia.com/wiki/Cirno
+.ihtml a
+
+.SH
+Pro
+.R
+
+.ihtml ul <ul>
+.IP
+• girl
+
+• has magical powers
+
+• associated with 9
+
+• upsets kfx
+
+• she is known to be the strongest
+.LP
+.ihtml ul
+
+.SH
+Alternatives
+.R
+.html - <br />
+.FG tuttleglenda png
+
+.FG grumpycatno jpg
+
+.html - <a name="1.2" />
+.ihtml h2 <h2>
+.SH
+1.2 - On what systems does 9front run?
+.R
+.ihtml h2
+
+9front runs on the following platforms:
+.ihtml ul <ul>
+.IP
+• 386
+
+• amd64
+
+• arm
+
+• mips
+.LP
+.ihtml ul
+
+Read:
+.ihtml a <a href="fqa3.html#3.2">
+.I
+FQA 3.2 - Selecting Hardware
+.R
+.ihtml a
+
+.html - <a name="1.3" />
+.ihtml h2 <h2>
+.SH
+1.3 - Why might I want to use 9front?
+.R
+.ihtml h2
+
+New users frequently want to know whether 9front is superior to some other free UNIX-like operating system. That question is largely unanswerable and is the subject of countless (and useless) religious debates. Do not, under any circumstances, ask such a question on IRC or on a 9front mailing list.
+
+Whether 9front is right for you is a question that only you can answer.
+
+.html - <a name="1.3.1" />
+.ihtml h3 <h3>
+.SH
+1.3.1 - New Features
+.R
+.ihtml h3
+
+.ihtml ul <ul>
+.IP
+•
+.CW /shr ,
+global mountpoint device
+.ihtml a <a href="http://man.9front.org/3/shr">
+.CW shr(3)
+.ihtml a
+
+•
+.CW /mnt
+is provided by
+.ihtml a <a href="http://man.9front.org/4/mntgen">
+.CW mntgen(4)
+.ihtml a
+
+•
+.CW #A ,
+audio drivers for sb16, intel hd audio and ac97 (both playback and recording supported!)
+.ihtml a <a href="http://man.9front.org/3/audio">
+.CW audio(3)
+.ihtml a
+
+• New BIOS based boot loader
+.ihtml a <a href="http://man.9front.org/8/9boot">
+.CW 9boot(8)
+.ihtml a
+featuring a console and support for FAT/ISO/PXE and being small (<8K)
+
+• New EFI based boot loader
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/boot/efi">
+.CW efi
+.ihtml a
+
+• Made kernel compliant to multiboot specification so it can be booted by qemu or grub directly.
+
+• Interruptable kernel qlocks (\f(CWeqlock\fR)
+
+• Defered clunks (\f(CWcloseproc\fR) for cached mounts
+
+• New
+.CW rc
+based
+.ihtml a <a href="http://man.9front.org/8/boot">
+.CW boot(8)
+.ihtml a
+allows breaking into a shell at any time
+
+• Default file system is an improved
+.ihtml a <a href="http://man.9front.org/4/cwfs">
+.CW cwfs(4)
+.ihtml a
+(cwfs64x)
+
+• Support for encrypted partitions
+.ihtml a <a href="http://man.9front.org/8/cryptsetup">
+.CW cryptsetup(8) .
+.ihtml a
+Read:
+.ihtml a <a href="fqa4.html#4.4">
+FQA 4 - 9front Installation Guide
+.ihtml a
+
+• New screen fonts:
+.CW dejavu ,
+.CW germgoth ,
+.CW vga
+
+• No central
+.CW replica ;
+source updates are done with
+.ihtml a <a href="http://man.9front.org/1/hg">
+.CW hg(1)
+.ihtml a
+(Mercurial)
+
+• Keyboard events with
+.CW /dev/kbd .
+Read:
+.ihtml a <a href="http://man.9front.org/8/kbdfs">
+.CW kbdfs(8)
+.ihtml a
+and
+.ihtml a <a href="http://man.9front.org/4/rio">
+.CW rio(4)
+.ihtml a
+
+•
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/lib/ken">
+.CW /lib/ken ,
+.ihtml a
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/lib/rob">
+.CW /lib/rob ,
+.ihtml a
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/lib/rsc">
+.CW /lib/rsc
+.ihtml a
+
+• New
+.ihtml a <a href="http://man.9front.org/8/listen">
+.CW listen(8)
+.ihtml a
+.CW
+-p maxprocs
+.R
+option
+
+• Always available network
+.ihtml a <a href="http://man.9front.org/8/aan">
+.CW aan(8)
+.ihtml a
+support in
+.ihtml a <a href="http://man.9front.org/1/cpu">
+.CW cpu(1)
+.ihtml a
+
+• MSI (message signalled interrupts), avoids problems with broken MP tables. Read:
+.ihtml a <a href="http://man.9front.org/8/icanhasmsi">
+.CW icanhasmsi(8)
+.ihtml a
+(dump MSI info)
+
+• Legacy free ACPI support (aml interpreter
+.CW libaml ,
+mp interrupt routing, \f(CWscram\fR)
+
+• New
+.ihtml a <a href="http://man.9front.org/1/rio">
+.CW rio(1)
+.ihtml a
+.CW -b
+option (black window backgrounds)
+
+• USB CD-ROM boot/install
+
+• USB
+.ihtml a <a href="fqa4.html#4.2.2">
+drive boot
+.ihtml a
+
+• Improved USB mouse support
+
+• Support for USB ptp cameras
+
+• Stable across machines USB device names
+
+• VGA initialization done by interpreting the VESA BIOS with
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8) ,
+.ihtml a
+working VESA screen blanking.
+
+•
+.CW /dev/kbd
+and clipboard charset support for
+.ihtml a <a href="http://man.9front.org/1/vnc">
+.CW vnc(1)
+.ihtml a
+
+• New
+.ihtml a <a href="http://man.9front.org/4/webfs">
+.CW webfs(4)
+.ihtml a
+with HTTP1.1 and Keep-Alive support.
+
+• Qemu/KVM virtio block device and ethernet drivers. Read:
+.ihtml a <a href="fqa4.html#4.5.1.3">
+.I
+FQA 4.5.1.3 - Virtio
+.R
+.ihtml a
+
+• Mouse wheel and chording support in
+.ihtml a <a href="http://man.9front.org/1/sam">
+.CW sam(1)
+.ihtml a
+
+• Elliptic curve cryptography
+.ihtml a <a href="http://man.9front.org/2/ec">
+.CW ec(2)
+.ihtml a
+
+• Working interrupt key (Del) in console
+
+• Wifi support with wpa/wpa2
+
+• SSE support
+
+• System-wide support for internationalized domain names
+
+• Unicode support in
+.ihtml a <a href="http://man.9front.org/1/vt">
+.CW vt(1)
+.ihtml a
+
+•
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc64/">
+.CW pc64 ,
+.ihtml a
+kernel for amd64
+.LP
+.ihtml ul
+
+.html - <a name="1.3.1.1" />
+.ihtml h4 <h4>
+.SH
+1.3.1.1 - New Programs
+.R
+.ihtml h4
+
+.ihtml ul <ul>
+.IP
+• \f(CW"\fR and \f(CW""\fR (print, repeat previous command)
+
+•
+.ihtml a <a href="http://man.9front.org/1/alarm">
+.CW alarm(1)
+.ihtml a
+\(em timeouts in
+.CW rc
+scripts
+
+•
+.ihtml a <a href="http://man.9front.org/1/audio">
+.CW audio(1)
+.ihtml a
+\(em
+.CW mp3 ,
+.CW ogg ,
+.CW flac ,
+.CW µlaw ,
+.CW wav
+
+•
+.ihtml a <a href="http://man.9front.org/1/bullshit">
+.CW bullshit(1)
+.ihtml a
+\(em print out a stream of bullshit
+
+•
+.ihtml a <a href="http://man.9front.org/8/cifsd">
+.CW cifsd(8)
+.ihtml a
+\(em CIFS/SMB server
+
+•
+.ihtml a <a href="http://man.9front.org/1/derp">
+.CW derp(1)
+.ihtml a
+\(em find changes between directories
+
+•
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/rc/bin/feminize">
+.CW feminize(1)
+.ihtml a
+\(em replace sexist remarks
+
+•
+.ihtml a <a href="http://man.9front.org/1/fplot">
+.CW fplot(1)
+.ihtml a
+
+• New games:
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/doom">
+.CW doom ,
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/glendy.c">
+.CW glendy ,
+.ihtml a
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/mandel.c">
+.CW mandel ,
+.ihtml a
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/mines">
+.CW mines ,
+.ihtml a
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/mole.c">
+.CW mole ,
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/packet.c">
+.CW packet
+.ihtml a
+
+•
+.ihtml a <a href="http://man.9front.org/1/hg">
+.CW hg(1)
+.ihtml a
+and
+.ihtml a <a href="http://man.9front.org/4/hgfs">
+.CW hgfs(4)
+.ihtml a
+(Mercurial)
+
+•
+.ihtml a <a href="http://man.9front.org/1/hget">
+.CW hget(1)
+.ihtml a
+\(em rewritten in
+.CW rc ,
+now uses
+.CW webfs
+
+•
+.ihtml a <a href="http://man.9front.org/1/hget">
+.CW hpost(1)
+.ihtml a
+\(em extract and post HTML forms
+
+•
+.ihtml a <a href="http://man.9front.org/1/hold">
+.CW hold(1)
+.ihtml a
+\(em simple text editor
+
+•
+.ihtml a <a href="http://man.9front.org/8/ipserv">
+.CW ipserv(8)
+.ihtml a
+\(em proxy servers
+.CW socksd
+and
+.CW hproxy
+
+•
+.ihtml a <a href="http://man.9front.org/1/memory">
+.CW memory(1)
+.ihtml a
+\(em check memory usage
+
+•
+.ihtml a <a href="http://man.9front.org/1/mothra">
+.CW mothra(1)
+.ihtml a
+\(em Tom Duff's web browser, now uses
+.CW webfs
+
+•
+.ihtml a <a href="http://man.9front.org/8/netaudit">
+.CW netaudit(8)
+.ihtml a
+\(em network configuration checker
+
+•
+.ihtml a <a href="http://man.9front.org/1/newt">
+.CW newt(1)
+.ihtml a
+\(em Usenet client
+
+•
+.ihtml a <a href="http://man.9front.org/1/nietzsche">
+.CW nietzsche(1)
+.ihtml a
+\(em print out Nietzsche quote
+
+•
+.ihtml a <a href="http://man.9front.org/1/nintendo">
+.CW nintendo(1)
+.ihtml a
+\(em Nintendo emulators:
+.CW gb ,
+.CW gba ,
+.CW nes ,
+.CW snes
+
+•
+.ihtml a <a href="http://man.9front.org/1/page">
+.CW page(1)
+.ihtml a
+\(em zoom and enhance!
+
+•
+.ihtml a <a href="http://man.9front.org/1/paint">
+.CW paint(1)
+.ihtml a
+\(em drawing program
+
+•
+.ihtml a <a href="http://man.9front.org/1/play">
+.CW play(1)
+.ihtml a
+\(em audio player
+
+•
+.ihtml a <a href="http://man.9front.org/1/ps">
+.CW pstree(1)
+.ihtml a
+\(em print tree-like map of current processes and sub-processes
+
+•
+.ihtml a <a href="http://man.9front.org/8/rc-httpd">
+.CW rc-httpd(8)
+.ihtml a
+\(em HTTP server
+
+•
+.ihtml a <a href="http://man.9front.org/1/resample">
+.CW resize(1)
+.ihtml a
+\(em fast but low quality image resampler
+
+•
+.ihtml a <a href="http://man.9front.org/1/rotate">
+.CW rotate(1)
+.ihtml a
+\(em rotate or mirror a picture
+
+•
+.ihtml a <a href="http://man.9front.org/8/fshalt">
+.CW scram(8)
+.ihtml a
+\(em ACPI and APM shutdown
+
+•
+.ihtml a <a href="http://man.9front.org/1/sega">
+.CW sega(1)
+.ihtml a
+\(em Sega Megadrive/Genesis emulator:
+.CW md
+
+•
+.ihtml a <a href="http://man.9front.org/1/ssam">
+.CW ssam(1)
+.ihtml a
+\(em stream interface to
+.CW sam
+
+•
+.ihtml a <a href="http://man.9front.org/1/sysinfo">
+.CW sysinfo(1)
+.ihtml a
+\(em print hardware report
+
+•
+.ihtml a <a href="http://man.9front.org/1/sysinfo">
+.CW sysupdate(1)
+.ihtml a
+\(em update the local hg repository
+
+•
+.ihtml a <a href="http://man.9front.org/1/fortune">
+.CW theo(1)
+.ihtml a
+\(em print out insults from Theo de Raadt
+
+•
+.ihtml a <a href="http://man.9front.org/1/tput">
+.CW tput(1)
+.ihtml a
+\(em measure read throughput
+
+•
+.ihtml a <a href="http://man.9front.org/1/fortune">
+.CW troll(1)
+.ihtml a
+\(em automated trolling
+
+•
+.ihtml a <a href="http://man.9front.org/1/tap">
+.CW tap(1)
+.ihtml a
+\(em follow the pipes of a process
+
+•
+.ihtml a <a href="http://man.9front.org/1/jpg">
+.CW tif(1)
+.ihtml a
+\(em tiff decoder
+
+•
+.ihtml a <a href="http://man.9front.org/1/jpg">
+.CW tojpg(1)
+.ihtml a
+\(em jpeg encoder
+
+•
+.ihtml a <a href="http://man.9front.org/1/jpg">
+.CW totif(1)
+.ihtml a
+\(em tiff encoder
+
+•
+.ihtml a <a href="http://man.9front.org/1/torrent">
+.CW torrent(1)
+.ihtml a
+\(em bittorrent client
+.LP
+.ihtml ul
+
+.html - <a name="1.3.1.2" />
+.ihtml h4 <h4>
+.SH
+1.3.1.2 - New Hardware Support
+.R
+.ihtml h4
+
+.SH
+Audio
+.R
+
+.ihtml ul <ul>
+.IP
+• AC97
+\(em
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/audioac97.c">
+.CW /sys/src/9/pc/audioac97.c
+.ihtml a
+
+• HDA
+\(em
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/audiohda.c">
+.CW /sys/src/9/pc/audiohda.c
+.ihtml a
+
+• SB 16/ESS
+\(em
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/audiosb16.c">
+.CW /sys/src/9/pc/audiosb16.c
+.ihtml a
+.LP
+.ihtml ul
+
+.SH
+Ethernet
+.R
+
+.ihtml ul <ul>
+.IP
+• ADMtek Pegasus
+\(em
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/nusb/ether/aue.c">
+.CW /sys/src/cmd/nusb/ether/aue.c
+.ihtml a
+
+• Broadcom BCM57xx
+\(em
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/etherbcm.c">
+.CW /sys/src/9/pc/etherbcm.c
+.ihtml a
+
+• Realtek RTL8150
+\(em
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/nusb/ether/url.c">
+.CW /sys/src/cmd/nusb/ether/url.c
+.ihtml a
+.LP
+.ihtml ul
+
+.SH
+Wifi
+.R
+
+.ihtml ul <ul>
+.IP
+• Intel Centrino Advanced-N 6205 (iwl-6005)
+
+• Intel Centrino Ultimate-N (iwl-6000)
+
+• Intel Centrino Wireless-N 100
+
+• Intel WiFi Link 1000/4965/5100/5300 AGN
+
+• Intel PRO Wireless 3945ABG (wpi-3945abg)
+
+• Ralink RT2860/RT3090
+.LP
+.ihtml ul
+
+.SH
+Tablets
+.R
+
+.ihtml ul <ul>
+.IP
+• Wacom WACF004, WACF008
+
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/aux/wacom.c">
+.CW /sys/src/cmd/aux/wacom.c,
+.ihtml a
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/aux/tablet.c">
+.CW /sys/src/cmd/aux/tablet.c
+.ihtml a
+.LP
+.ihtml ul
+
+.SH
+Video
+.R
+
+.ihtml ul <ul>
+.IP
+• AMD Geode LX driver
+
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/aux/vga/geode.c">
+.CW /sys/src/cmd/aux/vga/geode.c
+.ihtml a
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/vgageode.c">
+.CW /sys/src/9/pc/vgageode.c
+.ihtml a
+
+• Intel G45 and Ivy Bridge driver
+
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/cmd/aux/vga/igfx.c">
+.CW /sys/src/cmd/aux/vga/igfx.c
+.ihtml a
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/vgaigfx.c">
+.CW /sys/src/9/pc/vgaigfx.c
+.ihtml a
+.LP
+.ihtml ul
+
+.SH
+SD Card
+.R
+
+.ihtml ul <ul>
+.IP
+• Ricoh \(em
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/pmmc.c">
+.CW /sys/src/9/pc/pmmc.c
+.ihtml a
+.LP
+.ihtml ul
+
+Read:
+.ihtml a <a href="fqa3.html#3.2">
+.I
+FQA 3.2 - Known Working Hardware
+.ihtml a
+.R
+for a list of complete machines known to work.
+
+.FG ibmintel png
+
+.html - <a name="1.4" />
+.ihtml h2 <h2>
+.SH
+1.4 - Is 9front really free?
+.R
+.ihtml h2
+
+Yes.
+
+Read:
+.ihtml a <a href="fqa0.html#0.2.4">
+.I
+FQA 0.2.4 - What is the deal with Plan 9's weird license?
+.R
+.ihtml a
+
+.B Note:
+The maintainers of 9front support the project largely from their own pockets. This includes the time spent programming for the project, equipment used, the network resources used to distribute 9front to you, and the time spent answering questions and investigating users' bug reports. The 9front developers are not independently wealthy and even small contributions of time, equipment, and resources make a big difference.
+
+.html - <a name="1.5" />
+.ihtml h2 <h2>
+.SH
+1.5 - How can I help support 9front?
+.R
+.ihtml h2
+
+We are greatly indebted to the people and organizations that have contributed to the 9front project.
+
+.html - <a name="1.6" />
+.ihtml h2 <h2>
+.SH
+1.6 - Who maintains 9front?
+.R
+.ihtml h2
+
+9front is maintained by a development team spread across many different
+.ihtml a <a href="http://9front.org/who/">
+countries.
+.ihtml a
+
+.html - <a name="1.7" />
+.ihtml h2 <h2>
+.SH
+1.7 - When is the next release of 9front?
+.R
+.ihtml h2
+
+The 9front team makes new releases on a regular, but unscheduled, basis. More information on the development cycle can be found here:
+
+.ihtml a <a href="http://lists.9front.org">
+http://lists.9front.org
+.ihtml a
+
+.html - <a name="1.8" />
+.ihtml h2 <h2>
+.SH
+1.8 - What is included with 9front?
+.R
+.ihtml h2
+
+Some useful programs included with the operating system are:
+.ihtml ul <ul>
+.IP
+•
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/acidpaper">
+.CW acid
+.ihtml a
+\(em Programmable symbolic debugger.
+
+•
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/acme/">
+.CW acme
+.ihtml a
+\(em Text editor, window system, mail client and more.
+
+•
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/ape">
+.CW ape
+.ihtml a
+\(em ANSI/POSIX environment.
+
+•
+.ihtml a <a href="http://man.9front.org/4/cwfs">
+.CW cwfs64x
+.ihtml a
+\(em Cached-worm file server based on the original Ken's fs.
+
+•
+.ihtml a <a href="http://en.wikipedia.org/wiki/Doom_(video_game)">
+.CW doom
+.ihtml a
+\(em Science fiction horror-themed first-person shooter video game by id Software.
+
+•
+.ihtml a <a href="http://man.9front.org/1/gs">
+.CW gs
+.ihtml a
+\(em Aladdin Ghostscript (PostScript and PDF language interpreter).
+
+•
+.ihtml a <a href="http://man.9front.org/4/hjfs">
+.CW hjfs
+.ihtml a
+\(em A new, experimental fs.
+
+•
+.ihtml a <a href="http://mercurial.selenic.com">
+mercurial
+.ihtml a
+\(em Distributed source control management tool.
+
+•
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/mk">
+.CW mk
+.ihtml a
+\(em Tool for describing and maintaining dependencies between files.
+
+•
+.ihtml a <a href="http://man.9front.org/1/mothra">
+.CW mothra
+.ihtml a
+\(em Web browser by Tom Duff.
+
+•
+.ihtml a <a href="http://man.9front.org/1/newt">
+.CW newt
+.ihtml a
+\(em NNTP client.
+
+•
+.ihtml a <a href="http://man.9front.org/1/nintendo">
+nintendo
+.ihtml a
+\(em Nintendo Game Boy, NES, SNES and GBA emulators.
+
+•
+.ihtml a <a href="http://www.openssl.org">
+.CW openssl
+.ihtml a
+\(em Toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a general purpose cryptography library. (needed for python (needed for mercurial))
+
+•
+.ihtml a <a href="http://man.9front.org/1/paint">
+.CW paint
+.ihtml a
+\(em Drawing program.
+
+•
+.ihtml a <a href="http://man.9front.org/1/page">
+.CW page
+.ihtml a
+\(em FAX, image, graphic, PostScript, PDF, epub, cbz viewer.
+
+•
+.ihtml a <a href="http://man.9front.org/1/play">
+.CW play
+.ihtml a
+\(em Flac, ogg, mp3, sun, wav player.
+
+•
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/plumb">
+.CW plumber
+.ihtml a
+\(em Mechanism for inter-process communication.
+
+•
+.ihtml a <a href="http://python.org">
+python 2.5.1
+.ihtml a
+\(em Interpreted programming language. (needed for mercurial)
+
+•
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/rc">
+.CW rc
+.ihtml a
+\(em Shell by Tom Duff.
+
+•
+.ihtml a <a href="http://man.9front.org/8/rc-httpd">
+.CW rc-httpd
+.ihtml a
+\(em Web server written in rc.
+
+•
+.ihtml a <a href="http://man.9front.org/1/rio">
+.CW rio
+.ihtml a
+\(em Rectangle multiplexer/window system.
+
+•
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/sam/">
+.CW sam
+.ihtml a
+\(em Text editor.
+
+•
+.ihtml a <a href="http://man.9front.org/1/sega">
+sega
+.ihtml a
+\(em Megadrive/Genesis emulator.
+
+•
+.ihtml a <a href="http://man.9front.org/1/torrent">
+.CW torrent
+.ihtml a
+\(em BitTorrent client.
+
+•
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/troff/">
+.CW troff
+.ihtml a
+\(em Text processor/typesetter.
+
+•
+.ihtml a <a href="http://doc.cat-v.org/bell_labs/upas_mail_system/">
+.CW upas
+.ihtml a
+\(em A simpler approach to network mail.
+.LP
+.ihtml ul
+
+.html - <a name="1.9" />
+.ihtml h2 <h2>
+.SH
+1.9 - Can I use 9front as a desktop system?
+.R
+.ihtml h2
+
+This question is often asked in exactly this manner\(emwith no explanation of what the asker means by "desktop". The only person who can answer that question is you, as it depends on what your needs and expectations are.
+
+Figure it out.
+
+.html - <a name="1.10" />
+.ihtml h2 <h2>
+.SH
+1.10 - Why is/isn't ProductX included?
+.R
+.ihtml h2
+
+People often ask why a particular product is or isn't included with 9front. The answer is based on two things: the wishes of the developers and compatibility with the goals of the project. A product will not be included simply because it is "nifty."
+
+A major consideration is the wishes of the developers. The 9front developers are the ultimate judges of what does and doesn't go into the project. Just because an application is "good" doesn't mean the 9front project wishes to devote the resources needed to maintaining it, or that they will share other's enthusiasm about its place in 9front.
+
+Incredibly, many users still see fit to demand otherwise.
+
+.html - <a name="1.11" />
+.ihtml h2 <h2>
+.SH
+1.11 - Fine, where can I get 9front?
+.R
+.ihtml h2
+.html - <br />
+.FG meganinefront gif
+
+If you simply cannot be dissuaded from trying 9front for yourself, obtain installation media from the following locations.
+
+.html - <a name="1.11.1" />
+.ihtml h3 <h3>
+.SH
+1.11.1 - Mirrors
+.R
+.ihtml h3
+
+.html - <a name="1.11.1.1" />
+.ihtml h4 <h4>
+.SH
+1.11.1.1 - 9front.iso
+.R
+.ihtml h4
+
+.ihtml ul <ul>
+.IP
+.ihtml a <a href="http://9front.org/iso/">
+http://9front.org/iso/
+.ihtml a
+
+.ihtml a <a href="http://r-36.net/9front/">
+http://r-36.net/9front/
+.ihtml a
+
+.ihtml a <a href="http://9front.r0x0r.me/">
+http://9front.r0x0r.me/
+.ihtml a
+
+.ihtml a <a href="http://mirror.9fags.net/">
+http://mirror.9fags.net/
+.ihtml a
+
+.ihtml a <a href="http://thefront.felloff.net/usr/cinap_lenrek/9front.torrent">
+http://thefront.felloff.net/usr/cinap_lenrek/9front.torrent
+.ihtml a
+
+.ihtml a <a href="http://mirror.9fags.net/">
+http://mirror.9fags.net/
+.ihtml a
+.LP
+.ihtml ul
+
+.html - <a name="1.11.1.2" />
+.ihtml h4 <h4>
+.SH
+1.11.1.2 - Mercurial repository
+.R
+.ihtml h4
+
+.ihtml ul <ul>
+.IP
+.ihtml a <a href="https://code.9front.org/hg/plan9front">
+https://code.9front.org/hg/plan9front (official)
+.ihtml a
+
+.ihtml a <a href="http://code.criticalpha.se/hg/plan9front">
+http://code.criticalpha.se/hg/plan9front (read-only)
+.ihtml a
+.LP
+.ihtml ul
+
+.SH
+Good Luck
+.R
+.html - <br />
+.FG reactorcat gif
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa0.html">FQA 0 - Introduction To Plan 9</a> |
+.html - <a href="fqa2.html">FQA 2 - Getting To Know 9front</a>
--- /dev/null
+++ b/fqa2.ms
@@ -1,0 +1,515 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa2.ms | page
+.\" htmlroff -u -ms -mhtml fqa2.ms >fqa2.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 2 - Getting To Know 9front
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa1.html">FQA 1 - Introduction To 9front</a> |
+.html - <a href="fqa3.html">FQA 3 - Hardware</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 2 - Getting To Know 9front
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa2.html">html</a> |
+.html - <a href="fqa2.pdf">pdf</a> |
+.html - <a href="fqa2.ms">troff</a>
+
+.FG voightkampff jpg
+
+.html - <a name="2.1" />
+.ihtml h2 <h2>
+.SH
+2.1 - Web Pages
+.R
+.ihtml h2
+
+The official websites for the 9front project are located at:
+
+•
+.ihtml a <a href="http://9front.org">
+http://9front.org
+.ihtml a
+\(em main website
+
+•
+.ihtml a <a href="http://bugs.9front.org">
+http://bugs.9front.org
+.ihtml a
+\(em bug tracker
+
+•
+.ihtml a <a href="http://fqa.9front.org">
+http://fqa.9front.org
+.ihtml a
+\(em official documentation, frequently questioned answers
+
+•
+.ihtml a <a href="http://lists.9front.org">
+http://lists.9front.org
+.ihtml a
+\(em mailing lists
+
+•
+.ihtml a <a href="http://man.9front.org">
+http://man.9front.org
+.ihtml a
+\(em man pages
+
+•
+.ihtml a <a href="http://wiki.9front.org">
+http://wiki.9front.org
+.ihtml a
+\(em informal documentation, developer scratchpad
+
+Somewhat outdated, and not entirely applicable to 9front is the Bell Labs Plan 9 wiki:
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/plan_9_wiki">
+http://www.plan9.bell-labs.com/wiki/plan9/plan_9_wiki
+.ihtml a
+
+Some users have set up sites and pages with 9front specific information. As with everything on the Internet, a good search engine is going to make your life easier, as will a healthy dose of skepticism. As always, do not blindly enter commands you do not understand into your computer.
+
+That said, much valuable information can be found at
+.ihtml a <a href="http://cat-v.org">
+http://cat-v.org
+.ihtml a
+regarding aspects of UNIX, Plan 9 and software in general.
+
+.html - <a name="2.2" />
+.ihtml h2 <h2>
+.SH
+2.2 - Mailing Lists
+.R
+.ihtml h2
+
+The 9front project maintains several mailing lists which users should subscribe to and follow. To subscribe to a mailing list, send an e-mail message to \fIlist\fR-owner@9front.org, where \fIlist\fR is the name of the mailing list. That address is an automated subscription service. In the body of your message, on a single line, you should include the subscribe command. For example:
+.P1
+subscribe
+.P2
+After subscribing, list messages are received from and sent to \fIlist\fR@9front.org, where \fIlist\fR is the name of the mailing list.
+
+The \fIlists\fR are as follows:
+.ihtml ul <ul>
+.IP
+9front \(em general discussion
+
+9front-bugs \(em report bugs
+
+9front-commits \(em read-only log of commits to the
+.ihtml a <a href="http://code.9front.org/plan9front">
+9front mercurial repository
+.ihtml a
+
+9front-sysinfo \(em read-only log of
+.ihtml a <a href="http://man.9front.org/1/sysinfo">
+.CW sysinfo(1)
+.ihtml a
+output from user systems
+.LP
+.ihtml ul
+
+To unsubscribe from a list, you will again send an e-mail message to \fIlist\fR-owner@9front.org. It should look like this:
+.P1
+unsubscribe
+.P2
+Before posting a question on the 9front mailing list, please check the rest of this FQA. If asking a question possibly related to hardware, always include the output of
+.ihtml a <a href="http://man.9front.org/1/sysinfo">
+.CW sysinfo(1) !
+.ihtml a
+
+.html - <a name="2.2.1" />
+.ihtml h3 <h3>
+.SH
+2.2.1 - Mailing List Archives
+.R
+.ihtml h3
+
+Mailing list archives are available via 9p:
+.P1
+% 9fs 9front
+post...
+% ls /n/lists
+/n/lists/9atom
+/n/lists/9changes
+/n/lists/9fans
+/n/lists/9front
+/n/lists/9front-bugs
+/n/lists/9front-commits
+/n/lists/9front-sysinfo
+/n/lists/9nag
+/n/lists/acme-sac
+/n/lists/cat-v
+/n/lists/cypherpunks
+/n/lists/dlr
+/n/lists/harvey
+/n/lists/harvey-commits
+/n/lists/harvey-issues
+/n/lists/inferno
+/n/lists/nix
+/n/lists/plan9port-dev
+/n/lists/sam-fans
+/n/lists/sierra31
+/n/lists/skunk-works
+/n/lists/tscm-l
+/n/lists/tuhs
+/n/lists/werc
+/n/lists/www-html
+/n/lists/www-talk
+/n/lists/www-vrml
+.P2
+Each of these directories contains messages sent to the respective mailing list in
+.ihtml a <a href="http://plan9.stanleylieber.com/_books/nupas.pdf">
+mdir
+.ihtml a
+format, one message per file. Erik Quanstrom's
+.ihtml a <a href="http://plan9.stanleylieber.com/src/nupas.tgz">
+nupas
+.ihtml a
+upas/fs can mount these directories as mailboxes, for reading directly with a mail client.
+
+.html - <a name="2.2.2" />
+.ihtml h3 <h3>
+.SH
+2.2.2 - Other useful mailing lists
+.R
+.ihtml h3
+.html - <br />
+.FG 9fans jpg
+.ihtml ul <ul>
+.IP
+.ihtml a <a href="http://9fans.net/archive">
+9fans
+.ihtml a
+\(em Official mailing list of Plan 9 from Bell Labs.
+
+.ihtml a <a href="https://groups.google.com/forum/#!forum/9changes">
+9changes
+.ihtml a
+\(em Notifications of changes to Plan 9 from Bell Labs (unofficial).
+
+.ihtml a <a href="https://groups.google.com/forum/#!forum/9nag">
+9nag
+.ihtml a
+\(em Ping alerts for plan9.bell-labs.com (unofficial).
+.LP
+.ihtml ul
+
+.html - <a name="2.3" />
+.ihtml h2 <h2>
+.SH
+2.3 - Manual Pages
+.R
+.ihtml h2
+
+9front comes with extensive documentation in the form of manual pages. Considerable effort is made to make sure the man pages are up-to-date and accurate. In all cases, 1.) the source, followed by 2.) the man pages, are considered the authoritative source of information for 9front.
+
+You can find all the 9front man pages on the web at the following sites:
+.ihtml ul <ul>
+.IP
+.ihtml a <a href="http://man.9front.org">
+http://man.9front.org
+.ihtml a
+
+.ihtml a <a href="http://felloff.net/sys/man">
+http://felloff.net/sys/man
+.ihtml a
+
+.ihtml a <a href="http://man.aiju.de">
+http://man.aiju.de
+.ihtml a
+
+.ihtml a <a href="http://man.cat-v.org/9front">
+http://man.cat-v.org/9front
+.ihtml a
+
+.ihtml a <a href="http://plan9.stanleylieber.com/man">
+http://plan9.stanleylieber.com/man
+.ihtml a
+.LP
+.ihtml ul
+as well as on your 9front computer.
+
+In general, if you know the name of a command or a manual page, you can read it by executing
+.CW
+man command\fR.
+.R
+For example:
+.CW
+man vi
+.R
+to read about the
+.ihtml a <a href="http://man.9front.org/1/vi">
+MIPS binary emulator.
+.ihtml a
+If you don't know the name of the command, or if
+.CW
+man command
+.R
+doesn't find the manual page, you can search the manual page database by executing
+.CW
+lookman something,
+.R
+where
+.CW something
+is a likely word that might appear in the title of the manual page you're looking for. For example:
+.P1
+% lookman vesa
+man 3 vga # vga(3)
+man 8 realemu # realemu(8)
+man 8 vga # vga(8)
+.P2
+The resulting list is presented in the form of commands that can be highlighted and sent using rio's mouse button 2 menu.
+
+For many, having a hardcopy of the man page can be useful. To make a printable copy of a man page:
+.P1
+man -t vga realemu | lp -dstdout > vga.ps
+.P2
+or:
+.P1
+man -t vga realemu | lp -dstdout | ps2pdf > vga.pdf
+.P2
+
+.html - <a name="2.3.1" />
+.ihtml h3 <h3>
+.SH
+2.3.1 - How do I display a man page source file?
+.R
+.ihtml h3
+
+The command
+.CW
+man -w
+.R
+prints the location of the man page's source file:
+.P1
+% man -w vga realemu
+/sys/man/3/vga
+/sys/man/8/realemu
+/sys/man/8/vga
+.P2
+
+.html - <a name="2.3.2" />
+.ihtml h3 <h3>
+.SH
+2.3.2 - How do I write my own manual page?
+.R
+.ihtml h3
+
+As was mentioned in
+.ihtml a <a href="fqa0.html#0.3.2">
+.I
+FQA 0.3.2 - Man pages,
+.R
+.ihtml a
+Plan 9 man pages are divided into sections based upon the features they describe. For example, the troff source of the
+.ihtml a <a href="http://man.9front.org/1/io">
+.CW io(1)
+.ihtml a
+man page is located in section 1, in the file
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/9d875116b400/sys/man/1/io">
+.CW /sys/man/1/io .
+.ihtml a
+You can examine this troff source for a simple example of how to format and construct a typical man page.
+
+For additional information, read:
+.ihtml a <a href="http://doc.cat-v.org/plan_9/misc/man_page_writing_howto">
+.I
+How to Write a Plan 9 Manual Page,
+.R
+.ihtml a,
+.ihtml a <a href="http://man.9front.org/6/man">
+.CW man(6) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/troff">
+.CW troff(1)
+.ihtml a
+
+.html - <a name="2.4" />
+.ihtml h2 <h2>
+.SH
+2.4 - Reporting Bugs
+.R
+.ihtml h2
+
+.FG carson png
+
+.I
+"I have with Plan 9 Is there a way to"
+.R
+
+.B
+Remember: 9front developers cannot read your mind.
+.R
+Very detailed information is required to diagnose most serious bugs.
+
+.B
+Also remember: It is possible you simply don't know what you're doing.
+.R
+If you do not understand how something is done in 9front or how it works, and can't figure out how to resolve the problem using the
+.ihtml a <a href="fqa2.html#2.3">
+manual pages,
+.ihtml a
+.ihtml a <a href="fqa8.html">
+.I
+FQA 8 - Using 9front,
+.R
+.ihtml a
+or
+.ihtml a <a href="fqa9.html">
+.I
+FQA 9 - Troubleshooting,
+.R
+.ihtml a
+join
+.CW
+#9front
+.R
+on
+.CW
+irc.freenode.net
+.R
+or use the
+.ihtml a <a href="fqa2.html#2.2">
+mailing list (9front@9front.org)
+.ihtml a
+to request help.
+
+On the other hand, it's possible you really found a bug. If so, please file a bug report by sending an e-mail to
+.ihtml a <a href="mailto:9front-bugs-open@9front.org">
+.CW
+9front-bugs-open@9front.org.
+.R
+.ihtml a
+The subject line of your e-mail will be used to open an issue on the
+.ihtml a <a href="http://bugs.9front.org">
+bug tracker,
+.ihtml a
+and your message will be forwarded to the
+.ihtml a <a href="fqa2.html#2.2">
+9front-bugs mailing list.
+.ihtml a
+
+.html - <a name="2.4.1" />
+.ihtml h3 <h3>
+.SH
+2.4.1 - Your bug report SUCKS
+.R
+.ihtml h3
+
+A minimum useful bug report contains the following:
+
+.ihtml ul <ul>
+.IP
+• A complete description of what you did
+
+• A complete description of what you expected to happen
+
+• A complete description of what happened, instead
+.LP
+.ihtml ul
+
+Extra credit:
+
+.ihtml ul <ul>
+.IP
+• The make and model of your computer
+
+• The URL returned when you run sysinfo -p on the affected system
+.LP
+.ihtml ul
+
+.html - <a name="2.4.2" />
+.ihtml h3 <h3>
+.SH
+2.4.2 - How do I get more useful info for developers?
+.R
+.ihtml h3
+
+The following sub-sections offer some useful tips.
+
+.html - <a name="2.4.2.1" />
+.ihtml h4 <h4>
+.SH
+2.4.2.1 - Take a photo of the panic screen
+.R
+.ihtml h4
+
+Under some circumstances, you may not be able to recover text directly from a crashed system. In this situation, snap a photo of the screen, including as much of the screen in good focus as possible, and upload the image somewhere where it can be retrieved by developers.
+
+.FG crash jpg
+
+.html - <a name="2.4.2.2" />
+.ihtml h4 <h4>
+.SH
+2.4.2.2 - Make a stack trace of a crashed process
+.R
+.ihtml h4
+.P1
+% hget http://www.jwz.org/blog/feed | rssread
+panic: D2B called on non-block c580 (double-free?)
+rssread 882285: suicide: sys: trap: fault read addr=0x0 pc=0x000038ef
+% acid 882285
+/proc/882285/text:386 plan 9 executable
+/sys/lib/acid/port
+/sys/lib/acid/386
+acid: lstk()
+abort()+0x0 /sys/src/libc/9sys/abort.c:6
+ppanic(p=0xb5a0,fmt=0xbf72)+0x146 /sys/src/libc/port/malloc.c:166
+ pv=0xc100
+ msg=0xc310
+ v=0xdfffee90
+ n=0x2b
+D2B(p=0xb5a0,v=0xc580)+0x5a /sys/src/libc/port/pool.c:966
+ a=0xc578
+poolfreel(v=0xc580,p=0xb5a0)+0x20 /sys/src/libc/port/pool.c:1190
+ ab=0xc100
+poolfree(p=0xb5a0,v=0xc580)+0x41 /sys/src/libc/port/pool.c:1325
+free(v=0xc588)+0x23 /sys/src/libc/port/malloc.c:250
+nextxmlpull(x=0xc548)+0x334 /usr/sl/src/xmlpull/xmlpull.c:221
+nextxmlpull(x=0xc548)+0x2cb /usr/sl/src/xmlpull/xmlpull.c:316
+main()+0x34 /usr/sl/src/rssread/rssread.c:159
+ st=0x1
+ f=0xc5a8
+ r=0x0
+ x=0xc548
+_main+0x31 /sys/src/libc/386/main9.s:16
+acid:
+.P2
+
+.html - <a name="2.4.2.3" />
+.ihtml h4 <h4>
+.SH
+2.4.2.3 - Make a process snapshot
+.R
+.ihtml h4
+
+To collect even more information than a stacktrace, you can also make a full process
+snapshot, which includes all the memory of the program. The snapshot file
+can later be analyzed (even on a different machine [even on a
+different machine of a different architecture]).
+.P1
+% snap 882285 > rssread.snap
+.P2
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa1.html">FQA 1 - Introduction To 9front</a> |
+.html - <a href="fqa3.html">FQA 3 - Hardware</a>
--- /dev/null
+++ b/fqa3.ms
@@ -1,0 +1,2565 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa3.ms | page
+.\" htmlroff -u -ms -mhtml fqa3.ms >fqa3.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 3 - Hardware
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa2.html">FQA 2 - Getting To Know 9front</a> |
+.html - <a href="fqa4.html">FQA 4 - 9front Installation Guide</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 3 - Hardware
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa3.html">html</a> |
+.html - <a href="fqa3.pdf">pdf</a> |
+.html - <a href="fqa3.ms">troff</a>
+
+.FG hardware jpg
+
+.html - <a name="3.1" />
+.ihtml h2 <h2>
+.SH
+3.1 - Selecting Hardware
+.R
+.ihtml h2
+
+Selecting appropriate hardware to run your 9front system on is important, as it can mean the difference between success and failure of a project.
+
+If you are shopping for a new PC, whether you are buying it piece by piece or completely pre-built, you want to make sure first that you are buying reliable parts. In the PC world, this is not easy.
+.B
+Bad or otherwise unreliable or mismatched parts can make 9front run poorly and crash often.
+.R
+The best advice we can give is to be careful, and buy brands and parts that have been reviewed by an authority you trust. Sometimes, a higher-price machine is a better quality machine. Other times, it is simply more expensive.
+
+There are certain things that will help bring out the maximum performance of your system:
+.ihtml ul <ul>
+.IP
+.B
+Let the application choose the hardware:
+.R
+It is usually better to make an adjustment to the hardware you were planning on using rather than compromising on your application design because you have something you "really wanted to use."
+
+.B
+Identify your bottlenecks:
+.R
+Don't pay extra for the cutting-edge processor if your application is restricted by disk I/O. Don't pay for fast disk if your system is restricted by network speed. Don't pay for much of anything if your bottleneck is a 300bps dial-up line.
+
+.B
+Keep it simple:
+.R
+Simple hardware usually has simple problems. Complex hardware that isn't supposed to ever break may take you a long time to repair when it breaks anyway.
+
+.B
+Use hardware you understand, or learn the new hardware before you implement a production system:
+.R
+Regardless of the technical merits of the hardware, committing to use a particular type of hardware before you have become familiar with it, both how it works and how it fails, is foolish.
+
+.B
+Avoid cheap network adapters:
+.R
+9front supports a plethora of cheap network adapters. These adapters work great in home systems, and low or moderate throughput business and research environments. But, if you need high throughput and low impact on your server, you are better off buying a quality network adapter. Unfortunately, some name-brand adapters are not much better than the cheap adapters, and some potentially good adapters do not have accurate documentation available to write good drivers. Gigabit adapters often perform better than 10Mbps/100Mbps adapters, even when used on slower speed networks, due to superior buffering.
+.LP
+.ihtml ul
+
+Check
+.ihtml a <a href="fqa3.html#3.2">
+.I
+FQA 3.2 - Known Working Hardware
+.R
+.ihtml a
+as well as the
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/Supported_PC_hardware">
+various
+.ihtml a
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/other_hardware">
+supported
+.ihtml a
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/virtual_machines">
+hardware
+.ihtml a
+pages on the Bell Labs Plan 9 wiki to help determine if your hardware or VM is supported.
+
+.html - <a name="3.2" />
+.ihtml h2 <h2>
+.SH
+3.2 - Known Working Hardware
+.R
+.ihtml h2
+
+This list adds to the
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/Supported_PC_hardware">
+various
+.ihtml a
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/other_hardware">
+supported
+.ihtml a
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/virtual_machines">
+hardware
+.ihtml a
+pages on the Plan 9 from Bell Labs wiki.
+.B Note:
+NONE of these lists are all-inclusive. Some drivers listed on the Bell Labs wiki have not been tested by 9front developers. The following list consists of hardware, 1.) that we have actually used, or 2.) about which we have received reliable reports from users.
+
+Some drivers and their options are also documented in
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini(8).
+.ihtml a
+
+Read:
+.ihtml a <a href="fqa1.html#1.3.1.2">
+.I
+FQA 1.3.1.2 - New Hardware Support
+.R
+.ihtml a
+for information about new hardware drivers in 9front.
+
+.html - <a name="3.2.0" />
+.ihtml h3 <h3>
+.SH
+3.2.0 - Input Devices
+.R
+.ihtml h3
+
+.html - <a name="3.2.0.1">
+.ihtml h3 <h3>
+.SH
+3.2.0.1 - Mice
+.R
+.ihtml h3
+
+.html - <a name="3.2.0.1.1" />
+.ihtml h4 <h4>
+.SH
+3.2.0.1.1 - IBM/Lenovo
+.R
+.ihtml h4
+
+.html - <a name="n700" />
+.SH
+N700 Wireless/Bluetooth, 3 button Mouse and Laser Pointer
+.R
+.ihtml ul <ul>
+.IP
+Part Number: 888015450
+.br
+DPI: 1200
+.br
+"Just works" with USB receiver. No additional driver required.
+.LP
+.ihtml ul
+.FG n700 jpg
+
+.html - <a name="scrollpoint" />
+.SH
+ScrollPoint Optical Mouse, 3 button, USB/PS2
+.R
+.ihtml ul <ul>
+.IP
+Part Number: 31P7405
+.br
+DPI: 800
+.LP
+.ihtml ul
+.FG scrollpoint jpg
+
+.html - <a name="3.2.0.2">
+.ihtml h3 <h3>
+.SH
+3.2.0.2 - Keyboards
+.R
+.ihtml h3
+
+.html - <a name="3.2.0.2.1" />
+.ihtml h4 <h4>
+.SH
+3.2.0.2.1 - IBM/Lenovo
+.R
+.ihtml h4
+
+.html - <a name="1391401" />
+.SH
+IBM Model M 1391401
+.R
+.ihtml ul <ul>
+.IP
+Part Number: 1391401
+.LP
+.ihtml ul
+.FG 1391401 jpg
+
+.html - <a name="SK-8835" />
+.SH
+IBM UltraNav SK-8835
+.R
+.ihtml ul <ul>
+.IP
+Part Number: SK-8835
+.LP
+.ihtml ul
+.FG sk-8835 jpg
+
+.html - <a name="3.2.1" />
+.ihtml h3 <h3>
+.SH
+3.2.1 - Audio
+.R
+.ihtml h3
+.html - <br />
+.FG soundblaster jpg
+
+.SH Integrated
+
+.SH
+AMD FCH Azalia Controller
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 1022/780d
+.LP
+.ihtml ul
+
+.SH
+Intel 888 Microsoft UAA bus for HD audio
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/284b
+.LP
+.ihtml ul
+
+.SH
+Intel 82801CA/CAM AC97
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/2485
+.LP
+.ihtml ul
+
+.SH
+Intel 82801 DB DBM/DA AC 97
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/24c5
+.LP
+.ihtml ul
+
+.SH
+Intel 486486 82801IB/IR/IH HD Audio
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/293e
+.LP
+.ihtml ul
+
+.SH
+Intel HD NM10/ICH7
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/27d8
+.LP
+.ihtml ul
+
+.SH
+Intel HD 6 Series/C200 Series
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/1c20
+.LP
+.ihtml ul
+
+.SH
+Intel HD 7 Series/C210 Series
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/1e20
+.LP
+.ihtml ul
+
+.html - <a name="3.2.2" />
+.ihtml h3 <h3>
+.SH
+3.2.2 - Graphics
+.R
+.ihtml h3
+.html - <br />
+.FG glitch jpg
+
+.html - <a name="3.2.2.1" />
+.ihtml h4 <h4>
+.SH
+3.2.2.1 - AGP
+.R
+.ihtml h4
+
+.SH
+NVidia GeForce FX 5200 128MB VGA output
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 10de/0322
+.br
+.CW
+monitor=vesa\ vgasize=1600x1200x32
+.R
+.br
+.CW
+monitor=dellst2210\ vgasize=1920x1080x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/emachines/t3302/vga-p">VGA dump</a></ul>
+.LP
+.ihtml ul
+
+.SH
+NVidia GeForce FX 5700
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 10de/0341
+.br
+.CW
+monitor=vesa\ vgasize=1600x1200x32
+.br
+monitor=dellst2210\ vgasize=1920x1080x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/emachines/t3302/sysinfo">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.html - <a name="3.2.2.2" />
+.ihtml h4 <h4>
+.SH
+3.2.2.2 - Integrated
+.R
+.ihtml h4
+
+.SH
+ATI Mobility Radeon 7500 128MB DVI/VGA output
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 1002/4c57
+.br
+.CW
+monitor=vesa\ vgasize=1024x768x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t42/2373-bk4/sysinfo">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.SH
+ATI Mobility Radeon FireGL V3200/X600
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 1002/3154
+.br
+.CW
+monitor=vesa\ vgasize=1600x1200x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t43p/2669-a92/sysinfo">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.SH
+ATI RS880
+.R
+.ihtml ul <ul>
+.IP
+.CW
+monitor=vesa\ vgasize=1280x1024x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/hp/6005sff/sysinfo">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.SH
+ATI X1300
+.R
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkcentre/m55/8810-d3u/vesa.x1300">VESA BIOS modes</a></ul>
+
+.SH
+Intel Mobile 945GM/GMS/GME, 943/940GML Express
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/27a6
+.br
+.CW
+monitor=vesa\ vgasize=1400x1050x32
+.br
+monitor=x60t\ vgasize=1400x1050x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x61t/6363-cto/sysinfo">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.SH
+Intel X3100/GM965/PM965/GL960
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/2a03
+.br
+.CW
+monitor=vesa\ vgasize=1680x1050x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t61/7659-cto/sysinfo">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.SH
+Intel Mobile Intel 4 Series 4500MHD
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/2a42, 8086/2a43
+.br
+.CW
+monitor=vesa\ vgasize=1440x900x32
+.br
+monitor=x301\ vgasize=1440x900x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x301/2776-p6u/sysinfo">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.SH
+Intel HD 3rd Gen Core processor Graphics Controller
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/0166
+.br
+.CW
+monitor=vesa\ vgasize=1366x768x32
+.br
+monitor=x230\ vgasize=1366x768x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x230/2306-cto/sysinfo">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.SH
+NVidia GeForce FX Go5200 64M
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 10de/0324
+.br
+.CW
+monitor=cinema\ vgasize=1152x768x32
+.R
+.LP
+.ihtml ul
+
+.SH
+S3 SuperSavage IX/C 16MB
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 5333/8c2e
+.br
+.CW
+monitor=t23\ vgasize=1024x768x32
+.br
+monitor=vesa\ vgasize=1024x768x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t23/sysinfo">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.html - <a name="3.2.2.3" />
+.ihtml h4 <h4>
+.SH
+3.2.2.3 - PCI Express
+.R
+.ihtml h4
+
+.SH
+NVidia GeForce 6200 LE
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 10de/0163
+.br
+.CW
+monitor=e228wfp\ vgasize=1680x1050x32
+.R
+.LP
+.ihtml ul
+
+.SH
+NVidia GeForce 8400 GS
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 10de/0422
+.br
+.CW
+monitor=vesa\ vgasize=1680x1050x32
+.R
+.br
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkcentre/m55/8810-d3u/vesa.8400gs">VESA BIOS modes</a></ul>
+.LP
+.ihtml ul
+
+.SH
+NVidia GeForce 8600 GT
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 10de/0402
+.br
+.CW
+monitor=vesa\ vgasize=1600x1200x32
+.R
+.LP
+.ihtml ul
+
+.SH
+NVidia GeForce GTX 550
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 10de/0bee
+.br
+.CW
+monitor=vesa\ vgasize=1600x1200x32
+.R
+.LP
+.ihtml ul
+
+.html - <a name="3.2.3" />
+.ihtml h3 <h3>
+.SH
+3.2.3 - Networking
+.R
+.ihtml h3
+
+.html - <a name="3.2.3.1" />
+.ihtml h4 <h4>
+.SH
+3.2.3.1 - Ethernet
+.R
+.ihtml h4
+
+.html - <a name="3.2.3.1.1" />
+.ihtml h5 <h5>
+.SH
+3.2.3.1.1 - Integrated
+.R
+.ihtml h5
+
+.SH
+Broadcom BCM5751M NetXtreme Gigabit
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 14e4/167d
+.br
+tested 100/1000 mbps
+.LP
+.ihtml ul
+
+.SH
+Broadcom BCM5755/5780 NetXtreme Gigabit
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 14e4/167b
+.br
+tested 100/1000 mbps
+.LP
+.ihtml ul
+
+.SH
+Broadcom BCM5782 NetXtreme Gigabit
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 14e4/1696
+.LP
+.ihtml ul
+
+.SH
+Intel 82540EP Gigabit
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/101e
+.br
+tested 100/1000 mbps
+.LP
+.ihtml ul
+
+.SH
+Intel 82562ET
+.R
+.ihtml ul <ul>
+.IP
+tested 10/100 mbps
+.LP
+.ihtml ul
+
+.SH
+Intel 82566MM Gigabit
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/1049
+.br
+tested 100/1000 mbps
+.LP
+.ihtml ul
+
+.SH
+Intel 82567LM 82567LM-2 Gigabit
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/10f5
+.br
+tested 100/1000 mbps
+.LP
+.ihtml ul
+
+.SH
+Intel 82573L Gigabit
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/109a
+.br
+tested: 100/1000 mbps
+.LP
+.ihtml ul
+
+.SH
+Intel 82579LM Gigabit
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/1502
+.br
+tested: 100/1000 mbps
+.LP
+.ihtml ul
+
+.SH
+Intel 82801CAM PRO/100 VE
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/1031
+.br
+tested 10/100 mbps
+.LP
+.ihtml ul
+
+.SH
+Realtek RTL8139
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 10ec/8139
+.br
+tested 10/100/1000 mbps
+.LP
+.ihtml ul
+
+.SH
+Realtek RTL8169/RTL8101E/RTL8102E
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 10ec/8136
+.br
+tested 10/100/1000 mbps
+.LP
+.ihtml ul
+
+.html - <a name="3.2.3.1.2" />
+.ihtml h5 <h5>
+.SH
+3.2.3.1.2 - USB
+.R
+.ihtml h5
+.SH
+Beceem Communications CLEAR Stick
+.R
+.ihtml ul <ul>
+.IP
+vid/did 198f:8160
+.br
+This is a WiMAX device that appears as a USB CDC Ethernet device
+.br
+Works with nusb/ether
+.LP
+.ihtml ul
+
+.SH
+RNDIS
+.R
+.ihtml ul <ul>
+.IP
+Android phones should work
+.br
+Works with nusb/ether
+.LP
+.ihtml ul
+
+.html - <a name="3.2.3.1.3" />
+.ihtml h5 <h5>
+.SH
+3.2.3.1.3 - PCMCIA
+.R
+.ihtml h5
+.SH
+3Com 3c589c
+.R
+.ihtml ul <ul>
+.IP
+Set the following in
+.CW plan9.ini :
+.CW
+irq=3 port=0x300
+.R
+.LP
+.ihtml ul
+
+.html - <a name="3.2.3.2" />
+.ihtml h4 <h4>
+.SH
+3.2.3.2 - WiFi
+.R
+.ihtml h4
+
+.html - <a name="3.2.3.2.1" />
+.ihtml h5 <h5>
+.SH
+3.2.3.2.1 - Bridge (external)
+.R
+.ihtml h5
+
+.SH
+Iogear GWU627
+.R
+.ihtml ul <ul>
+.IP
+802.11n
+.br
+connect ethernet port to GWU627
+.br
+HTTP management interface requires Javascript. Managed to program it using Inferno's
+.CW charon
+browser, which supports ecmascript 1.0.
+.LP
+.ihtml ul
+
+.SH
+Vonets VAP11G
+.R
+.ihtml ul <ul>
+.IP
+802.11g
+.br
+connect ethernet port to VAP11G
+.br
+Requires a proprietary Windows program (ships with the device) to program its settings before using it for the first time.
+.LP
+.ihtml ul
+
+.html - <ul><a href="http://www.vonets.com/products/wifi-bridge-vap11g.htm">manufacturer website</a></ul>
+
+.html - <a name="3.2.3.2.2" />
+.ihtml h5 <h5>
+.SH
+3.2.3.2.2 - Mini-PCI
+.R
+.ihtml h5
+
+.SH
+Actiontec 800MIP
+.R
+.ihtml ul <ul>
+.IP
+802.11b
+.br
+often branded Lucent WaveLAN
+.br
+.CW
+ether0=type=wavelanpci\ ssid=MESH\ station=T42\ irq=11
+.R
+.LP
+.ihtml ul
+
+.html - <ul><a href="http://www.thinkwiki.org/wiki/IBM_High_Rate_Wireless_LAN_Mini-PCI_Adapter_III">probably this chip</a></ul>
+
+.SH
+Ralink RT2860
+.R
+802.11b
+
+.html - <a name="3.2.3.2.3" />
+.ihtml h5 <h5>
+.SH
+3.2.3.2.3 - Mini-PCI Express
+.R
+.ihtml h5
+
+.SH
+Intel Centrino Advanced-N 6205 Taylor Peak (iwl-6005)
+.R
+.ihtml ul <ul>
+.IP
+vid/did: 8086/0085
+.br
+802.11g
+.br
+.CW
+ether0=type=iwl\ essid=MESH
+.R
+.LP
+.ihtml ul
+
+.SH
+Intel Centrino Ultimate-N (iwl-6000)
+.R
+.ihtml ul <ul>
+.IP
+802.11g
+.br
+.CW
+ether0=type=iwl\ essid=MESH
+.R
+.LP
+.ihtml ul
+
+.SH
+Intel Centrino Wireless-N 100
+.R
+.ihtml ul <ul>
+.IP
+802.11g
+.br
+.CW
+ether0=type=iwl\ essid=MESH
+.R
+.LP
+.ihtml ul
+
+.SH
+Intel Centrino Wireless-N 2230
+.R
+.ihtml ul <ul>
+.IP
+802.11g
+.br
+.CW
+ether0=type=iwl\ essid=MESH
+.R
+.LP
+.ihtml ul
+
+.SH
+Intel PRO Wireless 3945ABG (wpi-3945abg)
+.R
+.ihtml ul <ul>
+.IP
+802.11g
+.br
+.CW
+ether0=type=wpi\ essid=MESH
+.R
+.LP
+.ihtml ul
+
+.SH
+Intel WiFi Link 1000/4965/5100/5300 AGN
+.R
+.ihtml ul <ul>
+.IP
+802.11g
+.br
+.CW
+ether0=type=iwl\ essid=MESH
+.R
+.LP
+.ihtml ul
+
+.SH
+Ralink RT3090
+.R
+.ihtml ul <ul>
+.IP
+802.11g
+.LP
+.ihtml ul
+
+.html - <a name="3.2.3.2.4" />
+.ihtml h5 <h5>
+.SH
+3.2.3.2.4 - PCI
+.R
+.ihtml h5
+
+.SH
+Ralink RT3090
+.R
+.ihtml ul <ul>
+.IP
+802.11b
+.LP
+.ihtml ul
+
+.html - <a name="3.2.3.2.5" />
+.ihtml h5 <h5>
+.SH
+3.2.3.2.5 - PCMCIA
+.R
+.ihtml h5
+
+.SH
+Linksys WPC11
+.R
+.ihtml ul <ul>
+.IP
+802.11b
+.br
+Prism 2.5
+.br
+ISL37300P
+.br
+RevA
+.LP
+.ihtml ul
+
+.SH
+Lucent WaveLAN PC24E-H-FC
+.R
+.ihtml ul <ul>
+.IP
+802.11b
+.br
+.CW
+ether0=type=wavelan\ essid=MESH\ crypt=off\ station=x61\ irq=11
+.R
+.LP
+.ihtml ul
+
+.html - <a name="3.2.4" />
+.ihtml h3 <h3>
+.SH
+3.2.4 - Tablet Digitizers
+.R
+.ihtml h3
+
+.html - <a name="3.2.4.1" />
+.ihtml h4 <h4>
+.SH
+3.2.4.1 - Serial
+.R
+.ihtml h4
+
+.html - <a name="3.2.4.1.1" />
+.ihtml h5 <h5>
+.SH
+3.2.4.1.1 - Integrated
+.R
+.ihtml h5
+
+.SH
+Wacom WACF004
+.R
+.ihtml ul <ul>
+.IP
+ThinkPad X4* series tablets
+
+To enable the tablet's serial port in
+.CW plan9.ini :
+.P1
+uart2=type=isa port=0x200 irq=5
+.P2
+To turn on the tablet:
+.P1
+aux/wacom; aux/tablet &
+.P2
+.LP
+.ihtml ul
+
+.SH
+Wacom WACF008
+.R
+.ihtml ul <ul>
+.IP
+ThinkPad X6* series tablets
+
+To enable the tablet's serial port in
+.CW plan9.ini :
+.P1
+uart2=type=isa port=0x200 irq=5
+.P2
+To turn on the tablet:
+.P1
+aux/wacom; aux/tablet &
+.P2
+.LP
+.ihtml ul
+
+.html - <a name="3.2.5" />
+.ihtml h3 <h3>
+.SH
+3.2.5 - Laptops
+.R
+.ihtml h3
+.html - <br />
+.FG rugged png
+
+.html - <a name="3.2.5.1" />
+.ihtml h4 <h4>
+.SH
+3.2.5.1 - Acer
+.R
+.ihtml h4
+
+.html - <a name="aspire_5100" />
+.SH
+Aspire 5100 (donated by some poor kid)
+.R
+.ihtml ul <ul>
+.IP
+cpu: 1795MHz AuthenticAMD AMD-K8, works
+.br
+ethernet: rtl8139 100Mbps, works
+.br
+keyboard and touchpad, works
+.br
+graphics: RS482M ATI RADEON Xpress Series,
+.CW
+monitor=vesa\ vgasize=1024x768x32
+.R
+(native resolution not in VESA BIOS); radeon driver untested
+.br
+wifi: Atheros AR5005G, does not work
+.br
+audio: SB450 High Definition Audio Controller
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/acer/aspire/5100/sysinfo">sysinfo</a></ul>
+
+.html - <a name="3.2.5.2" />
+.ihtml h4 <h4>
+.SH
+3.2.5.2 - IBM/Lenovo
+.R
+.ihtml h4
+
+.html - <a name="3.2.5.2.1" />
+.ihtml h5 <h5>
+.SH
+3.2.5.2.1 - ThinkPad
+.R
+.ihtml h5
+.html - <br />
+.FG 2001thinkpad01 jpg
+.html - <br />
+.FG 2001thinkpad02 jpg
+
+.html - <a name="thinkpad_380d" />
+.SH
+380D
+.R
+.html - <a name="thinkpad_380d_2635-3au" />
+.SH
+2635-3AU
+.R
+.ihtml ul <ul>
+.IP
+cpu: cpu0: 152MHz GenuineIntel P55C MMX (AX 00000543 CX 00000000 DX 008001BF)
+.br
+graphics: Neomagic MagicGraph 128ZV
+.CW
+monitor=vga\ vgasize=800x600x16
+.R
+.br
+ethernet: 3Com 3C589 PCMCIA, works
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/380d/2635-3au/sysinfo">sysinfo</a></ul>
+.FG 380d jpg
+
+.html - <a name="thinkpad_r400" />
+.SH
+R400
+.R
+.html - <a name="thinkpad_r400_7439-1dg" />
+.SH
+7439-1DG
+.R
+.ihtml ul <ul>
+.IP
+cpu: 2527MHz GenuineIntel Core 2/Xeon (cpuid: AX 0x10676 CX 0x8E3FD DX 0xBFEBFBFF)
+.br
+graphics: Mobile Intel GM45 Express/4500MHD,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1440x900x32
+.R
+.br
+ethernet: Intel 82567LM 82567LM-2 Gigabit (10/100/1000), works
+.br
+wifi: Intel Wifi Link 5100 AGN Mini-PCI Express, works
+.br
+disk controller: Intel ICH9M/ME ICH9M/ME AHCI, works
+.br
+dvd: MATSHITADVD-RAM UJ870A SB04 HE34 068E34 068597, works
+.br
+audio: Intel 486486 82801IB/IR/IH HD Audio, works
+.br
+usb: works
+.br
+mp: mp + sata, ethernet works with
+.CW *acpi=1
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/r400/7439-1dg/sysinfo">sysinfo</a></ul>
+
+.html - <a name="thinkpad_t23" />
+.SH
+T23
+.R
+.html - <a name="thinkpad_t23_2647-hsu" />
+.SH
+2647-HSU
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Mobile Pentium III-M 866 MHz, 1.2 GHz
+.br
+graphics: S3 SuperSavage IX/C 16MB, VGA 1024x768x32,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1024x768x32
+.R
+.br
+ethernet: Intel 82801CAM PRO/100 VE or Intel 82562ET (10/100), works
+.br
+wifi: Actiontec 800MIP (branded Lucent WaveLAN) Mini-PCI, works
+.br
+audio: AC97, works
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t23/2647-hsu/sysinfo">sysinfo</a></ul>
+
+.html - <a name="thinkpad_t42" />
+.SH
+T42
+.R
+.html - <a name="thinkpad_t42_2373-bk4" />
+.SH
+2373-BK4
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Pentium M (Dothan) 1.7 GHz
+.br
+graphics: ATI Mobility Radeon 7500 32MB,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1024x768x32
+.R
+.br
+ethernet: Intel Gigabit Ethernet (10/100/1000), works
+.br
+wifi: IBM 11a/b/g Mini-PCI, does not work; replaced with Actiontec 800MIP (branded Lucent WaveLAN) Mini-PCI, works
+.br
+disk controller: 82801DBM (ICH4-M), IDE DMA works
+.br
+audio: AC97, works
+.LP
+.ihtml ul
+
+.html - <a name="t43p" />
+.SH
+T43p
+.R
+.html - <a name="t43p_2669-a92" />
+.SH
+2669-A92
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Pentium M (Dothan) 2.0 GHz (cpuid: AX 0x06D8 CX 0x0180 DX 0xAFE9FBFF)
+.br
+graphics: ATI Mobility Radeon FireGL V3200/X600,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1600x1200x32
+.R
+with internal LCD
+.br
+ethernet: Broadcom BCM5751M (10/100/1000), works
+.br
+wifi: replaced with Vonets VAP11G, works
+.br
+disk controller: Intel 82801FBM SATA AHCI (ICH6-M): untested
+.br
+usb: works
+.br
+scram works with
+.CW *acpi=1
+.br
+mouse button 2 works with trackpad disabled in BIOS
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t43p/2669-a92/plan9.ini">plan9.ini</a>, <a href="http://plan9.stanleylieber.com/hardware/thinkpad/t43p/2669-a92/sysinfo">sysinfo</a></ul>
+
+.html - <a name="thinkpad_t60p" />
+.SH
+T60p
+.R
+.html - <a name="thinkpad_t60p_2007-94u" />
+.SH
+2007-94U
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core Duo (Yonah) 2.16GHz (cpuid: AX 0x06E8 CX 0xC1A9 DX 0xBFE9FBFF)
+.br
+graphics: ATI MOBILITY FireGL V5200
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1600x1200x32
+.R
+with internal LCD
+.br
+audio: Intel BA101897 IDT High Definition, untested
+.br
+ethernet: Intel 82573L Intel PRO/1000 PL (10/100/1000), works
+.br
+wifi: Intel PRO Wireless 3945ABG (wpi-3945abg), may work now with
+.CW wpi
+driver
+.br
+disk controller: Intel 82801GB/GBM PATA100, 82801GBM/GHM AHCI, works
+.br
+usb: works
+.br
+mp: mp + sata, ethernet, usb works with
+.CW *acpi=
+.R
+.br
+mouse button 2 works with trackpad disabled in BIOS
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t60p/2007-94u/plan9.ini">plan9.ini</a></ul>
+
+.html - <a name="t61" />
+.SH
+T61
+.R
+.html - <a name="t61_7659-cto" />
+.SH
+7659-CTO
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core 2 Duo (Merom) 2.0 GHz FSB, 2-4MB L2 Cache CPU
+.br
+graphics: Intel GMA X3100,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1280x800x32
+.R
+with internal LCD;
+.CW
+monitor=vesa\ vgasize=1680x1050x32
+.R
+with VGA or Mini Doc DVI output and external monitor
+.br
+ethernet: Intel 82566MM (10/100/1000), works
+.br
+wifi: Intel Wireless WiFi Link 4965 AGN Mini-PCI Express, should work with
+.CW iwl
+driver
+.br
+disk controller: Intel 82801HBM/HEM PATA, Intel 82801HBM SATA AHCI (ICH8-M): IDE DMA works, SATA works
+.br
+usb: works
+.br
+mp: mp + sata, ethernet, usb works with
+.CW *acpi=
+.R
+.br
+mouse button 2 works with trackpad disabled in BIOS
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t61/7659-cto/plan9.ini">plan9.ini</a>, <a href="http://plan9.stanleylieber.com/hardware/thinkpad/t61/7659-cto/sysinfo">sysinfo</a></ul>
+
+.html - <a name="thinkpad_t61p_7661-12u" />
+.SH
+7661-12U
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core 2 Duo (Merom) 2.0 GHz FSB, 2-4MB L2 Cache CPU
+.br
+graphics: Intel GMA X3100,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1280x800x32
+.R
+with internal LCD;
+.CW monitor=vesa\ vgasize=1680x1050x32
+.R
+with VGA or Mini Doc DVI output and external monitor
+.br
+ethernet: Intel 82566MM (10/100/1000), works
+.br
+wifi: Intel PRO Wireless 3945ABG (wpi-3945abg), may work now with
+.CW wpi
+driver; replaced with Wavelan PC24E-H-FC PCMCIA, works
+.br
+disk controller: Intel 82801HBM/HEM PATA, Intel 82801HBM SATA AHCI (ICH8-M): IDE DMA works, SATA works
+.br
+usb: works
+.br
+mp: mp + sata, ethernet, usb works with
+.CW *acpi=
+.R
+.br
+mouse button 2 works with trackpad disabled in BIOS
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t61/7661-12u/plan9.ini">plan9.ini</a>, <a href="http://plan9.stanleylieber.com/hardware/thinkpad/t61/7661-12u/sysinfo">sysinfo</a></ul>
+
+.html - <a name="thinkpad_t400" />
+.SH
+T400
+.R
+.html - <a name="thinkpad_t400_6475-ec7" />
+.SH
+6475-EC7
+.R
+.ihtml ul <ul>
+.IP
+cpu: 2261MHz GenuineIntel Core 2/Xeon (cpuid: AX 0x10676 CX 0x8E3FD DX 0xBFEBFBFF)
+.br
+graphics: Intel Corporation Mobile 4 Series,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1440x900x32
+.R
+with internal LCD
+.br
+ethernet: i82567: 1000Mbps, works
+.br
+wifi: Intel WiFi Link 5100 AGN Mini-PCI Express, works
+.br
+disk controller: Intel ICH9M/ME AHCI, works
+.br
+audio: Intel HDA, should work
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t400/6475-ec7/sysinfo">sysinfo</a></ul>
+
+.html - <a name="thinkpad_t410i" />
+.SH
+T410i
+.R
+.html - <a name="thinkpad_t410i_2518-4qg" />
+.SH
+2518-4QG
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel(R) Core(TM) i5 CPU M 430 @ 2.27GHz
+.br
+graphics: Intel Graphics Media Accelerator HD,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1280x800x32
+.R
+with internal LCD
+.br
+ethernet: Intel 82577LM Gigabit, works
+.br
+wifi: unknown, reportedly works
+.br
+audio: unknown, reportedly works
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t410i/2518-4qg/sysinfo">sysinfo</a></ul>
+
+.html - <a name="t420s" />
+.SH
+T420s
+.R
+.html - <a name="t420s_4171-53u" />
+.SH
+4171-53U
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel® Core™ i5-2540M (2.6GHz, 3MB L3, 1333MHz FSB) (cpuid: AX 000206A7 CX 17BAE3FF DX BFEBFBFF)
+.br
+graphics: Intel HD Graphics 3000 (integrated Sandy Bridge GPU),
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1600x900x32
+.R
+.br
+ethernet: Intel 82579LM Gigabit, works
+.br
+audio: Intel HD 6 Series/C200 Series, works
+.br
+wifi: Intel Centrino Advanced-N 6205 Taylor Peak, etheriwl (firmware: iwn-6005), works
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/t420s/4171-53u/sysinfo">sysinfo</a></ul>
+.FG t420s jpg
+
+.html - <a name="thinkpad_x41t" />
+.SH
+X41 tablet
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Pentium M (Dothan) 1.6GHz LV (778) L2 2 MB cache
+.br
+graphics: Intel GMA900,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1024x768x32
+.R
+.br
+tablet: WACF004, works
+.br
+ethernet: BCM5751M (10/100/1000), works
+.br
+wifi: Intel PRO/Wireless 2915ABG Mini-PCI, does not work
+.LP
+.ihtml ul
+
+.html - <a name="thinkpad_x60s" />
+.SH
+X60s
+.R
+.html - <a name="thinkpad_x60s_1704-gl5" />
+.SH
+1704-GL5
+.R
+.ihtml ul <ul>
+.IP
+coreboot
+.br
+cpu cpu0: 1663MHz GenuineIntel P6 (cpuid: AX 0x06E8 CX 0xC1A9 DX 0xBFE9FBFF)
+.br
+graphics: Intel 945GM,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1024x768x16
+.R
+.br
+ethernet: Intel 82573L Intel PRO/1000 PL, works
+.br
+audio: Intel HDA, untested
+.br
+wifi: Ralink RT3090, works
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x60s/1704-gl5/sysinfo">sysinfo</a></ul>
+
+.html - <a name="x60t" />
+.SH
+X60 Tablet
+.R
+.html - <a name="x60t_6363-cto" />
+.SH
+6363-CTO
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core Duo (Yonah) L2400 LV 1.66 GHz (2MB Cache) cpu0: 1663MHz GenuineIntel P6 (AX 000006EC CX 0000C1A9 DX BFE9FBFF)
+.br
+lcd: replaced with HV121P01-100 (1400x1050)
+.br
+graphics: Intel Graphics Media Accelerator 950,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=x60t\ vgasize=1400x1050x32; monitor=vesa\ vgasize=1280x1024x32
+.R
+(native 1400x1050 resolution not in VESA BIOS)
+.br
+tablet: WACF008, works
+.br
+ethernet: Intel 82573L (10/100/1000), works
+.br
+audio: Intel HD Audio with AD1981HD codec, speaker and green lineout work with
+.CW
+echo pin 5,3 >/dev/audioctl
+.R
+.br
+wifi: Intel WiFi Link 5100 AGN, works \(em flashed with
+.ihtml a <a href="http://plan9.stanleylieber.com/hardware/thinkpad/x60t/6363-cto/bios.1.15_7juj13us_LENOVO_SLIC_SSV2_WL_removed.zip">
+custom BIOS
+.ihtml a
+to remove WiFi card whitelist
+.br
+disk controller: Intel 82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode], untested
+.br
+mp: mp + sata, ethernet works with *acpi
+.R
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x60t/6363-cto/sysinfo">sysinfo</a></ul>
+.FG x60t jpg
+
+.html - <a name="thinkpad_x61s" />
+.SH
+X61s
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core 2 Duo
+.br
+graphics: Intel GM965/GL960,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1024x768x32
+.R
+.br
+ethernet: Intel 82566MM (10/100/1000), works
+.br
+wifi: Intel PRO/Wireless 4965 AG or AGN `[Kedron]` Mini-PCI Express, untested, should work with
+.CW iwl
+driver
+.br
+disk controller: Intel 82801HBM SATA (ICH8-M): IDE DMA works, SATA works
+.br
+mp: mp + sata, ethernet works with
+.CW *acpi=
+.LP
+.ihtml ul
+
+.html - <a name="thinkpad_x61t" />
+.SH
+X61 Tablet
+.R
+.html - <a name="thinkpad_x61t_7767-01u" />
+.SH
+7767-01U
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core 2 Duo CPU L7700 (1.80 GHz)
+.br
+lcd: replaced with HV121P01-100 (1400x1050)
+.br
+graphics: Intel GMA X3100,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=x60t\ vgasize=1400x1050x32; monitor=vesa\ vgasize=1280x1024x32
+.R
+(native 1400x1050 resolution not in VESA BIOS)
+.R
+.br
+tablet: WACF008, works
+.br
+ethernet: Intel 82566MM (10/100/1000), works
+.br
+audio: Intel HDA, works
+.br
+wifi: Intel Centrino Advanced-N 6205 Taylor Peak (iwl-6005), works \(em flashed with
+.ihtml a <a href="http://plan9.stanleylieber.com/hardware/thinkpad/x61t/Dual-IDA_SATA-II_Whitelist_SLIC21_ThinkPad_X61_Tablet_BIOS_1.25-1.02.tgz">
+custom BIOS
+.ihtml a
+to remove WiFi card whitelist
+.br
+disk controller: Intel 82801HBM SATA (ICH8-M): IDE DMA works, SATA works
+mp: mp + sata, ethernet works with
+.CW *acpi=
+.R
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x61t/7767-01u/sysinfo">sysinfo</a></ul>
+.FG x61t jpg
+
+.html - <a name="thinkpad_x131e" />
+.SH
+X131e
+.R
+.html - <a name="thinkpad_x131e_3368-2fu" />
+.SH
+3368-2FU
+.R
+.ihtml ul <ul>
+.IP
+cpu: 1397MHz GenuineIntel P6 (cpuid: AX 0x206A7 CX 0x15BAE3BF DX 0xBFEBFBFF)
+.br
+graphics: Intel HD Graphics 3000,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1366x768x32
+.R
+.br
+ethernet: Realtek RTL8167 PCIe Gigabit Ethernet: works
+.br
+audio: Intel HDA, works
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x131e/3368-2fu/sysinfo">sysinfo</a></ul>
+
+.html - <a name="thinkpad_x200" />
+.SH
+X200
+.R
+.html - <a name="thinkpad_x200_7455-a54" />
+.SH
+7455-A54
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core 2 Duo
+.br
+graphics: Mobile Intel GMA 4500MHD,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1280x800x32
+.R
+.br
+ethernet: Intel 82567LF Gigabit (10/100/1000), works
+.br
+wifi: Intel WiFi Link 5150, works
+.br
+disk controller: Intel ICH9M/ME ICH9M/ME AHCI, works
+.br
+audio: Intel 486486 82801IB/IR/IH HD Audio, works
+.br
+usb: works
+.LP
+.ihtml ul
+.html - <ul><a href="http://sysinfo.9front.org/src/49/body">sysinfo</a></ul>
+
+.html - <a name="thinkpad_x200s" />
+.SH
+X200s
+.R
+.html - <a name="thinkpad_x200s_7466-3sg" />
+.SH
+7466-3SG
+.R
+.ihtml ul <ul>
+.IP
+cpu: 1862MHz GenuineIntel Core 2/Xeon (cpuid: AX 0x10676 CX 0x8E3FD DX 0xBFEBFBFF)
+.br
+graphics: Mobile Intel GM45 Express/4500,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1280x800x32
+.R
+.br
+ethernet: Intel 82567LM 82567LM-2 Gigabit (10/100/1000), works
+.br
+wifi: Intel WiFi Link 5300 AGN Mini-PCI Express, works
+.br
+disk controller: Intel ICH9M/ME ICH9M/ME AHCI, works
+.br
+audio: Intel 486486 82801IB/IR/IH HD Audio, works
+.br
+usb: works
+.br
+mp: mp + sata, ethernet works with
+.CW *acpi=1
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x200s/7466-3sg/sysinfo">sysinfo</a></ul>
+
+.html - <a name="thinkpad_x201" />
+.SH
+X201
+.R
+.html - <a name="thinkpad_x201_3323-dbg" />
+.SH
+3323-DBG
+.R
+.ihtml ul <ul>
+.IP
+cpu: 2661MHz GenuineIntel P6
+.br
+graphics: Mobile Intel GMA 5700MHD,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1280x800x32
+.R
+.br
+ethernet: Intel Corporation 82577LM Intel 82577LM Gigabit, works
+.br
+wifi: Intel Centrino Ultimate-N 6300 AGN, works
+.br
+disk controller: Intel Corporation PCH (Ibex Peak) SATA AHCI, works
+.br
+audio: Intel HDA, works
+.br
+ssd: INTEL SSDSC2BW180A3L, works
+.br
+usb: works
+.LP
+.ihtml ul
+.ihtml a
+.html - <ul><a href="http://sysinfo.9front.org/src/50/body">sysinfo</a></ul>
+
+.html - <a name="thinkpad_x220" />
+.SH
+X220
+.R
+.html - <a name="thinkpad_x220_4291-4cg" />
+.SH
+4291-4CG
+.R
+.ihtml ul <ul>
+.IP
+cpu: 2791MHz GenuineIntel P6 (cpuid: AX 0x206A7 CX 0x17BAE3FF DX 0xBFEBFBFF)
+.br
+graphics: Intel HD 3000,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1366x768x32
+.R
+.br
+ethernet: Intel 82579 (10/100/1000), works
+.br
+audio: Intel HDA, works
+.br
+wifi: Intel Centrino Advanced-N 6205, works
+.br
+disk controller: works
+.br
+ssd: INTEL SSDSA2BW160G3, works
+.br
+usb: works
+.LP
+.ihtml ul
+.html a <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x220/4291-4cg/sysinfo">sysinfo</a></ul>
+
+.FG chicklet jpg
+
+.html - <a name="thinkpad_x230" />
+.SH
+X230
+.R
+.html - <a name="thinkpad_x230_2306-cto" />
+.SH
+2306-CTO
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core i5-3320M (2.60 GHz, 3MB L3, 1600MHz FSB), cpuid: AX 0x306A9 CX 0x77BAE3FF DX 0xBFEBFBFF
+.br
+graphics: Intel HD 3rd Gen Core processor Graphics Controller,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=x230\ vgasize=1366x768x32; monitor=vesa\ vgasize=1366x768x32
+.R
+.br
+ethernet: Intel 82579LM Gigabit (10/100/1000), works
+.br
+wifi: Intel Centrino Advanced-N 6205 Taylor Peak, etheriwl (firmware: iwn-6005), works
+.br
+disk controller: Intel 7 Series Chipset Family 6-port SATA Controller AHCI mode, ahci, works
+.br
+usb: Intel 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1, ehci, works
+.br
+audio: Intel 7 Series/C210 Series Chipset Family High Definition Audio Controller, works
+.br
+efi: works
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x230/2306-cto/sysinfo">sysinfo</a>, <a href="http://plan9.stanleylieber.com/hardware/thinkpad/x230/2306-cto/plan9.ini">plan9.ini</a></ul>
+.FG x230 jpg
+
+.html - <a name="thinkpad_x230t" />
+.SH
+X230 Tablet
+.R
+.html - <a name="thinkpad_x230t_3434-cto" />
+.SH
+3434-CTO
+.R
+.ihtml ul <ul>
+.IP
+ cpu: Intel Core i5-3320M (Ivy Bridge), 2.6 GHz, 3 MB Shared L3 Cache, 2C/4T, 35 W TDP, 22 nm (cpuid: AX 0x306A9 CX 0x77BAE3FF DX 0xBFEBFBFF)
+.br
+graphics: Intel HD 4000,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1366x768x32
+.R
+.br
+tablet: USB, untested
+.br
+ethernet: Intel 82579 (10/100/1000), works
+.br
+audio: Intel HDA, works
+.br
+wifi: Intel 802.11b/g/n, might work
+.br
+disk controller: works
+.br
+ssd: SAMSUNG SSD 830 Series CXM03B1Q S0XYNEAC774074 128GB, works
+.br
+usb: disable USB3 in BIOS, works
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x230t/3434-cto/sysinfo">sysinfo</a></ul>
+
+.html - <a name="thinkpad_x250" />
+.SH
+X250
+.R
+.html - <a name="thinkpad_x250_20cm-cto" />
+.SH
+20CM-CTO
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz, cpuid: AX 000306D4 CX 77FAFBBF DX BFEBFBFF
+.br
+graphics: Intel Corporation Broadwell-U Integrated Graphics,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1920x1080x32
+.R
+.br
+ethernet: Intel Corporation Ethernet Connection (3) I218-LM (10/100/1000), works
+.br
+wifi: Intel Wireless-N 7265, does not work, but may not be hard to add to existing etheriwl driver
+.br
+disk controller: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode], works
+.br
+usb: Intel Corporation Wildcat Point-LP USB EHCI Controller, works
+.br
+audio: Intel Corporation Broadwell-U Audio Controller, untested
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x250/20cm-cto/sysinfo">sysinfo</a></ul>
+.FG x250 png
+
+.html - <a name="thinkpad_x301" />
+.SH
+X301
+.R
+.html - <a name="thinkpad_x301_2776-p4u" />
+.SH
+2776-P4U
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core 2 Duo SU9400 1.4GHz 3MB cache, cpuid: AX 0x1067A CX 0x408E3FD DX 0xBFEBFBFF
+.br
+graphics: Mobile Intel GM45 Express/4500MHD,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=x301\ vgasize=1440x900x32; monitor=vesa\ vgasize=1440x900x32
+.R
+.br
+ethernet: Intel 82567LM 82567LM-2 Gigabit (10/100/1000), works
+.br
+wifi: Intel WiFi Link 5100 AGN Mini-PCI Express, works
+.br
+disk controller: Intel ICH9M/ME ICH9M/ME AHCI, works
+.br
+ssd: Samsung MMCRE64G8MPP-0VA 64GB, works
+.br
+dvd: Matsushita DVD-RAM UJ-844, works
+.br
+audio: Intel HD 486486 82801IB/IR/IH, works
+.br
+usb: works
+.br
+mp: mp + sata, ethernet works with
+.CW *acpi=1
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x301/2776-p4u/sysinfo">sysinfo</a>, <a href="http://plan9.stanleylieber.com/hardware/thinkpad/x301/2776-p4u/plan9.ini">plan9.ini</a></ul>
+
+.html - <a name="thinkpad_x301_2776-p6u" />
+.SH
+2776-P6U
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core 2 Duo SU9400 1.4GHz 3MB cache, cpuid: AX 00010676 CX 0008E3FD DX BFEBFBFF
+.br
+graphics: Mobile Intel GM45 Express/4500MHD,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=x301\ vgasize=1440x900x32; monitor=vesa\ vgasize=1440x900x32
+.R
+.br
+ethernet: Intel 82567LM Gigabit (10/100/1000), works
+.br
+wifi: Intel WiFi Link 5100 AGN Mini-PCI Express, works
+.br
+disk controller: 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller AHCI mode, works
+.br
+audio: Intel HD 82801I (ICH9 Family), works
+.br
+usb: works
+.br
+mp: mp + sata, ethernet works with
+.CW *acpi=1
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/thinkpad/x301/2776-p6u/sysinfo">sysinfo</a>, <a href="http://plan9.stanleylieber.com/hardware/thinkpad/x301/2776-p6u/plan9.ini">plan9.ini</a></ul>
+.FG x301 jpg
+
+.html - <a name="3.2.5.3" />
+.ihtml h4 <h4>
+.SH
+3.2.5.3 - Toshiba
+.R
+.ihtml h4
+
+.html - <a name="3.2.5.3.1" />
+.ihtml h5 <h5>
+.SH
+3.2.5.3.1 - Satellite
+.R
+.ihtml h5
+
+.html - <a name="toshiba_m30-s309" />
+.SH
+M30-S309
+.R
+.ihtml ul <ul>
+.IP
+cpu: 1397MHz GenuineIntel P6 (AX 00000695 CX 00000180 DX A7E9F9BF)
+.br
+graphics: NVidia GeForce FX Go5200 64M,
+.CW
+monitor=cinema\ vgasize=1152x768x32
+.R
+.br
+ethernet: Intel 82801DB PRO/100 VE (MOB) (i82557), works
+.br
+disk controller: Intel 82801DBM (ICH4-M) IDE Controller, works
+.br
+audio: Intel 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller, works
+.br
+usb: Intel 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller, untested
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/toshiba/satellite/m30-s309/sysinfo">sysinfo</a></ul>
+
+.html - <a name="3.2.6" />
+.ihtml h3 <h3>
+.SH
+3.2.6 - Desktops
+.R
+.ihtml h3
+
+.FG desktops png
+
+.html - <a name="3.2.6.1" />
+.ihtml h4 <h4>
+.SH
+3.2.6.1 - eMachines
+.R
+.ihtml h4
+.html - <a name="emachines_t3302" />
+.SH
+T3302
+.R
+.ihtml ul <ul>
+cpu: AMD Sempron 3300+ 2GHz
+.br
+chipset: VIA K8M800
+.br
+graphics: VIA S3 UniChrome, replaced with NVidia GeoForce FX 5700 128MB DVI output, 1920x1080x32
+.br
+ethernet: 3Com 3C905-TX Fast Etherlink 10/100 PCI TX
+.br
+audio:
+.br
+usb: works
+.LP
+.ihtml ul
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/emachines/t3302/plan9.ini">plan9.ini</a>, <a href="http://plan9.stanleylieber.com/hardware/emachines/t3302/sysinfo">sysinfo</a></ul>
+
+.html - <a name="3.2.6.2" />
+.ihtml h4 <h4>
+.SH
+3.2.6.2 - Igel
+.R
+.ihtml h4
+.html - <a name="igel_4210_lx_winestra" />
+.SH
+4210 LX Winestra
+.R
+.html - <ul><a href="http://plan9.stanleylieber.com/hardware/igel/4210lxwinestra/sysinfo">sysinfo</a></ul>
+
+.html - <a name="3.2.6.3" />
+.ihtml h4 <h4>
+.SH
+3.2.6.3 - Soekris
+.R
+.ihtml h4
+.html - <a name="soekris_net6501-70" />
+.SH
+net6501-70
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Atom E680 1.6Ghz, both pc and pc64 work
+.br
+ethernet: 4x Intel 82574L Gigabit Ethernet, works
+.br
+usb: works
+.br
+serial console: works, use
+.CW
+console=0 b19200
+.R
+in plan9.ini. 9boot hangs without a serial cable attached; disable uartputc as a workaround
+.br
+this machine does not have ACPI
+.LP
+.ihtml ul
+.html - <ul><a href="http://okturing.com/src/2265/body">plan9.ini</a>, <a href="http://sysinfo.9front.org/src/69/body">sysinfo</a></ul>
+
+.html - <a name="3.2.6.4" />
+.ihtml h4 <h4>
+.SH
+3.2.6.4 - IBM/Lenovo
+.R
+.ihtml h4
+
+.html - <a name="3.2.6.4.1" />
+.ihtml h5 <h5>
+.SH
+3.2.6.4.1 - ThinkCentre
+.R
+.ihtml h5
+.html - <a name="thinkcentre_m55" />
+.SH
+M55
+.R
+.html - <a name="thinkcentre_m55_8810-d3u" />
+.SH
+8810-D3U
+.R
+.ihtml ul <ul>
+.IP
+cpu: Intel Core 2 Duo
+.br
+graphics: Intel GMA 3000 internal (untested), replaced with NVidia GeForce 8400GS DVI output,
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8)
+.ihtml a
+.CW
+monitor=vesa\ vgasize=1680x1050x32
+.R
+.br
+ethernet: Broadcom BCM5755 (10/100/1000), works
+.br
+audio: Intel HDA, works
+.br
+usb: works
+.br
+mp: mp + sata, ethernet, usb works with
+.CW *acpi=
+.LP
+.ihtml ul
+
+.html - <a name="3.3" />
+.ihtml h2 <h2>
+.SH
+3.3 - Virtual Machines
+.R
+.ihtml h2
+
+9front has been tested on several virtual machines. Details below.
+
+.B
+Note:
+.R
+As a general rule it is a good idea to manually specify a unique MAC address for each virtual machine instance running on the network, to avoid collisions.
+
+.html - <a name="3.3.1" />
+.ihtml h3 <h3>
+.SH
+3.3.1 - Qemu
+.R
+.ihtml h3
+
+The following is tested with qemu 1.5.0 and 2.0.50 running on Linux, using
+.ihtml a <a href="fqa3.html#3.3.3">
+.I
+FQA 3.3.3 - virtio
+.R
+.ihtml a
+for disk and network.
+
+.html - <a name="3.3.1.1" />
+.ihtml h4 <h4>
+.SH
+3.3.1.1 - Installation
+.R
+.ihtml h4
+
+Create a sparse disk image:
+.P1
+qemu-img create -f qcow2 9front.qcow2.img 30G
+.P2
+
+Boot the
+.ihtml a <a href="fqa1.html#1.11.1">
+9front.iso:
+.ihtml a
+.P1
+qemu-system-x86_64 -cpu host -enable-kvm -m 1024 \e
+-net nic,model=virtio,macaddr=52:54:00:00:EE:03 -net user \e
+-device virtio-scsi-pci,id=scsi \e
+-drive if=none,id=vd0,file=9front.qcow2.img -device scsi-hd,drive=vd0 \e
+-drive if=none,id=vd1,file=9front.iso -device scsi-cd,drive=vd1,bootindex=0
+.P2
+
+Finally, see:
+.ihtml a <a href="fqa4.html#4.3">
+.I
+FQA 4.3 - Performing a simple install
+.R
+.ihtml a
+
+.html - <a name="3.3.1.2" />
+.ihtml h4 <h4>
+.SH
+3.3.1.2 - Post-Installation Booting
+.R
+.ihtml h4
+.P1
+qemu-system-x86_64 -cpu host -enable-kvm -m 1024 \e
+-net nic,model=virtio,macaddr=52:54:00:00:EE:03 -net user \e
+-device virtio-scsi-pci,id=scsi \e
+-drive if=none,id=vd0,file=9front.qcow2.img -device scsi-hd,drive=vd0
+.P2
+
+.html - <a name="3.3.1.2.1" />
+.ihtml h5 <h5>
+.SH
+3.3.1.2.1 - Multiboot
+.R
+.ihtml h5
+
+Multiboot can be used to start the 9front kernel directly, skipping the bootloader step:
+.P1
+-qemu -kernel 9pcf -initrd plan9.ini
+.P2
+
+.html - <a name="3.3.1.4" />
+.ihtml h4 <h4>
+.SH
+3.3.1.4 - Networking
+.R
+.ihtml h4
+
+User networking is the default and works the same on every platform. More advanced options are particular to specific host operating systems; several are described below.
+
+.B
+Note:
+.R
+On many operating systems ICMP is limited to the superuser. One consequence is that a VM running with guest networking cannot ping remote hosts.
+
+.html - <a name="3.3.1.4.1" />
+.ihtml h5 <h5>
+.SH
+3.3.1.4.1 - Linux VDE
+.R
+.ihtml h5
+
+Install
+.ihtml a <a href="http://vde.sourceforge.net">
+vde2.
+.ihtml a
+
+Setup a tap interface:
+.P1
+sudo tunctl -u $USER -t tap0
+.P2
+
+Start a virtual switch connected to the tap interface:
+.P1
+vde_switch --tap tap0 -daemon
+.P2
+
+Connect the switch to the network of the host. Use DHCP:
+.P1
+slirpvde --dhcp --daemon
+.P2
+
+When booting 9front, add the following to the
+.CW
+qemu
+.R
+command line arguments:
+.P1
+-net vde
+.P2
+
+.html - <a name="3.3.1.4.2" />
+.ihtml h5 <h5>
+.SH
+3.3.1.4.2 - OpenBSD tun(4)
+.R
+.ihtml h5
+
+Tested: OpenBSD/amd64 4.9-CURRENT, qemu-0.9.1p18, kqemu-1.3.0pre11p3
+
+Configure a
+.ihtml a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tun&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html">
+tun(4)
+.ihtml a
+interface with an IP address selected for your
+.CW
+qemu
+.R
+network. Configure bridging between the
+.ihtml a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tun&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html">
+.CW tun(4)
+.ihtml a
+interface and your machine's external interface. Finally, configure NAT or rules to pass traffic for the
+.CW
+qemu
+.R
+network in
+.ihtml a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf.conf&apropos=0&sektion=5&manpath=OpenBSD+Current&arch=i386&format=html">
+.CW pf.conf .
+.ihtml a
+Reboot.
+
+To launch
+.CW qemu
+as a regular user:
+.P1
+sudo sh -c "sudo -C 4 -u $USER qemu -m 768 \e
+-net nic,vlan=0,model=rtl8139,macaddr=52:54:00:12:33.36 \e
+-net tap,vlan=0,fd=3,script=no -no-fd-bootchk \e
+-hda 9front.qcow2.img 3<>/dev/tun0"
+.P2
+
+Read:
+.ihtml a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=hostname.if&sektion=5&arch=i386&apropos=0&manpath=OpenBSD+Current">
+.CW hostname.if(5) ,
+.ihtml a
+.ihtml a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pf.conf&apropos=0&sektion=5&manpath=OpenBSD+Current&arch=i386&format=html">
+.CW pf.conf(5) ,
+.ihtml a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tun&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html">
+.CW tun(4)
+.ihtml a
+
+.html - <a name="3.3.1.4.3" />
+.ihtml h5 <h5>
+.SH
+3.3.1.4.3 - Windows TAP
+.R
+.ihtml h5
+
+This is tested with the
+.ihtml a <a href="http://www.h7.dion.ne.jp/~qemu-win/">
+qemu for windows
+.ihtml a
+distribution. Download and run the installer from
+.ihtml a <a href="http://openvpn.net/index.php/open-source/downloads.html">
+openvpn
+.ihtml a
+to install the windows TAP driver. Create a new TAP interface with the "Add a new TAP virtual ethernet adapter" from the openvpn start menu. Go to the network manager and rename that new TAP interface to something more sane like: "qemu-tap". Configure ip addresses or bridge that interface with the network manager.
+
+Now you should be able to run qemu on that interface:
+.P1
+qemu.exe -net nic -net tap,ifname="tap-qemu" ...
+.P2
+
+.html - <a name="3.3.1.5" />
+.ihtml h4 <h4>
+.SH
+3.3.1.5 - Audio
+.R
+.ihtml h4
+
+Run qemu with the flag
+.CW
+-soundhw sb16
+.R
+and put the following line in
+.CW
+plan9.ini:
+.R
+.P1
+audio0=type=sb16 port=0x220 irq=5 dma=5
+.P2
+
+.B
+Note:
+.R
+.CW
+irq
+.R
+and
+.CW
+dma
+.R
+values may vary.
+
+.html - <a name="3.3.1.6" />
+.ihtml h4 <h4>
+.SH
+3.3.1.6 - Graphics
+.R
+.ihtml h4
+
+Use
+.CW monitor=vesa
+
+.B
+Note:
+.R
+Some versions of QEMU running on OSX have exhibited graphical glitches when using a 16-bit color mode (for example: 1024x768x16. Try a 32-bit mode instead (for example: 1024x768x32).
+
+.html - <a name="3.3.2" />
+.ihtml h3 <h3>
+.SH
+3.3.2 - Virtualbox
+.R
+.ihtml h3
+
+Don't use Virtualbox. It tends to break between versions.
+
+.FG virtualbox jpg
+
+Read:
+.ihtml a <a href="http://www.landley.net/notes-2015.html#25-06-2015">
+.CW
+http://www.landley.net/notes-2015.html#25-06-2015
+.R
+.ihtml a
+
+If you can't be dissuaded, the following sections detail empircal observations re: Virtualbox.
+
+.html - <a name="3.3.2.1" />
+.ihtml h4 <h4>
+.SH
+3.3.2.1 - Ethernet
+.R
+.ihtml h4
+The emulated "Intel PRO/1000 MT Server" ethernet controller is known to work.
+
+.html - <a name="3.3.2.2" />
+.ihtml h4 <h4>
+.SH
+3.3.2.2 - Audio
+.R
+.ihtml h4
+
+Put the following in
+.CW
+plan9.ini:
+.R
+.P1
+audio0=type=sb16
+.P2
+
+.html - <a name="3.3.2.3" />
+.ihtml h4 <h4>
+.SH
+3.3.2.3 - Graphics
+.R
+.ihtml h4
+Use
+.CW monitor=vesa
+
+.html - <a name="3.3.2.4" />
+.ihtml h4 <h4>
+.SH
+3.3.2.4 - Known Working Versions
+.R
+.ihtml h4
+
+4.3.14 r95030 on Windows 7
+
+4.3.16 on Mac OS X
+.html - <a href="https://www.youtube.com/watch?v=n5XAhsHyqow">youtube</a>
+
+4.3.18 r96516 on Linux x86_64 kernel 3.14.22
+
+4.3.18 on Windows 7:
+.QS
+.ihtml ul <ul>
+just tried with vbox 4.3.18 on windows7. 9front boots fine in BIOS
+mode, but the PCnet nic dosnt work. reason is that vbox pIIx pci irq
+routing is fucked so the ethernet doesnt get interrupts. if i boot
+with *nopcirouting=1, it works fine. theres a option to select the
+chipset so i tried ICH9 with IO-APIC enabled. normal mp mode fails
+because of broken mp tables, but works with *acpi=. also, it works
+with UEFI mode (which always uses ACPI). the usual intel mt server
+nic also works (thats what is usually recommended for working arround
+the broken ethernet).
+
+pci routing issue has been fixed in latest kernel, should be
+available in iso release after 3960.
+.QE
+.ihtml ul
+
+4.3.20 r96996 on Mac OS X 10.6.8/10.9 and Ubuntu 14.04/14.10:
+.ihtml ul <ul>
+.QS
+General -> Basic
+Type: Other
+Version: Other/Uknown
+
+System -> Motherboard
+Chipset: PIIX3
+Pointing Device: PS/2 Mouse
+Extended Features: [x] Enable I/O APIC
+
+System -> Processor
+Extended Features: [x] PAE/NX (not sure this matters)
+
+System -> Acceleration
+[x] Enable VT-x/AMD-V
+[x] Enable Nested Paging
+
+Display -> Video
+Extended Features: [x] Enable 3D Acceleration (not sure this matters)
+
+Storage -> Attributes
+Name: IDE
+Type: PIIX4
+[x] Use Host I/O Cache
+
+Audio ->
+[x] Enable Audio
+Host Audio Driver: CoreAudio (Can be PulseAudio or otherwise for Linux,
+etc. Shouldn't be hard to set this)
+Audio Controller: Soundblaster 16
+
+Network -> Adapter 1
+Attached to: NAT
+-> Advanced
+Adapter Type: Intel PRO/1000 MT Server
+Promiscuous Mode: Deny (Not sure this matters)
+
+.B Note:
+Enabling USB 2.0 Controll in 'Ports -> USB' works just fine in
+9front, mounting under
+.CW /shr
+flawlessly as long as the host has the Virtualbox Extension Pack running.
+.QE
+.ihtml ul
+
+.FG vbox.4.2.6 png
+
+.html - <a name="3.3.3" />
+.ihtml h3 <h3>
+.SH
+3.3.3 - Virtio
+.R
+.ihtml h3
+
+Current versions of qemu/kvm and virtualbox as of 3.1 support faster paravirtualized devices. Presently, 9front provides drivers for virtio hard disk and network.
+
+The virtio-blk disk device should show up as:
+.CW /dev/sdF0
+
+The virtio-scsi disk device should show up as:
+.CW /dev/sd00
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa2.html">FQA 2 - Getting To Know 9front</a> |
+.html - <a href="fqa4.html">FQA 4 - 9front Installation Guide</a>
--- /dev/null
+++ b/fqa4.ms
@@ -1,0 +1,1148 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa4.ms | page
+.\" htmlroff -u -ms -mhtml fqa4.ms >fqa4.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 4 - 9front Installation Guide
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa3.html">FQA 3 - Hardware</a> |
+.html - <a href="fqa5.html">FQA 5 - Building The System From Source</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 4 - 9front Installation Guide
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa4.html">html</a> |
+.html - <a href="fqa4.pdf">pdf</a> |
+.html - <a href="fqa4.ms">troff</a>
+
+.FG install gif
+
+.FG bar gif
+
+.B ACHTUNG!
+This document (and the 9front installer) pertains only to the 386 install target. For other architectures, read:
+.ihtml a <a href="fqa8.html#8.9">
+8.9 - Bootstrapping architectures not included on the ISO
+.ihtml a
+
+.FG bar gif
+
+.html - <a name="4.1" />
+.ihtml h2 <h2>
+.SH
+4.1 - Pre-installation Checklist
+.R
+.ihtml h2
+
+Before you start your install, you should have some idea what you want to end up with. You will want to know the following items, at least:
+.ihtml ul <ul>
+.IP
+.B
+Machine name,
+.R
+hereafter referred to as
+.CW sysname .
+
+.B
+Hardware installed and available.
+.R
+Read:
+.ihtml a <a href="fqa3.html#3.3">
+.I
+FQA 3.3 - Selecting Hardware.
+.R
+.ihtml a
+Check
+.ihtml a <a href="fqa3.html#3.2">
+.I
+FQA 3.2 - Known Working Hardware
+.R
+.ihtml a
+as well as the
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/Supported_PC_hardware">
+various
+.ihtml a
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/other_hardware">
+supported
+.ihtml a
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/virtual_machines">
+hardware
+.ihtml a
+pages on the Bell Labs Plan 9 wiki to help determine if your hardware or VM is supported.
+
+.B
+Network settings, if not using DHCP:
+.R
+Gather the requisite information for your network (IP, netmask, default gateway, etc.). If you plan to install in a VM, see
+.ihtml a <a href="fqa3.html#3.3">
+.I
+FQA 3.3 - Virtual Machines.
+.R
+.ihtml a
+.LP
+.ihtml ul
+
+In case of trouble, see:
+.ihtml a <a href="fqa9.html">
+.I
+FQA 9 - Troubleshooting,
+.ihtml a
+.ihtml a <a href="fqa2.html#2.2.1">
+.I
+FQA 2.2.1 - Mailing List Archives
+.R
+.ihtml a
+
+.html - <a name="4.2" />
+.ihtml h2 <h2>
+.SH
+4.2 - Creating bootable 9front install media
+.R
+.ihtml h2
+
+.html - <a name="4.2.1" />
+.ihtml h3 <h3>
+.SH
+4.2.1 - ISO image
+.R
+.ihtml h3
+
+Obtain the
+.ihtml a <a href="fqa1.html#1.11.1">
+.CW 9front.iso.
+.ihtml a
+
+Read:
+.ihtml a <a href="fqa1.html#1.11.1">
+.I
+1.11.1 - Mirrors
+.R
+.ihtml a
+
+.html - <a name="4.2.2" />
+.ihtml h3 <h3>
+.SH
+4.2.2 - USB drive
+.R
+.ihtml h3
+
+Booting from USB disk is handled the same way as booting from internal hard drive. In general, the boot process is able to use an ISO image stored on a FAT file system as its root file system, so all that is needed is to install the
+.ihtml a <a href="http://man.9front.org/8/9boot">
+.CW 9boot(8)
+.ihtml a
+bootloader, a kernel and the
+.CW 9front.iso
+on the USB disk.
+
+.html - <a name="4.2.2.1" />
+.ihtml h4 <h4>
+.SH
+4.2.2.1 - Creating on Plan 9
+.R
+.ihtml h4
+
+The path to your USB device will look something like this:
+.CW
+/dev/sdUxxxxx
+.R
+where
+.CW
+xxxxx
+.R
+is the unique name of your usb device.
+
+Build and install the mbr and boot loader:
+.P1
+cd /sys/src/boot/pc
+mk 9bootfat mbr pbs
+disk/mbr -m mbr /dev/sdUxxxxx/data
+.P2
+
+If it doesn't already exist, create and format a FAT partition. Don't forget to set the FAT partition active in the
+.CW
+fdisk
+.R
+menu:
+.P1
+disk/fdisk -b /dev/sdUxxxxx/data
+disk/format -b pbs -d -r 2 /dev/sdUxxxxx/dos
+.P2
+
+Mount the USB device:
+.P1
+dossrv -f /dev/sdUxxxxx/dos sdos
+mount -c /srv/sdos /n/dos
+.P2
+
+Create a suitable
+.CW /n/dos/plan9.ini :
+.P1
+bootfile=9pcf
+mouseport=ask
+monitor=ask
+vgasize=ask
+.P2
+
+.B
+Note:
+.R
+By convention, Plan 9 usually expects text files to end with a newline. If the last line of plan9.ini is not a newline, it could fail to be parsed correctly at boot time.
+
+Copy files to the USB device:
+.P1
+cp /386/9bootfat /n/dos
+chmod +al /n/dos/9bootfat # defrag magic
+cp /386/9pcf /n/dos
+cp /path/to/9front.iso /n/dos
+.P2
+
+Optional for EFI systems:
+.P1
+cd /sys/src/boot/efi; mk install
+mkdir -p /n/dos/efi/boot
+cp /386/boot*.efi /n/dos/efi/boot
+.P2
+
+Unmount the USB device:
+.P1
+unmount /n/dos
+rm -f /srv/sdos
+.P2
+
+Boot the device.
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/prep">
+.CW prep(8)
+.ihtml a
+
+.html - <a name="4.2.2.2" />
+.ihtml h4 <h4>
+.SH
+4.2.2.2 - Creating on Linux
+.R
+.ihtml h4
+
+.B Note:
+There are numerous methods for creating bootable USB devices on Linux. This is one.
+
+Obtain
+.CW mbr ,
+.CW pbs,
+.CW 9bootfat
+and
+.CW 9pcf
+binaries. Either copy them from the distributed ISO image (the files are located under
+.CW /386/ )
+or build up to date binaries on a 9front system. Read:
+.ihtml a <a href="fqa5.html#5.2.2">
+.I
+FQA 5.2.2 - Building from source
+.R
+.ihtml a
+
+On the Linux system, create a
+.CW $dir
+with that contains the following files:
+.ihtml ul <ul>
+.IP
+.CW 9front.iso
+.br
+.CW 9pcf
+.br
+.CW plan9.ini
+(as described above)
+.br
+.CW 9bootfat
+.br
+.CW mbr
+.br
+.CW pbs
+.LP
+.ihtml ul
+
+Optional for EFI systems, create the directory
+.CW boot
+in
+.CW $dir
+and copy the files
+.CW bootia32.efi
+and
+.CW bootx64.efi
+into it.
+
+Use the
+.ihtml a <a href="http://freshmeat.net/projects/makebootfat/">
+makebootfat
+.ihtml a
+tool to create bootable device (ie.
+.CW /dev/sdc ):
+.P1
+$ makebootfat -m $dir/mbr -b $dir/pbs -o /dev/sdc $dir
+.P2
+
+Boot the device.
+
+.html - <a name="4.2.2.3" />
+.ihtml h4 <h4>
+.SH
+4.2.2.3 - Bootargs
+.R
+.ihtml h4
+
+At the bootargs prompt you'll need to enter the path to the ISO on the USB device. It will look something like this:
+.P1
+bootargs=local!/shr/sdUxxxxx/9front.iso
+.P2
+
+If a USB device is not listed, escape to a shell with
+.CW !rc ,
+and
+.CW
+ls /shr
+.R
+to find it.
+
+Read:
+.ihtml a <a href="fqa9.html#9.5.1">
+9.5.1 - Devices not recognized or not working
+.ihtml a
+
+.html - <a name="4.3" />
+.ihtml h2 <h2>
+.SH
+4.3 - Performing a simple install
+.R
+.ihtml h2
+
+There is nothing magical about installing Plan 9. It is simply a matter of populating a Plan 9 file system (
+.CW cwfs
+or
+.CW hjfs
+) and arranging a bootstrap to eventually load a Plan 9 kernel that can then use that file system as its root.
+
+In most cases, the file server is the only machine that needs to have a disk. Once the initial file server is running, setting up an auth server, and enabling
+.CW bootp
+and
+.CW tftp
+for PXE booting, will allow Plan 9 terminals and cpu servers to load kernels from the file server and share its file system over the network.
+
+.B
+Note:
+.R
+This guide describes the default installation of a terminal with disk, which is an amalgamation of a normal Plan 9 network, but is sufficient for exploring the basics of using Plan 9. Configuration of additional services (such as a file server with networking listeners, a cpu server, etc.) is outlined in
+.ihtml a <a href="fqa7.html">
+.I
+FQA 7 - System Management.
+.R
+.ihtml a
+
+To install 9front, boot the
+.CW 9front.iso
+image and follow the steps below.
+
+.html - <a name="4.3.1" />
+.ihtml h3 <h3>
+.SH
+4.3.1 - boot
+.R
+.ihtml h3
+
+Successfully booting the system will result in basic information about the state of the system being printed on screen:
+.P1
+Plan 9
+126 holes free
+00018000 0009f000 552960
+00485000 0cf2c000 212496384
+213049344 bytes free
+cpu0: 3395MHz GenuineIntel P6 (cpuid: AX 0x206A7 CX 0x82982203 DX 0xFEBFBFF)
+ELCR: 0E20
+#l0: AMD79C970: 10Mbps port 0x2000 irq 10: 000c291d0baf
+mylex ctlr @ port 0x10c0: 32-bit wide SCSI host adapter
+512M memory: 207M kernel data, 304M user, 929M swap
+nusb/usbd: /dev/usb: no hubs
+.P2
+
+.html - <a name="4.3.2" />
+.ihtml h3 <h3>
+.SH
+4.3.2 - bootargs
+.R
+.ihtml h3
+
+A list of attached storage devices is printed, followed by a prompt asking for a Plan 9 partition to boot from:
+.P1
+/dev/sdC0: VMware Virtual IDE Hard Drive
+/dev/sdC0/data
+/dev/sdD0: VMware Virtual IDE CDROM Drive
+/dev/sdD0/data 9660
+bootargs is (tcp, il, local!device) [local!/dev/sdD0/data]
+.P2
+
+In most cases, the suggested default will correspond to the device used to boot the ISO image.
+
+.html - <a name="4.3.3" />
+.ihtml h3 <h3>
+.SH
+4.3.3 - user
+.R
+.ihtml h3
+
+Next, a prompt asks for a username:
+.P1
+user[glenda]:
+.P2
+
+Glenda is the default
+.CW hostowner
+name. Don't change this until you know what you are doing. Hit
+.CW enter
+to accept the default.
+
+.B
+Note:
+.R
+The
+.CW hostowner
+differs from the concept of
+.CW root
+on a UNIX system, where a single user
+.CW root
+may take control of all processes
+.I and
+files on the system. By contrast, even the
+.CW hostowner
+of a Plan 9 file server cannot violate file permissions on the file system, except when permissions checking is disabled on the console or when entering special commands at the console of the file server. The
+.CW hostowner
+controls only the
+.I processes
+running on the local machine (in the case of the filserver, the file server process itself is obviously owned by the system's \f(CW hostowner\fR). This fundamental separation between control of processes and file permissions is exploited throughout the system, but can be confusing for users coming from a UNIX background.
+
+.html - <a name="4.3.4" />
+.ihtml h3 <h3>
+.SH
+4.3.4 - vgasize, monitor, mouseport
+.R
+.ihtml h3
+
+The next set of prompts deal with graphics display and the mouse:
+.P1
+vgasize is (text, 640x480x8, 1024x768x16, ...) [1024x768x16]
+monitor is (vesa, xga, lcd, ...) [vesa]
+mouseport is (ps2, ps2intellimouse, 0, 1, 2) [ps2]
+.P2
+
+The boot process prompts for the environment variables
+.CW $vgasize ,
+.CW $monitor
+and
+.CW $mouseport ,
+and the installer will later write those values to the system's
+.CW plan9.ini ,
+from which they are loaded on subsequent system bootup.
+
+Setting
+.CW $monitor
+to anything besides
+.CW vesa
+will bypass the emulated VESA BIOS and attempt to use a native VGA driver for the video card in question. Read:
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/9d875116b400/lib/vgadb">
+.CW /lib/vgadb
+.ihtml a
+for a list of monitors and video cards that are already known by the system; and the man pages
+.ihtml a <a href="http://man.9front.org/3/vga">
+.CW vga(3) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/8/vga">
+.CW vga(8)
+.ihtml a
+and
+.ihtml a <a href="http://man.9front.org/6/vgadb">
+.CW vgadb(6)
+.ihtml a
+for more information about how graphical displays are configured.
+
+The default
+.CW $mouseport
+of
+.CW ps2
+is sufficient in most cases.
+Set it to
+.CW ps2intellimouse
+on laptops or for mice that have a scrollwheel.
+
+.B Note:
+Some laptops require the trackpad to be disabled in the BIOS in order for mouse button 2 (the center button) to function in Plan 9. In a pinch, mouse button 2 may be simulated by holding down the
+.CW shift
+key while clicking mouse button 3 (the right button).
+
+After the install, changes intended to persist across reboots should be added to
+.CW plan9.ini .
+
+Examples:
+
+Values as they appear in
+.CW plan9.ini:
+.P1
+monitor=vesa
+vgasize=1024x768x16
+mouseport=ps2intellimouse
+.P2
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/mouse">
+.CW mouse(8) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/3/vga">
+.CW vga(3) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/6/vgadb">
+.CW vgadb(6) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini(8) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/8/realemu">
+.CW realemu(8) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/8/vga">
+.CW vga(8) ,
+.ihtml a
+.ihtml a <a href="fqa7.html#7.2.2.html">
+.I
+FQA 7.2.2 - How do I modify plan9.ini?
+.R
+.ihtml a
+
+After the
+.CW mouseport
+prompt is answered, the boot process will attempt to start the Plan 9 graphical environment,
+.ihtml a <a href="http://man.9front.org/1/rio">
+.CW rio(1),
+.ihtml a
+opening a
+.ihtml a <a href="http://man.9front.org/8/stats">
+.CW stats(8)
+.ihtml a
+window and a
+.CW rio
+window on top of a gray desktop background.
+
+.FG livecdrio jpg
+
+.html - <a name="4.3.4.1" />
+.ihtml h4 <h4>
+.SH
+4.3.4.1 - Changing screen resolution
+.R
+.ihtml h4
+
+At this point it may be desireable to change the screen resolution. To change video mode from the command line:
+
+vesa:
+
+.B Note:
+Only valid modes listed in the VESA BIOS may be used.
+.P1
+@{rfork n; aux/realemu; aux/vga -p} # obtain a list of vesa bios modes
+@{rfork n; aux/realemu; aux/vga -m vesa -l 1024x768x16} # configure one of the valid modes
+.P2
+
+vga:
+.P1
+aux/vga -m dellst2210 -l 1920x1080x32
+.P2
+
+.html - <a name="4.3.5" />
+.ihtml h3 <h3>
+.SH
+4.3.5 - inst/start
+.R
+.ihtml h3
+
+Installation is performed by the rc scripts in
+.CW /rc/bin/inst .
+To begin the installation, type
+.CW inst/start
+in the terminal window. Follow the prompts to complete the installation, selecting the defaults where appropriate.
+
+.B Note:
+Any task may be repeated by manually entering its name at the next
+.CW
+Task to do
+.R
+prompt.
+
+.P1
+term% inst/start
+Tue Jul 17 12:38:50 CET 2012 Installation process started
+.P2
+
+The following
+.CW
+Task to do
+.R
+steps are handled one at a time:
+
+.html - <a name="4.3.6" />
+.ihtml h3 <h3>
+.SH
+4.3.6 - configfs
+.R
+.ihtml h3
+.P1
+You can install the following types of systems:
+
+ cwfs64x the cached-worm file server
+ hjfs the new 9front file server (experimental!)
+
+File system (cwfs64x, hjfs)[cwfs64x]:
+.P2
+
+.B Note:
+The
+.CW cwfs64x
+file server uses 16KB blocks, with its cache and permanent storage locate on separate partitions. The
+.CW hjfs
+file server uses 4KB blocks, with its cache and permanent storage located on the same partition. If you are installing to a disk of less than 12GB, you should choose
+.CW hjfs .
+
+Read:
+.ihtml a <a href="fqa3.html#3.3">
+.I
+FQA 3.3 - What is an appropriate first system to learn 9front on?
+.R
+.ihtml a
+
+In this example we will press
+.CW enter
+to accept
+.CW cwfs64x
+as the default.
+
+.html - <a name="4.3.7" />
+.ihtml h3 <h3>
+.SH
+4.3.7 - partdisk
+.R
+.ihtml h3
+.P1
+The following disk devices were found.
+
+sdC0 - VMware Virtual IDE Hard Drive
+ empty 0 3916 (3916 cylinders, 29.99 GB)
+
+sdD0 - VMware Virtual IDE CDROM Drive
+
+Disk to partition (sdC0, sdD0)[no default]:
+.P2
+
+Enter the media you wish to install to.
+.P1
+Disk to partition (sdC0, sdD0)[no default]: sdC0
+The disk you selected HAS NO master boot record on its first sector.
+(Perhaps it is a completely blank disk.)
+Shall we create a blank EFI partition table (GPT)
+or install traditional DOS partition table (MBR)?
+.P2
+
+Assuming a blank disk image, install a fresh mbr:
+.P1
+Install mbr or gpt (mbr, gpt)[no default]: mbr
+
+This is disk/fdisk; use it to create a Plan 9 partition.
+If there is enough room, a Plan 9 partition will be
+suggested; you can probably just type 'w' and then 'q'.
+
+cylinder = 8225280 bytes
+'* p1 0 3916 (3916 cylinders, 29.99 GB) PLAN9
+>>>
+.P2
+
+For this example we will use the entire disk. Accept the defaults.
+.P1
+>>> w
+>>> q
+.P2
+
+.html - <a name="4.3.8" />
+.ihtml h3 <h3>
+.SH
+4.3.8 - prepdisk
+.R
+.ihtml h3
+.P1
+The following Plan 9 disk partitions were found.
+
+/dev/sdC0/plan9
+ empty 0 62910477 (62910477 sectors, 29.99 GB)
+
+Plan 9 partition to subdivide (/dev/sdC0/plan9)[/dev/sdC0/plan9]:
+.P2
+
+Use the Plan 9 partition created in the previous step. Hit `enter` to select the default.
+.P1
+This is disk/prep; use it to subdivide the Plan 9 partition.
+If it is not yet subdivided, a sensible layout will be suggested;
+you can probably just type 'w' and then 'q'.
+
+no plan9 partition table found
+9fat 204800
+nvram 1
+other 8957953
+fscache 8957953
+fsworm 44789770
+' 9fat 0 204800 (204800 sectors, 100.00 MB)
+' nvram 204800 204801 (1 sectors, 512 B )
+' other 204801 9162754 (8957953 sectors, 4.27 GB)
+' fscache 9162754 18120707 (8957953 sectors, 4.27 GB)
+' fsworm 18120707 62910477 (44789770 sectors, 21.35 GB)
+>>>
+.P2
+
+Again, accept the defaults.
+.P1
+>>> w
+>>> q
+.P2
+
+.html - <a name="4.3.9" />
+.ihtml h3 <h3>
+.SH
+4.3.9 - mountfs
+.R
+.ihtml h3
+.P1
+The please choose your cwfs64x partitions
+.P2
+
+Hit
+.CW enter
+to select each partition at the prompt.
+.P1
+--rw-r----- S 0 glenda glenda 4586471936 Jul 4 13:28 /dev/sdC0/fscache
+
+Cwfs cache partition (/dev/sdC0/fscache)[/dev/sdC0/fscache]:
+--rw-r----- S 0 glenda glenda 22932362240 Jul 4 13:28 /dev/sdC0/fsworm
+
+Cwfs worm partition (/dev/sdC0/fsworm)[/dev/sdC0/fsworm]:
+--rw-r----- S 0 glenda glenda 4586471936 Jul 4 13:28 /dev/sdC0/other
+
+Cwfs other partition (/dev/sdC0/other)[/dev/sdC0/other]:
+.P2
+
+Since this is a fresh install, we choose
+.CW yes
+to ream (format) the file system:
+.P1
+Ream the file system? (yes, no)[no]: yes
+Starting cwfs64x file server for /dev/sdC0/fscache
+Reaming file system
+bad nvram key
+bad authentication id
+bad authentication domain
+nvrcheck: can't read nvram
+config: config: config: auth is now disabled
+config: config: config: config: config: config: current fs is "main"
+cmd_users: cannot access /adm/users
+63-bit cwfs as of Wed Jul 4 00:59:30 2012
+ last boot Tue Jul 17 13:34:57 2012
+Configuering cwfs64x file server for /dev/sdC0/fscache
+Mounting cwfs64x file server for /dev/sdC0/fscache
+% mount -c /srv/cwfs /n/newfs
+Mounting cwfs64x file server for /dev/sdC0/other
+% mount -c /srv/cwfs /n/other other
+.P2
+
+.html - <a name="4.3.10" />
+.ihtml h3 <h3>
+.SH
+4.3.10 - configdist
+.R
+.ihtml h3
+.P1
+Are you going to download the distribution
+from the internet or do you have it on local media?
+
+Distribution is from (local, net)[local]:
+.P2
+
+We are installing from local media, so,
+.CW local .
+Hit `enter` to accept the default.
+
+.B Note:
+The
+.CW net
+option attempts to download the ISO from the Internet and install it directly to disk. Since the installer is most likely already running from an ISO image, this option may prove to be of limited utility. The option is somewhat experimental, and may work. Attempt it at your own risk.
+
+.html - <a name="4.3.11" />
+.ihtml h3 <h3>
+.SH
+4.3.11 - confignet
+.R
+.ihtml h3
+.P1
+You can connect to the internet via
+a local ethernet or a dial-up PPP connection.
+
+Interface to use (ether, ppp)[ether]:
+
+Please choose a method for configuring your ethernet connection.
+
+ manual - specify IP address, network mask, gateway IP address
+ dhcp - use DHCP to automatically configure
+
+Configuration method (manual, dhcp)[dhcp]:
+.P2
+
+.html - <a name="4.3.11.1" />
+.ihtml h4 <h4>
+.SH
+4.3.11.1 - dhcp
+.R
+.ihtml h4
+
+Hit
+.CW enter
+to move on to the next task.
+
+.html - <a name="4.3.11.2" />
+.ihtml h4 <h4>
+.SH
+4.3.11.2 - manual
+.R
+.ihtml h4
+
+If you chose
+.CW manual ,
+enter values that are appropriate for your network.
+.P1
+Configuration method (manual, dhcp)[dhcp]: manual
+ip address [no default]: 10.0.2.15
+network mask [no default]: 255.255.255.0
+gateway address [no default]: 10.0.2.2
+.P2
+
+.html - <a name="4.3.12" />
+.ihtml h3 <h3>
+.SH
+4.3.12 - mountdist
+.R
+.ihtml h3
+.P1
+Please wait... Scanning storage devices...
+ /dev/sdC0/9fat
+ /dev/sdC0/data
+ /dev/sdC0/fscache
+ /dev/sdC0/fsworm
+ /dev/sdC0/other
+ /dev/sdD0/data
+
+The following storage media were detected.
+Choose the one containing the distribution.
+
+ /dev/sdD0/data (iso9660 cdrom)
+
+Distribution disk (/dev/sdD0/data, /dev/sdC0/fscache, /)[/]:
+.P2
+
+The CD-ROM is already mounted at
+.CW / ,
+so we hit
+.CW enter
+to choose the default.
+
+.P1
+% mount /srv/boot /n/distmedia
+
+Which directory contains the distribution?
+Any of the following will suffice (in order of preference):
+ - the root directory of the cd image
+ - the directory containing 9front.iso
+ - the directory containing 9front.iso.bz2
+
+Location of archives [/]:
+.P2
+
+And again, the root directory of the CD-ROM is already mounted at
+.CW / ,
+so hit
+.CW enter
+to choose the default.
+
+.P1
+% mount /srv/boot /n/distmedia
+
+Which directory contains the distribution?
+Any of the following will suffice (in order of preference):
+ - the root directory of the cd image
+ - the directory containing 9front.iso
+ - the directory containing 9front.iso.bz2
+
+Location of archives [/]:
+.P2
+
+Hit
+.CW enter .
+
+.ihtml h3 <h3>
+.SH
+4.3.13 - copydist
+.R
+.ihtml h3
+Hit
+.CW enter
+at the
+.CW copydist
+prompt to begin the process of copying the distribution files from the install media to the hard disk.
+.P1
+processing /sys/lib/sysconfig/proto/allproto
+.P2
+
+.FG bar gif
+
+.B ACHTUNG!
+Currently, there is no progress meter. For systems without DMA, the
+.CW copydist
+task may exceed one hour in duration. Disk activity may be verified by inspecting the
+.ihtml a <a href="http://man.9front.org/8/stats">
+.CW stats(8)
+.ihtml a
+window.
+
+.FG bar gif
+
+Eventually, you should see the following:
+.P1
+file system made
+.P2
+
+This indicates that the system files have completed copying to the install target.
+
+.html - <a name="4.3.14" />
+.ihtml h3 <h3>
+.SH
+4.3.14 - sysname
+.R
+.ihtml h3
+.P1
+Setup network configuration
+
+sysname [cirno]:
+.P2
+
+Use a system name of your choice, or just hit
+.CW enter
+to select the default.
+
+.html - <a name="4.3.15" />
+.ihtml h3 <h3>
+.SH
+4.3.15 - tzsetup
+.R
+.ihtml h3
+.P1
+Setup Time Zone
+
+Time Zone (Argentina, Australia_ACT, Australia_Broken-Hill,
+Australia_LHI, Australia_NSW, Australia_North, Australia_Queensland,
+Australia_South, Australia_Sturt, Australia_Tasmania,
+Australia_Victoria, Australia_West, Australia_Yancowinna, Brazil_Acre,
+Brazil_DeNoronha, Brazil_East, Brazil_West, CET, Canada_Atlantic,
+Canada_Central, Canada_East-Saskatchewan, Canada_Eastern,
+Canada_Mountain, Canada_Newfoundland, Canada_Pacific, Canada_Yukon,
+Chile_Continental, Chile_EasterIsland, Cuba, EET, Egypt, GB-Eire, GMT,
+HST, Hongkong, Iceland, Iran, Israel, Jamaica, Japan, Libya,
+Mexico_BajaNorte, Mexico_BajaSur, Mexico_General, NZ, NZ_CHAT, Navajo,
+PRC, Poland, ROC, ROK, Singapore, Turkey, US_Alaska, US_Arizona,
+US_Central, US_East-Indiana, US_Eastern, US_Hawaii, US_Michigan,
+US_Mountain, US_Pacific, US_Yukon, W-SU, WET)[US_Eastern]:
+.P2
+
+Daylight saving time (DST) is handled automatically. Type your chosen time zone and hit
+.CW enter .
+
+.html - <a name="4.3.16" />
+.ihtml h3 <h3>
+.SH
+4.3.16 - bootsetup
+.R
+.ihtml h3
+.P1
+Setup Plan 9 FAT boot partition (9fat)
+
+Plan 9 FAT partition (/dev/sdC0/9fat)[/dev/sdC0/9fat]:
+.P2
+
+Hit
+.CW enter
+to accept the default. Any environment variables entered at the
+.CW >
+prompt during boot, as well as settings configured during install will now be written to
+.CW /n/9fat/plan9.ini
+and the kernel will be copied to the
+.CW 9fat
+partition.
+.P1
+dossrv: serving #s/dos
+Initializing Plan 9 FAT partition.
+% disk/format -r 2 -d -b /386/pbs /dev/sdC0/9fat
+Initializing FAT file system
+type hard, 12 tracks, 255 heads, 63 sectors/track, 512 bytes/sec
+used 4096 bytes
+% mount -c /srv/dos /n/9fat /dev/sdC0/9fat
+% rm -f /n/9fat/9bootfat /n/9fat/plan9.ini /n/9fat/9pcf
+% cp /n/newfs/386/9bootfat /n/9fat/9bootfat
+% chmod +al /n/9fat/9bootfat
+% cp /tmp/plan9.ini /n/9fat/plan9.ini
+% cp /n/newfs/386/9pcf /n/9fat/9pcf
+
+If you use the Windows NT/2000/XP master boot record
+or a master boot record from a Unix clone (e.g., LILO or
+FreeBSD bootmgr), it is probably safe to continue using
+that boot record rather than install the Plan 9 boot record.
+.P2
+
+Since we are not installing on a disk with a pre-existing Windows installation, we choose to install the Plan 9 master boot record and mark the partition active:
+.P1
+Install the Plan 9 master boot record (y, n)[no default]: y
+Mark the Plan 9 partition active (y, n)[no default]: y
+
+The Plan 9 partition is now marked as active.
+.P2
+
+.html - <a name="4.3.17" />
+.ihtml h3 <h3>
+.SH
+4.3.17 - finish
+.R
+.ihtml h3
+
+The final task is to remove (or disable) the CD-ROM and finish by hitting
+.CW enter
+to reboot the machine.
+
+Congratulations, you've just installed a 9front system!
+
+Now your cat goes to sleep on the keyboard.
+
+.FG cinapcatdrawing png
+
+.html - <a name="4.4" />
+.ihtml h2 <h2>
+.SH
+4.4 - Encrypted Partitions
+.R
+.ihtml h2
+.html - <br />
+.FG cryptsetup jpg
+
+9front supports booting from encrypted
+.CW fsworm ,
+.CW fscache
+and
+.CW other
+partitions. The following assumes a hard drive
+.CW /dev/sdC0:
+.ihtml ul <ul>
+.IP
+• Begin the installation process as normal by booting
+.CW
+.ihtml a <a href="fqa1.html#1.11.1">
+9front.iso.
+.ihtml a
+.R
+
+• During
+.CW partdisk
+and
+.CW prepdisk ,
+create the
+.CW fsworm ,
+.CW fscache
+and
+.CW other
+partitions as normal.
+
+• At the
+.CW mountfs
+prompt, enter
+.CW !rc
+to drop to a shell prompt.
+
+• Format and activate the encrypted partitions (generates new encryption key):
+.P1
+cryptsetup -f /dev/sdC0/fsworm /dev/sdC0/fscache /dev/sdC0/other
+cryptsetup -i /dev/sdC0/fsworm /dev/sdC0/fscache /dev/sdC0/other
+.P2
+
+• Type
+.CW exit
+to resume the installation.
+
+• During
+.CW mountfs ,
+select the partitions under
+.CW /dev/fs
+instead of the ones under
+.CW /dev/sdC0 .
+
+• During the rest of the installation, select the defaults, where appropriate.
+
+• During post-installation boot, at the
+.CW bootargs
+prompt, type
+.CW !rc
+to drop to a shell prompt.
+
+• Activate the encrypted partitions (prompts for password):
+.P1
+cryptsetup -i /dev/sdC0/fsworm /dev/sdC0/fscache /dev/sdC0/other
+.P2
+
+• Type
+.CW exit
+to resume booting.
+
+• At the
+.CW bootargs
+prompt, enter
+.CW local!/dev/fs/fscache
+to continue booting from the encrypted partition.
+.LP
+.ihtml ul
+
+.B Note:
+Encrypted partitians are largely untested. Data integrity is not guaranteed. Use at your own risk.
+
+Encrypted partitions have not been tested with
+.CW hjfs .
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/cryptsetup">
+.CW cryptsetup(8)
+.ihtml a
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa3.html">FQA 3 - Hardware</a> |
+.html - <a href="fqa5.html">FQA 5 - Building The System From Source</a>
--- /dev/null
+++ b/fqa5.ms
@@ -1,0 +1,286 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa5.ms | page
+.\" htmlroff -u -ms -mhtml fqa5.ms >fqa5.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 5 - Building the System from Source
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa4.html">FQA 4 - 9front Installation Guide</a> |
+.html - <a href="fqa6.html">FQA 6 - Networking</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 5 - Building the System from Source
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa5.html">html</a> |
+.html - <a href="fqa5.pdf">pdf</a> |
+.html - <a href="fqa5.ms">troff</a>
+
+.FG thesource jpg
+
+.html - <a name="5.1" />
+.ihtml h2 <h2>
+.SH
+5.1 - Why should I build my system from source?
+.R
+.ihtml h2
+
+Some reasons why you might actually wish or need to build from source:
+.ihtml ul <ul>
+.IP
+• Updates have been committed since you performed the installation.
+
+• Test or develop new features.
+.LP
+.ihtml ul
+
+.html - <a name="5.2" />
+.ihtml h2 <h2>
+.SH
+5.2 - Building 9front from source
+.R
+.ihtml h2
+
+.html - <a name="5.2.1" />
+.ihtml h3 <h3>
+.SH
+5.2.1 - Update sources
+.R
+.ihtml h3
+
+9front uses
+.ihtml a <a href="http://man.9front.org/1/hg">
+hg(1)
+.ihtml a
+to synchronize the system with the
+.ihtml a <a href="https://code.9front.org/hg/plan9front/">
+9front repository:
+.ihtml a
+.P1
+cd /
+bind -ac /dist/plan9front /
+hg incoming
+hg -v pull -u
+.P2
+
+which is consolidated in the command:
+.P1
+sysupdate
+.P2
+
+If hg refuses to update due to conflicts (e.g. if you installed something locally which was later incorporated into 9front), this is a quick workaround which discards local changes:
+.P1
+hg update -C --clean
+.P2
+
+After the tree is updated, recompile/build the updated programs as needed.
+
+.html - <a name="5.2.1.1" />
+.ihtml h4 <h4>
+.SH
+5.2.1.1 - hgrc
+.R
+.ihtml h4
+
+During installation, the 9front Mercurial repository is copied to
+.CW /dist/plan9front/.hg ,
+is
+.CW
+chmod 775,
+.R
+and is owned by user
+.CW glenda
+and group
+.CW sys .
+To update the repository when logged in as a user other than
+.CW glenda ,
+add that user to group
+.CW sys
+add then add the following to
+.CW $home/lib/hgrc :
+.P1
+[trusted]
+users=glenda
+groups=glenda
+.P2
+
+To use Mercurial with
+.ihtml a <a href="http://man.9front.org/4/webfs">
+.CW webfs(4)
+.ihtml a
+instead of Python's built-in HTTP:
+.P1
+[extensions]
+hgwebfs=
+.P2
+
+.B Note:
+The
+.CW hgwebfs
+extension expects login credentials to be present in
+.ihtml a <a href="http://man.9front.org/4/factotum">
+.CW factotum(4) ,
+.ihtml a
+else Mercurial will abort when any attempt is made to access resources
+that require authentication. To add credentials to
+.CW factotum :
+.P1
+echo\ \'key\ proto=pass\ realm=PAIN\ server=code.9front.org\ service=http \\
+ user=cinap_lenrek\ !password=FckG00gl!\'\ >>/mnt/factotum/ctl
+.P2
+
+.B Note:
+Depending on who you are and the repository being used, your credentials may differ.
+
+Credentials may be saved permanently and loaded into
+.CW factotum
+at boot time using
+.ihtml a <a href="http://fqa.9front.org/fqa8.html#8.4.7">
+.I
+FQA 8.4.7 - secstore.
+.R
+.ihtml a
+
+.html - <a name="5.2.2" />
+.ihtml h3 <h3>
+.SH
+5.2.2 - Building from source
+.R
+.ihtml h3
+
+.B Note:
+A minimum of 512MB RAM is needed to link some programs. If less than 512MB is available, be sure to turn on swap before building. Read:
+.ihtml a <a href="http://man.9front.org/8/swap">
+.CW swap(8) ,
+.ihtml a
+.ihtml a <a href="fqa3.html#3.3">
+.I
+FQA 3.3 - What is an appropriate first system to learn 9front on?
+.R
+.ihtml a
+
+.P1
+# create any missing directories needed for the build
+cd /
+\&. /sys/lib/rootstub
+
+# build everything
+cd /sys/src
+mk install
+mk clean
+
+# build manpage indices
+cd /sys/man
+mk
+
+# build the papers and html (optional)
+cd /sys/doc
+mk
+mk html
+.P2
+
+Build the kernel for 386:
+.P1
+cd /sys/src/9/pc
+mk install
+.P2
+
+Build the kernel for amd64:
+.P1
+cd /sys/src/9/pc64
+mk install
+.P2
+
+Build the kernel for Raspberry Pi:
+.P1
+cd /sys/src/9/bcm
+mk install
+.P2
+
+Read:
+.ihtml a <a href="fqa7.html#7.2.5">
+.I
+FQA 7.2.5 - How do I install a new kernel?
+.R
+.ihtml a
+
+.html - <a name="5.2.2.1" />
+.ihtml h4 <h4>
+.SH
+5.2.2.1 - Cross compiling
+.R
+.ihtml h4
+
+To cross compile, simply set the
+.CW objtype
+environment variable prior to running the build. For example, to build all the amd64 binaries on a 386 system:
+.P1
+# create any missing directories needed for the build
+cd /
+\&. /sys/lib/rootstub
+cd /sys/src
+objtype=amd64 mk install
+.P2
+
+.html - <a name="5.3" />
+.ihtml h2 <h2>
+.SH
+5.3 - Building an ISO
+.R
+.ihtml h2
+
+The 9front ISO is a livecd that also serves as install media.
+
+.B Note:
+Currently, only the 386 architecture is built for the ISO. Read:
+.ihtml a <a href="fqa8.html#8.9">
+.I
+FQA 8.9 - Bootstrapping architectures not included on the ISO
+.R
+.ihtml a
+for more information on booting other architectures.
+
+.P1
+# put your root file system into /n/src9
+bind /root /n/src9
+
+# put your hg repository there
+bind -ac /dist/plan9front /n/src9
+
+# build the iso
+cd /sys/lib/dist
+mk /tmp/9front.iso
+.P2
+
+.html - <a name="5.4" />
+.ihtml h2 <h2>
+.SH
+5.4 - Common Problems when Compiling and Building
+.R
+.ihtml h2
+
+Most of the time, problems in the build process are caused by not following the above directions carefully.
+./" 5.4 should mention that sometimes you end up with a .8 file in a bad
+./" state which can usually be resolved by deleting the .8 file or mk clean
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa4.html">FQA 4 - 9front Installation Guide</a> |
+.html - <a href="fqa6.html">FQA 6 - Networking</a>
--- /dev/null
+++ b/fqa6.ms
@@ -1,0 +1,1097 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa6.ms | page
+.\" htmlroff -u -ms -mhtml fqa6.ms >fqa6.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 6 - Networking
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa5.html">FQA 5 - Building The System From Source</a> |
+.html - <a href="fqa7.html">FQA 7 - System Management</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 6 - Networking
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa6.html">html</a> |
+.html - <a href="fqa6.pdf">pdf</a> |
+.html - <a href="fqa6.ms">troff</a>
+
+.FG networking jpg
+
+.html - <a name="6.1" />
+.ihtml h2 <h2>
+.SH
+6.1 - Before we go any further
+.R
+.ihtml h2
+
+Plan 9's approach to networking is unusual. For the bulk of this document, it helps if you have read and at least partially understood
+.ihtml a <a href="fqa0.html#0.1">
+.I
+FQA 0.1 - What is Plan 9?
+.R
+.ihtml a
+
+Next, read:
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/net/">
+.I
+The Organization of Networks in Plan 9
+.R
+.ihtml a
+
+If you are working with applications such as web servers, FTP servers, and mail servers, you may benefit greatly by
+.ihtml a <a href="http://www.rfc-editor.org/rfc.html">
+reading the RFCs.
+.ihtml a
+Most likely, you can't read all of them. Pick some topics that you are interested in, or that you use in your network environment. Look them up, find out how they are intended to work. The RFCs define many (thousands of) standards for protocols on the Internet and how they are supposed to work.
+
+.B Note:
+A script for downloading all the RFCs is located in
+.CW /lib/rfc/grabrfc .
+It copies the files into
+.CW /lib/rfc/ ,
+and it may take hours for the script to run to completion.
+
+.html - <a name="6.2" />
+.ihtml h2 <h2>
+.SH
+6.2 - Network configuration
+.R
+.ihtml h2
+
+Basic networking is initially configured by the installation process. However, more complex settings or services may be desired. In Plan 9, network configuration is organized in
+.CW ndb ,
+the network database.
+
+From
+.ihtml a <a href="http://man.9front.org/6/ndb">
+.CW ndb(6):
+.ihtml a
+.ihtml ul <ul>
+.QS
+The network database consists of files describing machines
+known to the local installation and machines known publicly.
+The files comprise multi-line tuples made up of
+attribute/value pairs of the form attr=value or sometimes
+just attr. Each line starting without white space starts a
+new tuple. Lines starting with # are comments.
+
+The file /lib/ndb/local is the root of the database. Other
+files are included in the database if a tuple with an
+attribute-value pair of attribute database and no value
+exists in /lib/ndb/local. Within the database tuple, each
+pair with attribute file identifies a file to be included in
+the database. The files are searched in the order they
+appear. For example:
+
+ database=
+ file=/lib/ndb/common
+ file=/lib/ndb/local
+ file=/lib/ndb/global
+
+declares the database to be composed of the three files
+/lib/ndb/common, /lib/ndb/local, and /lib/ndb/global. By
+default, /lib/ndb/local is searched before the others. How-
+ever, /lib/ndb/local may be included in the database to
+redefine its ordering.
+
+Within tuples, pairs on the same line bind tighter than
+pairs on different lines.
+.QE
+.ihtml ul
+
+As mentioned, the installer adds basic information about the machine to the file
+.CW /lib/ndb/local ,
+based on the questions asked during the installation. This file may be edited to modify or expand the definition of the local network.
+
+.html - <a name="6.2.1" />
+.ihtml h3 <h3>
+.SH
+6.2.1 - Host name
+.R
+.ihtml h3
+
+Each machine on the network receives a corresponding section in
+.CW ndb .
+The host name (hereafter referred to as
+.CW sysname )
+is assigned by setting the
+.CW sys=
+tuple:
+.P1
+sys=x301
+.P2
+
+The resulting
+.CW sysname
+is used by the
+.CW /rc/bin/termrc
+and
+.CW /rc/bin/cpurc
+startup scripts, which in turn call upon any additional configuration that may exist in
+.CW /cfg/$sysname/ .
+(Look at the scripts to see how they deal with
+.CW /cfg .)
+
+.html - <a name="6.2.2" />
+.ihtml h3 <h3>
+.SH
+6.2.2 - Identifying and setting up your network interfaces
+.R
+.ihtml h3
+
+Network interfaces are recognized by their MAC addresses, which are identified to
+.CW ndb
+using the
+.CW ether=
+tuple:
+.P1
+sys=x301 ether=00226811f7dd
+.P2
+
+Additional tuples in the same grouping will be used to configure the interface in question.
+
+.html - <a name="6.2.2.1" />
+.ihtml h4 <h4>
+.SH
+6.2.2.1 - Wifi
+.R
+.ihtml h4
+
+The following sections provide information pertaining to specific chipsets.
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini(8) ,
+.ihtml a
+.ihtml a <a href="fqa3.html#3.2">
+.I
+FQA Section 3.2 - Known Working Hardware
+.R
+.ihtml a
+
+.html - <a name="6.2.2.1.1" />
+.ihtml h5 <h5>
+.SH
+6.2.2.1.1 - Interfaces
+.R
+.ihtml h5
+
+.html - <a name="6.2.2.1.1.1" />
+.ihtml h5 <h5>
+.SH
+6.2.2.1.1.1 - wavelan
+.R
+.ihtml h5
+
+Lucent Wavelan (Orinoco) IEEE 802.11b and compatible PCMCIA cards. Compatible cards include the Dell TrueMobile 1150 and the Linksys Instant Wireless Network PC Card. Port and IRQ defaults are 0x180 and 3 respectively.
+
+These cards take a number of unique options to aid in identifying the card correctly on the 802.11b network. The network may be ad hoc or managed (i.e. use an access point):
+.CW
+mode=[adhoc, managed]
+.R
+and defaults to managed. The 802.11b network to attach to (managed mode) or identify as (ad hoc mode), is specified by
+.CW essid=string
+and defaults to a null string. The card station name is given by
+.CW station=string
+and defaults to Plan 9 STA. The channel to use is given by
+.CW channel=number
+where number lies in the range 1 to 16 inclusive; the channel is normally negotiated automatically.
+
+If the card is capable of encryption, the following options may be used:
+.CW
+crypt=[off, on]
+.R
+and defaults to on.
+.CW keyN=string
+sets the encryption key N (where N is in the range 1 to 4 inclusive) to string; this will also set the transmit key to N (see below). There are two formats for string which depend on the length of the string. If it is exactly 5 or 13 characters long it is assumed to be an alphanumeric key; if it is exactly 10 or 26 characters long the key is assumed to be in hex format (without a leading 0x). The lengths are checked, as is the format of a hex key.
+.CW txkey=number
+sets the transmit key to use to be number in the range 1 to 4 inclusive. If it is desired to exclude or include unencrypted packets
+.CW
+clear=[off, on]
+.R
+configures reception and defaults to inclusion.
+
+The defaults are intended to match the common case of a managed network with encryption and a typical entry would only require, for example
+.CW
+essid=left-armpit key1=afish key2=calledraawaru
+.R
+if the port and IRQ defaults are used. These options may be set after boot by writing to the device's ctl file using a space as the separator between option and value, e.g.
+.CW
+echo 'key2 1d8f65c9a52d83c8e4b43f94af' >/net/ether0/0/ctl
+.R
+Card-specific power management may be enabled/disabled by
+.CW
+pm=[on, off]
+.R
+
+.html - <a name="6.2.2.1.1.2" />
+.ihtml h5 <h5>
+.SH
+6.2.2.1.1.2 - wavelanpci
+.R
+.ihtml h5
+
+PCI Ethernet adapters that use the same Wavelan programming interface. Currently the only tested cards are those based on the Intersil Prism 2.5 chipset.
+
+.html - <a name="6.2.2.1.1.3" />
+.ihtml h5 <h5>
+.SH
+6.2.2.1.1.3 - iwl
+.R
+.ihtml h5
+
+Intel Wireless WiFi Link mini PCI-Express adapters require firmware from
+.ihtml a <a href="http://firmware.openbsd.org/firmware/">
+http://firmware.openbsd.org/firmware/iwn-firmware*.tgz
+.ihtml a
+to be present on attach in
+.CW /lib/firmware
+or
+.CW /boot .
+To select the access point, the
+.CW essid=
+and
+.CW bssid=
+parameters can be specified at boot or set during runtime like:
+.P1
+echo essid left-armpit >/net/ether1/clone
+.P2
+
+If both
+.CW essid=
+and
+.CW bssid=
+.R
+are specified, both must match. Scan results appear in the
+.CW ifstats
+file and can be read out like:
+.P1
+cat /net/ether1/ifstats
+.P2
+
+Ad-hoc mode or WEP encryption is currently not supported. To enable WPA/WPA2 encryption, see
+.ihtml a <a href="http://man.9front.org/8/wpa">
+.CW wpa(8)
+.ihtml a
+for details.
+
+.html - <a name="6.2.2.1.1.4" />
+.ihtml h5 <h5>
+.SH
+6.2.2.1.1.4 - rt2860
+.R
+.ihtml h5
+
+Ralink Technology PCI/PCI-Express wireless adapters require firmware from
+.ihtml a <a href="http://firmware.openbsd.org/firmware/">
+http://firmware.openbsd.org/firmware/ral-firmware*.tgz
+.ihtml a
+to be present on attach in
+.CW /lib/firmware
+or
+.CW /boot .
+See the
+.ihtml a <a href="fqa6.html#6.2.2.1.3">
+iwl
+.ihtml a
+section above for configuration details.
+
+.html - <a name="6.2.2.1.1.5" />
+.ihtml h5 <h5>
+.SH
+6.2.2.1.1.5 - wpi
+.R
+.ihtml h5
+
+Intel PRO Wireless 3945abg PCI/PCI-Express wireless adapters require firmware from
+.ihtml a <a href="http://firmware.openbsd.org/firmware/">
+http://firmware.openbsd.org/firmware/*/wpi-firmware*.tgz
+.ihtml a
+to be present on attach in
+.CW /lib/firmware
+or
+.CW /boot .
+See the
+.ihtml a <a href="fqa6.html#6.2.2.1.1.3">
+iwl
+.ihtml a
+section above for configuration details.
+
+.html - <a name="6.2.2.1.2" />
+.ihtml h5 <h5>
+.SH
+6.2.2.1.2 - WPA
+.R
+.ihtml h5
+
+WPA1/TKIP and WPA2/CCMP are supported with the use of the
+.ihtml a <a href="http://man.9front.org/8/wpa">
+.CW wpa(8)
+.ihtml a
+command.
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/wpa">
+.CW wpa(8)
+.ihtml a
+
+.html - <a name="6.2.2.1.3" />
+.ihtml h5 <h5>
+.SH
+6.2.2.1.3 - Wifi Roaming
+.R
+.ihtml h5
+
+A script can be used to dynamically re-associate with available wifi access points:
+
+.ihtml a <a href="http://plan9.stanleylieber.com/rc/wifiroam">
+http://plan9.stanleylieber.com/rc/wifiroam
+.ihtml a
+
+Example usage:
+.P1
+@{wifiroam attwifi | aux/statusmsg -k wifiroam} &
+.P2
+
+.html - <a name="6.2.2.1.4" />
+.ihtml h5 <h5>
+.SH
+6.2.2.1.4 - Wifi Debug
+.R
+.ihtml h5
+
+For cards that use the wifi layer, debug prints (\fBnote:\fR will appear on the console) may be enabled with:
+.P1
+echo debug >\'#l0/ether0/clone\'
+# change this to suit if wifi interface is not #l0
+.P2
+
+or by adding
+.CW debug=1
+to the interface definition in
+.CW plan9.ini .
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini(8)
+.ihtml a
+
+.html - <a name="6.2.3" />
+.ihtml h3 <h3>
+.SH
+6.2.3 - IP address
+.R
+.ihtml h3
+The
+.CW ip=
+tuple is used to associate an IP address with the machine:
+.P1
+sys=x301 ether=00226811f7dd ip=192.168.0.31
+.P2
+
+If no
+.CW ip=
+tuple is present, the boot scripts will attempt to bring up the interface using DHCP (see below).
+
+.html - <a name="6.2.4" />
+.ihtml h3 <h3>
+.SH
+6.2.4 - Default gateway
+.R
+.ihtml h3
+
+The default gateway is configured using the
+.CW ipgw=
+tuple, usually under an
+.CW ipnet=
+section that defines default settings for an entire subnet:
+.P1
+ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1
+.P2
+
+but it may also be specified on a per-machine basis:
+.P1
+sys=x301 ether=00226811f7dd ip=192.168.0.31 ipgw=192.168.0.1
+.P2
+
+.B Note:
+Tuples included in the definition of a machine supercede those defined for the network to which the machine belongs.
+
+.html - <a name="6.2.5" />
+.ihtml h3 <h3>
+.SH
+6.2.5 - DNS Resolution
+.R
+.ihtml h3
+
+DNS resolvers may be specified using the
+.CW dns=
+tuple, and may be configured for an entire network:
+.P1
+ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1
+ dns=192.168.0.1
+.P2
+
+or on a per-machine basis:
+.P1
+sys=x301 ether=00226811f7dd ip=192.168.0.31 dns=192.168.0.1
+.P2
+
+These changes will take effect after a reboot. To configure a DNS resolver on the fly, it is possible to manually edit
+.CW /net/ndb :
+.P1
+ip=192.168.0.31 ipmask=255.255.255.0 ipgw=192.168.0.1
+ sys=x301
+ dom=x301.9front
+ dns=192.168.0.1
+ # add or modify dns= lines to associate the DNS
+ # server 192.168.0.1 with the running system
+.P2
+
+.B Note:
+.CW /net/ndb
+is a synthetic file that represents the current operating state. It does not persist across reboots.
+
+Read:
+.ihtml a <a href="http://man.9front.org/3/ip">
+.CW ip(3)
+.ihtml a
+
+Finally, to turn on debug in
+.CW dns :
+.P1
+echo -n debug >/net/dns
+.P2
+
+.html - <a name="6.2.5.1" />
+.ihtml h4 <h4>
+.SH
+6.2.5.1 - Caching DNS server
+.R
+.ihtml h4
+
+To run a caching DNS server, add entries corresponding to the DNS rootservers in
+.CW /lib/ndb/local :
+.P1
+#
+# entries defining the dns root. these will be overridden by any
+# authentic info obtained from the root.
+#
+dom=
+ ns=A.ROOT-SERVERS.NET
+ ns=B.ROOT-SERVERS.NET
+ ns=C.ROOT-SERVERS.NET
+ ns=D.ROOT-SERVERS.NET
+ ns=E.ROOT-SERVERS.NET
+ ns=F.ROOT-SERVERS.NET
+ ns=G.ROOT-SERVERS.NET
+ ns=H.ROOT-SERVERS.NET
+ ns=I.ROOT-SERVERS.NET
+ ns=J.ROOT-SERVERS.NET
+ ns=K.ROOT-SERVERS.NET
+ ns=L.ROOT-SERVERS.NET
+ ns=M.ROOT-SERVERS.NET
+.P2
+
+Next, modfiy
+.CW /cfg/$sysname/termrc
+or
+.CW /cfg/$sysname/cpurc
+(whichever is appropriate) to include the following:
+.P1
+ndb/dns -rs
+.P2
+
+The caching DNS server will be started at boot time.
+
+Finally, modify
+.CW /lib/ndb/local
+such that the desired machines will use the IP address of the new caching DNS server as their DNS server, either by changing the
+.CW dns=
+tuple under the
+.CW ipnet
+of the corresponding network or by adding a
+.CW dns=
+tuple to the line of each desired machine.
+
+Read:
+.ihtml a <a href="http://man.9front.org/6/ndb">
+.CW ndb(6)
+.ihtml a
+and
+.ihtml a <a href="http://man.9front.org/8/ndb">
+.CW ndb(8)
+.ihtml a
+
+.html - <a name="6.2.5.2" />
+.ihtml h4 <h4>
+.SH
+6.2.5.2 - DNS authoritative name server
+.R
+.ihtml h4
+
+An authoritative domain name record, with associated reverse-lookup and sub-domains, looks like this:
+.P1
+dom=bell-labs.co soa=
+ refresh=10800 ttl=10800
+ serial=2012110732 # serial is automatically maintained if omitted
+ ns=ns5.he.net
+ ns=ns4.he.net
+ ns=ns3.he.net
+ ns=ns2.he.net
+ ns=nm.iawtp.com
+ ns=pp.iawtp.com
+ ns=mars2.iawtp.com
+ dnsslave=slave.dns.he.net
+ mb=sl@stanleylieber.com
+ mx=pp.inri.net pref=5
+ mx=nm.inri.net pref=10
+ mx=mars2.inri.net pref=15
+ txtrr="v=spf1 mx -all"
+
+dom=125.191.107.in-addr.arpa soa=
+ refresh=3600 ttl=3600
+ ns=nm.iawtp.com
+
+dom=bell-labs.co ip=107.191.125.208
+
+dom=www.bell-labs.co cname=bell-labs.co
+.P2
+
+An FQDN may be assigned to an existing machine by adding the
+.CW dom=
+tuple to its definition:
+.P1
+sys=x301 dom=x301.bell-labs.co ether=00226811f7dd ip=192.168.0.31
+.P2
+
+.B Note:
+The dnsslave entries specify slave DNS servers that should be notified when the domain changes. The notification service also requires the
+.CW -n
+flag:
+.P1
+ndb/dns -nrs
+.P2
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/ndb">
+.CW ndb(8)
+.ihtml a
+
+.html - <a name="6.2.6" />
+.ihtml h3 <h3>
+.SH
+6.2.6 - Network-wide configuration
+.R
+.ihtml h3
+
+Settings for an entire network subnet may be defined under an
+.CW ipnet=
+tuple:
+.P1
+ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0
+ ipgw=192.168.0.1
+ auth=192.168.0.2
+ authdom=9front
+ fs=192.168.0.3
+ cpu=192.168.0.4
+ dns=192.168.0.1
+ dnsdomain=9front
+ smtp=192.168.0.4
+
+# ethernet/wifi router
+sys=onoff dom=onoff.9front ip=192.168.0.1
+
+# auth server
+sys=auth dom=auth.9front ether=00d059b6dac8 ip=192.168.0.2
+ bootf=/386/9bootpxe
+
+# cpu server
+sys=cpu dom=cpu.9front ether=001125149137 ip=192.168.0.4
+ bootf=/386/9bootpxe
+
+# file server
+sys=fs dom=fs.9front ether=001641360117 ip=192.168.0.3
+
+# terminal
+sys=x301 dom=x301.9front ether=00226811f7dd ip=192.168.0.31
+ bootf=/386/9bootpxe
+.P2
+
+.html - <a name="6.2.7" />
+.ihtml h3 <h3>
+.SH
+6.2.7 - Activating the changes
+.R
+.ihtml h3
+
+.html - <a name="6.2.7.1" />
+.ihtml h4 <h4>
+.SH
+6.2.7.1 - NIC
+.R
+.ihtml h4
+
+Network interfaces are automatically initialized at boot time. To make a manual change without rebooting, use the
+.ihtml a <a href="http://man.9front.org/8/ipconfig">
+ipconfig(8)
+.ihtml a
+command:
+.P1
+ip/ipconfig -g 192.168.0.1 ether /net/ether0 192.168.0.31 255.255.255.0
+.P2
+
+.html - <a name="6.2.7.2" />
+.ihtml h4 <h4>
+.SH
+6.2.7.2 - cs
+.R
+.ihtml h4
+
+To refresh the network database
+.B NOW
+after changing
+.CW /lib/ndb/local :
+.P1
+echo -n refresh > /net/cs
+.P2
+
+.html - <a name="6.2.7.3" />
+.ihtml h4 <h4>
+.SH
+6.2.7.3 - dns
+.R
+.ihtml h4
+
+.P1
+echo -n refresh > /net/dns
+.P2
+
+.html - <a name="6.2.8" />
+.ihtml h3 <h3>
+.SH
+6.2.8 - Verifying network settings
+.R
+.ihtml h3
+.P1
+% cat /net/ndb
+ip=192.168.0.31 ipmask=255.255.255.0 ipgw=192.168.0.1
+ sys=x301
+ dom=x301.9front
+ auth=192.168.0.2
+ dns=192.168.0.1
+.P2
+
+.html - <a name="6.2.8.1" />
+.ihtml h4 <h4>
+.SH
+6.2.8.1 - Checking routes
+.R
+.ihtml h4
+.P1
+% cat /net/iproute
+0.0.0.0 /96 192.168.0.1 4 none -
+192.168.0.0 /120 192.168.0.0 4i ifc 0
+192.168.0.0 /128 192.168.0.0 4b ifc -
+192.168.0.31 /128 192.168.0.31 4u ifc 0
+192.168.0.255 /128 192.168.0.255 4b ifc -
+255.255.255.255 /128 255.255.255.255 4b ifc 0
+.P2
+
+.html - <a name="6.2.8.1.1" />
+.ihtml h5 <h5>
+.SH
+6.2.8.1.1 - Adding static routes
+.R
+.ihtml h5
+
+Route requests for
+.CW 192.168.1.0/24
+through the gateway
+.CW 192.168.0.99
+(which itself must already be accessible via the existing network configuration):
+.P1
+echo \'add 192.168.1.0 255.255.255.0 192.168.0.99\' >/net/iproute
+.P2
+
+.B Note:
+Manual configurations such as this may be added to optional boot scripts created in
+.CW /cfg/$sysname/ .
+
+Read:
+.ihtml a <a href="http://man.9front.org/3/ip">
+.CW ip(3)
+.ihtml a
+
+.html - <a name="6.2.9" />
+.ihtml h3 <h3>
+.SH
+6.2.9 - Setting up your 9front box as a forwarding gateway
+.R
+.ihtml h3
+
+Read:
+.ihtml a <a href="http://man.9front.org/3/ip">
+.CW ip(3)
+.ihtml a
+
+.html - <a name="6.2.10" />
+.ihtml h3 <h3>
+.SH
+6.2.10 - Setting up aliases on an interface
+.R
+.ihtml h3
+
+Read:
+.ihtml a <a href="http://man.9front.org/3/ip">
+.CW ip(3)
+.ihtml a
+
+.html - <a name="6.3" />
+.ihtml h2 <h2>
+.SH
+6.3 - How do I filter and firewall with 9front?
+.R
+.ihtml h2
+
+No.
+
+.html - <a name="6.4" />
+.ihtml h2 <h2>
+.SH
+6.4 - Dynamic Host Configuration Protocol (DHCP)
+.R
+.ihtml h2
+
+.html - <a name="6.4.1" />
+.ihtml h3 <h3>
+.SH
+6.4.1 - DHCP client
+.R
+.ihtml h3
+
+In
+.CW /lib/ndb/local ,
+if no
+.CW ip=
+tuple is present in the machine's definition, the boot scripts will attempt to obtain an IP address via DHCP.
+
+To obtain a DHCP lease manually:
+.P1
+ip/ipconfig
+.P2
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/ipconfig">
+.CW ipconfig(8)
+.ihtml a
+
+.html - <a name="6.4.2" />
+.ihtml h3 <h3>
+.SH
+6.4.2 - DHCP server
+.R
+.ihtml h3
+
+From
+.ihtml a <a href="http://man.9front.org/8/dhcpd">
+.CW dhcpd(8):
+.ihtml a
+.P1
+Dhcpd runs the BOOTP and DHCP protocols. Clients use these
+protocols to obtain configuration information. This infor-
+mation comes from attribute/value pairs in the network data-
+base (see ndb(6) and ndb(8)). DHCP requests are honored both
+for static addresses found in the NDB and for dynamic
+addresses listed in the command line. DHCP requests are
+honored if either:
+- there exists an NDB entry containing both the ethernet
+address of the requester and an IP address on the originat-
+ing network or subnetwork.
+- a free dynamic address exists on the originating network
+or subnetwork.
+
+A BOOTP request is honored if all of the following are true:
+- there exists an NDB entry containing both the ethernet
+address of the requester and an IP address on the originat-
+ing network or subnetwork.
+- the entry contains a bootf= attribute
+- the file in the bootf= attribute is readable.
+
+Dynamic addresses are specified on the command line as a
+list of addresses and number pairs. For example,
+ ip/dhcpd 10.1.1.12 10 10.2.1.70 12
+directs dhcpd to return dynamic addresses 10.1.1.12 through
+10.1.1.21 inclusive and 10.2.1.70 through 10.2.1.81 inclu-
+sive.
+
+Dhcpd maintains a record of all dynamic addresses in the
+directory /lib/ndb/dhcp, one file per address. If multiple
+servers have access to this common directory, they will cor-
+rectly coordinate their actions.
+
+Attributes come from either the NDB entry for the system,
+the entry for its subnet, or the entry for its network. The
+system entry has precedence, then the subnet, then the net-
+work. The NDB attributes used are:
+
+ip the IP address
+ipmask the IP mask
+ipgw the default IP gateway
+dom the domain name of the system
+fs the default Plan 9 file server
+auth the default Plan 9 authentication server
+dns a domain name server
+ntp a network time protocol server
+time a time server
+wins a NETBIOS name server
+www a World Wide Web proxy
+pop3 a POP3 mail server
+smtp an SMTP mail server
+bootf the default boot file; see ndb(6)
+
+Dhcpd will answer BOOTP requests only if it has been specif-
+ically targeted or if it has read access to the boot file
+for the requester. That means that the requester must spec-
+ify a boot file in the request or one has to exist in NDB
+for dhcpd to answer. Dhcpd will answer all DHCP requests
+for which it can associate an IP address with the requester.
+.P2
+
+To configure a DHCP server on your system, modify
+.CW /cfg/$sysname/cpurc
+or
+.CW /cfg/$sysname/termrc
+(whichever is appropriate) to start
+.CW dhcpd
+and
+.CW tftpd
+at boot time:
+.P1
+ip/dhcpd
+.P2
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/dhcpd">
+.CW dhcpd(8)
+.ihtml a
+
+.html - <a name="6.5" />
+.ihtml h2 <h2>
+.SH
+6.5 - PPP
+.R
+.ihtml h2
+
+Read:
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/Dialup_modem_config/fqa.html">
+Dailup modem config
+.ihtml a
+at the Bell Labs Plan 9 wiki.
+
+.html - <a name="6.6" />
+.ihtml h2 <h2>
+.SH
+6.6 - Setting up a network bridge in 9front
+.R
+.ihtml h2
+
+Read:
+.ihtml a <a href="http://man.9front.org/3/bridge">
+.CW bridge(3)
+.ihtml a
+and
+.ihtml a <a href="http://man.9front.org/3/ip">
+.CW ip(3)
+.ihtml a
+
+.html - <a name="6.7" />
+.ihtml h2 <h2>
+.SH
+6.7 - How do I boot from the network?
+.R
+.ihtml h2
+
+First, read
+.ihtml a <a href="fqa7.html#7.3.3">
+.I
+FQA 7.3.3 - Setting up a listener for network connections.
+.R
+.ihtml a
+The file server should already be running a listener, and an auth server should already be configured and running on the network.
+
+.html - <a name="6.7.1" />
+.ihtml h3 <h3>
+.SH
+6.7.1 - How do I tcp boot?
+.R
+.ihtml h3
+
+It is possible to boot from local media and then mount the root file system over the network. At the
+.CW bootargs
+prompt, type
+.CW tcp .
+At this point,
+.CW ip/ipconfig
+will determine network parameters using DHCP. When file (\f(CWfs\fR) or authentication (\f(CWauth\fR) server IP addresses could not be determined over DHCP then the boot process will prompt for those. When prompted for a
+.CW user ,
+enter a valid username and password that has already been configured on the auth server. The machine should then proceed to mount its root file system from the file server.
+
+.B Note:
+Values for
+.CW fs
+and
+.CW auth
+may be added to
+.CW plan9.ini .
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini(8)
+.ihtml a
+
+.html - <a name="6.7.1.1" />
+.ihtml h4 <h4>
+.SH
+6.7.1.1 - Passing arguments to ipconfig at the bootargs prompt
+.R
+.ihtml h4
+
+When a DHCP server is not available, you may still tcp boot by configuring networking manually at the
+.CW bootargs
+prompt. Everything after
+.CW tcp!
+is passed as arguments to the
+.CW ipconfig
+command.
+
+At the prompt:
+.P1
+bootargs is (tcp, il, local!device) [tcp]
+.P2
+enter something like the following:
+.P1
+tcp!-g 192.168.0.1 ether /net/ether0 192.168.0.23 255.255.255.0
+.P2
+where
+.CW 192.168.0.1
+is the gateway,
+.CW 192.168.0.23
+is the static IP address and
+.CW 255.255.255.0
+the subnet mask.
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/ipconfig">
+.CW ipconfig(8)
+.ihtml a
+
+.html - <a name="6.7.2" />
+.ihtml h3 <h3>
+.SH
+6.7.2 - How do I boot using PXE?
+.R
+.ihtml h3
+
+It is also possible to PXE boot a system.
+
+On the file server, add the following lines to
+.CW /cfg/$sysname/cpurc
+to start
+.CW dhcpd
+and
+.CW tftpd
+at boot time:
+.P1
+ip/dhcpd
+ip/tftpd
+.P2
+
+Add an entry for
+.CW tftp
+under the appropriate
+.CW ipnet=
+tuple in
+.CW /lib/ndb/local :
+.P1
+ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1
+ auth=192.168.0.2
+ authdom=9front
+ cpu=192.168.0.4
+ dns=192.168.0.1
+ dnsdomain=9front
+ smtp=192.168.0.4
+ tftp=192.168.0.3
+.P2
+
+Reboot the file server:
+.P1
+fshalt -r
+.P2
+
+To configure machines that will PXE boot from the file server, edit
+.CW /lib/ndb/local
+on the file server and add a
+.CW bootf=
+(boot file) tuple to the line representing each machine:
+.P1
+sys=x301 dom=x301.9front ether=00226811f7dd ip=192.168.0.31
+ bootf=/386/9bootpxe
+.P2
+
+For the system
+.CW x301
+we would then create a file
+.CW /cfg/pxe/00226811f7dd
+on the file server to serve as its
+.CW plan9.ini :
+.P1
+bootfile=/386/9pcf
+bootargs=tcp
+nobootprompt=tcp
+auth=192.168.0.2
+fs=192.168.0.3
+mouseport=ps2intellimouse
+monitor=vesa
+vgasize=1440x900x32
+*acpi=1
+user=sl
+.P2
+
+.B Note:
+The
+.CW user=
+parameter refers to a single username that has been added both to the file server (for file permissions) as well as to the auth server (for network authentication).
+
+If a file matching the remote system's MAC address is not found under
+.CW /cfg/pxe/ ,
+the file
+.CW /cfg/pxe/default
+(if it exists) will be used instead.
+
+Finally, boot the desired remote systems via PXE. When prompted for a
+.CW user ,
+enter a valid username and password that has already been configured on the auth server. The remote system should now proceed to boot from the file server.
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa5.html">FQA 5 - Building The System From Source</a> |
+.html - <a href="fqa7.html">FQA 7 - System Management</a>
--- /dev/null
+++ b/fqa7.ms
@@ -1,0 +1,1635 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa7.ms | page
+.\" htmlroff -u -ms -mhtml fqa7.ms >fqa7.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 7 - System Management
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa6.html">FQA 6 - Networking</a> |
+.html - <a href="fqa8.html">FQA 8 - Using 9front</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 7 - System Management
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa7.html">html</a> |
+.html - <a href="fqa7.pdf">pdf</a> |
+.html - <a href="fqa7.ms">troff</a>
+
+.FG orgchart jpg
+
+
+.html - <a name="7.1" />
+.ihtml h2 <h2>
+.SH
+7.1 - Plan 9 Services Overview
+.R
+.ihtml h2
+.html - <br />
+.FG plan9network png
+
+In order to be an effective system manager it is a good idea to understand how the system is designed, and how it is intended to be used.
+
+A Plan 9 installation consists of a disk file server, an authentication server, and one or more cpu servers and terminals\(emall sharing the same disk file system.
+
+That said, Plan 9 services may be run on separate machines, all together on one machine, or in various combinations. The original design of Plan 9 assumed that each network service would run on separate hardware; by design, individual components of the system are generally unaware if they co-exist on the same machine or are distributed amongst separate machines.
+
+This document will describe individual services as if they are all running separately.
+
+Read:
+.ihtml a <a href="http://doc.cat-v.org/plan_9/1st_edition/designing_plan_9">
+.I
+Designing Plan 9,
+.R
+.ihtml a
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/9">
+.I
+Plan 9 From Bell Labs,
+.R
+.ihtml a
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/net">
+.I
+The Organization of Networks in Plan 9
+.R
+.ihtml a
+
+.html - <a name="7.1.1" />
+.ihtml h3 <h3>
+.SH
+7.1.1 - What is the kernel?
+.R
+.ihtml h3
+
+The kernel is a service that provides processes and resources to users active on an individual machine. Every Plan 9 machine boots a kernel.
+
+At boot time the kernel takes on the identify of
+.CW $user
+(the user who logs in at the console), which becomes the
+.CW hostowner
+of the system. The
+.CW hostowner
+in turn 1.) controls access to the kernel's resources, 2.) serves as the auth identity (\f(CWauthid\fR) of the machine and the services it provides.
+
+.B Note:
+The
+.CW hostowner
+differs from the concept of
+.CW root
+on a UNIX system, where a single user
+.CW root
+may take control of all processes
+.I and
+files on the system. By contrast, even the
+.CW hostowner
+of a Plan 9 file server cannot violate file permissions on the file server, except when permissions checking is disabled on the console or when entering special commands at the console of the file server. The
+.CW hostowner
+controls only the
+.I processes
+running on the local machine. This fundamental separation between control of processes and file permissions is exploited throughout the Plan 9 system, but can be confusing for users coming from a UNIX background.
+
+.html - <a name="7.1.2" />
+.ihtml h3 <h3>
+.SH
+7.1.2 - What is the file server?
+.R
+.ihtml h3
+
+In a traditional Plan 9 network there is one disk file server, typically the only machine with a physical hard disk, that serves files to all other machines on the network. In most cases, other machines are either diskless or only use their disks for local caching. Ken Thompson's original Plan 9 file server ran a unique, special-purpose kernel that
+.I only
+served files, and whose configuration could only be changed at the console. In 9front, the file server runs a normal kernel and typically also runs as a cpu server (for remote access).
+
+9front supports two different disk file systems for use on the file server:
+.CW cwfs
+and
+.CW hjfs .
+.CW cwfs
+is a userspace port of Ken Thompson's original Plan 9 file server.
+.CW hjfs
+is a new, experimental file server that stores both the cache and worm on a single partition (and thus requires less disk space to be used effectively). Both are reasonably robust.
+
+Read:
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/fs">
+.I
+The Plan 9 File Server
+.R
+.ihtml a
+(deprecated, but partially applies to \f(CWcwfs\fR),
+.ihtml a <a href="http://man.9front.org/4/cwfs">
+.CW cwfs(4) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/4/hjfs">
+.CW hjfs(4)
+.ihtml a
+
+.B Note:
+Since most Plan 9 systems have no disk, security of the file server is largely protected from breaches of security in its clients. The fewer the programs that run on the file server, the more isolated it can be from security holes in programs.
+
+.B Note:
+Users seeking access to the file server must be added as a user on the file system itself, and, if auth is enabled, added to the auth server's user database.
+
+.html - <a name="7.1.3" />
+.ihtml h3 <h3>
+.SH
+7.1.3 - What is the auth server?
+.R
+.ihtml h3
+
+The auth server manages authentication for an entire Plan 9 network. It boots a normal kernel but is usually run on a separate, diskless machine that performs no other functions, in order to reduce the danger of a security breach compromising its kernel processes. That said, the auth server is usually also configured as a cpu server, for remote access.
+
+.B Note:
+The
+.ihtml a <a href="http://man.9front.org/8/cron">
+.CW cron(8)
+.ihtml a
+service should be run only on the auth server, where it can authenticate itself to access any of the other machines on the network.
+
+Read:
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/auth">
+.I
+Security in Plan 9,
+.R
+.ihtml a
+.ihtml a <a href="http://man.9front.org/8/auth">
+.CW auth(8)
+.ihtml a
+
+.html - <a name="7.1.4" />
+.ihtml h3 <h3>
+.SH
+7.1.4 - What is the cpu server?
+.R
+.ihtml h3
+
+The cpu server is used for remote computation. A cpu server's kernel runs processes in isolation, on only that machine. The boot process of a cpu server (defined by setting
+.CW service=cpu
+in the machine's
+.CW plan9.ini
+or equivalent) may be examined by reading the
+.CW /rc/bin/cpurc
+script, which is executed at boot time.
+
+Common use cases for a separate cpu server are: To execute programs compiled for a different architecture than that of the terminal; To execute programs closer to the data they are operating upon (for example, if the terminal is running over a slow link but the cpu server is on the same ethernet segment as the file server); To execute processes in physical isolation from other processes. In the early days of Plan 9, a cpu server was often significantly more powerful than the (often, special-purpose) hardware used for diskless terminals. Today, terminals are typically powerful computers in their own right, and the need for a separate machine running only as a cpu server is less common. That said, it can be useful to execute unstable or unpredictable programs on a separate machine so that frequently crashing and/or rebooting does not affect one's immediate workspace environment\(emespecially when testing new code. In the case of remote (mail, web, etc.) servers, it is also likely that cpu access would be desired.
+
+In practice, the disk file server, the auth server, and even some terminals will often run their own cpu listeners, to enable remote access to the processes controlled by their kernels.
+
+.B Note:
+Users seeking access to a cpu server must first be added on the file system of the cpu server's corresponding file server (for permission to access and modify files) as well as the user database of its auth server (for login authentication).
+
+Read:
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/net/">
+.I
+The Organization of Networks in Plan 9,
+.R
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/cpu">
+.CW cpu(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/4/exportfs">
+.CW exportfs(4)
+.ihtml a
+
+.html - <a name="7.1.5" />
+.ihtml h3 <h3>
+.SH
+7.1.5 - What is a terminal?
+.R
+.ihtml h3
+
+The terminal is the machine at which the Plan 9 user is most often physically located. Usually diskless, the terminal will typically run with graphics enabled (for launching the
+.CW rio
+GUI or other graphical programs). The boot process of a terminal (defined by setting
+.CW service=terminal
+in the machine's
+.CW plan9.ini
+or equivalent) may be examined by reading the
+.CW /rc/bin/termrc
+script, which is executed at boot time.
+
+.B Note:
+Many Plan 9 users run stand-alone systems that operate \(em effectively \(em as a combined terminal and file server. For example, inside a virtual machine such as qemu, or booted from hard disk on a laptop. In this case the Plan 9 network is entirely self-contained, running one kernel on one machine, which renders auth and cpu services superfluous. This configuration trades some of the inherent security of separate hardware and kernel boundaries for the convenience of combining the whole system into a single, bootable instance.
+
+.B Note:
+Terminal users who do not run stand-alone machines or who wish to access Plan 9 network resources must first be added to the file system of the network's file server, and to the user database of the network's auth server.
+
+.html - <a name="7.2" />
+.ihtml h2 <h2>
+.SH
+7.2 - Kernel configuration and maintenance
+.R
+.ihtml h2
+
+.html - <a name="7.2.1" />
+.ihtml h3 <h3>
+.SH
+7.2.1 - How do I mount the 9fat partition?
+.R
+.ihtml h3
+
+9front has done away with the scripts
+.CW 9fat: ,
+.CW c: ,
+and so forth, that are found in the
+.ihtml a <a href="http://plan9.bell-labs.com/plan9">
+Bell Labs Plan 9
+.ihtml a
+distribution. Instead, use the
+.CW 9fs
+script to mount the 9fat partition:
+.P1
+9fs 9fat
+.P2
+
+If you are not at the console, or if
+.CW #S
+has not already been bound over
+.CW /dev :
+.P1
+bind -b '#S' /dev # bind the local hard drive kernel device over /dev
+9fs 9fat /dev/sdXX/9fat # specify the full path to the corresponding 9fat
+.P2
+
+.B Note:
+.CW
+9fs 9fat
+.R
+posts a file descriptor in
+.CW /srv/dos .
+If this file already exists and is already in use,
+.CW
+9fs 9fat
+.R
+will fail. If no other process is using the file it is safe to simply remove it and run
+.CW
+9fs 9fat
+.R
+again.
+
+Read:
+.ihtml a <a href="http://man.9front.org/4/dossrv">
+.CW dossrv(4)
+.ihtml a
+
+.html - <a name="7.2.2" />
+.ihtml h3 <h3>
+.SH
+7.2.2 - How do I modify plan9.ini?
+.R
+.ihtml h3
+
+Mount the
+.CW 9fat
+partition and then edit the file
+.CW /n/9fat/plan9.ini .
+
+.B Note:
+The file must end with a newline.
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini(8)
+.ihtml a
+
+.html - <a name="7.2.3" />
+.ihtml h3 <h3>
+.SH
+7.2.3 - Kernel configuration file
+.R
+.ihtml h3
+
+Kernel configuration files are stored in the kernel directory and share the name of the kernel to which they apply. For example, the configuration file for the
+.CW pcf
+kernel is
+.CW /sys/src/9/pc/pcf .
+
+.html - <a name="7.2.4" />
+.ihtml h3 <h3>
+.SH
+7.2.4 - Kernel drivers
+.R
+.ihtml h3
+
+Kernel driver source files are located in the kernel source directory. For example, the
+.CW pc
+kernel source is located in
+.CW /sys/src/9/pc .
+
+.html - <a name="7.2.5" />
+.ihtml h3 <h3>
+.SH
+7.2.5 - How do I install a new kernel?
+.R
+.ihtml h3
+
+To build and install the new kernel(s) on the file system:
+
+For 386:
+.P1
+cd /sys/src/9/pc
+mk install # kernel is copied to /386/9pcf
+.P2
+
+For amd64:
+.P1
+cd /sys/src/9/pc64
+mk install # kernel is copied to /amd64/9pc64
+.P2
+
+For bcm (Raspberry Pi, etc.):
+.P1
+cd /sys/src/9/bcm
+mk install # kernel is copied to /arm/9pif
+.P2
+
+For 386 and amd64 machines with local disk, it may be desired to install the new bootloader and kernels onto the
+.CW 9fat
+partition, in order to boot directly from disk.
+.B Note:
+The bootloader needs to be continuous on disk, so simply copying over the original file does not produce the desired effect. Instead:
+.P1
+9fs 9fat
+rm /n/9fat/9bootfat
+cp /386/9bootfat /n/9fat/
+chmod +al /n/9fat/9bootfat # defrag magic
+.P2
+
+then copy the desired kernels:
+
+For 386:
+.P1
+cp /386/9pcf /n/9fat/
+.P2
+
+For amd64:
+.P1
+cp /amd64/9pc64 /n/9fat/
+.P2
+
+Finally, if a different kernel is being intsalled than the one currently running, edit
+.CW plan9.ini
+and change
+.CW bootfile
+to point to the new kernel.
+
+Read:
+.ihtml a <a href="fqa7.html#7.2.2">
+.I
+FQA 7.2.2 - How do I modify plan9.ini?
+.R
+.ihtml a
+
+.html - <a name="7.3" />
+.ihtml h2 <h2>
+.SH
+7.3 - Fileserver configuration and maintenance
+.R
+.ihtml h2
+
+.html - <a name="7.3.1" />
+.ihtml h3 <h3>
+.SH
+7.3.1 - Adding users
+.R
+.ihtml h3
+
+Add a new user on the file server:
+
+For
+.CW cwfs :
+.P1
+echo newuser username >>/srv/cwfs.cmd
+.P2
+
+For
+.CW hjfs :
+.P1
+echo newuser username >>/srv/hjfs.cmd
+.P2
+
+If needed, make the new user a member of another group (example: upas):
+
+For
+.CW cwfs :
+.P1
+echo newuser upas +username >>/srv/cwfs.cmd
+.P2
+
+For
+.CW hjfs :
+.P1
+echo newuser upas +username >>/srv/hjfs.cmd
+.P2
+
+Both file servers store their user database in
+.CW /adm/users .
+Examine this file, and the contents of the
+.CW /usr
+directory, to evaluate success.
+
+.B Note:
+It is also possible to access the control file interactively:
+
+For
+.CW cwfs :
+.P1
+con -C /srv/cwfs.cmd
+.P2
+
+For
+.CW hjfs :
+.P1
+con -C /srv/hjfs.cmd
+.P2
+
+From here commands may be entered directly.
+
+Type
+.CW
+Ctrl-\e
+.R
+to resume the
+.CW con
+prompt, followed by
+.CW q
+to quit.
+
+.B Note:
+New users are created without a profile, mail directory, tmp directory (needed to edit files with
+.CW sam )
+or other confections. To install a default profile for a new user, upon first login as that user, run:
+.P1
+\&/sys/lib/newuser
+.P2
+then edit
+.CW /usr/username/lib/profile
+to your own specifications. The
+.CW newuser
+file system command is described in the man pages
+.ihtml a <a href="http://man.9front.org/8/fs">
+.CW fs(8)
+.ihtml a
+(for \f(CWcwfs\fR) and
+.ihtml a <a href="http://man.9front.org/8/hjfs">
+.CW hjfs(8) .
+.ihtml a
+
+.html - <a name="7.3.2" />
+.ihtml h3 <h3>
+.SH
+7.3.2 - Configuring nvram
+.R
+.ihtml h3
+
+The cpu kernel checks the
+.CW nvram
+file for valid auth credentials and attempts to copy them into
+.CW factotum
+so that the machine may boot without manual intervention. To configure the
+.CW nvram ,
+run the command
+.CW auth/wrkey ,
+which will prompt for an
+.CW authid ,
+.CW authdom ,
+.CW
+secstore key,
+.R
+and
+.CW password .
+The
+.CW authid
+is a synonym for the
+.CW hostowner
+of the machine and should be a valid user that has already been (or will be) added to the corresponding auth server, in this case
+.CW glenda .
+The
+.CW authdom
+is the authentication domain for the machine, in this case
+.CW 9front .
+The
+.CW
+secstore key
+.R
+and
+.CW password
+are secret passwords of eight characters or more in length. The
+.CW password
+is the password belonging to the
+.CW authid
+user on the auth server responsible for the
+.CW authdom
+entered above. The
+.CW
+secstore key
+.R
+is the password of the user on the secure-store server (Read:
+.ihtml a <a href="http://man.9front.org/1/secstore">
+.CW secstore(1)
+.ihtml a
+and
+.ihtml a <a href="http://man.9front.org/8/secstore">
+.CW secstore(8)) .
+.ihtml a
+If
+.CW secstore
+is not being used, just hit
+.CW enter
+at the
+.CW
+secstore key:
+.R
+prompt.
+
+Run the command
+.CW auth/wrkey :
+.P1
+bad nvram key
+bad authentication id
+bad authentication domain
+authid: glenda
+authdom: 9front
+secstore key: [glenda's secstore password]
+password: [glenda's password]
+.P2
+
+.B Note:
+Booting the file system with authentication enabled and an invalid
+.CW nvram
+file will cause
+.CW auth/wrkey
+to be run automatically at startup.
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/auth">
+.CW auth(8)
+.ihtml a
+
+.html - <a name="7.3.3" />
+.ihtml h3 <h3>
+.SH
+7.3.3 - Setting up a listener for network connections
+.R
+.ihtml h3
+
+In order for remote machines to mount the file system of the file server, the file server must first be running a network listener. This section details the steps required to transform a terminal with disk (the result of a default install of 9front) into a disk file server for other machines.
+
+The first step is to switch from the terminal service to the cpu service by editing the
+.CW service
+line in in
+.CW /n/9fat/plan9.ini :
+.P1
+service=cpu
+.P2
+
+Read:
+.ihtml a <a href="fqa7.html#7.2.2">
+.I
+FQA 7.2.2 - How do I modify plan9.ini?
+.R
+.ihtml a
+
+Before rebooting, configure the nvram:
+.ihtml a <a href="fqa7.html#7.3.2">
+.I
+FQA 7.3.2 - Configuring nvram.
+.R
+.ihtml a
+This allows the machine to load auth credentials from the
+.CW nvram
+file into
+.CW factotum ,
+so that it can continue to boot without manual intervention.
+
+Reboot:
+.P1
+fshalt -r
+.P2
+
+The next step (on cwfs; not needed on hjfs) is to enable authentication on the file server, to prevent unauthorized users from accessing the disk over the network. At the
+.CW bootargs
+prompt, retype the default and add the
+.CW -c
+flag to enter the file server's config mode. At the
+.CW config
+prompt, type
+.CW noauth
+twice to toggle authentication on the file server. Finally, type
+.CW end
+to continue with the boot process:
+.P1
+bootargs is (tcp, local!device) [local!/dev/sdXX/fscache] local!/dev/sdXX/fscache -c
+config: noauth
+auth is now disabled
+config: noauth
+auth is now enabled
+config: end
+.P2
+
+The machine will now continue to boot.
+
+Once booted, the next step is to configure the file server to listen for connections from remote hosts. Modify the
+.CW bootargs
+of the file server in
+.CW /n/9fat/plan9.ini :
+
+For cwfs:
+.P1
+bootargs=local!/dev/sdXX/fscache -a tcp!*!564
+.P2
+
+For hjfs:
+.P1
+bootargs=local!/dev/sdXX/fs -m 702 -A -a tcp!*!564
+.P2
+
+.B Note:
+The
+.CW
+-m 702
+.R
+flag for
+.CW hjfs
+allocates 702 megabytes of memory to be used as a cache. This value is typically automatically calculated by the 9front installer, and may differ on your system. There is no need to change whatever default was already configured.
+
+Read:
+.ihtml a <a href="fqa7.html#7.2.2">
+.I
+FQA 7.2.2 - How do I modify plan9.ini?
+.R
+.ihtml a
+
+Reboot the file server:
+.P1
+fshalt -r
+.P2
+
+When the system finishes booting it should now be listening for network connections to the file system. Users who have been added to the file server and the auth server should now be able to authenticate and mount the file server (tcp boot, etc.).
+
+Read:
+.ihtml a <a href="http://man.9front.org/4/cwfs">
+.CW cwfs(4) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/4/hjfs">
+.CW hjfs(4) ,
+.ihtml a
+.ihtml a <a href="fqa6.html#6.7.1">
+.I
+FQA 6.7.1 - How do I tcp boot?
+.R
+.ihtml a
+
+.html - <a name="7.3.4" />
+.ihtml h3 <h3>
+.SH
+7.3.4 - Mounting a file system from userspace
+.R
+.ihtml h3
+
+For cwfs:
+.P1
+% cwfs64x -n fs -f /dev/sdE0/fscache # use the correct path to your fscache
+% mount /srv/fs /n/fs
+
+.B Note:
+Running the above commands will post the file systems's console in
+.CW /srv/fs.cmd .
+.P2
+
+For hjfs:
+.P1
+.I
+to be announced
+.R
+.P2
+
+.html - <a name="7.4" />
+.ihtml h2 <h2>
+.SH
+7.4 - Auth server configuration and maintenance
+.R
+.ihtml h2
+
+.html - <a name="7.4.1" />
+.ihtml h3 <h3>
+.SH
+7.4.1 - Configuring an auth server
+.R
+.ihtml h3
+
+The auth server should be booted with
+.CW service=cpu
+in
+.CW plan9.ini ,
+and
+.CW ndb
+modified to associate the new auth server with the desired
+.CW authdom .
+
+If the cpu server machine boots from a local disk, edit the
+.CW service
+line in in
+.CW /n/9fat/plan9.ini :
+.P1
+service=cpu
+.P2
+
+Read:
+.ihtml a <a href="fqa7.html#7.2.2">
+.I
+FQA 7.2.2 - How do I modify plan9.ini?
+.R
+.ihtml a
+
+If the machine boots via PXE, edit the
+.CW service
+line in in the file under
+.CW /cfg/pxe/
+that correspondes to its MAC address. In this case,
+.CW /cfg/pxe/000c292fd30c :
+.P1
+service=cpu
+.P2
+
+.B Note:
+The contents of
+.CW /cfg/pxe/000c292fd30c
+serves as the equivalent of
+.CW plan9.ini
+for the PXE booted machine. Any other settings that would normally be configured in
+.CW plan9.ini
+may also be entered there.
+
+Next,
+.CW ndb
+must be modified to associate the new auth server with the desired
+.CW authdom .
+Assuming the auth server has a MAC address of
+.CW 00:0c:29:2f:d3:0c ,
+an IP address of
+.CW 192.168.0.2 ,
+and a default gateway/DNS server of
+.CW 192.168.0.1
+that are all on the Class C network
+.CW 192.168.0.0/24 ,
+and that the
+.CW authdom
+is
+.CW 9front ,
+edit
+.CW /lib/ndb/local
+and add the
+.CW authdom
+and the auth server's IP under the corresponding
+.CW ipnet :
+.P1
+ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0
+ ipgw=192.168.0.1
+ auth=192.168.0.2 # add auth server's ip
+ authdom=9front # add authdom
+ fs=192.168.0.3
+ cpu=192.168.0.4
+ dns=192.168.0.1
+ dnsdomain=9front
+ smtp=192.168.0.4
+.P2
+
+Read:
+.ihtml a <a href="http://man.9front.org/6/ndb">
+.CW ndb(6)
+.ihtml a
+
+Before rebooting, configure the nvram:
+.ihtml a <a href="fqa7.html#7.3.2">
+.I
+FQA 7.3.2 - Configuring nvram.
+.R
+.ihtml a
+This allows the machine to load auth credentials from the
+.CW nvram
+file into
+.CW factotum ,
+so that it can continue to boot without manual intervention.
+
+.B Note:
+If the auth server's
+.CW hostowner
+(referred to as
+.CW authid
+in the
+.CW auth/wrkey
+dialogue) will be any other user than the default
+.CW glenda ,
+that user must be authorized (in the auth context) to "speak for" other users. Assuming a hostowner of
+.CW sl ,
+add a rule to
+.CW /lib/ndb/auth :
+.P1
+hostid=sl
+ uid=!sys uid=!adm uid=*
+.P2
+This rule allows the user
+.CW sl
+to speak for all users
+.I
+except for
+.R
+.CW sys
+and
+.CW adm .
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/auth">
+.CW auth(8)
+.ihtml a
+
+Reboot:
+.P1
+fshalt -r
+.P2
+
+At boot time, the shell script
+.CW /rc/bin/cpurc
+consults
+.CW ndb
+to determine if the machine is an auth server. If it is, the script will launch the
+.CW keyfs
+process and start listeners for auth connections. If, after booting,
+.CW keyfs
+is not running, something went wrong.
+
+Finally, create an auth user and configure an auth password for the hostowner of the machine. This auth user should be the same name as the
+.CW authid
+that was entered at boot time during the
+.CW auth/wrkey
+dialogue. Likewise, set the
+.CW password
+to match the
+.CW password
+that was entered during the
+.CW auth/wrkey
+dialogue.
+.B Note:
+If the user and password do not match what was entered during the
+.CW auth/wrkey
+dialogue, users will not be able to authenticate using this auth server.
+
+Read:
+.ihtml a <a href="fqa7.html#7.4.2">
+.I
+FQA 7.4.2 - Adding users
+.R
+.ihtml a
+
+.html - <a name="7.4.1.1" />
+.ihtml h4 <h4>
+.SH
+7.4.1.1 - Avoiding an ndb entry for the auth server
+.R
+.ihtml h4
+
+If an auth server for a given
+.CW authdom
+is not found in the local
+.CW ndb ,
+then the
+.CW authdial()
+function from the
+.CW libauthsrv
+library (used for resolving auth servers) will default to the dns host name
+.CW p9auth.example.com ,
+where
+.CW p9auth
+is the subdomain, and
+.CW example.com
+is the authdom. This convention (where followed) is useful to avoid having to manually add auth server information for arbitrary remote networks to the local
+.CW ndb .
+
+.html - <a name="7.4.2" />
+.ihtml h3 <h3>
+.SH
+7.4.2 - Adding users
+.R
+.ihtml h3
+
+To add a new user to the auth server, login as the auth server's
+.CW hostowner ,
+make sure
+.CW auth/keyfs
+is running in your namespace, and then set an auth password for the user:
+.P1
+% auth/keyfs
+% auth/changeuser username
+Password: # type password here, will not echo
+Confirm password: # confirm password here, will not echo
+assign Inferno/POP secret? (y/n) n
+Expiration date (YYYYMMDD or never)[return = never]:
+2 keys read
+Post id:
+User's full name:
+Department #:
+User's email address:
+Sponsor's email address:
+user username installed for Plan 9
+.P2
+
+.B Note:
+Questions that appear after the
+.CW
+keys read
+.R
+notice are optional. Hit
+.CW Enter
+for each one to leave them blank.
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/auth">
+.CW auth(8),
+.ihtml a
+.ihtml a <a href="http://man.9front.org/4/keyfs">
+.CW keyfs(4)
+.ihtml a
+
+.html - <a name="7.4.3" />
+.ihtml h3 <h3>
+.SH
+7.4.3 - secstored
+.R
+.ihtml h3
+
+Secstore authenticates to a secure-store server using a
+password and optionally a hardware token, then saves or
+retrieves a file. This is intended to be a credentials
+store (public/private keypairs, passwords, and other
+secrets) for a
+.CW factotum .
+
+To set up
+.CW secstored ,
+login to the auth server as
+.CW hostowner
+and:
+.P1
+mkdir /adm/secstore
+chmod 770 /adm/secstore
+.P2
+
+Start
+.CW secstored
+at boot time by adding the following to
+.CW /cfg/$sysname/cpurc
+on the auth server:
+.P1
+auth/secstored
+.P2
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/secstore">
+.CW secstore(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/8/secstore">
+.CW secstore(8)
+.ihtml a
+
+.html - <a name="7.4.3.1" />
+.ihtml h4 <h4>
+.SH
+7.4.3.1 - Adding users to secstore
+.R
+.ihtml h4
+
+.CW secuser
+is an administrative command that runs on the secstore machine,
+normally the auth server, to create new accounts and to change status on
+existing accounts. It prompts for account information such as password
+and expiration date, writing to
+.CW /adm/secstore/who/user
+for a given secstore user.
+
+Login to the auth server as
+.CW hostowner
+and:
+.P1
+auth/secuser username
+.P2
+and answer the prompts.
+
+By default,
+.CW secstored
+warns the client if no account exists.
+If you prefer to obscure this information, use
+.CW secuser
+to create an account
+.CW FICTITIOUS .
+
+Read:
+.ihtml a <a href="fqa8.html#8.4.7">
+.I
+FQA 8.4.7 - secstore
+.R
+.ihtml a
+for more information on using the
+.CW secstore
+lient.
+
+.html - <a name="7.5" />
+.ihtml h2 <h2>
+.SH
+7.5 - Cpu server configuration and maintenance
+.R
+.ihtml h2
+
+.html - <a name="7.5.1" />
+.ihtml h3 <h3>
+.SH
+7.5.1 - Configuring a cpu server
+.R
+.ihtml h3
+
+.B Note:
+Operating a cpu server requires auth services. Read:
+.ihtml a <a href="fqa7.html#7.4">
+.I
+FQA 7.4 - Auth server configuration and maintenance
+.R
+.ihtml a
+
+The first step in converting a terminal to a cpu server is to switch from the
+.CW terminal
+service to the
+.CW cpu
+service.
+
+If the cpu server machine boots from a local disk, edit the
+.CW service
+line in in
+.CW /n/9fat/plan9.ini :
+.P1
+service=cpu
+.P2
+
+Read:
+.ihtml a <a href="fqa7.html#7.2.2">
+.I
+FQA 7.2.2 - How do I modify plan9.ini?
+.R
+.ihtml a
+
+If the machine boots via PXE, edit the
+.CW service
+line in in the file under
+.CW /cfg/pxe/
+that correspondes to its MAC address. In this case,
+.CW /cfg/pxe/000c292fd30c :
+.P1
+service=cpu
+.P2
+
+.B Note:
+The contents of
+.CW /cfg/pxe/000c292fd30c
+serves as the equivalent of
+.CW plan9.ini
+for the PXE booted machine. Any other settings that would normally be configured in
+.CW plan9.ini
+may also be entered here.
+
+Setting
+.CW service=cpu
+causes the shell script
+.CW /rc/bin/cpurc
+to be run at boot time, which in turn launches a listener that scans the
+.CW /rc/bin/service
+directory for scripts corresponding to various network ports. Read:
+.ihtml a <a href="http://man.9front.org/8/listen">
+.CW listen(8) .
+.ihtml a
+The script
+.CW tcp17010
+handles incoming cpu connections. Authentication for incoming cpu connections is performed by the auth server associated with the
+.CW authdom
+by
+.CW ndb .
+Read:
+.ihtml a <a href="fqa7.html#7.4.1">
+.I
+FQA 7.4.1 - Configuring an auth server
+.R
+.ihtml a
+
+Before rebooting, configure the nvram:
+.ihtml a <a href="fqa7.html#7.3.2">
+.I
+FQA 7.3.2 - Configuring nvram.
+.R
+.ihtml a
+This allows the machine to load auth credentials from the
+.CW nvram
+file into
+.CW factotum ,
+so that it can continue to boot without manual intervention.
+
+Reboot:
+.P1
+fshalt -r
+.P2
+
+.html - <a name="7.6" />
+.ihtml h2 <h2>
+.SH
+7.6 - Terminal configuration and maintenance
+.R
+.ihtml h2
+
+.html - <a name="7.6.1" />
+.ihtml h3 <h3>
+.SH
+7.6.1 - Configuring a terminal
+.R
+.ihtml h3
+
+The 9front ISO boots into a livecd running the
+.CW 9pcf
+kernel, resulting in the simplest form of terminal running on the 386 architecture. A terminal may also be network booted (the preferred method) or installed to its own stand-alone file system on a local storage device.
+
+Read:
+.ihtml a <a href="fqa6.html#6.7">
+.I
+FQA 6.7 - How do I boot from the network?
+.R
+.ihtml a
+
+.html - <a name="7.6.2" />
+.ihtml h3 <h3>
+.SH
+7.6.2 - Configuring a Terminal to Accept cpu Connections
+.R
+.ihtml h3
+
+If the
+.CW hostowner
+factotum has been loaded with the appropriate key and the system is listening for
+.CW cpu
+connections, a user may
+.CW cpu
+into a terminal that is not running auth services. To configure a terminal to accept
+.CW cpu
+connections in this fashion, substitute your choice of
+.CW dom
+(this refers to the authdom),
+.CW user
+and
+.CW password ,
+below:
+.P1
+echo \'key proto=p9sk1 dom=9front user=glenda !password=p@ssw0rd\' \e
+ >/mnt/factotum/ctl
+aux/listen1 -t tcp!*!17010 /bin/cpu -R &
+.P2
+
+.html - <a name="7.6.3" />
+.ihtml h3 <h3>
+.SH
+7.6.3 - UTC Timesync
+.R
+.ihtml h3
+
+By default,
+.CW /rc/bin/termrc
+sets
+.CW TIMESYNCARGS=(-rLa1000000) ,
+to synchronize 9front time with the real time clock. On many systems this time is saved as UTC, whereas Windows keeps the local time there. If your time is in UTC you should omit the -L:
+Put
+.CW TIMESYNCARGS=(-ra1000000)
+into
+.CW /rc/bin/termrc.local ,
+which is executed by
+.CW /rc/bin/termrc .
+
+.html - <a name="7.7" />
+.ihtml h2 <h2>
+.SH
+7.7 - Mail server configuration and maintenance
+.R
+.ihtml h2
+.html - <br />
+.FG upas gif
+
+Incoming and outgoing mail is handled by
+.ihtml a <a href="http://doc.cat-v.org/bell_labs/upas_mail_system/">
+upas
+.ihtml a
+and its related suite of programs. Configuration is handled by a number of files found in
+.CW /mail/lib/ ,
+while many of
+.CW upas'
+common functions are carried out by shell scripts that are (relatively) easy to modify.
+
+.B Note:
+The user who runs the assorted
+.CW upas
+programs needs read and write permissions on
+.CW /mail/queue
+and
+.CW /mail/tmp ,
+as well as write permissions for any mailboxes where mail will be delievered.
+
+.B Note:
+Be sure to configure proper DNS entries for your domains. If Plan 9 will host your DNS, see:
+.ihtml a <a href="fqa6.html#6.2.5.2">
+.I
+FQA 6.2.5.2 - DNS authoritative name server
+.R
+.ihtml a
+
+Read:
+.ihtml a <a href="http://doc.cat-v.org/bell_labs/upas_mail_system/">
+.I
+Upas - A Simpler Approach to Network Mail,
+.R
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/mail">
+.CW mail(1)
+.ihtml a
+
+The following sections describe configuration of basic Internet mail services.
+
+.html - <a name="7.7.1" />
+.ihtml h3 <h3>
+.SH
+7.7.1 - smtpd.conf
+.R
+.ihtml h3
+
+Some changes to the default
+.CW smtpd.conf
+are required to accept mail
+.I for
+Internet domain names, and to relay mail
+.I for
+remote hosts (most commonly, your own machines). The following lines should be changed to correspond to your network:
+.P1
+# outgoing mail will be sent from this domain by default
+defaultdomain 9front.org
+
+# do not be an open relay
+norelay on
+
+# disable dns verification of sender domain
+verifysenderdom off
+
+# do not save blocked messages
+saveblockedmsg off
+
+# if norelay is on, you need to set the
+# networks allowed to relay through
+# as well as the domains to accept mail for
+ournets 199.191.58.37/32 199.191.58.42/32 192.168.4.0/24
+
+# domain names for which incoming mail is accepted
+ourdomains 9front.org, bell-labs.co, cat-v.org
+.P2
+.html - Example file: <a href="http://plan9.stanleylieber.com/mail/lib/smtpd.conf">smtpd.conf</a>
+Read:
+.ihtml a <a href="http://man.9front.org/6/smtpd">
+.CW smtpd(6) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/8/smtp">
+.CW smtp(8)
+.ihtml a
+
+.html - <a name="7.7.2" />
+.ihtml h3 <h3>
+.SH
+7.7.2 - rewrite
+.R
+.ihtml h3
+
+To act as an Internet mail server, copy
+.CW rewrite.direct
+to
+.CW rewrite
+and modify to reflect your site's Internet domain name(s):
+.P1
+# case conversion for postmaster
+pOsTmAsTeR\ alias\ postmaster
+
+# local mail
+\el!(.*)\ alias\ \e1
+(ttr|9front.org|bell-labs.co|cat-v.org)!(.*) alias\ \e2
+[^!@]+\ translate\ "/bin/upas/aliasmail \'&\'"
+local!(.*)\ >>\ /mail/box/\\1/mbox
+
+# we can be just as complicated as BSD sendmail...
+# convert source domain address to a chain a@b@c@d...
+@([^@!,]*):([^!@]*)@([^!]*)\ alias\ \e2@\e3@\e1
+@([^@!]*),([^!@,]*):([^!@]*)@([^!]*)\ alias\ @\e1:\e3@\e4@\e2
+
+# convert a chain a@b@c@d... to ...d!c!b!a
+([^@]+)@([^@]+)@(.+)\ alias\ \e2!\e1@\e3
+([^@]+)@([^@]+)\ alias\ \e2!\e1
+
+# /mail/lib/remotemail will take care of gating to systems we don't know
+([^!]*)!(.*)\ |\ "/mail/lib/qmail \'\e\es\' \'net!\e1\'" "\'\e2\'"
+.P2
+.html - Example file: <a href="http://plan9.stanleylieber.com/mail/lib/rewrite">rewrite</a>
+Read:
+.ihtml a <a href="http://man.9front.org/6/rewrite">
+.CW rewrite(6)
+.ihtml a
+
+.html - <a name="7.7.3" />
+.ihtml h3 <h3>
+.SH
+7.7.3 - names.local
+.R
+.ihtml h3
+
+To map incoming e-mail addresses to local usernames, edit
+.CW names.local
+accordingly:
+.P1
+# postmaster goes to glenda
+postmaster glenda
+.P2
+
+.B Note:
+\fIpostmaster\fR\f(CW@[any domain]\fR will be delivered to local user
+.CW glenda .
+
+.html - Example file: <a href="http://plan9.stanleylieber.com/mail/lib/names.local">names.local</a>
+.html - <a name="7.7.4" />
+.ihtml h3 <h3>
+.SH
+7.7.4 - remotemail
+.R
+.ihtml h3
+
+Finally,
+.CW upas
+.R
+needs to know what to do with mail that cannot be delivered locally. Edit
+.CW remotemail
+and enter the desired behavior.
+
+To deliver mail directly to the remote server responsible for the Internet domain name in question:
+.P1
+#!/bin/rc
+shift
+sender=$1
+shift
+addr=$1
+shift
+exec /bin/upas/smtp $addr $sender $*
+.P2
+.html - Example file: <a href="http://plan9.stanleylieber.com/mail/lib/remotemail">remotemail</a>
+Read:
+.ihtml a <a href="http://man.9front.org/8/smtp">
+.CW smtp(8)
+.ihtml a
+
+.html - <a name="7.7.5" />
+.ihtml h3 <h3>
+.SH
+7.7.5 - SMTP over TLS
+.R
+.ihtml h3
+
+First, make sure you have already
+.ihtml a <a href="fqa7.html#7.9">
+created TLS certificates
+.ihtml a
+for your server.
+
+Next, create a file
+.CW /rc/bin/service/tcp587 :
+.P1
+#!/bin/rc
+user=`{cat /dev/user}
+exec /bin/upas/smtpd -c /sys/lib/tls/cert -n $3
+# to use with listen1, change $3 to $net
+.P2
+
+.html - <a name="7.7.6" />
+.ihtml h3 <h3>
+.SH
+7.7.6 - IMAP4 over TLS
+.R
+.ihtml h3
+
+First, make sure you have already
+.ihtml a <a href="fqa7.html#7.9">
+created TLS certificates
+.ihtml a
+for your server.
+
+Next, create a file
+.CW /rc/bin/service/tcp993 :
+.P1
+#!/bin/rc
+exec tlssrv -c/sys/lib/tls/cert -limap4d \e
+ -r`{cat $3/remote} /bin/ip/imap4d -p \e
+ -r`{cat $3/remote} >>[2]/sys/log/imap4d
+ # to use with listen1, change $3 to $net
+.P2
+
+.html - <a name="7.7.7" />
+.ihtml h3 <h3>
+.SH
+7.7.7 - Spam Filtering
+.R
+.ihtml h3
+
+.html - <a name="7.7.7.1" />
+.ihtml h4 <h4>
+.SH
+7.7.7.1 - ratfs
+.R
+.ihtml h4
+
+From
+.ihtml a <a href="http://man.9front.org/4/ratfs">
+.CW ratfs(4) :
+.ihtml a
+
+.html ul <ul>
+.QS
+Ratfs starts a process that mounts itself (see bind(2)) on mountpoint
+(default /mail/ratify). Ratfs is a persistent representation of the
+local network configuration and spam blocking list. Without it each
+instance of smtpd(6) would need to reread and parse a multimegabyte
+list of addresses and accounts.
+.QE
+.html ul
+
+To configure the spam blocking list, edit
+.CW /mail/lib/blocked
+as desired, according to the rules laid out in the man page. Example:
+.P1
+# allow messages from any user at 9front.org
+*allow 9front.org!*
+
+# block messages from any user at bell-labs.com
+*block bell-labs.com!*
+
+# block messages from ip block of aol modems
+block 152.166.0.0/15
+.P2
+If
+.CW ratfs
+is already running, cause it to reload the modified
+.CW /mail/lib/blocked :
+.P1
+echo reload >/mail/ratify/ctl
+.P2
+For more details, read:
+.ihtml a <a href="http://man.9front.org/4/ratfs">
+.CW ratfs(4) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/6/smtpd">
+.CW smtpd(6)
+.ihtml a
+
+To launch
+.CW ratfs
+at boot time, add the following line to
+.CW /cfg/$sysname/cpustart :
+.P1
+upas/ratfs
+.P2
+and add the following line to
+.CW /lib/namespace :
+.P1
+mount -c #s/ratify /mail/ratify
+.P2
+.B Note:
+The directory served by
+.CW ratfs
+must be visible from the
+.CW upas
+listener's namespace. Usually, this is accomplished by starting
+.CW ratfs
+.I before
+the
+.CW upas
+listeners.
+
+.html - <a name="7.7.7.2" />
+.ihtml h4 <h4>
+.SH
+7.7.7.2 - scanmail
+.R
+.ihtml h4
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/scanmail">
+.CW scanmail(8)
+.ihtml a
+
+.html - <a name="7.8" />
+.ihtml h2 <h2>
+.SH
+7.8 - Web server configuration and maintenance
+.R
+.ihtml h2
+
+If you must.
+
+.html - <a name="7.8.1" />
+.ihtml h3 <h3>
+.SH
+7.8.1 - ip/httpd
+.R
+.ihtml h3
+
+No.
+
+.html - <a name="7.8.2" />
+.ihtml h3 <h3>
+.SH
+7.8.2 - rc-httpd
+.R
+.ihtml h3
+
+The
+.CW rc-httpd
+web server is a simple shell script that handles static files, directory listings and drop-in CGI programs such as the
+.ihtml a <a href="http://werc.cat-v.org">
+werc anti-framework.
+.ihtml a
+.CW rc-httpd
+is run from a file in the directory scanned by
+.ihtml a <a href="http://man.9front.org/8/listen">
+.CW listen(8) ,
+.ihtml a
+or called as an argument to
+.ihtml a <a href="http://man.9front.org/8/listen">
+.CW listen1(8) .
+.ihtml a
+
+Read:
+.ihtml a <a href="http://man.9front.org/8/rc-httpd">
+.CW rc-httpd(8)
+.ihtml a
+
+.B Note:
+.CW rc-httpd
+is employed to serve the
+.ihtml a <a href="http://9front.org">
+.CW 9front.org
+.ihtml a
+family of websites.
+
+.html - <a name="7.9" />
+.ihtml h2 <h2>
+.SH
+7.9 - TLS certificates
+.R
+.ihtml h2
+
+To use TLS-enabled services on a Plan 9 mail server (poptls, apoptls, imaps, etc.) you need to generate a certificate and key for your mail server and tell the
+.CW factotum
+of the server about that key:
+.P1
+ramfs -p
+cd /tmp
+auth/rsagen -t \'service=tls role=client owner=*\' > key
+chmod 600 key
+cp key /sys/lib/tls/key # or: store key in secstore
+auth/rsa2x509 'C=FR CN=fakedom.dom' /sys/lib/tls/key | \e
+ auth/pemencode CERTIFICATE > /sys/lib/tls/cert
+.P2
+.B Note:
+Here,
+.CW FR
+is the two-digit country code, and
+.CW fakedom.dom
+is the fully qualified domain name.
+
+To load the key into the server's
+.CW factotum
+at boot time, add the following line to
+.CW /cfg/$sysname/cpustart :
+.P1
+cat /sys/lib/tls/key >>/mnt/factotum/ctl
+.P2
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa6.html">FQA 6 - Networking</a> |
+.html - <a href="fqa8.html">FQA 8 - Using 9front</a>
--- /dev/null
+++ b/fqa8.ms
@@ -1,0 +1,2038 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa8.ms | page
+.\" htmlroff -u -ms -mhtml fqa8.ms >fqa8.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 8 - Using 9front
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa7.html">FQA 7 - System Management</a> |
+.html - <a href="fqa9.html">FQA 9 - Troubleshooting</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 8 - Using 9front
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa8.html">html</a> |
+.html - <a href="fqa8.pdf">pdf</a> |
+.html - <a href="fqa8.ms">troff</a>
+
+.FG using9front jpg
+.html - <br />
+.DS
+.I
+i am form china
+here is lots of people knows
+ and documented is chinese
+ the time comllexity is need you test youself
+and you will find it
+.R
+\(em wenwei peng
+.DE
+.html - <br />
+
+When applied consistently, simple conventions can combine to provide powerful results. In Plan 9,
+.I conventions
+are preferred to
+.I rules .
+This section explores the Plan 9 approach to actually using the computer.
+
+.html - <a name="8.1" />
+.ihtml h2 <h2>
+.SH
+8.1 - rc
+.R
+.ihtml h2
+
+The
+.CW rc
+shell was written by
+.ihtml a <a href="http://en.wikipedia.org/wiki/Tom_Duff">
+Tom Duff
+.ihtml a
+for
+.ihtml a <a href="http://www.cs.bell-labs.com/10thEdMan">
+Research UNIX v10.
+.ihtml a
+It was later adopted as the shell for Plan 9. Some of its conventions are unusual compared with other command interpreters influenced by the
+.ihtml a <a href="http://en.wikipedia.org/wiki/Bourne_shell">
+Bourne shell.
+.ihtml a
+Although its syntax may seem strange at first, have patience;
+.CW rc
+was designed this way on purpose. Once its (few, but powerful) features are internalized,
+.CW rc
+simply gets out of the way.
+
+Read:
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/rc">
+.I
+Rc - The Plan 9 Shell,
+.R
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/rc">
+.CW rc(1)
+.ihtml a
+
+.html - <a name="8.1.1" />
+.ihtml h3 <h3>
+.SH
+8.1.1 - Prompts
+.R
+.ihtml h3
+
+Creating an
+.CW rc
+function with the same name as your prompt allows you to easily double-click to select at the end of a previously typed line and then
+.CW send
+it using the mouse button 2 menu (see the discussion of
+.CW rio
+menus, below). This can be used to approximate a form of command history (see also the commands
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/rc/bin/%22">
+"
+.ihtml a
+and
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/rc/bin/%22%22">
+"",
+.ihtml a
+which print and execute the previous command, respectively).
+
+Add something like this to your
+.CW $home/profile :
+.P1
+fn term%{ $* }
+.P2
+
+In
+.CW rc
+the
+.CW ;
+character forces the end of a line and is treated as a noop when it appears alone, so it is also possible to create a simple prompt that would require no special prompt function in order for the prompt to be effectively ignored when selecting and sending:
+.P1
+prompt=\'; \'
+.P2
+
+Obviously, the prompt can be named however the user sees fit.
+
+.html - <a name="8.1.2" />
+.ihtml h3 <h3>
+.SH
+8.1.2 - /env
+.R
+.ihtml h3
+
+.B Note:
+Contents of the
+.CW /env
+directory are provided by the kernel and represent a separate accounting of the shell's environment;
+.CW rc
+reads
+.CW /env
+only on startup, and flushes/writes
+.CW /env
+only before executing programs.
+
+.html - <a name="8.2" />
+.ihtml h2 <h2>
+.SH
+8.2 - rio
+.R
+.ihtml h2
+.html - <br />
+.FG what jpg
+
+.CW rio
+is the Plan 9 window system. More accurately,
+.CW rio
+multiplexes input devices with and serves a file interface to a series of rectangles, inside the boundaries of which are drawn an arbitrary arrangement of pixels. Controlling the rectangles is more straightforward, and at the same time more flexible, than what is commonly expected from most "window managers."
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/rio">
+.CW rio(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/4/rio">
+.CW rio(4)
+.ihtml a
+
+To effectively use
+.CW rio ,
+you need a three button mouse. If you only have a two button mouse you can emulate the middle button by holding down the
+.CW shift
+key whilst pressing the right button.
+
+.B Note:
+Button 1, 2, and 3 are used to refer to the left, middle, and right buttons respectively.
+
+.html - <a name="8.2.1" />
+.ihtml h3 <h3>
+.SH
+8.2.1 - The Pop-up Menu
+.R
+.ihtml h3
+
+Pressing and holding down mouse button 3 on the gray desktop or on a shell window will give you a menu with the following options:
+
+.ihtml ul <ul>
+.CW
+New
+
+Resize
+
+Move
+
+Delete
+
+Hide
+.R
+.ihtml ul
+
+Pressing and holding down mouse button 2 on a shell window results in a menu with the following options:
+
+.ihtml ul <ul>
+.CW
+cut
+
+paste
+
+snarf
+
+plumb
+
+look
+
+send
+
+scroll
+.R
+.ihtml ul
+
+Select an item by releasing the button over the menu item. Rio uses the same button that started an action throughout that operation. If you press another button during the action the operation is aborted and any intermediate changes are reversed.
+
+Each menu acts as a action verb selector which then requires an object (i.e. window) to be picked to indicate which window the verb is to act on. A further mouse action may then be required.
+
+.html - <a name="8.2.2" />
+.ihtml h3 <h3>
+.SH
+8.2.2 - Window control
+.R
+.ihtml h3
+
+Clicking on a window brings it to the front.
+
+You can directly change the shape of a window by clicking and dragging on the edge or corner of the window
+border. Mouse button 1 or 2 will allow you to drag the edge or corner to a new size, and mouse button 3 will allow you to
+move the window.
+
+The mouse button 3 menu contains a list of all windows that are corrently obstructed by other windows. Selecting a label tops the window.
+
+The pop-up menu remembers the last command chosen, so as a shortcut you can just press and release button
+3 without moving the mouse between pressing and releasing to select the previous command again.
+
+In addition,
+.CW rio
+serves a variety of files for reading, writing, and controlling windows. Some of them are virtual versions of system files for dealing with the display, keyboard, and mouse; others control operations of the window system itself. These files, as well as the
+.ihtml a <a href="http://man.9front.org/1/rio">
+.CW window(1)
+.ihtml a
+command, allow for controlling windows programmatically by reading and writing text strings. Thus simplifying the automated opening and placement of various windows with user scripts.
+
+Read:
+.ihtml a <a href="http://man.9front.org/4/rio">
+.CW rio(4)
+.ihtml a
+
+.html - <a name="8.2.3" />
+.ihtml h3 <h3>
+.SH
+8.2.3 - Text in rio windows
+.R
+.ihtml h3
+
+Text in a
+.CW rio
+window may be freely manipulated, edited, altered, deleted and/or acted upon using either mouse chords or the options from the mouse button menus. (For an example, see the discussion of the use of
+.CW rc
+prompts, above.)
+
+The special file
+.CW /dev/text
+(for the current window), or \f(CW/dev/wsys/\fIn\f(CW/text\fR (for window \fIn\fR) contains all text that has already appeared in the window. The contents of this file may serve as a primitive form of command history (and may be acted upon using standard command line tools), but are lost when the window is closed.
+
+Seriously, read:
+.ihtml a <a href="http://man.9front.org/4/rio">
+.CW rio(4)
+.ihtml a
+
+.html - <a name="8.2.4" />
+.ihtml h3 <h3>
+.SH
+8.2.4 - Scrolling
+.R
+.ihtml h3
+
+By default, a
+.CW rio
+window will fill up with text and then block, obviating the need for a separate pager program (though the
+.ihtml a <a href="http://man.9front.org/1/p">
+.CW p(1)
+.ihtml a
+pager program still ships with the system).
+
+Endless scrolling may be enabled by selecting
+.CW scroll
+from the mouse button 2 menu.
+
+The
+.CW up
+or
+.CW down
+arrow keys and
+.CW pgup
+or
+.CW pgdwn
+keys may be used to scroll up or down in consistently measured increments.
+
+Holding down the
+.CW shift
+key and pressing the up or down arrow key will scroll a single line in the respective direction.
+
+9front's
+.CW rio
+supports mousewheel scrolling. The heuristic employed is roughly the same as that of clicking in the scrollbar on the left of the window: when the mouse pointer is near the top of the window the scrolling increment is small, while as the mouse pointer approaches the bottom of the window the scrolling increment grows progressively larger. Presently this behavior is limited to
+.CW rio ,
+.CW sam ,
+and
+.CW mothra
+but may later be extended to other programs.
+
+.B Note:
+While the behavior of the arrow and page keys is fairly consistent between programs, mousewheel scrolling is not. So far,
+.CW shift
++
+.CW up
+or
+.CW down
+is only supported in
+.CW rio
+windows.
+
+.html - <a name="8.2.5" />
+.ihtml h3 <h3>
+.SH
+8.2.5 - Mouse Chording
+.R
+.ihtml h3
+
+Almost anywhere \(em
+.ihtml a <a href="http://man.9front.org/1/sam">
+.CW sam(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/acme">
+.CW acme(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/rio">
+.CW window(1)
+.ihtml a
+\(em you can use the following mouse chords:
+
+.CW mb1
+\(em Select text.
+
+.CW
+mb1 double click
+.R
+\(em Select word under cursor, or at the end/start of a line, select the whole line.
+
+After selecting with
+.CW mb1
+and while still holding
+.CW mb1
+down (these chords also
+ work with text selected by double-clicking, the double-click expansion happens when the second
+ click starts, not when it ends):
+
+.CW mb2
+\(em Cut text.
+
+.CW mb3
+\(em Paste text (can be reverted by clicking
+.CW mb2
+immediately afterwards).
+
+To snarf (copy), click
+.CW mb2
+immediately followed by
+.CW mb3 .
+
+.html - <a name="8.2.6" />
+.ihtml h3 <h3>
+.B
+8.2.6 - Keyboard Shortcuts
+.R
+.ihtml h3
+
+Almost anywhere \(em
+.ihtml a <a href="http://man.9front.org/1/sam">
+.CW sam(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/acme">
+.CW acme(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/rio">
+.CW window(1)
+.ihtml a
+\(em you can use the following shortcuts:
+
+.CW Ctrl-u
+\(em Delete from cursor to start of line.
+
+.CW Ctrl-w
+\(em Delete word before the cursor.
+
+.CW Ctrl-h
+\(em Delete character before the cursor.
+
+.CW Ctrl-a
+\(em Move cursor to start of the line.
+
+.CW Ctrl-e
+\(em Move cursor to end of the line.
+
+.CW Ctrl-b
+\(em Move cursor to the position immediately after the prompt. (\f(CWrio\fR only)
+
+Read:
+.ihtml a <a href="http://unix-kb.cat-v.org">
+UNIX Keyboard Bindings
+.ihtml a
+
+In a
+.ihtml a <a href="http://man.9front.org/1/rio">
+.CW rio(1)
+.ihtml a
+window, scroll up or down one line by holding
+.CW shift
+and pressing the up or down arrow.
+
+.html - <a name="8.2.7" />
+.ihtml h3 <h3>
+.SH
+8.2.7 - Color scheme
+.R
+.ihtml h3
+
+.CW rio
+looks like this:
+
+.FG rio-bell-labs png
+
+\f(CWrio\fR's color scheme may be modified by editing the .c configuration files and re-compiling:
+
+.FG rio-custom png
+
+.B Note:
+Someone will mock you for doing this.
+
+See:
+.ihtml a <a href="http://plan9.stanleylieber.com/rio">
+http://plan9.stanleylieber.com/rio
+.ihtml a
+
+.ihtml a <a href="http://genius.cat-v.org/rob-pike">
+Rob Pike,
+.ihtml a
+rio's author, was all like:
+
+.ihtml ul <ul>
+.QS
+the clean appearance of the screen comes mostly from laziness, but the
+color scheme is (obviously) deliberate. the intent was to build on an
+observation by edward tufte that the human system likes nature and
+nature is full of pale colors, so something you're going to look at all day
+might best serve if it were also in relaxing shades. renee french helped me with
+the specifics of the color scheme (she's a professional illustrator and my
+color vision is suspect), once i'd figured out how i wanted it to look.
+there are still some features of the color system that i put in that i think no
+one has ever noticed. that's a good thing, in my opinion; the colors should
+fade away, if you'll pardon the expression. having used other systems with
+different approaches to color screens, most especially windows XP (extra pukey),
+i think tufte was right.
+.QE
+.ihtml ul
+
+.ihtml a <a href="http://9fans.net/archive/2003/09/442">
+Rob Pike, 2003
+.ihtml a
+
+.ihtml ul <ul>
+.QS
+The color scheme was an attempt to honor a point made originally
+in a little brochure by Edward Tufte that the colors of nature are
+soft and quiet and peaceful to look at, while most computer screens
+are covered in glaring bright colors. When color came to the system
+I wanted it to be pleasant.
+.QE
+.ihtml ul
+
+.ihtml a <a href="http://9fans.net/archive/2008/06/499">
+Rob Pike, 2008
+.ihtml a
+
+See:
+.ihtml a <a href="http://www.edwardtufte.com/">
+edwardtufte.com
+.ihtml a
+
+.html - <a name="8.2.8" />
+.ihtml h3 <h3>
+.SH
+8.2.8 - Why is rio like this?
+.R
+.ihtml h3
+.html - <br />
+.FG mouse gif
+
+Window systems should be transparent. That's the argument put forward in
+.ihtml a <a href="http://doc.cat-v.org/bell_labs/transparent_wsys/">
+the famous paper
+.ihtml a
+by rio's author,
+.ihtml a <a href="http://genius.cat-v.org/rob-pike/">
+Rob Pike.
+.ihtml a
+
+.FG mouse2 gif
+
+Beyond this, Rob offered
+.ihtml a <a href="http://9fans.net/archive/2001/05/262">
+an explanantion
+.ihtml a
+(in response to a question on the 9fans mailing list) of some of the choices made in the design of
+.CW 8½
+and
+.CW rio :
+
+.ihtml ul <ul>
+.QS
+> functioning cursor keys would still be a speed benefit.
+
+This feels true but is false. There were some fascinating experiments
+done a few years ago in which people were given a long, tedious
+editing task. Some of the people were keyboard fans, some were mouse
+fans. Both folks were asked to do the task two ways, in random order,
+once using the mouse to do the editing, once using cursor keys etc.
+Regardless of their predilections, which was stated up front, after
+the experiment everyone who did the task agreed that it was faster to
+use the keyboard than the mouse to complete the task. Everyone.
+Here's the kicker: everyone was wrong. They were being timed, and in
+fact the reverse was true. Although they thought the keyboard was
+faster, doing the task using the mouse was faster for everyone, by a
+substantial fraction.
+
+The explanation, besides the obvious that arrow keys are actually
+pretty slow if you're going more than a line or character, is that
+people feel the mouse wastes time because you need to grab it and move
+it, but it's time well spent. The part of the brain that uses
+keyboard commands to move the cursor is a higher-order function, and
+thinking and planning how to use the keys to get to the destination
+blocks thinking about the editing task at hand. But using the mouse
+is done by a lower-order part of the brain, which keeps the editing
+part of the brain clear. There's less task switching going on when
+you use the mouse, so you work more efficiently.
+
+If you don't believe me, the story is here:
+
+http://www.asktog.com/readerMail/1999-12ReaderMail.html
+
+Thanks to some forgotten 9fan who mentioned this a while back.
+I didn't know about these experiments when I said, long ago, that
+using arrow keys to point at a display is like telling someone how to
+go somewhere by giving directions, while using a mouse is like
+pointing at a map. In fact, I never used a screen editor until I had
+a mouse, for just this reason.
+.QE
+.ihtml ul
+
+.ihtml a <a href="http://9fans.net/archive/2001/05/262">
+Rob Pike, 2001
+.ihtml a
+
+.html - <a name="8.2.9" />
+.ihtml h3 <h3>
+.SH
+8.2.9 - tips
+.R
+.ihtml h3
+
+.html - <a name="8.2.9.1" />
+.ihtml h4 <h4>
+.SH
+8.2.9.1 - Taking a screenshot
+.R
+.ihtml h4
+
+To capture the entire screen:
+.P1
+topng </dev/screen >screen.png
+.P2
+
+To capture only the current window:
+.P1
+topng </dev/window >window.png
+.P2
+
+It is also possible to capture
+.I other
+windows:
+.P1
+topng </dev/wsys/\fIn\fR/window >window.png
+.P2
+where
+.I n
+is the number of the window being captured.
+
+Read:
+.ihtml a <a href="http://man.9front.org/4/rio">
+.CW rio(4)
+.ihtml a
+
+.html - <a name="8.2.9.2" />
+.ihtml h4 <h4>
+.SH
+8.2.9.2 - Prevent console messages from overwriting the screen
+.R
+.ihtml h4
+
+To capture console messages in a
+.CW rio
+window, open a new window and:
+.P1
+cat /dev/kprint
+.P2
+
+.html - <a name="8.3" />
+.ihtml h2 <h2>
+.SH
+8.3 Text Editors
+.R
+.ihtml h2
+
+.html - <a name="8.3.1" />
+.ihtml h3 <h3>
+.SH
+8.3.1 - sam
+.R
+.ihtml h3
+
+The text editor
+.CW sam
+was created by
+.ihtml a <a href="http://genius.cat-v.org/rob-pike">
+Rob Pike
+.ihtml a
+for
+.ihtml a <a href="http://doc.cat-v.org/unix/">
+Research UNIX V9
+.ihtml a
+(circa 1986), and later included with Plan 9.
+
+See:
+.ihtml a <a href="http://sam.cat-v.org">
+http://sam.cat-v.org
+.ihtml a
+
+Read:
+
+.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/sam/">
+.I
+The Text Editor sam
+.R
+.ihtml a
+\(em The original paper by Rob Pike.
+
+.ihtml a <a href="http://doc.cat-v.org/bell_labs/sam_lang_tutorial/">
+.I
+A Tutorial for the Sam Command Language
+.R
+.ihtml a
+\(em Documents the editing language.
+
+.ihtml a <a href="http://sam.cat-v.org/cheatsheet/">
+.I
+sam quick reference card
+.R
+.ihtml a
+
+.ihtml a <a href="http://man.9front.org/1/sam">
+.CW sam(1)
+.ihtml a
+man page
+
+.FG danflavin jpg
+
+.ihtml a <a href="http://www.moma.org/collection/artist.php?artist_id=1911">
+Dan Flavin,
+.ihtml a
+.I
+Document for Untitled (to the “innovator” of Wheeling Peachblow),
+.R
+1968
+
+.html - <a name="8.3.1.1" />
+.ihtml h4 <h4>
+.SH
+8.3.1.1 - Scrolling
+.R
+.ihtml h4
+
+9front's slightly modified version of
+.CW sam
+supports mousewheel scrolling in the same manner as
+.CW rio .
+
+Read:
+.ihtml a <a href="fqa8.html#8.2.4">
+.I
+FQA 8.2.4 - Scrolling
+.R
+.ihtml a
+
+.html - <a name="8.3.1.2" />
+.ihtml h4 <h4>
+.SH
+8.3.1.2 - Mouse Chording
+.R
+.ihtml h4
+
+9front
+.CW sam
+supports the same mouse chording as
+.CW rio .
+
+Read:
+.ihtml a <a href="fqa8.html#8.2.5">
+.I
+FQA 8.2.5 - Mouse Chording
+.R
+.ihtml a
+
+.html - <a name="8.3.1.3" />
+.ihtml h4 <h4>
+.SH
+8.3.1.3 - Why does sam have a separate snarf buffer from rio?
+.R
+.ihtml h4
+
+The program's author,
+.ihtml a <a href="http://genius.cat-v.org/rob-pike">
+Rob Pike,
+.ihtml a
+says:
+
+.ihtml ul <ul>
+.QS
+was a consequence of running over 1200 baud when sam was first
+written. you didn't want every cut and paste to bounce off the remote
+end at that speed. nowadays that argument has less weight. on the
+other hand, i still kinda like that you can have an editing session
+that doesn't corrupt what you have in rio's snarf buffer. i tried the
+unified way in acme and i often (not always) miss the old way.
+.QE
+.ihtml ul
+
+.ihtml a <a href="http://9fans.net/archive/2003/07/137">
+Rob Pike, 2003
+.ihtml a
+
+.html - <a name="8.3.1.4" />
+.ihtml h4 <h4>
+.SH
+8.3.1.4 - Keyboard Shortcuts
+.R
+.ihtml h4
+
+.CW Esc
+\(em Cut (and consequently, snarf) the selected text.
+
+.CW Ctrl-b
+\(em Switch focus to the edit window.
+
+.html - <a name="8.3.2" />
+.ihtml h3 <h3>
+.SH
+8.3.2 - acme
+.R
+.ihtml h3
+
+.DS
+.I
+There is also an alternative user interface, acme(4), that some people use as their editor.
+.R
+\(em Geoff Collyer
+.DE
+
+.FG cyclogram gif
+
+.ihtml a <a href="http://www.edwardtufte.com/tufte/posters">
+Handmade cyclogram
+.ihtml a
+by Russian cosmonaut, Georgi Grechko.
+
+.html - <a name="8.4" />
+.ihtml h2 <h2>
+.SH
+8.4 - Internet
+.R
+.ihtml h2
+.html - <br />
+.FG internet jpg
+
+Sending and receiving bits via alien protocols.
+
+.html - <a name="8.4.1" />
+.ihtml h3 <h3>
+.SH
+8.4.1 - Mail
+.R
+.ihtml h3
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/mail">
+.CW mail(1) ,
+.ihtml a
+.ihtml a <a href="fqa7.html#7.7">
+.I
+FQA 7.7 - Mail server configuration and maintenance
+.R
+.ihtml a
+
+.html - <a name="8.4.1.1" />
+.ihtml h4 <h4>
+.SH
+8.4.1.1 - upasfs
+.R
+.ihtml h4
+
+From
+.ihtml a <a href="http://man.9front.org/4/upasfs">
+.CW upasfs(4) :
+.ihtml a
+.ihtml ul <ul>
+.QS
+Fs is a user level file system that caches mailboxes and
+presents them as a file system. A user normally starts fs
+in his/her profile after starting plumber(4) and before
+starting a window system, such as rio(1) or acme(1). The
+file system is used by nedmail(1), acme(1)'s mail reader,
+and imap4d and pop3 (both pop3(8)) to parse messages. Fs
+also generates plumbing messages used by biff and faces(1)
+to provide mail announcements.
+.QE
+.ihtml ul
+
+Read:
+.ihtml a <a href="http://man.9front.org/4/upasfs">
+.CW upasfs(4) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/8/pop3">
+.CW pop3(8) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/faces">
+.CW faces(1)
+.ihtml a
+
+.html - <a name="8.4.1.1.1" />
+.ihtml h5 <h5>
+.SH
+8.4.1.1.1 - Reading gmail via IMAP
+.R
+.ihtml h5
+.P1
+upas/fs -f /imaps/imap.gmail.com/your.username@gmail.com
+.P2
+
+The first time this command is run, you should see an error that looks something like this:
+.P1
+upas/fs imap: server certificate 22471E10D5C1E41768048EF5567B27F532F33
+ not recognized
+upas/fs: opening mailbox: bad server certificate
+.P2
+
+To add this certificate to your system, type:
+.P1
+echo \'x509 sha1=22471E10D5C1E41768048EF5567B27F532F33\' \e
+ >>/sys/lib/tls/mail
+.P2
+
+Once
+.CW upas/fs
+is running, you can open as many additional gmail mailboxes (labels) as you wish:
+.P1
+echo open /imaps/imap.gmail.com/your.username@gmail.com/yourlabel \e
+ yourlabel >/mail/fs/ctl
+.P2
+
+.B Note:
+.CW upas/fs
+reads the entire mailbox into RAM, which means it may fail to load mailboxes that exceed the available system memory. This problem has been addressed in Erik Quanstrom's
+.ihtml a <a href="fqa8.html#8.4.1.3">
+nupas,
+.ihtml a
+which reads the mailbox into an index file, then performs new operations on the index where possible.
+
+.html - <a name="8.4.1.2" />
+.ihtml h4 <h4>
+.SH
+8.4.1.2 - nedmail
+.R
+.ihtml h4
+
+.CW nedmail
+is a command line mail client similar to the classic mail client shipped with
+.ihtml a <a href="http://doc.cat-v.org/unix/">
+Research UNIX.
+.ihtml a
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/nedmail">
+.CW nedmail(1)
+.ihtml a
+
+.html - <a name="8.4.1.3" />
+.ihtml h4 <h4>
+.SH
+8.4.1.3 - nupas
+.R
+.ihtml h4
+
+Read:
+.ihtml a <a href="http://plan9.stanleylieber.com/_books/comp/unix/research/nupas.pdf">
+.I
+Scaling Upas,
+.R
+.ihtml a
+by Erik Quanstrom
+.html - <p>Download, pre-patched for 9front: <a href="http://plan9.stanleylieber.com/src/nupas.tgz">nupas.tgz</a>
+
+.B Note:
+Installing
+.CW nupas
+replaces the system's default
+.CW upas .
+Read the included
+.CW README.9front
+and
+.CW mkfile
+before attempting to install.
+
+.html - <a name="8.4.2" />
+.ihtml h3 <h3>
+.SH
+8.4.2 - NNTP
+.R
+.ihtml h3
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/newt">
+.CW newt(1) ,
+.ihtml a <a href="http://man.9front.org/4/nntpfs">
+.CW nntpfs(4)
+.ihtml a
+
+.html - <a name="8.4.3" />
+.ihtml h3 <h3>
+.SH
+8.4.3 - IRC
+.R
+.ihtml h3
+
+.html - <a name="8.4.3.1" />
+.ihtml h4 <h4>
+.SH
+8.4.3.1 - ircrc
+.R
+.ihtml h4
+
+.CW ircrc
+is an IRC client implemented in
+.CW rc .
+It is included with 9front.
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/ircrc">
+.CW ircrc(1)
+.ihtml a
+
+.html - <a name="8.4.3.2" />
+.ihtml h4 <h4>
+.SH
+8.4.3.2 - irc7
+.R
+.ihtml h4
+
+A persistent IRC client was written in the c programming language by Andrey Mirtchovski. It has been modified slightly by 9front users (mainly, adding an
+.CW -e
+flag to the
+.CW ircsrv
+program that implements SSL connections).
+.html - Download it here: <a href="http://9front.org/extra/irc7.tgz">irc7.tgz</a>
+
+.html - <a name="8.4.4" />
+.ihtml h3 <h3>
+.SH
+8.4.4 - FTP
+.R
+.ihtml h3
+
+Read:
+.ihtml a <a href="http://man.9front.org/4/ftpfs">
+.CW ftpfs(4)
+.ihtml a
+
+.html - <a name="8.4.5" />
+.ihtml h3 <h3>
+.SH
+8.4.5 - HTTP
+.R
+.ihtml h3
+.html - <br />
+.FG wwwhat gif
+
+.html - <a name="8.4.5.1" />
+.ihtml h4 <h4>
+.SH
+8.4.5.1 - mothra
+.R
+.ihtml h4
+.html - <br />
+.FG betweenthelines jpg
+
+.CW mothra
+is a trivial web browser written in 1995 by Tom Duff. It ignores Javascript, CSS and many HTML tags. It was dropped from Plan 9 after the 2nd Edition, but has been picked up and (somewhat) refined for 9front.
+.CW mothra
+now uses
+.CW webfs ,
+and no longer supports non-HTTP protocols.
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/mothra">
+.CW mothra(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/4/webfs">
+.CW webfs(4)
+.ihtml a
+
+.html - <a name="8.4.5.2" />
+.ihtml h4 <h4>
+.SH
+8.4.5.2 - abaco
+.R
+.ihtml h4
+
+no.
+
+.html - <a name="8.4.5.3" />
+.ihtml h4 <h4>
+.SH
+8.4.5.3 - hget
+.R
+.ihtml h4
+
+.CW hget
+is a command line HTTP client (similar to programs such as
+.CW curl
+or
+.CW wget )
+that started out as a c program in Plan 9 from Bell Labs, but was re-implemented in
+.CW rc
+for 9front.
+.CW hget
+now uses
+.CW webfs
+and no longer supports non-HTTP protocols.
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/hget">
+.CW hget(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/4/webfs">
+.CW webfs(4)
+.ihtml a
+
+.html - <a name="8.4.5.4" />
+.ihtml h4 <h4>
+.SH
+8.4.5.4 - charon
+.R
+.ihtml h4
+
+The
+.ihtml a <a href="http://en.wikipedia.org/wiki/Inferno_os">
+Inferno
+.ihtml a
+operating system can be run hosted on Plan 9, and includes a GUI web browser called
+.ihtml a <a href="http://en.wikipedia.org/wiki/Charon_(web_browser)">
+charon,
+.ihtml a
+which implements ECMASCRIPT 1.0 as well as additional HTML attributes.
+
+.B Note:
+.CW charon
+is ancient and is not really a sufficient replacement for 9front's web browsers. The rudimentary javascript support can be useful for some simple tasks.
+
+.html - <a name="8.4.5.5" />
+.ihtml h4 <h4>
+.SH
+8.4.5.5 - i
+.R
+.ihtml h4
+
+There exists an unfinished/buggy port of
+.CW charon
+from Inferno's limbo programming language to Plan 9 c.
+.html - Source is available here: <a href="http://plan9.stanleylieber.com/src/i.tgz">i.tgz</a>
+
+.html - <a name="8.4.6" />
+.ihtml h3 <h3>
+.SH
+8.4.6 - SSH
+.R
+.ihtml h3
+
+Several SSH clients exist for Plan 9, none of which are perfect.
+
+.html - <a name="8.4.6.1" />
+.ihtml h4 <h4>
+.SH
+8.4.6.1 - ssh
+.R
+.ihtml h4
+
+9front ships with the original Plan 9 native SSH1 client from Bell Labs.
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/ssh">
+.CW ssh(1)
+.ihtml a
+
+.html - <a name="8.4.6.2" />
+.ihtml h4 <h4>
+.SH
+8.4.6.2 - ssh2
+.R
+.ihtml h4
+
+Programmers at
+.ihtml a <a href="http://www.coraid.com">
+Coraid
+.ihtml a
+created a Plan 9 native SSH2 client that was picked up (and completely rewritten) by Bell Labs. It is currently not included with 9front.
+.html - Download the Bell Labs version (pre-patched for 9front) here: <a href="http://plan9.stanleylieber.com/src/ssh2.tgz">ssh2.tgz</a>
+
+.B Note:
+There are bugs and expected features are missing. Consult the source.
+
+.html - <a name="8.4.6.3" />
+.ihtml h4 <h4>
+.SH
+8.4.6.3 - scpu
+.R
+.ihtml h4
+
+Two 9front users (taruti and mischief) worked on an SSH2 client written in the
+.ihtml a <a href="golang.html">
+Go programming language.
+.ihtml a
+It has been extended to work with Plan 9
+.ihtml a <a href="http://man.9front.org/4/factotum">
+factotum(4),
+.ihtml a
+but still does not fully honor complex Plan 9
+.ihtml a <a href="http://man.9front.org/2/dial">
+dial(2)
+.ihtml a
+strings.
+.html - Download it here: <a href="https://bitbucket.org/mischief/scpu">https://bitbucket.org/mischief/scpu</a>.
+
+.html - <a name="8.4.6.4" />
+.ihtml h4 <h4>
+.SH
+8.4.6.4 - OpenSSH
+.R
+.ihtml h4
+
+Plan 9 user fgb ported OpenSSH 4.7p1, OpenSSL 0.9.8g 19 Oct 2007 to Plan 9. It is available in his contrib directory, or a 386 binary is available here (to install, unpack it over /):
+.ihtml a <a href="http://plan9.stanleylieber.com/pkg//386/openssh-2012.03.15.tbz">
+openssh.tgz.
+.ihtml a
+
+.html - <a name="8.4.6.5" />
+.ihtml h4 <h4>
+.SH
+8.4.6.5 - sftpfs
+.R
+.ihtml h4
+
+An implementation of sftpfs was created for Plan 9 that can work with either the native SSH clients or fgb's OpenSSH port.
+.html - Download it here: <a href="http://plan9.stanleylieber.com/src/sftpfs.tgz">sftpfs.tgz</a>
+
+.html - <a name="8.4.6.5.1" />
+.ihtml h5 <h5>
+.SH
+8.4.6.5.1 - Mounting a remote u9fs share over SSH
+.R
+.ihtml h5
+
+The
+.CW u9fs
+program runs on UNIX and serves an unencrypted
+.ihtml a <a href="http://man.9front.org/2/9p">
+.CW 9P(2)
+.ihtml a
+share. It is possible to mount such a share over SSH.
+
+With
+.CW ssh2 :
+.P1
+srv -s 5 -e \'ssh2 -l sl wm \'\'/usr/local/bin/u9fs \e
+ -u sl -na none\'\'\' wm /n/wm
+.P2
+
+With
+.CW scpu :
+.P1
+srv -s 5 -e \'scpu -u sl -h wm -c \e
+ \'\'/usr/local/bin/u9fs -u sl -na none\'\'\' wm /n/wm
+.P2
+
+In both cases, an SSH connection is opened to remote UNIX host
+.CW wm ,
+logged in with user
+.CW sl
+and mounted on Plan 9 under
+.CW /n/wm .
+
+Read:
+.ihtml a <a href="http://man.9front.org/4/u9fs">
+.CW u9fs(4) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/4/srv">
+.CW srv(4)
+.ihtml a
+
+.html - <a name="8.4.7" />
+.ihtml h3 <h3>
+.SH
+8.4.7 - secstore
+.R
+.ihtml h3
+
+Typing in lots of passwords over and over again is annoying.
+
+Secstore authenticates to a secure-store server using a
+password and optionally a hardware token, then saves or
+retrieves a file. This is intended to be a credentials
+store (public/private keypairs, passwords, and other
+secrets) for a
+.CW factotum .
+
+Read:
+.ihtml a <a href="fqa7.html#7.4.3">
+.I
+FQA 7.4.3 - secstored
+.R
+.ihtml a
+for information on setting up the secstore server, and:
+.ihtml a <a href="fqa7.html#7.4.3.1">
+.I
+FQA 7.4.3.1 - Adding users to secstore
+.R
+.ihtml a
+to add users.
+
+Once a user has been added to
+.CW secstored ,
+the user may add to the file read by
+.CW factotum
+at startup. To do so, open a new window and type
+.P1
+% ramfs -p; cd /tmp
+% auth/secstore -g factotum
+secstore password: [user's secstore password]
+% echo \'key proto=apop dom=x.com user=ehg !password=hi\' >> factotum
+% auth/secstore -p factotum
+secstore password: [user's secstore password]
+% read -m factotum > /mnt/factotum/ctl
+.P2
+and delete the window. The first line creates an ephemeral
+memory-resident workspace, invisible to others and automatically
+removed when the window is deleted. The next three
+commands fetch the persistent copy of the secrets, append a
+new secret, and save the updated file back to secstore. The
+final command loads the new secret into the running
+.CW factotum .
+
+The
+.CW ipso
+command packages this sequence into a convenient
+script to simplify editing of files stored on a secure
+store. It copies the named files into a local
+.CW ramfs
+and
+invokes
+.CW \$editor
+on them. When the editor exits,
+.CW ipso
+prompts the user to confirm copying modifed or newly created
+files back to secstore. If no file is mentioned,
+.CW ipso
+grabs all the user's files from secstore for editing.
+
+By default,
+.CW ipso
+will edit the secstore files and, if one of
+them is named factotum, flush current keys from
+.CW factotum
+and load the new ones from the file.
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/secstore">
+.CW secstore(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/8/secstore">
+.CW secstore(8)
+.ihtml a
+
+.html - <a name="8.5" />
+.ihtml h2 <h2>
+.SH
+8.5 - Audio
+.R
+.ihtml h2
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/audio">
+.CW audio(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/3/audio">
+.CW audio(3)
+.ihtml a
+
+.html - <a name="8.6" />
+.ihtml h2 <h2>
+.SH
+8.6 - External Media
+.R
+.ihtml h2
+
+.html - <a name="8.6.1" />
+.ihtml h3 <h3>
+.SH
+8.6.1 - Mount an ISO9660 CD-ROM
+.R
+.ihtml h3
+.P1
+mount <{9660srv -s} /n/iso /dev/sdD1/data # cd-rom drive
+.P2
+
+or:
+.P1
+mount <{9660srv -s} /n/iso /path/to/9front.iso
+.P2
+
+Read:
+.ihtml a <a href="http://man.9front.org/4/dossrv">
+.CW dossrv(4)
+.ihtml a
+
+.html - <a name="8.6.2" />
+.ihtml h3 <h3>
+.SH
+8.6.2 - Burn a CD-ROM
+.R
+.ihtml h3
+.P1
+cdfs
+cp 9front.iso /mnt/cd/wd
+rm /mnt/cd/wd
+.P2
+
+Read:
+.ihtml a <a href="http://man.9front.org/4/cdfs">
+.CW cdfs(4)
+.ihtml a
+
+.html - <a name="8.6.3" />
+.ihtml h3 <h3>
+.SH
+8.6.3 - Mount a FAT formatted USB device
+.R
+.ihtml h3
+
+FAT formatted USB devices are automatically mounted under the
+.CW /shr
+directory.
+
+.B Note:
+Devices must be FAT or FAT32 formatted; exFAT is not supported.
+
+.html - <a name="8.7" />
+.ihtml h2 <h2>
+.SH
+8.7 - Emulation
+.R
+.ihtml h2
+
+.html - <a name="8.7.1" />
+.ihtml h3 <h3>
+.SH
+8.7.1 - Linux Emulation
+.R
+.ihtml h3
+.html - <br />
+.FG linuxburden jpg
+
+.CW linuxemu
+is a program that can execute Linux/i386 ELF binaries on Plan 9. Semi-modern web browsers and other Linux programs may be run using
+.CW linuxemu
+(if necessary, in conjunction with the
+.CW equis
+X11 server).
+.html - <p>Download it here: <a href="http://plan9.stanleylieber.com/src/linuxemu3.tgz">linuxemu3.tgz</a><p>The equis X11 server is available from <a href="http://9front.org/extra/">9front.org/exra/</a>, or <a href="http://www.quanstro.net/magic/man2html/1/contrib">contrib(1)</a>).
+
+.B Note:
+.CW linuxemu
+can only be run on a Plan 9 system booted with a
+.CW 386
+kernel and binaries.
+
+BOOTSTRAP
+
+To run
+.CW linuxemu ,
+you need a Linux root file system packed into a tarball:
+
+.ihtml a <a href="http://felloff.net/usr/cinap_lenrek/mroot-linuxemu.tbz">
+http://felloff.net/usr/cinap_lenrek/mroot-linuxemu.tbz
+.ihtml a
+
+.ihtml a <a href="http://plan9.stanleylieber.com/linuxemu/mroot.tgz">
+http://plan9.stanleylieber.com/linuxemu/mroot.tgz
+.ihtml a
+
+The
+.CW mroot-linuxemu.tbz
+version contains no symlinks and can be extracted with plain Plan 9 tools
+.CW bunzip
+and
+.CW tar .
+
+The
+.CW mroot.tgz
+version contains the same Debian Sarge base as
+.CW mroot-linuxemu.tbz ,
+but with several additional packages pre-installed:
+
+.ihtml ul <ul>
+.IP
+9base
+
+dmenu-4.1.1
+
+dwm-5.8.2
+
+gcc 3.3.5
+
+linux-kernel-headers
+
+mercurial 0.9.4
+
+opera 10.11
+
+python 2.3.5
+
+xlib-dev
+.LP
+.ihtml ul
+
+and more.
+
+You can create your own
+.CW mroot
+with
+.CW debootstrap
+on Debian Linux, or help write an installer that unpacks and installs an alternative distribution on Plan 9... In any case,
+.CW linuxemu
+is not hardwired to any Linux distribution!
+
+RUNNING
+
+Use the provided
+.CW linux
+script to chroot into your Linux
+.CW mroot .
+The
+.CW linux
+script is neccesary because for Linux programs to run, shared
+libraries from your
+.CW mroot
+have to appear in its
+.CW /lib
+and
+.CW /usr/lib
+directories, while configuration files are expected to be in
+.CW /etc .
+The script will build a private namespace and then bind the Linux
+.CW mroot
+over the Plan 9 root. The original Plan 9 namespace is mounted within
+.CW linuxemu
+under
+.CW /9 .
+
+Assuming
+.CW mroot
+is located in the current directory, start
+.CW linuxemu
+like this:
+.P1
+linux -r ./mroot /bin/bash -i
+.P2
+
+If the
+.CW -r
+option is omitted, the Linux
+.CW mroot
+defaults to
+.CW /sys/lib/linux
+on the Plan 9 machine.
+
+In the Linux
+.CW mroot ,
+.CW /etc/resolv.conf
+should be changed to match your network nameserver. In addition,
+.CW /etc/apt/sources.list
+should be updated to a working Debian mirror. Sarge packages can still be accessed at:
+
+.CW
+deb http://archive.debian.org/debian-archive/debian sarge main
+.R
+
+EXAMPLES
+
+Linux X11 programs may be used in conjunction with the
+.CW equis
+X11 server. For example, to run the Opera web browser under your Linux
+.CW mroot ,
+start
+.CW equis
+in a
+.CW rio
+window, start
+.CW linuxemu
+in another
+.CW rio
+window and then from within
+.CW linuxemu :
+.P1
+dwm & # X11 window manager
+opera & # web browser
+.P2
+
+Opera should (eventually) appear in the
+.CW equis
+window. A window manager (this example uses dwm) is recommended so that X11 programs interact with window resources properly.
+
+DEBUGGING
+
+If
+.CW linuxemu
+crashes, use acid to figure out whats going on:
+.P1
+mk acid
+acid -l linuxemu.acid <pid>
+.P2
+Then you can issue the following commands:
+.P1
+ustk()
+.P2
+dump a (userspace) stacktrace for the current thread:
+.P1
+umem(Current()) dump the memory mappings
+ufds(Current()) dump the filedescriptor table
+utrace(Current()) dump the internal tracebuffer
+ (enabled by -d option)
+.P2
+Use
+.CW xasm()
+and
+.CW xcasm()
+for disassembly for Linux code.
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/acid">
+.CW acid(1)
+.ihtml a
+
+You can also enable full trace logging:
+.P1
+linux -r ./mroot -dd /bin/bash -i >[2]/tmp/linuxemu.log
+.P2
+
+This slows
+.CW linuxemu
+down considerably. In case of race conditions, it often happens that the bug disapears when doing full trace logging!
+
+.html - <a name="8.7.2" />
+.ihtml h3 <h3>
+.SH
+8.7.2 - Nintendo
+.R
+.ihtml h3
+.html - <br />
+.FG nintendo png
+
+Emulators for several Nintendo video game consoles ship with the system:
+
+.ihtml ul <ul>
+.IP
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/gb">
+gb
+.ihtml a
+\(em Game Boy
+
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/gba">
+gba
+.ihtml a
+\(em Game Boy Advance
+
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/nes">
+nes
+.ihtml a
+\(em Nintendo Entertainment System
+
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/snes">
+snes
+.ihtml a
+\(em Super Nintendo Entertainment System
+.LP
+.ihtml ul
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/nintendo">
+.CW nintendo(1)
+.ihtml a
+
+.html - <a name="8.7.3" />
+.ihtml h3 <h3>
+.SH
+8.7.3 - Sega
+.R
+.ihtml h3
+.html - <br />
+.FG sega png
+
+An emulator for the Sega Megadrive/Genesis video game console ships with the system:
+
+.ihtml ul <ul>
+.IP
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/md">
+md
+.ihtml a
+\(em Sega Mega Drive/Genesis
+.LP
+.ihtml ul
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/sega">
+.CW sega(1)
+.ihtml a
+
+.html - <a name="8.7.4" />
+.ihtml h3 <h3>
+.SH
+8.7.4 - Commodore
+.R
+.ihtml h3
+.html - <br />
+.FG c64 jpg
+
+An emulator for the Commodore 64 home computer ships with the system:
+
+.ihtml ul <ul>
+.IP
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/games/c64">
+c64
+.ihtml a
+\(em Commodore 64
+.LP
+.ihtml ul
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/commodore">
+.CW commodore(1)
+.ihtml a
+
+.html - <a name="8.8" />
+.ihtml h2 <h2>
+.SH
+8.8 - Additional Software
+.R
+.ihtml h2
+
+.html - <a name="8.8.1" />
+.ihtml h3 <h3>
+.SH
+8.8.1 - 9front sources server
+.R
+.ihtml h3
+
+Additional 9front software is available from a 9P share that is accessible from any Plan 9 system:
+.P1
+9fs 9front
+.P2
+
+The following files and directories will then be available under
+.CW /n/ :
+
+.ihtml ul <ul>
+.IP
+.CW 9front/
+\(em 9front source
+
+.CW 9front.torrent
+\(em torrent of current 9front ISO image
+
+.CW bugs/
+\(em bug reports
+
+.CW contrib/
+\(em user contributed software
+
+.CW extra/
+\(em third party software source
+
+.CW fqa/
+\(em troff sources for 9front Frequently Questioned Answers
+
+.CW hardware/
+\(em known working hardware (sysinfo, firmware, manuals, etc.)
+
+.CW iso/
+\(em current 9front ISO image(s)
+
+.CW sources/
+\(em mostly complete mirror of Bell Labs sources server
+.LP
+.ihtml ul
+
+.html - <a name="8.8.2" />
+.ihtml h3 <h3>
+.SH
+8.8.2 - 9front contrib
+.R
+.ihtml h3
+
+Some 9front users maintain a contrib directory on an official 9front 9P share (similar to the
+.ihtml a <a href="http://www.plan9.bell-labs.com/wiki/plan9/Contrib_index/fqa.html">
+contrib
+.ihtml a
+arrangement provided by Bell Labs) that is accessible from any Plan 9 system:
+.P1
+9fs 9front
+.P2
+
+User directories will then be available under
+.CW /n/contrib/ .
+
+.html - <a name="8.8.3" />
+.ihtml h2 <h2>
+.SH
+8.8.3 - Other public 9p servers
+.R
+.ihtml h2
+
+A list of active public 9p servers is maintained here:
+.ihtml a <a href="http://www.9paste.net/qrstuv/9pindex">
+.CW
+http://www.9paste.net/qrstuv/9pindex
+.R
+.ihtml a
+
+.html - <a name="8.9" />
+.ihtml h2 <h2>
+.SH
+8.9 - Bootstrapping architectures not included on the ISO
+.R
+.ihtml h2
+
+.html - <a name="8.9.1" />
+.ihtml h3 <h3>
+.SH
+8.9.1 - amd64
+.R
+.ihtml h3
+
+To setup the
+.CW amd64
+port, install the
+.CW 386
+port from the ISO, then cross compile and install the
+.CW amd64
+binaries and kernel.
+
+Read:
+.ihtml a <a href="fqa5.html#5.2.2.1">
+.I
+FQA 5.2.2.1 - Cross compiling,
+.R
+.ihtml a
+.ihtml a <a href="fqa7.html#7.2.5">
+.I
+FQA 7.2.5 - How do I install a new kernel?
+.R
+.ihtml a
+
+.html - <a name="8.9.2" />
+.ihtml h3 <h3>
+.SH
+8.9.2 - Raspberry Pi
+.R
+.ihtml h3
+
+The most convenient way to use an rpi is to cross compile and install the
+.CW arm
+binaries and the
+.CW bcm
+kernel on the network file server, and then tcp boot the rpi.
+
+Read:
+.ihtml a <a href="fqa5.html#5.2.2.1">
+.I
+FQA 5.2.2.1 - Cross compiling,
+.R
+.ihtml a
+.ihtml a <a href="fqa6.html#6.7.1">
+.I
+FQA 6.7.1 - How do I tcp boot?
+.R
+.ihtml a
+
+Outdated and possibly confusing instructions for installing directly onto the rpi's sd card are detailed in
+.ihtml a <a href="appendixj.html">
+.I
+Appendix J - Junk
+.R
+.ihtml a
+
+.html - <a name="8.10" />
+.ihtml h2 <h2>
+.SH
+8.10 - ACPI
+.R
+.ihtml h2
+.html - <br />
+.FG acpi gif
+
+Plan9front currently has partial ACPI support for PCI interrupt routing and system shutdown.
+
+.html - <a name="8.10.1" />
+.ihtml h3 <h3>
+.SH
+8.10.1 - Enabling ACPI
+.R
+.ihtml h3
+
+ACPI is enabled with the presence of
+.CW *acpi=
+boot parameter.
+
+This will create the
+.CW /dev/acpitbls
+file that can be used to read the systems acpi tables. Specifying
+.CW *acpi=0
+will make acpi tables accessible thru the file but not use it in the kernel.
+
+.html - <a name="8.11" />
+.ihtml h2 <h2>
+.SH
+8.11 - MP Table Override
+.R
+.ihtml h2
+
+.I
+This horrible hack should be considered obsolete, in particular with the implementation of APIC renaming and MSI. It might still be useful.
+.R
+
+Since some motherboard/BIOS manufacturer don't care about anything but ACPI, the MP table might be in an unusable state which meant that
+.CW *nomp=1
+had to be used. The new MP Table Override can be used to specify an entirely different MP table for 9front to use.
+
+To specify an MP table the
+.CW *mp
+and \f(CW*mp\fR\fIN\fR options are used, for example (for illustration purposes, not a valid mp table):
+.P1
+*mp=16
+*mp0=00 11 33 13 15
+*mp1=16 99 DD 1C
+*mp2=9F 81 2a 0a 7b 8c 1c
+.P2
+.CW *mp
+specifies the size in byte and \f(CW*mp\fR\fIN\R, where \fIN\fR is a consecutive number starting with zero, specifies the data in hex form.
+
+The in-hardware table can be dumped with
+.CW *dumpmp=1
+(PROTIP: use a serial console).
+
+.ihtml a <a href="http://code.9front.org/hg/plan9front/file/1f9d7811d546/sys/src/9/pc/mp.h">
+.CW /sys/src/9/pc/mp.h
+.ihtml a
+is useful to have handy.
+
+.SH
+To Do
+.R
+
+(Some are mutually exclusive)
+
+• Write an utility to generate a proper table from Linux or similar
+
+• Write user space tools to manipulate the mp table
+
+• Calculate size automatically (and drop \f(CW*mp\fR)
+
+• Use a text based format parsed by the kernel
+
+• Fix MP support altogether (might not be feasible)
+
+.SH
+Example
+.R
+
+For the HP Compaq DC5700:
+.P1
+*mp=528
+*mp0=00 00 10 03 65 0f 00 00 ff fb eb bf 00 00 00 00
+*mp1=00 00 00 00 00 01 10 01 65 0f 00 00 ff fb eb bf
+*mp2=00 00 00 00 00 00 00 00 01 00 50 43 49 20 20 20
+*mp3=01 01 50 43 49 20 20 20 01 07 50 43 49 20 20 20
+*mp4=01 20 50 43 49 20 20 20 01 ff 49 53 41 20 20 20
+*mp5=02 02 11 01 00 00 c0 fe 03 00 0f 00 00 08 02 10
+*mp6=03 00 0f 00 00 09 02 11 03 00 0f 00 00 0c 02 10
+*mp7=03 00 0f 00 00 0d 02 11 03 00 0f 00 00 0e 02 12
+*mp8=03 00 0f 00 00 74 02 14 03 00 0f 00 00 75 02 15
+*mp9=03 00 0f 00 00 76 02 16 03 00 0f 00 00 77 02 17
+*mp10=03 00 0f 00 00 68 02 14 03 00 0f 00 00 69 02 15
+*mp11=03 00 0f 00 00 6a 02 16 03 00 0f 00 00 01 02 13
+*mp12=03 00 0f 00 00 6c 02 15 03 00 0f 00 00 7c 02 11
+*mp13=03 00 0f 00 00 7d 02 12 03 00 0f 00 00 7e 02 12
+*mp14=03 00 0f 00 00 70 02 14 03 00 0f 00 00 71 02 15
+*mp15=03 00 0f 00 00 72 02 16 03 00 0f 00 00 73 02 17
+*mp16=03 00 0f 00 07 10 02 14 03 00 0f 00 07 11 02 15
+*mp17=03 00 0f 00 07 12 02 16 03 00 0f 00 07 13 02 17
+*mp18=03 00 0f 00 07 24 02 15 03 00 0f 00 07 25 02 16
+*mp19=03 00 0f 00 07 26 02 17 03 00 0f 00 07 27 02 14
+*mp20=03 00 0f 00 07 2c 02 16 03 00 0f 00 07 2d 02 17
+*mp21=03 00 0f 00 07 2e 02 14 03 00 0f 00 07 2f 02 15
+*mp22=03 00 0f 00 07 34 02 14 03 00 0f 00 07 35 02 15
+*mp23=03 00 0f 00 07 36 02 16 03 00 0f 00 07 37 02 17
+*mp24=03 00 0f 00 20 00 02 10 03 00 0f 00 20 01 02 11
+*mp25=03 00 0f 00 20 02 02 12 03 00 0f 00 20 03 02 13
+*mp26=03 00 00 00 ff 01 02 01 03 00 00 00 ff 03 02 03
+*mp27=03 00 00 00 ff 04 02 04 03 00 00 00 ff 06 02 06
+*mp28=03 00 00 00 ff 07 02 07 03 00 00 00 ff 08 02 08
+*mp29=03 00 00 00 ff 09 02 09 03 00 00 00 ff 0c 02 0c
+*mp30=03 00 00 00 ff 0d 02 0d 03 00 00 00 ff 0e 02 0e
+*mp31=03 00 00 00 ff 0f 02 0f 04 01 00 00 ff 00 ff 01
+*mp32=01 3f 50 43 49 20 20 20 03 00 0f 00 3f 00 02 11
+.P2
+
+.html - <a name="8.12" />
+.ihtml h2 <h2>
+.SH
+8.12 - Revision Control
+.R
+.ihtml h2
+
+.html - <a name="8.12.1" />
+.ihtml h3 <h3>
+.SH
+8.12.1 - cvs
+.R
+.ihtml h3
+
+OpenCVS was ported to Plan 9.
+.html - Download it here: <a href="http://plan9.stanleylieber.com/src/cvs.tgz">cvs.tgz</a>
+
+An implementation of a
+.CW cvs
+file server, called
+.CW cvsfs ,
+was also created for Plan 9.
+.html - Download it here: <a href="http://plan9.stanleylieber.com/src/cvsfs.tgz">cvsfs.tgz</a>
+
+.html - <a name="8.12.2" />
+.ihtml h3 <h3>
+.SH
+8.12.2 - git
+.R
+.ihtml h3
+
+More than one person has claimed to have ported
+.CW git
+to Plan 9, but no code has ever been made public. Please stop telling unsuspecting newbs that
+.CW git
+is available for Plan 9.
+
+In the meantime, someone wrote a shell script wrapper that attempts to replicate some basic
+.CW git
+actions by downloading a zip file from the repository and performing operations on it.
+.html - Download it here: <a href="http://plan9.stanleylieber.com/rc/git">git</a>
+
+.html - <a name="8.12.3" />
+.ihtml h3 <h3>
+.SH
+8.12.3 - Mercurial
+.R
+.ihtml h3
+
+9front ships with
+.ihtml a <a href="http://mercurial.selenic.com">
+Mercurial.
+.ihtml a
+
+Read:
+.ihtml a <a href="http://fqa.9front.org/fqa5.html#5.2.1.1">
+.I
+FQA 5.2.1.1 - hgrc
+.R
+.ihtml a
+
+.html - <a name="8.12.4" />
+.ihtml h3 <h3>
+.SH
+8.12.4 - svn
+.R
+.ihtml h3
+
+No.
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa7.html">FQA 7 - System Management</a> |
+.html - <a href="fqa9.html">FQA 9 - Troubleshooting</a>
--- /dev/null
+++ b/fqa9.ms
@@ -1,0 +1,485 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures fqa9.ms | page
+.\" htmlroff -u -ms -mhtml fqa9.ms >fqa9.html
+.de FG \" .FG <basename>
+.ie h .html - <img src="\\$1.\\$2" />
+.el .BP \\$1.ps
+.br
+..
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.paragraph 0
+.margin 0
+.HTML "FQA 9 - Troubleshooting
+.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa8.html">FQA 8 - Using 9front</a> |
+.html - <a href="appendixj.html">FQA Appendix J - Junk</a>
+.html - <hr />
+.SH
+.LG
+.ihtml h1 <h1>
+FQA 9 - Troubleshooting
+.ihtml h1
+.NL
+.R
+.html - <a href="fqa9.html">html</a> |
+.html - <a href="fqa9.pdf">pdf</a> |
+.html - <a href="fqa9.ms">troff</a>
+
+.FG methods jpg
+
+.html - <a name="9.1" />
+.ihtml h2 <h2>
+.SH
+9.1 - First
+.R
+.ihtml h2
+.html - <br />
+.FG sweat gif
+
+.ihtml ul <ul>
+.IP
+• STATE YOUR ASSUMPTIONS.
+
+•
+.CW
+cat /etc/os-release
+.R
+to verify you are not, in fact, running Ubuntu Linux with a Plan 9 theme.
+
+• Are you running
+.ihtml a <a href="http://swtch.com/drawterm/">
+drawterm?
+.ihtml a
+
+• Verify your OpenBSD configuration.
+
+• Are you using the
+.CW qwerty
+keyboard layout?
+
+• Before reporting a bug, try the latest
+.ihtml a <a href="fqa1.html#1.11.1">
+ISO image.
+.ihtml a
+
+• MAKE SENSE.
+
+• When all else fails, see:
+.ihtml a <a href="fqa2.html#2.4">
+.I
+FQA 2.4 - Reporting Bugs
+.R
+.ihtml a
+.LP
+.ihtml ul
+
+.FG yesno jpg
+
+.html - <a name="9.2" />
+.ihtml h2 <h2>
+.SH
+9.2 - Booting
+.R
+.ihtml h2
+
+.html - <a name="9.2.1" />
+.ihtml h3 <h3>
+.SH
+9.2.1 - Boot parameters
+.R
+.ihtml h3
+
+.ihtml ul <ul>
+.IP
+• Immediately after the BIOS screen, hit any key until you see the
+.CW >
+prompt. From there, values from
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini
+.ihtml a
+may be temporarily added or changed. Read:
+.ihtml a <a href="http://man.9front.org/8/9boot">
+.CW 9boot(8)
+.ihtml a
+
+• Boot parameters beginning with a
+.CW *
+are interpreted by the kernel. All other parameters are passed as enviroment variables to the boot process.
+
+• Adding or changing a parameter:
+.CW param=value
+
+• Removing a parameter:
+.CW
+clear param=
+.R
+
+• When finished, type
+.CW boot
+to resume booting.
+.LP
+.ihtml ul
+
+.html - <a name="9.2.2" />
+.ihtml h3 <h3>
+.SH
+9.2.2 - Break into a shell
+.R
+.ihtml h3
+
+At the
+.CW [bootargs]
+prompt, type
+.CW !rc
+and hit enter to break into a shell. Type
+.CW exit
+to return to the
+.CW [bootargs]
+prompt.
+
+.html - <a name="9.2.3" />
+.ihtml h3 <h3>
+.SH
+9.2.3 - Editing plan9.ini
+.R
+.ihtml h3
+
+.ihtml ul <ul>
+.IP
+• It is not possible to edit
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+plan9.ini
+.ihtml a
+stored on the ISO, but parameters can be changed temporarily before booting. See above.
+
+• On a harddrive installation,
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini
+.ihtml a
+is stored with the bootloader and the kernel in a small FAT partition called
+.CW 9fat
+at the beginning of the
+.CW plan9
+partition. The
+.CW 9fat
+can be mounted by executing
+.CW
+9fs 9fat
+.R
+from the livecd or the installed system. The file
+.CW /n/9fat/plan9.ini
+can then be edited with a text editor like
+.ihtml a <a href="http://man.9front.org/1/acme">
+.CW acme(1) ,
+.ihtml a
+.ihtml a <a href="http://man.9front.org/1/sam">
+.CW sam(1)
+.ihtml a
+or
+.ihtml a <a href="http://man.9front.org/1/ed">
+.CW ed(1) .
+.ihtml a
+
+• If your change to
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini
+.ihtml a
+or the
+.CW 9fat
+made the system unbootable, it is always possible to manually override parameters on the
+.CW >
+prompt (see above) or start the system from the livecd and pick your installed
+.CW cwfs
+or
+.CW hjfs
+partition on the
+.CW [bootargs]
+prompt. Example:
+.CW local!/dev/sdC0/fscache
+.LP
+.ihtml ul
+
+.html - <a name="9.2.4" />
+.ihtml h3 <h3>
+.SH
+9.2.4 - Boot media not recognized
+.R
+.ihtml h3
+
+.ihtml ul <ul>
+.IP
+• Break into a shell, then type
+.CW
+grep -n '^01' '#$/pci/'*ctl
+.R
+to get the pci vid/did of the installed disk controllers. then look in the sd drivers to see if the controller is already recognized.
+
+• Sometimes, there is a problem with the drive, not the controller.
+.CW
+cat /dev/sd*/ctl
+.R
+to get the status of the individual drives.
+
+• Try different BIOS settings like AHCI/IDE mode.
+
+• Try the USB troubleshooting steps (see below). Sometimes USB problems prevent unrelated devices from working properly.
+.LP
+.ihtml ul
+
+.html - <a name="9.2.5" />
+.ihtml h3 <h3>
+.SH
+9.2.5 - I moved my hard drive between ports
+.R
+.ihtml h3
+
+If your file system is
+.ihtml a <a href="http://man.9front.org/4/cwfs">
+.CW cwfs(4) :
+.ihtml a
+
+.ihtml ul <ul>
+.IP
+• Let's assume it went from sdE0 to sdE1.
+
+• At the bootargs prompt:
+.P1
+local!/dev/sdE1/fscache -c
+filsys main c(/dev/sdE1/fscache)(/dev/sdE1/fsworm)
+filsys dump o
+filsys other /dev/sdE1/other
+end
+.P2
+.LP
+.ihtml ul
+
+.html - <a name="9.3" />
+.ihtml h2 <h2>
+.SH
+9.3 - Graphics
+.R
+.ihtml h2
+
+.html - <a name="9.3.1" />
+.ihtml h3 <h3>
+.SH
+9.3.1 - Rio fails to start
+.R
+.ihtml h3
+
+See the discussion of graphics in
+.ihtml a <a href="fqa4.html">
+.I
+FQA 4 - 9front Installation Guide.
+.R
+.ihtml a
+When you find a working mode, update your
+.ihtml a <a href="http://man.9front.org/8/plan9.ini">
+.CW plan9.ini .
+.ihtml a
+
+.html - <a name="9.3.2" />
+.ihtml h3 <h3>
+.SH
+9.3.2 - VESA BIOS does not contain a valid mode
+.R
+.ihtml h3
+
+The standard solution is to have the customer send the computer back to the manufacturer, who reflashes the EEPROM with the correct information and return the computer to the customer.
+
+.html - <a name="9.4" />
+.ihtml h2 <h2>
+.SH
+9.4 - Networking
+.R
+.ihtml h2
+
+.html - <a name="9.4.1" />
+.ihtml h3 <h3>
+.SH
+9.4.1 - Networking is not working
+.R
+.ihtml h3
+
+Read:
+.ihtml a <a href="fqa6.html#6.2.8">
+.I
+FQA 6.2.8 - Verifying network settings
+.R
+.ihtml a
+
+.html - <a name="9.4.2" />
+.ihtml h3 <h3>
+.SH
+9.4.2 - Cannot resolve domain names
+.R
+.ihtml h3
+
+If
+.CW ndb/dns
+is running but you are still unable to resolve domains, you can try adding a DNS server directly to
+.CW /net/ndb .
+
+Read:
+.ihtml a <a href="fqa6.html#6.2.5">
+.I
+FQA 6.2.5 - DNS Resolution
+.R
+.ihtml a
+
+.html - <a name="9.4.3" />
+.ihtml h3 <h3>
+.SH
+9.4.3 - /mnt/web/clone does not exist
+.R
+.ihtml h3
+
+Programs that require
+.ihtml a <a href="http://man.9front.org/4/webfs">
+.CW webfs(4)
+.ihtml a
+to be running require
+.ihtml a <a href="http://man.9front.org/4/webfs">
+.CW webfs(4)
+.ihtml a
+to be running.
+
+Read:
+.ihtml a <a href="http://man.9front.org/1/hget">
+.CW hget(1) ,
+.ihtml a <a href="http://man.9front.org/1/mothra">
+.CW mothra(1)
+.ihtml a
+
+.html - <a name="9.4.4" />
+.ihtml h3 <h3>
+.SH
+9.4.4 - PCMCIA WiFi stopped working after reboot
+.R
+.ihtml h3
+
+Do
+.CW fshalt
+and power down completely instead of just rebooting with \f(CWfshalt -r\fR.
+
+.html - <a name="9.5" />
+.ihtml h2 <h2>
+.SH
+9.5 - USB
+.R
+.ihtml h2
+
+.html - <a name="9.5.1" />
+.ihtml h3 <h3>
+.SH
+9.5.1 - Devices not recognized or not working
+.R
+.ihtml h3
+
+.ihtml ul <ul>
+.IP
+• Break into a shell, or simply type in a
+.CW rio
+window:
+.CW
+cat /dev/usbevent
+.R
+and try plugging in a USB device. If the devices where detected, some output should appear on screen. This doesnt mean we have a working driver for it but verifies that the USB controller and HUB driver recognized the device.
+
+• Dump USB controller status to the console with
+.CW
+echo dump >/dev/usb/ctl
+.R
+after that, you might recover the output from
+.CW /dev/kmesg
+or run
+.CW
+cat /dev/kprint
+.R
+in a separate rio window to not spill it all over the screen. Check the
+.CW nintr
+and
+.CW tdintr
+counters to see if they are all zero. If thats the case, then this is might be a interrupt routing problem sometimes caused by broken/incomplete BIOS MP tables. See below.
+
+• If USB keyboard is the only option, try to enable PS2 emulation in the BIOS and disable kernel usb support. See below.
+
+• if the machine employs a USB3.0 (xHCI) controller, try to disable USB3.0 support in BIOS as we dont have a driver for the xhci yet.
+.LP
+.ihtml ul
+
+.html - <a name="9.5.2" />
+.ihtml h3 <h3>
+.SH
+9.5.2 - System freezes after showing memory sizes
+.R
+.ihtml h3
+
+.ihtml ul <ul>
+.IP
+• The boot parameter
+.CW *acpi=1
+might solve interrupt routing problems in the case of broken or incomplete BIOS MP tables. (acpi is still experimental)
+
+• Try the boot parameter
+.CW *nomp=
+to disable multiprocessor mode.
+
+• Try the boot parameter
+.CW *nousbehci=
+(This disables USB 2.0.)
+
+• Try the boot parameter
+.CW *nousbuhci=
+
+• Try the boot parameter
+.CW *nousbohci=
+
+• Try the boot parameter
+.CW *nousbprobe=
+(This disables USB completely)
+.LP
+.ihtml ul
+
+.html - <a name="9.6" />
+.ihtml h2 <h2>
+.SH
+9.6 - auth
+.R
+.ihtml h2
+
+.html - <a name="9.99999999999999999999999999999999999999" />
+.ihtml h2 <h2>
+.SH
+9.99999999999999999999999999999999999999 - GIVE UP
+.R
+.ihtml h2
+
+Give up now.
+
+Go away.
+
+.FG giveup1 jpg
+
+.FG giveup2 jpg
+
+.DS
+.I
+Every joke is a tiny revolution
+.R
+\(em George Orwell
+.DE
+
+
+.html - <hr />
+.html - <a href="fqa.html">FQA INDEX</a> |
+.html - <a href="fqa8.html">FQA 8 - Using 9front</a> |
+.html - <a href="appendixj.html">FQA Appendix J - Junk</a>
binary files /dev/null b/giveup1.jpg differ
binary files /dev/null b/giveup2.jpg differ
binary files /dev/null b/glitch.jpg differ
binary files /dev/null b/goaway.jpg differ
binary files /dev/null b/golang.gif differ
binary files /dev/null b/grumpycatno.jpg differ
binary files /dev/null b/h.jpg differ
binary files /dev/null b/hardware.jpg differ
binary files /dev/null b/haskell.gif differ
binary files /dev/null b/ibmintel.png differ
--- /dev/null
+++ b/indicia.ms
@@ -1,0 +1,31 @@
+.\" This troff source is processed to create all forms of the
+.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
+.\" NOTE: Purely experimental. Methods employed may change.
+.\" troff -ms -mpictures indicia.ms | page
+.ds CH \" turn off page numbering
+.po 1i \" page offset (from left)
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.fp 3 B LucidaSansB
+.fp 4 BI LucidaSansI
+.fp 5 CW LucidaCW
+.ps 10
+
+\&
+.sp |7i
+This book was typeset (\fCtroff -ms -mpictures|lp -dstdout|ps2pdf\fP) in Lucida Sans
+by the author, using a Lenovo ThinkPad X60 Tablet running the 9front
+operating system.
+
+Rendered: 20\n(yr-\n(mo-\n(dy
+
+9FRONT
+.br
+9front.org
+
+This is a work of fiction. Names, characters, places and incidents
+either are the product of the author's imagination or are used
+fictitiously, and any resemblance to actual persons, living or dead,
+businesses, companies, events or locales is entirely coincidental.
+
+MIT/CC0/Public Domain
binary files /dev/null b/inferno.png differ
binary files /dev/null b/install.gif differ
binary files /dev/null b/intellectualproperty.jpg differ
binary files /dev/null b/internet.jpg differ
binary files /dev/null b/kaptnblaubar.jpg differ
binary files /dev/null b/lain.gif differ
binary files /dev/null b/linuxburden.jpg differ
binary files /dev/null b/livecdrio.jpg differ
binary files /dev/null b/meganinefront.gif differ
binary files /dev/null b/methods.jpg differ
binary files /dev/null b/millions.jpg differ
--- /dev/null
+++ b/mkfile
@@ -1,0 +1,64 @@
+%.html: %.ms
+ htmlroff -u -ms -mhtml $stem.ms >$target
+ fixhtml $target
+
+%.pdf: %.ps
+ lp -dstdout $stem.ps | ps2pdf >$target
+
+%.ps: %.png
+ lp -dstdout -ppngpost $stem.png >$target
+
+%.ps: %.gif
+ lp -dstdout -pgifpost $stem.gif >$target
+
+%.ps: %.jpg
+ lp -dstdout -pjpgpost $stem.jpg >$target
+
+%.ps: %.ms
+ troff -ms -mpictures $stem.ms >$target
+
+appendixj.ps: pie-in-face.ps
+
+appendixl.ps: cosbyplusplus.ps csharp.ps golang.ps haskell.ps perl.ps php.ps python.ps rails.ps yes.ps
+
+book:V: ps cover.ps
+ troff -ms -mpictures indicia.ms bp.ms numbering.ms bp.ms fqa.ms bp.ms fqa0.ms bp.ms fqa1.ms bp.ms fqa2.ms bp.ms fqa3.ms bp.ms fqa4.ms bp.ms fqa5.ms bp.ms fqa6.ms bp.ms fqa7.ms bp.ms fqa8.ms bp.ms fqa9.ms bp.ms appendixj.ms bp.ms appendixl.ms | lp -dstdout | ps2pdf >book.pdf
+ chmod +t book.pdf
+
+dash1:V:
+ gs -q -dNOPAUSE -dBATCH -sDEVICE'='pdfwrite -sOutputFile'='dash1.pleaseexcusemetheoutflow.pdf pleaseexcusemetheoutflow.front.pdf book.pdf pleaseexcusemetheoutflow.back.pdf
+ chmod +t dash1.pleaseexcusemetheoutflow.pdf
+
+fqa.ps: 9frontsystem.ps goaway.ps toilet.ps
+
+fqa0.ps: belllabs.ps books.ps csrc.ps fork.ps inferno.ps intellectualproperty.ps plan9team1995.ps notunix.ps
+
+fqa1.ps: 9frontsystem.ps cirno.ps grumpycatno.ps ibmintel.ps meganinefront.ps reactorcat.ps tuttleglenda.ps
+
+fqa2.ps: 9fans.ps carson.ps crash.ps voightkampff.ps
+
+fqa3.ps: 380d.ps 1391401.ps 2001thinkpad01.ps 2001thinkpad02.ps chicklet.ps desktops.ps glitch.ps hardware.ps n700.ps rugged.ps scrollpoint.ps sk-8835.ps soundblaster.ps t420s.ps vbox.4.2.6.ps virtualbox.ps x230.ps x250.ps x301.ps x60t.ps x61t.ps
+
+fqa4.ps: bar.ps cinapcatdrawing.ps cryptsetup.ps install.ps livecdrio.ps
+
+fqa5.ps: thesource.ps
+
+fqa6.ps: networking.ps
+
+fqa7.ps: orgchart.ps plan9network.ps upas.ps
+
+fqa8.ps: acpi.ps betweenthelines.ps c64.ps cyclogram.ps danflavin.ps internet.ps linuxburden.ps mouse.ps mouse2.ps nintendo.ps rio-bell-labs.ps rio-custom.ps sega.ps using9front.ps what.ps wwwhat.ps
+
+fqa9.ps: giveup1.ps giveup2.ps methods.ps sweat.ps yesno.ps
+
+html:V: fqa.html fqa0.html fqa1.html fqa2.html fqa3.html fqa4.html fqa5.html fqa6.html fqa7.html fqa8.html fqa9.html appendixj.html appendixl.html
+ cp fqa.html index.html
+
+pdf:V: fqa.pdf fqa0.pdf fqa1.pdf fqa2.pdf fqa3.pdf fqa4.pdf fqa5.pdf fqa6.pdf fqa7.pdf fqa8.pdf fqa9.pdf appendixj.pdf appendixl.pdf
+
+ps:V: fqa.ps fqa0.ps fqa1.ps fqa2.ps fqa3.ps fqa4.ps fqa5.ps fqa6.ps fqa7.ps fqa8.ps fqa9.ps appendixj.ps appendixl.ps
+
+all:V: html ps pdf
+
+clean:
+ rm -f fqa*.html fqa*.pdf *.ps appendix*.html appendix*.pdf appendix*.ps
binary files /dev/null b/mouse-chords.png differ
binary files /dev/null b/mouse.gif differ
binary files /dev/null b/mouse2.gif differ
binary files /dev/null b/n700.jpg differ
binary files /dev/null b/networking.jpg differ
binary files /dev/null b/nintendo.png differ
binary files /dev/null b/notunix.jpg differ
--- /dev/null
+++ b/numbering.ms
@@ -1,0 +1,1 @@
+.ds CF % \" turn on page numbering
binary files /dev/null b/orgchart.jpg differ
binary files /dev/null b/perl.jpg differ
binary files /dev/null b/php.gif differ
binary files /dev/null b/pie-in-face.jpg differ
binary files /dev/null b/plan9network.png differ
binary files /dev/null b/plan9team1995.jpg differ
binary files /dev/null b/python.gif differ
binary files /dev/null b/rails.jpg differ
binary files /dev/null b/reactorcat.gif differ
binary files /dev/null b/rio-bell-labs.png differ
binary files /dev/null b/rio-custom.png differ
binary files /dev/null b/rugged.png differ
binary files /dev/null b/scrollpoint.jpg differ
binary files /dev/null b/sega.png differ
binary files /dev/null b/sk-8835.jpg differ
binary files /dev/null b/soundblaster.jpg differ
binary files /dev/null b/sweat.gif differ
binary files /dev/null b/t420s.jpg differ
binary files /dev/null b/thesource.jpg differ
binary files /dev/null b/toilet.jpg differ
binary files /dev/null b/tuttleglenda.png differ
binary files /dev/null b/underconstruction.gif differ
binary files /dev/null b/upas.gif differ
binary files /dev/null b/using9front.jpg differ
binary files /dev/null b/vbox.4.2.6.png differ
binary files /dev/null b/virtualbox.jpg differ
binary files /dev/null b/voightkampff.jpg differ
binary files /dev/null b/what.jpg differ
binary files /dev/null b/wwwhat.gif differ
binary files /dev/null b/x230.jpg differ
binary files /dev/null b/x250.png differ
binary files /dev/null b/x301.jpg differ
binary files /dev/null b/x60t.jpg differ
binary files /dev/null b/x61t.jpg differ
binary files /dev/null b/yes.gif differ
binary files /dev/null b/yesno.jpg differ