^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) ARCnet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) See also arcnet-hardware.txt in this directory for jumper-setting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) and cabling information if you're like many of us and didn't happen to get a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) manual with your ARCnet card.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) Since no one seems to listen to me otherwise, perhaps a poem will get your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) attention::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) This driver's getting fat and beefy,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) But my cat is still named Fifi.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) Hmm, I think I'm allowed to call that a poem, even though it's only two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) lines. Hey, I'm in Computer Science, not English. Give me a break.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) The point is: I REALLY REALLY REALLY REALLY REALLY want to hear from you if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) you test this and get it working. Or if you don't. Or anything.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) ARCnet 0.32 ALPHA first made it into the Linux kernel 1.1.80 - this was
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) nice, but after that even FEWER people started writing to me because they
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) didn't even have to install the patch. <sigh>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) Come on, be a sport! Send me a success report!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) (hey, that was even better than my original poem... this is getting bad!)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) .. warning::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) If you don't e-mail me about your success/failure soon, I may be forced to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) start SINGING. And we don't want that, do we?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) (You know, it might be argued that I'm pushing this point a little too much.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) If you think so, why not flame me in a quick little e-mail? Please also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) include the type of card(s) you're using, software, size of network, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) whether it's working or not.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) My e-mail address is: apenwarr@worldvisions.ca
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) These are the ARCnet drivers for Linux.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) This new release (2.91) has been put together by David Woodhouse
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) <dwmw2@infradead.org>, in an attempt to tidy up the driver after adding support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) for yet another chipset. Now the generic support has been separated from the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) individual chipset drivers, and the source files aren't quite so packed with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #ifdefs! I've changed this file a bit, but kept it in the first person from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) Avery, because I didn't want to completely rewrite it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) The previous release resulted from many months of on-and-off effort from me
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) (Avery Pennarun), many bug reports/fixes and suggestions from others, and in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) particular a lot of input and coding from Tomasz Motylewski. Starting with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) ARCnet 2.10 ALPHA, Tomasz's all-new-and-improved RFC1051 support has been
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) included and seems to be working fine!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) Where do I discuss these drivers?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) ---------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) Tomasz has been so kind as to set up a new and improved mailing list.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) Subscribe by sending a message with the BODY "subscribe linux-arcnet YOUR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) REAL NAME" to listserv@tichy.ch.uj.edu.pl. Then, to submit messages to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) list, mail to linux-arcnet@tichy.ch.uj.edu.pl.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) There are archives of the mailing list at:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) http://epistolary.org/mailman/listinfo.cgi/arcnet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) The people on linux-net@vger.kernel.org (now defunct, replaced by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) netdev@vger.kernel.org) have also been known to be very helpful, especially
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) when we're talking about ALPHA Linux kernels that may or may not work right
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) in the first place.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) Other Drivers and Info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) ----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) You can try my ARCNET page on the World Wide Web at:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) http://www.qis.net/~jschmitz/arcnet/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) Also, SMC (one of the companies that makes ARCnet cards) has a WWW site you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) might be interested in, which includes several drivers for various cards
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) including ARCnet. Try:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) http://www.smc.com/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) Performance Technologies makes various network software that supports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) ARCnet:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) http://www.perftech.com/ or ftp to ftp.perftech.com.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) Novell makes a networking stack for DOS which includes ARCnet drivers. Try
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) FTPing to ftp.novell.com.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) You can get the Crynwr packet driver collection (including arcether.com, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) one you'll want to use with ARCnet cards) from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) oak.oakland.edu:/simtel/msdos/pktdrvr. It won't work perfectly on a 386+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) without patches, though, and also doesn't like several cards. Fixed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) versions are available on my WWW page, or via e-mail if you don't have WWW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) access.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) Installing the Driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) ---------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) All you will need to do in order to install the driver is::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) make config
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) (be sure to choose ARCnet in the network devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) and at least one chipset driver.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) make clean
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) make zImage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) If you obtained this ARCnet package as an upgrade to the ARCnet driver in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) your current kernel, you will need to first copy arcnet.c over the one in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) the linux/drivers/net directory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) You will know the driver is installed properly if you get some ARCnet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) messages when you reboot into the new Linux kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) There are four chipset options:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 1. Standard ARCnet COM90xx chipset.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) This is the normal ARCnet card, which you've probably got. This is the only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) chipset driver which will autoprobe if not told where the card is.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) It following options on the command line::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) com90xx=[<io>[,<irq>[,<shmem>]]][,<name>] | <name>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) If you load the chipset support as a module, the options are::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) io=<io> irq=<irq> shmem=<shmem> device=<name>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) To disable the autoprobe, just specify "com90xx=" on the kernel command line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) To specify the name alone, but allow autoprobe, just put "com90xx=<name>"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 2. ARCnet COM20020 chipset.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) This is the new chipset from SMC with support for promiscuous mode (packet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) sniffing), extra diagnostic information, etc. Unfortunately, there is no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) sensible method of autoprobing for these cards. You must specify the I/O
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) address on the kernel command line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) The command line options are::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) com20020=<io>[,<irq>[,<node_ID>[,backplane[,CKP[,timeout]]]]][,name]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) If you load the chipset support as a module, the options are::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) io=<io> irq=<irq> node=<node_ID> backplane=<backplane> clock=<CKP>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) timeout=<timeout> device=<name>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) The COM20020 chipset allows you to set the node ID in software, overriding the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) default which is still set in DIP switches on the card. If you don't have the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) COM20020 data sheets, and you don't know what the other three options refer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) to, then they won't interest you - forget them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 3. ARCnet COM90xx chipset in IO-mapped mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) This will also work with the normal ARCnet cards, but doesn't use the shared
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) memory. It performs less well than the above driver, but is provided in case
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) you have a card which doesn't support shared memory, or (strangely) in case
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) you have so many ARCnet cards in your machine that you run out of shmem slots.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) If you don't give the IO address on the kernel command line, then the driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) will not find the card.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) The command line options are::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) com90io=<io>[,<irq>][,<name>]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) If you load the chipset support as a module, the options are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) io=<io> irq=<irq> device=<name>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 4. ARCnet RIM I cards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) These are COM90xx chips which are _completely_ memory mapped. The support for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) these is not tested. If you have one, please mail the author with a success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) report. All options must be specified, except the device name.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) Command line options::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) arcrimi=<shmem>,<irq>,<node_ID>[,<name>]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) If you load the chipset support as a module, the options are::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) shmem=<shmem> irq=<irq> node=<node_ID> device=<name>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) Loadable Module Support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) -----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) Configure and rebuild Linux. When asked, answer 'm' to "Generic ARCnet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) support" and to support for your ARCnet chipset if you want to use the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) loadable module. You can also say 'y' to "Generic ARCnet support" and 'm'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) to the chipset support if you wish.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) ::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) make config
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) make clean
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) make zImage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) make modules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) If you're using a loadable module, you need to use insmod to load it, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) you can specify various characteristics of your card on the command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) line. (In recent versions of the driver, autoprobing is much more reliable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) and works as a module, so most of this is now unnecessary.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) For example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) cd /usr/src/linux/modules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) insmod arcnet.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) insmod com90xx.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) insmod com20020.o io=0x2e0 device=eth1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) Using the Driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) ----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) If you build your kernel with ARCnet COM90xx support included, it should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) probe for your card automatically when you boot. If you use a different
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) chipset driver complied into the kernel, you must give the necessary options
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) on the kernel command line, as detailed above.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) Go read the NET-2-HOWTO and ETHERNET-HOWTO for Linux; they should be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) available where you picked up this driver. Think of your ARCnet as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) souped-up (or down, as the case may be) Ethernet card.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) By the way, be sure to change all references from "eth0" to "arc0" in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) HOWTOs. Remember that ARCnet isn't a "true" Ethernet, and the device name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) is DIFFERENT.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) Multiple Cards in One Computer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) ------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) Linux has pretty good support for this now, but since I've been busy, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) ARCnet driver has somewhat suffered in this respect. COM90xx support, if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) compiled into the kernel, will (try to) autodetect all the installed cards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) If you have other cards, with support compiled into the kernel, then you can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) just repeat the options on the kernel command line, e.g.::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) LILO: linux com20020=0x2e0 com20020=0x380 com90io=0x260
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) If you have the chipset support built as a loadable module, then you need to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) do something like this::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) insmod -o arc0 com90xx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) insmod -o arc1 com20020 io=0x2e0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) insmod -o arc2 com90xx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) The ARCnet drivers will now sort out their names automatically.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) How do I get it to work with...?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) --------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) NFS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) Should be fine linux->linux, just pretend you're using Ethernet cards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) oak.oakland.edu:/simtel/msdos/nfs has some nice DOS clients. There
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) is also a DOS-based NFS server called SOSS. It doesn't multitask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) quite the way Linux does (actually, it doesn't multitask AT ALL) but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) you never know what you might need.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) With AmiTCP (and possibly others), you may need to set the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) options in your Amiga nfstab: MD 1024 MR 1024 MW 1024
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) (Thanks to Christian Gottschling <ferksy@indigo.tng.oche.de>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) for this.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) Probably these refer to maximum NFS data/read/write block sizes. I
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) don't know why the defaults on the Amiga didn't work; write to me if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) you know more.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) DOS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) If you're using the freeware arcether.com, you might want to install
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) the driver patch from my web page. It helps with PC/TCP, and also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) can get arcether to load if it timed out too quickly during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) initialization. In fact, if you use it on a 386+ you REALLY need
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) the patch, really.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) Windows:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) See DOS :) Trumpet Winsock works fine with either the Novell or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) Arcether client, assuming you remember to load winpkt of course.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) LAN Manager and Windows for Workgroups:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) These programs use protocols that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) are incompatible with the Internet standard. They try to pretend
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) the cards are Ethernet, and confuse everyone else on the network.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) However, v2.00 and higher of the Linux ARCnet driver supports this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) protocol via the 'arc0e' device. See the section on "Multiprotocol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) Support" for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) Using the freeware Samba server and clients for Linux, you can now
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) interface quite nicely with TCP/IP-based WfWg or Lan Manager
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) networks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) Windows 95:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) Tools are included with Win95 that let you use either the LANMAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) style network drivers (NDIS) or Novell drivers (ODI) to handle your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) ARCnet packets. If you use ODI, you'll need to use the 'arc0'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) device with Linux. If you use NDIS, then try the 'arc0e' device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) See the "Multiprotocol Support" section below if you need arc0e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) you're completely insane, and/or you need to build some kind of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) hybrid network that uses both encapsulation types.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) OS/2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) I've been told it works under Warp Connect with an ARCnet driver from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) SMC. You need to use the 'arc0e' interface for this. If you get
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) the SMC driver to work with the TCP/IP stuff included in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) "normal" Warp Bonus Pack, let me know.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) ftp.microsoft.com also has a freeware "Lan Manager for OS/2" client
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) which should use the same protocol as WfWg does. I had no luck
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) installing it under Warp, however. Please mail me with any results.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) NetBSD/AmiTCP:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) These use an old version of the Internet standard ARCnet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) protocol (RFC1051) which is compatible with the Linux driver v2.10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) ALPHA and above using the arc0s device. (See "Multiprotocol ARCnet"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) below.) ** Newer versions of NetBSD apparently support RFC1201.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) Using Multiprotocol ARCnet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) --------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) The ARCnet driver v2.10 ALPHA supports three protocols, each on its own
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) "virtual network device":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) ====== ===============================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) arc0 RFC1201 protocol, the official Internet standard which just
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) happens to be 100% compatible with Novell's TRXNET driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) Version 1.00 of the ARCnet driver supported _only_ this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) protocol. arc0 is the fastest of the three protocols (for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) whatever reason), and allows larger packets to be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) because it supports RFC1201 "packet splitting" operations.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) Unless you have a specific need to use a different protocol,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) I strongly suggest that you stick with this one.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) arc0e "Ethernet-Encapsulation" which sends packets over ARCnet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) that are actually a lot like Ethernet packets, including the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 6-byte hardware addresses. This protocol is compatible with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) Microsoft's NDIS ARCnet driver, like the one in WfWg and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) LANMAN. Because the MTU of 493 is actually smaller than the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) one "required" by TCP/IP (576), there is a chance that some
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) network operations will not function properly. The Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) TCP/IP layer can compensate in most cases, however, by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) automatically fragmenting the TCP/IP packets to make them
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) fit. arc0e also works slightly more slowly than arc0, for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) reasons yet to be determined. (Probably it's the smaller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) MTU that does it.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) arc0s The "[s]imple" RFC1051 protocol is the "previous" Internet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) standard that is completely incompatible with the new
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) standard. Some software today, however, continues to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) support the old standard (and only the old standard)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) including NetBSD and AmiTCP. RFC1051 also does not support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) RFC1201's packet splitting, and the MTU of 507 is still
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) smaller than the Internet "requirement," so it's quite
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) possible that you may run into problems. It's also slower
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) than RFC1201 by about 25%, for the same reason as arc0e.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) The arc0s support was contributed by Tomasz Motylewski
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) and modified somewhat by me. Bugs are probably my fault.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) ====== ===============================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) You can choose not to compile arc0e and arc0s into the driver if you want -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) this will save you a bit of memory and avoid confusion when eg. trying to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) use the "NFS-root" stuff in recent Linux kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) The arc0e and arc0s devices are created automatically when you first
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) ifconfig the arc0 device. To actually use them, though, you need to also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) ifconfig the other virtual devices you need. There are a number of ways you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) can set up your network then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 1. Single Protocol.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) This is the simplest way to configure your network: use just one of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) two available protocols. As mentioned above, it's a good idea to use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) only arc0 unless you have a good reason (like some other software, ie.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) WfWg, that only works with arc0e).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) If you need only arc0, then the following commands should get you going::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) ifconfig arc0 MY.IP.ADD.RESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) route add MY.IP.ADD.RESS arc0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) route add -net SUB.NET.ADD.RESS arc0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) [add other local routes here]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) If you need arc0e (and only arc0e), it's a little different::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) ifconfig arc0 MY.IP.ADD.RESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) ifconfig arc0e MY.IP.ADD.RESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) route add MY.IP.ADD.RESS arc0e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) route add -net SUB.NET.ADD.RESS arc0e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) arc0s works much the same way as arc0e.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) 2. More than one protocol on the same wire.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) Now things start getting confusing. To even try it, you may need to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) partly crazy. Here's what *I* did. :) Note that I don't include arc0s in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) my home network; I don't have any NetBSD or AmiTCP computers, so I only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) use arc0s during limited testing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) I have three computers on my home network; two Linux boxes (which prefer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) RFC1201 protocol, for reasons listed above), and one XT that can't run
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) Linux but runs the free Microsoft LANMAN Client instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) Worse, one of the Linux computers (freedom) also has a modem and acts as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) a router to my Internet provider. The other Linux box (insight) also has
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) its own IP address and needs to use freedom as its default gateway. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) XT (patience), however, does not have its own Internet IP address and so
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) I assigned it one on a "private subnet" (as defined by RFC1597).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) To start with, take a simple network with just insight and freedom.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) Insight needs to:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) - talk to freedom via RFC1201 (arc0) protocol, because I like it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) more and it's faster.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) - use freedom as its Internet gateway.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) That's pretty easy to do. Set up insight like this::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) ifconfig arc0 insight
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) route add insight arc0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) route add freedom arc0 /* I would use the subnet here (like I said
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) to in "single protocol" above),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) but the rest of the subnet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) unfortunately lies across the PPP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) link on freedom, which confuses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) things. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) route add default gw freedom
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) And freedom gets configured like so::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) ifconfig arc0 freedom
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) route add freedom arc0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) route add insight arc0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) /* and default gateway is configured by pppd */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) Great, now insight talks to freedom directly on arc0, and sends packets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) to the Internet through freedom. If you didn't know how to do the above,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) you should probably stop reading this section now because it only gets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) worse.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) Now, how do I add patience into the network? It will be using LANMAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) Client, which means I need the arc0e device. It needs to be able to talk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) to both insight and freedom, and also use freedom as a gateway to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) Internet. (Recall that patience has a "private IP address" which won't
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) work on the Internet; that's okay, I configured Linux IP masquerading on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) freedom for this subnet).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) So patience (necessarily; I don't have another IP number from my
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) provider) has an IP address on a different subnet than freedom and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) insight, but needs to use freedom as an Internet gateway. Worse, most
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) DOS networking programs, including LANMAN, have braindead networking
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) schemes that rely completely on the netmask and a 'default gateway' to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) determine how to route packets. This means that to get to freedom or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) insight, patience WILL send through its default gateway, regardless of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) the fact that both freedom and insight (courtesy of the arc0e device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) could understand a direct transmission.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) I compensate by giving freedom an extra IP address - aliased 'gatekeeper' -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) that is on my private subnet, the same subnet that patience is on. I
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) then define gatekeeper to be the default gateway for patience.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) To configure freedom (in addition to the commands above)::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) ifconfig arc0e gatekeeper
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) route add gatekeeper arc0e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) route add patience arc0e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) This way, freedom will send all packets for patience through arc0e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) giving its IP address as gatekeeper (on the private subnet). When it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) talks to insight or the Internet, it will use its "freedom" Internet IP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) address.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) You will notice that we haven't configured the arc0e device on insight.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) This would work, but is not really necessary, and would require me to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) assign insight another special IP number from my private subnet. Since
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) both insight and patience are using freedom as their default gateway, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) two can already talk to each other.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) It's quite fortunate that I set things up like this the first time (cough
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) cough) because it's really handy when I boot insight into DOS. There, it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) runs the Novell ODI protocol stack, which only works with RFC1201 ARCnet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) In this mode it would be impossible for insight to communicate directly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) with patience, since the Novell stack is incompatible with Microsoft's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) Ethernet-Encap. Without changing any settings on freedom or patience, I
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) simply set freedom as the default gateway for insight (now in DOS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) remember) and all the forwarding happens "automagically" between the two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) hosts that would normally not be able to communicate at all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) For those who like diagrams, I have created two "virtual subnets" on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) same physical ARCnet wire. You can picture it like this::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) [RFC1201 NETWORK] [ETHER-ENCAP NETWORK]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) (registered Internet subnet) (RFC1597 private subnet)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) (IP Masquerade)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) /---------------\ * /---------------\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) | | * | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) | +-Freedom-*-Gatekeeper-+ |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) | | | * | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) \-------+-------/ | * \-------+-------/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) Insight | Patience
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) (Internet)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) It works: what now?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) -------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) Send mail describing your setup, preferably including driver version, kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) version, ARCnet card model, CPU type, number of systems on your network, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) list of software in use to me at the following address:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) apenwarr@worldvisions.ca
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) I do send (sometimes automated) replies to all messages I receive. My email
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) can be weird (and also usually gets forwarded all over the place along the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) way to me), so if you don't get a reply within a reasonable time, please
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) resend.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) It doesn't work: what now?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) --------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) Do the same as above, but also include the output of the ifconfig and route
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) commands, as well as any pertinent log entries (ie. anything that starts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) with "arcnet:" and has shown up since the last reboot) in your mail.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) If you want to try fixing it yourself (I strongly recommend that you mail me
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) about the problem first, since it might already have been solved) you may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) want to try some of the debug levels available. For heavy testing on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) D_DURING or more, it would be a REALLY good idea to kill your klogd daemon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) first! D_DURING displays 4-5 lines for each packet sent or received. D_TX,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) D_RX, and D_SKB actually DISPLAY each packet as it is sent or received,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) which is obviously quite big.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) Starting with v2.40 ALPHA, the autoprobe routines have changed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) significantly. In particular, they won't tell you why the card was not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) found unless you turn on the D_INIT_REASONS debugging flag.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) Once the driver is running, you can run the arcdump shell script (available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) from me or in the full ARCnet package, if you have it) as root to list the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) contents of the arcnet buffers at any time. To make any sense at all out of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) this, you should grab the pertinent RFCs. (some are listed near the top of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) arcnet.c). arcdump assumes your card is at 0xD0000. If it isn't, edit the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) script.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) Buffers 0 and 1 are used for receiving, and Buffers 2 and 3 are for sending.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) Ping-pong buffers are implemented both ways.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) If your debug level includes D_DURING and you did NOT define SLOW_XMIT_COPY,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) the buffers are cleared to a constant value of 0x42 every time the card is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) reset (which should only happen when you do an ifconfig up, or when Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) decides that the driver is broken). During a transmit, unused parts of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) buffer will be cleared to 0x42 as well. This is to make it easier to figure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) out which bytes are being used by a packet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) You can change the debug level without recompiling the kernel by typing::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) ifconfig arc0 down metric 1xxx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) /etc/rc.d/rc.inet1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) where "xxx" is the debug level you want. For example, "metric 1015" would put
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) you at debug level 15. Debug level 7 is currently the default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) Note that the debug level is (starting with v1.90 ALPHA) a binary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) combination of different debug flags; so debug level 7 is really 1+2+4 or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) D_NORMAL+D_EXTRA+D_INIT. To include D_DURING, you would add 16 to this,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) resulting in debug level 23.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) If you don't understand that, you probably don't want to know anyway.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) E-mail me about your problem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) I want to send money: what now?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) -------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) Go take a nap or something. You'll feel better in the morning.