Problems we had

The problems we had in seting up our plan 9 network can be grouped into two simple categories: 1) Crap hardware. 2) not *really* reading the man pages.

With respect to 1, I think Ron "Da Man" Minnich said it best: "Friends don't let friends buy crap". Countless hours would have ben saved by not using (overpriced) junk hardware...

With respect to 2, there is loads of info in the papers and man pages, and in some cases it is really dense, e.g fsconfig(8) *read* it and re-read it, don't skim, the answer to you question is most likely in there...


Bad floppy disks: don't do it. We wasted hours because of this. You may think you can reuse that AOL floppy, but you are going to suffer if you do, buy some good ones... take that AOL floppy and chuck it straight in the trash (I suggest the microwave for those AOL CD's but that is getting off topic...). We were geting the error "init...dos dosfs..." during our fileserver install, we ended up digging through the fs kernel source turning on debug statements and such only to find out that we had a bad floppy (well that, and that the fs kernel is a wonderfuly clean piece of code...)

Intergrated symbios 875(rev14) SCSI controller on the compaq SP700: I can't recommend it... But could not even get a LSI logic symbios 895(rev 2) controller to work in a number of these machines with the dual onboard 875's disabled ( but it worked fine in the Dell 610...). However I did learn that if my fileserver config would just intermittently hang after typing "end", it was time to find a new SCSI controller/machine, and use the broken hardware for some user that wants to to run a broken OS...

Don't unplug the power to your floppy drive no matter how pissed you are that the light is still on and you just typed "end" at the config prompt and nothing is happening, you *will* fry it...


One of the first problems we encountered is we wound edit /lib/ndb/local and when we rebooted the changes would be gone! The problem was we were not being careful when we used disk/kfscmd allow. Once we figured out to:
	disk/kfscmd allow
	edit the files...
	disk/kfscmd disallow
	disk/kfscmd sync
and before reboot to:
	disk/kfscmd sync
	disk/kfscmd halt
We never lost any changes...


3com562 ethernet addr

The ether589.c driver will not detect the ethernet addr of our 3com 562 ethernet/modem combo card. This can be fixed by adding a line the the plan9.ini like:

	ether0=type=3c562 ea=00A02460569E
Note: 3c562 is a valid type even though it is not mentioned in the plan9.ini man page.

IBM 560/760 video

The video card for the IBM560/IBM560E/IBM760E is supported by the cyber938x driver but it requires a modification to vgadb, just add the line:

to the cyber938x section of vgadb

If that does not work you can find a string in vga dump you see on the screen during boot, for example

        0xC0000 55 AA 40 CB 90 90 34 30 30 30 37 00 80 2A 2A 52  U.@...40007..**R
        0xC0010 45 53 45 52 56 45 44 20 4E 00 46 4F 52 20 49 42  ESERVED N.FOR IB
        0xC0020 4D 20 43 4F 4D 50 41 54 49 42 49 4C 49 54 59 20  M COMPATIBILITY
        0xC0030 2A 2A D1 D9 00 00 90 10 30 39 2F 30 31 2F 39 37  **......09/01/97
        0xC0040 00 00 20 5A 36 2E 31 49 20 20 20 20 20 20 50 43  .. Z6.1I      PC
        0xC0050 49 52 23 10 60 96 00 00 18 00 00 00 00 03 80 00  IR#.`...........
        0xC0060 00 00 00 80 00 00 E9 97 7F 07 43 6F 70 79 72 69  ..........Copyri
        0xC0070 67 68 74 20 31 39 39 34 20 54 52 49 44 45 4E 54  ght 1994 TRIDENT
        0xC0080 20 4D 49 43 52 4F 53 59 53 54 45 4D 53 20 49 4E   MICROSYSTEMS IN

add a rough search line like:


then once rio starts you can use aux/vga -B to dump the bios and find a unique string.

Linksys EtherFast 10/100 PCM100 Ethernet card

In some of the termianls we use the EtherFast 10/100 Intergrated PC card (PCM100) this card is very similar to the EtherFast 10/100 PC card (PCMPC100 v2) but has a integrated connector for the cable, rather than using a "doogle". This requires some trival modifications to the driver.

In the file /sys/src/9/pc/etherec2t.c add an entry PCM100 to the char array ec2tpcmcia[] directly after the PCMPC100 entry. e.g.

static char* ec2tpcmcia[] = {
        "EC2T",                         /* Linksys Combo PCMCIA EthernetCard */
        "PCMPC100",                     /* EtherFast 10/100 PC Card */
        "PCM100",                       /* EtherFast  10/100 Integrated PC Card */
        "EN2216",                       /* Accton EtherPair-PCMCIA */
        "FA410TX",                      /* Netgear FA410TX */

and then change the line:

    if(cistrcmp(type, "PCMPC100") == 0 || cistrcmp(type, "FA410TX") == 0){

to be:

    if(cistrcmp(type, "PCMPC100") == 0 || cistrcmp(type, "PCM100") == 0 || cistrcmp(type, "FA410TX") == 0){

and rebuild the kernel.

It was easy to find the difference between these cards using the aux/pcmcia command to dump the PCMCIA structure for both cards and then compare the 2 files using diff.

Linksys EtherFast 10/100 PCMPC100 v3 Ethernet card

Linksys has changed the chipset on the card from a DL10019 to a Asix AX88190 which is not supported.

Xircom CM-56G pcmcia modem

In thinkpads with a built in modem the Xircom CM-56G card cannot be detected, there is some confusion with the IBM 33.6 modem, this can be fix by a small change to /sys/src/9/pc/pcmciamodem.c, just change the order in which things are detected:

static char* modems[] = {
	"CM-56G",				/* Xircom CreditCard Modem 56 - GlobalACCESS */
	"IBM 33.6 Data/Fax/Voice Modem",
and add a line to your plan9.ini like:
serial0=type=com port=0x2e8 irq=9

xms timeouts

When using con and xms to load the kernel and ramdisk onto the bitsy, the timeout in xms.c is to short. but this patch to /sys/src/cmd/con/xms.c will fix things:

<       /* give the other side a 30 seconds to signal ready */
>       /* give the other side a 90 seconds to signal ready */
<       alarm(30*1000);
>       alarm(90*1000);

more to come...