108bab46fSMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0 208bab46fSMauro Carvalho Chehab 308bab46fSMauro Carvalho Chehab====== 408bab46fSMauro Carvalho ChehabARCnet 508bab46fSMauro Carvalho Chehab====== 608bab46fSMauro Carvalho Chehab 708bab46fSMauro Carvalho Chehab.. note:: 808bab46fSMauro Carvalho Chehab 908bab46fSMauro Carvalho Chehab See also arcnet-hardware.txt in this directory for jumper-setting 1008bab46fSMauro Carvalho Chehab and cabling information if you're like many of us and didn't happen to get a 1108bab46fSMauro Carvalho Chehab manual with your ARCnet card. 1208bab46fSMauro Carvalho Chehab 1308bab46fSMauro Carvalho ChehabSince no one seems to listen to me otherwise, perhaps a poem will get your 1408bab46fSMauro Carvalho Chehabattention:: 1508bab46fSMauro Carvalho Chehab 1608bab46fSMauro Carvalho Chehab This driver's getting fat and beefy, 1708bab46fSMauro Carvalho Chehab But my cat is still named Fifi. 1808bab46fSMauro Carvalho Chehab 1908bab46fSMauro Carvalho ChehabHmm, I think I'm allowed to call that a poem, even though it's only two 2008bab46fSMauro Carvalho Chehablines. Hey, I'm in Computer Science, not English. Give me a break. 2108bab46fSMauro Carvalho Chehab 2208bab46fSMauro Carvalho ChehabThe point is: I REALLY REALLY REALLY REALLY REALLY want to hear from you if 2308bab46fSMauro Carvalho Chehabyou test this and get it working. Or if you don't. Or anything. 2408bab46fSMauro Carvalho Chehab 2508bab46fSMauro Carvalho ChehabARCnet 0.32 ALPHA first made it into the Linux kernel 1.1.80 - this was 2608bab46fSMauro Carvalho Chehabnice, but after that even FEWER people started writing to me because they 2708bab46fSMauro Carvalho Chehabdidn't even have to install the patch. <sigh> 2808bab46fSMauro Carvalho Chehab 2908bab46fSMauro Carvalho ChehabCome on, be a sport! Send me a success report! 3008bab46fSMauro Carvalho Chehab 3108bab46fSMauro Carvalho Chehab(hey, that was even better than my original poem... this is getting bad!) 3208bab46fSMauro Carvalho Chehab 3308bab46fSMauro Carvalho Chehab 3408bab46fSMauro Carvalho Chehab.. warning:: 3508bab46fSMauro Carvalho Chehab 3608bab46fSMauro Carvalho Chehab If you don't e-mail me about your success/failure soon, I may be forced to 3708bab46fSMauro Carvalho Chehab start SINGING. And we don't want that, do we? 3808bab46fSMauro Carvalho Chehab 3908bab46fSMauro Carvalho Chehab (You know, it might be argued that I'm pushing this point a little too much. 4008bab46fSMauro Carvalho Chehab If you think so, why not flame me in a quick little e-mail? Please also 4108bab46fSMauro Carvalho Chehab include the type of card(s) you're using, software, size of network, and 4208bab46fSMauro Carvalho Chehab whether it's working or not.) 4308bab46fSMauro Carvalho Chehab 4408bab46fSMauro Carvalho Chehab My e-mail address is: apenwarr@worldvisions.ca 4508bab46fSMauro Carvalho Chehab 4608bab46fSMauro Carvalho ChehabThese are the ARCnet drivers for Linux. 4708bab46fSMauro Carvalho Chehab 4808bab46fSMauro Carvalho ChehabThis new release (2.91) has been put together by David Woodhouse 4908bab46fSMauro Carvalho Chehab<dwmw2@infradead.org>, in an attempt to tidy up the driver after adding support 5008bab46fSMauro Carvalho Chehabfor yet another chipset. Now the generic support has been separated from the 5108bab46fSMauro Carvalho Chehabindividual chipset drivers, and the source files aren't quite so packed with 5208bab46fSMauro Carvalho Chehab#ifdefs! I've changed this file a bit, but kept it in the first person from 5308bab46fSMauro Carvalho ChehabAvery, because I didn't want to completely rewrite it. 5408bab46fSMauro Carvalho Chehab 5508bab46fSMauro Carvalho ChehabThe previous release resulted from many months of on-and-off effort from me 5608bab46fSMauro Carvalho Chehab(Avery Pennarun), many bug reports/fixes and suggestions from others, and in 5708bab46fSMauro Carvalho Chehabparticular a lot of input and coding from Tomasz Motylewski. Starting with 5808bab46fSMauro Carvalho ChehabARCnet 2.10 ALPHA, Tomasz's all-new-and-improved RFC1051 support has been 5908bab46fSMauro Carvalho Chehabincluded and seems to be working fine! 6008bab46fSMauro Carvalho Chehab 6108bab46fSMauro Carvalho Chehab 6208bab46fSMauro Carvalho ChehabWhere do I discuss these drivers? 6308bab46fSMauro Carvalho Chehab--------------------------------- 6408bab46fSMauro Carvalho Chehab 6508bab46fSMauro Carvalho ChehabTomasz has been so kind as to set up a new and improved mailing list. 6608bab46fSMauro Carvalho ChehabSubscribe by sending a message with the BODY "subscribe linux-arcnet YOUR 6708bab46fSMauro Carvalho ChehabREAL NAME" to listserv@tichy.ch.uj.edu.pl. Then, to submit messages to the 6808bab46fSMauro Carvalho Chehablist, mail to linux-arcnet@tichy.ch.uj.edu.pl. 6908bab46fSMauro Carvalho Chehab 7008bab46fSMauro Carvalho ChehabThere are archives of the mailing list at: 7108bab46fSMauro Carvalho Chehab 7208bab46fSMauro Carvalho Chehab http://epistolary.org/mailman/listinfo.cgi/arcnet 7308bab46fSMauro Carvalho Chehab 7408bab46fSMauro Carvalho ChehabThe people on linux-net@vger.kernel.org (now defunct, replaced by 7508bab46fSMauro Carvalho Chehabnetdev@vger.kernel.org) have also been known to be very helpful, especially 7608bab46fSMauro Carvalho Chehabwhen we're talking about ALPHA Linux kernels that may or may not work right 7708bab46fSMauro Carvalho Chehabin the first place. 7808bab46fSMauro Carvalho Chehab 7908bab46fSMauro Carvalho Chehab 8008bab46fSMauro Carvalho ChehabOther Drivers and Info 8108bab46fSMauro Carvalho Chehab---------------------- 8208bab46fSMauro Carvalho Chehab 8308bab46fSMauro Carvalho ChehabYou can try my ARCNET page on the World Wide Web at: 8408bab46fSMauro Carvalho Chehab 8508bab46fSMauro Carvalho Chehab http://www.qis.net/~jschmitz/arcnet/ 8608bab46fSMauro Carvalho Chehab 8708bab46fSMauro Carvalho ChehabAlso, SMC (one of the companies that makes ARCnet cards) has a WWW site you 8808bab46fSMauro Carvalho Chehabmight be interested in, which includes several drivers for various cards 8908bab46fSMauro Carvalho Chehabincluding ARCnet. Try: 9008bab46fSMauro Carvalho Chehab 9108bab46fSMauro Carvalho Chehab http://www.smc.com/ 9208bab46fSMauro Carvalho Chehab 9308bab46fSMauro Carvalho ChehabPerformance Technologies makes various network software that supports 9408bab46fSMauro Carvalho ChehabARCnet: 9508bab46fSMauro Carvalho Chehab 9608bab46fSMauro Carvalho Chehab http://www.perftech.com/ or ftp to ftp.perftech.com. 9708bab46fSMauro Carvalho Chehab 9808bab46fSMauro Carvalho ChehabNovell makes a networking stack for DOS which includes ARCnet drivers. Try 9908bab46fSMauro Carvalho ChehabFTPing to ftp.novell.com. 10008bab46fSMauro Carvalho Chehab 10108bab46fSMauro Carvalho ChehabYou can get the Crynwr packet driver collection (including arcether.com, the 10208bab46fSMauro Carvalho Chehabone you'll want to use with ARCnet cards) from 10308bab46fSMauro Carvalho Chehaboak.oakland.edu:/simtel/msdos/pktdrvr. It won't work perfectly on a 386+ 10408bab46fSMauro Carvalho Chehabwithout patches, though, and also doesn't like several cards. Fixed 10508bab46fSMauro Carvalho Chehabversions are available on my WWW page, or via e-mail if you don't have WWW 10608bab46fSMauro Carvalho Chehabaccess. 10708bab46fSMauro Carvalho Chehab 10808bab46fSMauro Carvalho Chehab 10908bab46fSMauro Carvalho ChehabInstalling the Driver 11008bab46fSMauro Carvalho Chehab--------------------- 11108bab46fSMauro Carvalho Chehab 11208bab46fSMauro Carvalho ChehabAll you will need to do in order to install the driver is:: 11308bab46fSMauro Carvalho Chehab 11408bab46fSMauro Carvalho Chehab make config 11508bab46fSMauro Carvalho Chehab (be sure to choose ARCnet in the network devices 11608bab46fSMauro Carvalho Chehab and at least one chipset driver.) 11708bab46fSMauro Carvalho Chehab make clean 11808bab46fSMauro Carvalho Chehab make zImage 11908bab46fSMauro Carvalho Chehab 12008bab46fSMauro Carvalho ChehabIf you obtained this ARCnet package as an upgrade to the ARCnet driver in 12108bab46fSMauro Carvalho Chehabyour current kernel, you will need to first copy arcnet.c over the one in 12208bab46fSMauro Carvalho Chehabthe linux/drivers/net directory. 12308bab46fSMauro Carvalho Chehab 12408bab46fSMauro Carvalho ChehabYou will know the driver is installed properly if you get some ARCnet 12508bab46fSMauro Carvalho Chehabmessages when you reboot into the new Linux kernel. 12608bab46fSMauro Carvalho Chehab 12708bab46fSMauro Carvalho ChehabThere are four chipset options: 12808bab46fSMauro Carvalho Chehab 12908bab46fSMauro Carvalho Chehab 1. Standard ARCnet COM90xx chipset. 13008bab46fSMauro Carvalho Chehab 13108bab46fSMauro Carvalho ChehabThis is the normal ARCnet card, which you've probably got. This is the only 13208bab46fSMauro Carvalho Chehabchipset driver which will autoprobe if not told where the card is. 13308bab46fSMauro Carvalho ChehabIt following options on the command line:: 13408bab46fSMauro Carvalho Chehab 13508bab46fSMauro Carvalho Chehab com90xx=[<io>[,<irq>[,<shmem>]]][,<name>] | <name> 13608bab46fSMauro Carvalho Chehab 13708bab46fSMauro Carvalho ChehabIf you load the chipset support as a module, the options are:: 13808bab46fSMauro Carvalho Chehab 13908bab46fSMauro Carvalho Chehab io=<io> irq=<irq> shmem=<shmem> device=<name> 14008bab46fSMauro Carvalho Chehab 14108bab46fSMauro Carvalho ChehabTo disable the autoprobe, just specify "com90xx=" on the kernel command line. 14208bab46fSMauro Carvalho ChehabTo specify the name alone, but allow autoprobe, just put "com90xx=<name>" 14308bab46fSMauro Carvalho Chehab 14408bab46fSMauro Carvalho Chehab 2. ARCnet COM20020 chipset. 14508bab46fSMauro Carvalho Chehab 14608bab46fSMauro Carvalho ChehabThis is the new chipset from SMC with support for promiscuous mode (packet 14708bab46fSMauro Carvalho Chehabsniffing), extra diagnostic information, etc. Unfortunately, there is no 14808bab46fSMauro Carvalho Chehabsensible method of autoprobing for these cards. You must specify the I/O 14908bab46fSMauro Carvalho Chehabaddress on the kernel command line. 15008bab46fSMauro Carvalho Chehab 15108bab46fSMauro Carvalho ChehabThe command line options are:: 15208bab46fSMauro Carvalho Chehab 15308bab46fSMauro Carvalho Chehab com20020=<io>[,<irq>[,<node_ID>[,backplane[,CKP[,timeout]]]]][,name] 15408bab46fSMauro Carvalho Chehab 15508bab46fSMauro Carvalho ChehabIf you load the chipset support as a module, the options are:: 15608bab46fSMauro Carvalho Chehab 15708bab46fSMauro Carvalho Chehab io=<io> irq=<irq> node=<node_ID> backplane=<backplane> clock=<CKP> 15808bab46fSMauro Carvalho Chehab timeout=<timeout> device=<name> 15908bab46fSMauro Carvalho Chehab 16008bab46fSMauro Carvalho ChehabThe COM20020 chipset allows you to set the node ID in software, overriding the 16108bab46fSMauro Carvalho Chehabdefault which is still set in DIP switches on the card. If you don't have the 16208bab46fSMauro Carvalho ChehabCOM20020 data sheets, and you don't know what the other three options refer 16308bab46fSMauro Carvalho Chehabto, then they won't interest you - forget them. 16408bab46fSMauro Carvalho Chehab 16508bab46fSMauro Carvalho Chehab 3. ARCnet COM90xx chipset in IO-mapped mode. 16608bab46fSMauro Carvalho Chehab 16708bab46fSMauro Carvalho ChehabThis will also work with the normal ARCnet cards, but doesn't use the shared 16808bab46fSMauro Carvalho Chehabmemory. It performs less well than the above driver, but is provided in case 16908bab46fSMauro Carvalho Chehabyou have a card which doesn't support shared memory, or (strangely) in case 17008bab46fSMauro Carvalho Chehabyou have so many ARCnet cards in your machine that you run out of shmem slots. 17108bab46fSMauro Carvalho ChehabIf you don't give the IO address on the kernel command line, then the driver 17208bab46fSMauro Carvalho Chehabwill not find the card. 17308bab46fSMauro Carvalho Chehab 17408bab46fSMauro Carvalho ChehabThe command line options are:: 17508bab46fSMauro Carvalho Chehab 17608bab46fSMauro Carvalho Chehab com90io=<io>[,<irq>][,<name>] 17708bab46fSMauro Carvalho Chehab 17808bab46fSMauro Carvalho ChehabIf you load the chipset support as a module, the options are: 17908bab46fSMauro Carvalho Chehab io=<io> irq=<irq> device=<name> 18008bab46fSMauro Carvalho Chehab 18108bab46fSMauro Carvalho Chehab 4. ARCnet RIM I cards. 18208bab46fSMauro Carvalho Chehab 18308bab46fSMauro Carvalho ChehabThese are COM90xx chips which are _completely_ memory mapped. The support for 18408bab46fSMauro Carvalho Chehabthese is not tested. If you have one, please mail the author with a success 18508bab46fSMauro Carvalho Chehabreport. All options must be specified, except the device name. 18608bab46fSMauro Carvalho ChehabCommand line options:: 18708bab46fSMauro Carvalho Chehab 18808bab46fSMauro Carvalho Chehab arcrimi=<shmem>,<irq>,<node_ID>[,<name>] 18908bab46fSMauro Carvalho Chehab 19008bab46fSMauro Carvalho ChehabIf you load the chipset support as a module, the options are:: 19108bab46fSMauro Carvalho Chehab 19208bab46fSMauro Carvalho Chehab shmem=<shmem> irq=<irq> node=<node_ID> device=<name> 19308bab46fSMauro Carvalho Chehab 19408bab46fSMauro Carvalho Chehab 19508bab46fSMauro Carvalho ChehabLoadable Module Support 19608bab46fSMauro Carvalho Chehab----------------------- 19708bab46fSMauro Carvalho Chehab 19808bab46fSMauro Carvalho ChehabConfigure and rebuild Linux. When asked, answer 'm' to "Generic ARCnet 19908bab46fSMauro Carvalho Chehabsupport" and to support for your ARCnet chipset if you want to use the 20008bab46fSMauro Carvalho Chehabloadable module. You can also say 'y' to "Generic ARCnet support" and 'm' 20108bab46fSMauro Carvalho Chehabto the chipset support if you wish. 20208bab46fSMauro Carvalho Chehab 20308bab46fSMauro Carvalho Chehab:: 20408bab46fSMauro Carvalho Chehab 20508bab46fSMauro Carvalho Chehab make config 20608bab46fSMauro Carvalho Chehab make clean 20708bab46fSMauro Carvalho Chehab make zImage 20808bab46fSMauro Carvalho Chehab make modules 20908bab46fSMauro Carvalho Chehab 21008bab46fSMauro Carvalho ChehabIf you're using a loadable module, you need to use insmod to load it, and 21108bab46fSMauro Carvalho Chehabyou can specify various characteristics of your card on the command 21208bab46fSMauro Carvalho Chehabline. (In recent versions of the driver, autoprobing is much more reliable 21308bab46fSMauro Carvalho Chehaband works as a module, so most of this is now unnecessary.) 21408bab46fSMauro Carvalho Chehab 21508bab46fSMauro Carvalho ChehabFor example:: 21608bab46fSMauro Carvalho Chehab 21708bab46fSMauro Carvalho Chehab cd /usr/src/linux/modules 21808bab46fSMauro Carvalho Chehab insmod arcnet.o 21908bab46fSMauro Carvalho Chehab insmod com90xx.o 22008bab46fSMauro Carvalho Chehab insmod com20020.o io=0x2e0 device=eth1 22108bab46fSMauro Carvalho Chehab 22208bab46fSMauro Carvalho Chehab 22308bab46fSMauro Carvalho ChehabUsing the Driver 22408bab46fSMauro Carvalho Chehab---------------- 22508bab46fSMauro Carvalho Chehab 22608bab46fSMauro Carvalho ChehabIf you build your kernel with ARCnet COM90xx support included, it should 22708bab46fSMauro Carvalho Chehabprobe for your card automatically when you boot. If you use a different 22808bab46fSMauro Carvalho Chehabchipset driver complied into the kernel, you must give the necessary options 22908bab46fSMauro Carvalho Chehabon the kernel command line, as detailed above. 23008bab46fSMauro Carvalho Chehab 23108bab46fSMauro Carvalho ChehabGo read the NET-2-HOWTO and ETHERNET-HOWTO for Linux; they should be 23208bab46fSMauro Carvalho Chehabavailable where you picked up this driver. Think of your ARCnet as a 23308bab46fSMauro Carvalho Chehabsouped-up (or down, as the case may be) Ethernet card. 23408bab46fSMauro Carvalho Chehab 23508bab46fSMauro Carvalho ChehabBy the way, be sure to change all references from "eth0" to "arc0" in the 23608bab46fSMauro Carvalho ChehabHOWTOs. Remember that ARCnet isn't a "true" Ethernet, and the device name 23708bab46fSMauro Carvalho Chehabis DIFFERENT. 23808bab46fSMauro Carvalho Chehab 23908bab46fSMauro Carvalho Chehab 24008bab46fSMauro Carvalho ChehabMultiple Cards in One Computer 24108bab46fSMauro Carvalho Chehab------------------------------ 24208bab46fSMauro Carvalho Chehab 24308bab46fSMauro Carvalho ChehabLinux has pretty good support for this now, but since I've been busy, the 24408bab46fSMauro Carvalho ChehabARCnet driver has somewhat suffered in this respect. COM90xx support, if 24508bab46fSMauro Carvalho Chehabcompiled into the kernel, will (try to) autodetect all the installed cards. 24608bab46fSMauro Carvalho Chehab 24708bab46fSMauro Carvalho ChehabIf you have other cards, with support compiled into the kernel, then you can 24808bab46fSMauro Carvalho Chehabjust repeat the options on the kernel command line, e.g.:: 24908bab46fSMauro Carvalho Chehab 25008bab46fSMauro Carvalho Chehab LILO: linux com20020=0x2e0 com20020=0x380 com90io=0x260 25108bab46fSMauro Carvalho Chehab 25208bab46fSMauro Carvalho ChehabIf you have the chipset support built as a loadable module, then you need to 25308bab46fSMauro Carvalho Chehabdo something like this:: 25408bab46fSMauro Carvalho Chehab 25508bab46fSMauro Carvalho Chehab insmod -o arc0 com90xx 25608bab46fSMauro Carvalho Chehab insmod -o arc1 com20020 io=0x2e0 25708bab46fSMauro Carvalho Chehab insmod -o arc2 com90xx 25808bab46fSMauro Carvalho Chehab 25908bab46fSMauro Carvalho ChehabThe ARCnet drivers will now sort out their names automatically. 26008bab46fSMauro Carvalho Chehab 26108bab46fSMauro Carvalho Chehab 26208bab46fSMauro Carvalho ChehabHow do I get it to work with...? 26308bab46fSMauro Carvalho Chehab-------------------------------- 26408bab46fSMauro Carvalho Chehab 26508bab46fSMauro Carvalho ChehabNFS: 26608bab46fSMauro Carvalho Chehab Should be fine linux->linux, just pretend you're using Ethernet cards. 26708bab46fSMauro Carvalho Chehab oak.oakland.edu:/simtel/msdos/nfs has some nice DOS clients. There 26808bab46fSMauro Carvalho Chehab is also a DOS-based NFS server called SOSS. It doesn't multitask 26908bab46fSMauro Carvalho Chehab quite the way Linux does (actually, it doesn't multitask AT ALL) but 27008bab46fSMauro Carvalho Chehab you never know what you might need. 27108bab46fSMauro Carvalho Chehab 27208bab46fSMauro Carvalho Chehab With AmiTCP (and possibly others), you may need to set the following 27308bab46fSMauro Carvalho Chehab options in your Amiga nfstab: MD 1024 MR 1024 MW 1024 27408bab46fSMauro Carvalho Chehab (Thanks to Christian Gottschling <ferksy@indigo.tng.oche.de> 27508bab46fSMauro Carvalho Chehab for this.) 27608bab46fSMauro Carvalho Chehab 27708bab46fSMauro Carvalho Chehab Probably these refer to maximum NFS data/read/write block sizes. I 27808bab46fSMauro Carvalho Chehab don't know why the defaults on the Amiga didn't work; write to me if 27908bab46fSMauro Carvalho Chehab you know more. 28008bab46fSMauro Carvalho Chehab 28108bab46fSMauro Carvalho ChehabDOS: 28208bab46fSMauro Carvalho Chehab If you're using the freeware arcether.com, you might want to install 28308bab46fSMauro Carvalho Chehab the driver patch from my web page. It helps with PC/TCP, and also 28408bab46fSMauro Carvalho Chehab can get arcether to load if it timed out too quickly during 28508bab46fSMauro Carvalho Chehab initialization. In fact, if you use it on a 386+ you REALLY need 28608bab46fSMauro Carvalho Chehab the patch, really. 28708bab46fSMauro Carvalho Chehab 28808bab46fSMauro Carvalho ChehabWindows: 28908bab46fSMauro Carvalho Chehab See DOS :) Trumpet Winsock works fine with either the Novell or 29008bab46fSMauro Carvalho Chehab Arcether client, assuming you remember to load winpkt of course. 29108bab46fSMauro Carvalho Chehab 29208bab46fSMauro Carvalho ChehabLAN Manager and Windows for Workgroups: 29308bab46fSMauro Carvalho Chehab These programs use protocols that 29408bab46fSMauro Carvalho Chehab are incompatible with the Internet standard. They try to pretend 29508bab46fSMauro Carvalho Chehab the cards are Ethernet, and confuse everyone else on the network. 29608bab46fSMauro Carvalho Chehab 29708bab46fSMauro Carvalho Chehab However, v2.00 and higher of the Linux ARCnet driver supports this 29808bab46fSMauro Carvalho Chehab protocol via the 'arc0e' device. See the section on "Multiprotocol 29908bab46fSMauro Carvalho Chehab Support" for more information. 30008bab46fSMauro Carvalho Chehab 30108bab46fSMauro Carvalho Chehab Using the freeware Samba server and clients for Linux, you can now 30208bab46fSMauro Carvalho Chehab interface quite nicely with TCP/IP-based WfWg or Lan Manager 30308bab46fSMauro Carvalho Chehab networks. 30408bab46fSMauro Carvalho Chehab 30508bab46fSMauro Carvalho ChehabWindows 95: 30608bab46fSMauro Carvalho Chehab Tools are included with Win95 that let you use either the LANMAN 30708bab46fSMauro Carvalho Chehab style network drivers (NDIS) or Novell drivers (ODI) to handle your 30808bab46fSMauro Carvalho Chehab ARCnet packets. If you use ODI, you'll need to use the 'arc0' 30908bab46fSMauro Carvalho Chehab device with Linux. If you use NDIS, then try the 'arc0e' device. 31008bab46fSMauro Carvalho Chehab See the "Multiprotocol Support" section below if you need arc0e, 31108bab46fSMauro Carvalho Chehab you're completely insane, and/or you need to build some kind of 31208bab46fSMauro Carvalho Chehab hybrid network that uses both encapsulation types. 31308bab46fSMauro Carvalho Chehab 31408bab46fSMauro Carvalho ChehabOS/2: 31508bab46fSMauro Carvalho Chehab I've been told it works under Warp Connect with an ARCnet driver from 31608bab46fSMauro Carvalho Chehab SMC. You need to use the 'arc0e' interface for this. If you get 31708bab46fSMauro Carvalho Chehab the SMC driver to work with the TCP/IP stuff included in the 31808bab46fSMauro Carvalho Chehab "normal" Warp Bonus Pack, let me know. 31908bab46fSMauro Carvalho Chehab 32008bab46fSMauro Carvalho Chehab ftp.microsoft.com also has a freeware "Lan Manager for OS/2" client 32108bab46fSMauro Carvalho Chehab which should use the same protocol as WfWg does. I had no luck 32208bab46fSMauro Carvalho Chehab installing it under Warp, however. Please mail me with any results. 32308bab46fSMauro Carvalho Chehab 32408bab46fSMauro Carvalho ChehabNetBSD/AmiTCP: 32508bab46fSMauro Carvalho Chehab These use an old version of the Internet standard ARCnet 32608bab46fSMauro Carvalho Chehab protocol (RFC1051) which is compatible with the Linux driver v2.10 32708bab46fSMauro Carvalho Chehab ALPHA and above using the arc0s device. (See "Multiprotocol ARCnet" 32808bab46fSMauro Carvalho Chehab below.) ** Newer versions of NetBSD apparently support RFC1201. 32908bab46fSMauro Carvalho Chehab 33008bab46fSMauro Carvalho Chehab 33108bab46fSMauro Carvalho ChehabUsing Multiprotocol ARCnet 33208bab46fSMauro Carvalho Chehab-------------------------- 33308bab46fSMauro Carvalho Chehab 33408bab46fSMauro Carvalho ChehabThe ARCnet driver v2.10 ALPHA supports three protocols, each on its own 33508bab46fSMauro Carvalho Chehab"virtual network device": 33608bab46fSMauro Carvalho Chehab 33708bab46fSMauro Carvalho Chehab ====== =============================================================== 33808bab46fSMauro Carvalho Chehab arc0 RFC1201 protocol, the official Internet standard which just 33908bab46fSMauro Carvalho Chehab happens to be 100% compatible with Novell's TRXNET driver. 34008bab46fSMauro Carvalho Chehab Version 1.00 of the ARCnet driver supported _only_ this 34108bab46fSMauro Carvalho Chehab protocol. arc0 is the fastest of the three protocols (for 34208bab46fSMauro Carvalho Chehab whatever reason), and allows larger packets to be used 34308bab46fSMauro Carvalho Chehab because it supports RFC1201 "packet splitting" operations. 34408bab46fSMauro Carvalho Chehab Unless you have a specific need to use a different protocol, 34508bab46fSMauro Carvalho Chehab I strongly suggest that you stick with this one. 34608bab46fSMauro Carvalho Chehab 34708bab46fSMauro Carvalho Chehab arc0e "Ethernet-Encapsulation" which sends packets over ARCnet 34808bab46fSMauro Carvalho Chehab that are actually a lot like Ethernet packets, including the 34908bab46fSMauro Carvalho Chehab 6-byte hardware addresses. This protocol is compatible with 35008bab46fSMauro Carvalho Chehab Microsoft's NDIS ARCnet driver, like the one in WfWg and 35108bab46fSMauro Carvalho Chehab LANMAN. Because the MTU of 493 is actually smaller than the 35208bab46fSMauro Carvalho Chehab one "required" by TCP/IP (576), there is a chance that some 35308bab46fSMauro Carvalho Chehab network operations will not function properly. The Linux 35408bab46fSMauro Carvalho Chehab TCP/IP layer can compensate in most cases, however, by 35508bab46fSMauro Carvalho Chehab automatically fragmenting the TCP/IP packets to make them 35608bab46fSMauro Carvalho Chehab fit. arc0e also works slightly more slowly than arc0, for 35708bab46fSMauro Carvalho Chehab reasons yet to be determined. (Probably it's the smaller 35808bab46fSMauro Carvalho Chehab MTU that does it.) 35908bab46fSMauro Carvalho Chehab 36008bab46fSMauro Carvalho Chehab arc0s The "[s]imple" RFC1051 protocol is the "previous" Internet 36108bab46fSMauro Carvalho Chehab standard that is completely incompatible with the new 36208bab46fSMauro Carvalho Chehab standard. Some software today, however, continues to 36308bab46fSMauro Carvalho Chehab support the old standard (and only the old standard) 36408bab46fSMauro Carvalho Chehab including NetBSD and AmiTCP. RFC1051 also does not support 36508bab46fSMauro Carvalho Chehab RFC1201's packet splitting, and the MTU of 507 is still 36608bab46fSMauro Carvalho Chehab smaller than the Internet "requirement," so it's quite 36708bab46fSMauro Carvalho Chehab possible that you may run into problems. It's also slower 36808bab46fSMauro Carvalho Chehab than RFC1201 by about 25%, for the same reason as arc0e. 36908bab46fSMauro Carvalho Chehab 37008bab46fSMauro Carvalho Chehab The arc0s support was contributed by Tomasz Motylewski 37108bab46fSMauro Carvalho Chehab and modified somewhat by me. Bugs are probably my fault. 37208bab46fSMauro Carvalho Chehab ====== =============================================================== 37308bab46fSMauro Carvalho Chehab 37408bab46fSMauro Carvalho ChehabYou can choose not to compile arc0e and arc0s into the driver if you want - 37508bab46fSMauro Carvalho Chehabthis will save you a bit of memory and avoid confusion when eg. trying to 37608bab46fSMauro Carvalho Chehabuse the "NFS-root" stuff in recent Linux kernels. 37708bab46fSMauro Carvalho Chehab 37808bab46fSMauro Carvalho ChehabThe arc0e and arc0s devices are created automatically when you first 37908bab46fSMauro Carvalho Chehabifconfig the arc0 device. To actually use them, though, you need to also 38008bab46fSMauro Carvalho Chehabifconfig the other virtual devices you need. There are a number of ways you 38108bab46fSMauro Carvalho Chehabcan set up your network then: 38208bab46fSMauro Carvalho Chehab 38308bab46fSMauro Carvalho Chehab 38408bab46fSMauro Carvalho Chehab1. Single Protocol. 38508bab46fSMauro Carvalho Chehab 38608bab46fSMauro Carvalho Chehab This is the simplest way to configure your network: use just one of the 38708bab46fSMauro Carvalho Chehab two available protocols. As mentioned above, it's a good idea to use 38808bab46fSMauro Carvalho Chehab only arc0 unless you have a good reason (like some other software, ie. 38908bab46fSMauro Carvalho Chehab WfWg, that only works with arc0e). 39008bab46fSMauro Carvalho Chehab 39108bab46fSMauro Carvalho Chehab If you need only arc0, then the following commands should get you going:: 39208bab46fSMauro Carvalho Chehab 39308bab46fSMauro Carvalho Chehab ifconfig arc0 MY.IP.ADD.RESS 39408bab46fSMauro Carvalho Chehab route add MY.IP.ADD.RESS arc0 39508bab46fSMauro Carvalho Chehab route add -net SUB.NET.ADD.RESS arc0 39608bab46fSMauro Carvalho Chehab [add other local routes here] 39708bab46fSMauro Carvalho Chehab 39808bab46fSMauro Carvalho Chehab If you need arc0e (and only arc0e), it's a little different:: 39908bab46fSMauro Carvalho Chehab 40008bab46fSMauro Carvalho Chehab ifconfig arc0 MY.IP.ADD.RESS 40108bab46fSMauro Carvalho Chehab ifconfig arc0e MY.IP.ADD.RESS 40208bab46fSMauro Carvalho Chehab route add MY.IP.ADD.RESS arc0e 40308bab46fSMauro Carvalho Chehab route add -net SUB.NET.ADD.RESS arc0e 40408bab46fSMauro Carvalho Chehab 40508bab46fSMauro Carvalho Chehab arc0s works much the same way as arc0e. 40608bab46fSMauro Carvalho Chehab 40708bab46fSMauro Carvalho Chehab 40808bab46fSMauro Carvalho Chehab2. More than one protocol on the same wire. 40908bab46fSMauro Carvalho Chehab 41008bab46fSMauro Carvalho Chehab Now things start getting confusing. To even try it, you may need to be 41108bab46fSMauro Carvalho Chehab partly crazy. Here's what *I* did. :) Note that I don't include arc0s in 41208bab46fSMauro Carvalho Chehab my home network; I don't have any NetBSD or AmiTCP computers, so I only 41308bab46fSMauro Carvalho Chehab use arc0s during limited testing. 41408bab46fSMauro Carvalho Chehab 41508bab46fSMauro Carvalho Chehab I have three computers on my home network; two Linux boxes (which prefer 41608bab46fSMauro Carvalho Chehab RFC1201 protocol, for reasons listed above), and one XT that can't run 41708bab46fSMauro Carvalho Chehab Linux but runs the free Microsoft LANMAN Client instead. 41808bab46fSMauro Carvalho Chehab 41908bab46fSMauro Carvalho Chehab Worse, one of the Linux computers (freedom) also has a modem and acts as 42008bab46fSMauro Carvalho Chehab a router to my Internet provider. The other Linux box (insight) also has 42108bab46fSMauro Carvalho Chehab its own IP address and needs to use freedom as its default gateway. The 42208bab46fSMauro Carvalho Chehab XT (patience), however, does not have its own Internet IP address and so 42308bab46fSMauro Carvalho Chehab I assigned it one on a "private subnet" (as defined by RFC1597). 42408bab46fSMauro Carvalho Chehab 42508bab46fSMauro Carvalho Chehab To start with, take a simple network with just insight and freedom. 42608bab46fSMauro Carvalho Chehab Insight needs to: 42708bab46fSMauro Carvalho Chehab 42808bab46fSMauro Carvalho Chehab - talk to freedom via RFC1201 (arc0) protocol, because I like it 42908bab46fSMauro Carvalho Chehab more and it's faster. 43008bab46fSMauro Carvalho Chehab - use freedom as its Internet gateway. 43108bab46fSMauro Carvalho Chehab 43208bab46fSMauro Carvalho Chehab That's pretty easy to do. Set up insight like this:: 43308bab46fSMauro Carvalho Chehab 43408bab46fSMauro Carvalho Chehab ifconfig arc0 insight 43508bab46fSMauro Carvalho Chehab route add insight arc0 43608bab46fSMauro Carvalho Chehab route add freedom arc0 /* I would use the subnet here (like I said 437*caebecb0SRandy Dunlap to in "single protocol" above), 43808bab46fSMauro Carvalho Chehab but the rest of the subnet 43908bab46fSMauro Carvalho Chehab unfortunately lies across the PPP 44008bab46fSMauro Carvalho Chehab link on freedom, which confuses 44108bab46fSMauro Carvalho Chehab things. */ 44208bab46fSMauro Carvalho Chehab route add default gw freedom 44308bab46fSMauro Carvalho Chehab 44408bab46fSMauro Carvalho Chehab And freedom gets configured like so:: 44508bab46fSMauro Carvalho Chehab 44608bab46fSMauro Carvalho Chehab ifconfig arc0 freedom 44708bab46fSMauro Carvalho Chehab route add freedom arc0 44808bab46fSMauro Carvalho Chehab route add insight arc0 44908bab46fSMauro Carvalho Chehab /* and default gateway is configured by pppd */ 45008bab46fSMauro Carvalho Chehab 45108bab46fSMauro Carvalho Chehab Great, now insight talks to freedom directly on arc0, and sends packets 45208bab46fSMauro Carvalho Chehab to the Internet through freedom. If you didn't know how to do the above, 45308bab46fSMauro Carvalho Chehab you should probably stop reading this section now because it only gets 45408bab46fSMauro Carvalho Chehab worse. 45508bab46fSMauro Carvalho Chehab 45608bab46fSMauro Carvalho Chehab Now, how do I add patience into the network? It will be using LANMAN 45708bab46fSMauro Carvalho Chehab Client, which means I need the arc0e device. It needs to be able to talk 45808bab46fSMauro Carvalho Chehab to both insight and freedom, and also use freedom as a gateway to the 45908bab46fSMauro Carvalho Chehab Internet. (Recall that patience has a "private IP address" which won't 46008bab46fSMauro Carvalho Chehab work on the Internet; that's okay, I configured Linux IP masquerading on 46108bab46fSMauro Carvalho Chehab freedom for this subnet). 46208bab46fSMauro Carvalho Chehab 46308bab46fSMauro Carvalho Chehab So patience (necessarily; I don't have another IP number from my 46408bab46fSMauro Carvalho Chehab provider) has an IP address on a different subnet than freedom and 46508bab46fSMauro Carvalho Chehab insight, but needs to use freedom as an Internet gateway. Worse, most 46608bab46fSMauro Carvalho Chehab DOS networking programs, including LANMAN, have braindead networking 46708bab46fSMauro Carvalho Chehab schemes that rely completely on the netmask and a 'default gateway' to 46808bab46fSMauro Carvalho Chehab determine how to route packets. This means that to get to freedom or 46908bab46fSMauro Carvalho Chehab insight, patience WILL send through its default gateway, regardless of 47008bab46fSMauro Carvalho Chehab the fact that both freedom and insight (courtesy of the arc0e device) 47108bab46fSMauro Carvalho Chehab could understand a direct transmission. 47208bab46fSMauro Carvalho Chehab 47308bab46fSMauro Carvalho Chehab I compensate by giving freedom an extra IP address - aliased 'gatekeeper' - 47408bab46fSMauro Carvalho Chehab that is on my private subnet, the same subnet that patience is on. I 47508bab46fSMauro Carvalho Chehab then define gatekeeper to be the default gateway for patience. 47608bab46fSMauro Carvalho Chehab 47708bab46fSMauro Carvalho Chehab To configure freedom (in addition to the commands above):: 47808bab46fSMauro Carvalho Chehab 47908bab46fSMauro Carvalho Chehab ifconfig arc0e gatekeeper 48008bab46fSMauro Carvalho Chehab route add gatekeeper arc0e 48108bab46fSMauro Carvalho Chehab route add patience arc0e 48208bab46fSMauro Carvalho Chehab 48308bab46fSMauro Carvalho Chehab This way, freedom will send all packets for patience through arc0e, 48408bab46fSMauro Carvalho Chehab giving its IP address as gatekeeper (on the private subnet). When it 48508bab46fSMauro Carvalho Chehab talks to insight or the Internet, it will use its "freedom" Internet IP 48608bab46fSMauro Carvalho Chehab address. 48708bab46fSMauro Carvalho Chehab 48808bab46fSMauro Carvalho Chehab You will notice that we haven't configured the arc0e device on insight. 48908bab46fSMauro Carvalho Chehab This would work, but is not really necessary, and would require me to 49008bab46fSMauro Carvalho Chehab assign insight another special IP number from my private subnet. Since 49108bab46fSMauro Carvalho Chehab both insight and patience are using freedom as their default gateway, the 49208bab46fSMauro Carvalho Chehab two can already talk to each other. 49308bab46fSMauro Carvalho Chehab 49408bab46fSMauro Carvalho Chehab It's quite fortunate that I set things up like this the first time (cough 49508bab46fSMauro Carvalho Chehab cough) because it's really handy when I boot insight into DOS. There, it 49608bab46fSMauro Carvalho Chehab runs the Novell ODI protocol stack, which only works with RFC1201 ARCnet. 49708bab46fSMauro Carvalho Chehab In this mode it would be impossible for insight to communicate directly 49808bab46fSMauro Carvalho Chehab with patience, since the Novell stack is incompatible with Microsoft's 49908bab46fSMauro Carvalho Chehab Ethernet-Encap. Without changing any settings on freedom or patience, I 50008bab46fSMauro Carvalho Chehab simply set freedom as the default gateway for insight (now in DOS, 50108bab46fSMauro Carvalho Chehab remember) and all the forwarding happens "automagically" between the two 50208bab46fSMauro Carvalho Chehab hosts that would normally not be able to communicate at all. 50308bab46fSMauro Carvalho Chehab 50408bab46fSMauro Carvalho Chehab For those who like diagrams, I have created two "virtual subnets" on the 50508bab46fSMauro Carvalho Chehab same physical ARCnet wire. You can picture it like this:: 50608bab46fSMauro Carvalho Chehab 50708bab46fSMauro Carvalho Chehab 50808bab46fSMauro Carvalho Chehab [RFC1201 NETWORK] [ETHER-ENCAP NETWORK] 50908bab46fSMauro Carvalho Chehab (registered Internet subnet) (RFC1597 private subnet) 51008bab46fSMauro Carvalho Chehab 51108bab46fSMauro Carvalho Chehab (IP Masquerade) 51208bab46fSMauro Carvalho Chehab /---------------\ * /---------------\ 51308bab46fSMauro Carvalho Chehab | | * | | 51408bab46fSMauro Carvalho Chehab | +-Freedom-*-Gatekeeper-+ | 51508bab46fSMauro Carvalho Chehab | | | * | | 51608bab46fSMauro Carvalho Chehab \-------+-------/ | * \-------+-------/ 51708bab46fSMauro Carvalho Chehab | | | 51808bab46fSMauro Carvalho Chehab Insight | Patience 51908bab46fSMauro Carvalho Chehab (Internet) 52008bab46fSMauro Carvalho Chehab 52108bab46fSMauro Carvalho Chehab 52208bab46fSMauro Carvalho Chehab 52308bab46fSMauro Carvalho ChehabIt works: what now? 52408bab46fSMauro Carvalho Chehab------------------- 52508bab46fSMauro Carvalho Chehab 52608bab46fSMauro Carvalho ChehabSend mail describing your setup, preferably including driver version, kernel 52708bab46fSMauro Carvalho Chehabversion, ARCnet card model, CPU type, number of systems on your network, and 52808bab46fSMauro Carvalho Chehablist of software in use to me at the following address: 52908bab46fSMauro Carvalho Chehab 53008bab46fSMauro Carvalho Chehab apenwarr@worldvisions.ca 53108bab46fSMauro Carvalho Chehab 53208bab46fSMauro Carvalho ChehabI do send (sometimes automated) replies to all messages I receive. My email 53308bab46fSMauro Carvalho Chehabcan be weird (and also usually gets forwarded all over the place along the 53408bab46fSMauro Carvalho Chehabway to me), so if you don't get a reply within a reasonable time, please 53508bab46fSMauro Carvalho Chehabresend. 53608bab46fSMauro Carvalho Chehab 53708bab46fSMauro Carvalho Chehab 53808bab46fSMauro Carvalho ChehabIt doesn't work: what now? 53908bab46fSMauro Carvalho Chehab-------------------------- 54008bab46fSMauro Carvalho Chehab 54108bab46fSMauro Carvalho ChehabDo the same as above, but also include the output of the ifconfig and route 54208bab46fSMauro Carvalho Chehabcommands, as well as any pertinent log entries (ie. anything that starts 54308bab46fSMauro Carvalho Chehabwith "arcnet:" and has shown up since the last reboot) in your mail. 54408bab46fSMauro Carvalho Chehab 54508bab46fSMauro Carvalho ChehabIf you want to try fixing it yourself (I strongly recommend that you mail me 54608bab46fSMauro Carvalho Chehababout the problem first, since it might already have been solved) you may 54708bab46fSMauro Carvalho Chehabwant to try some of the debug levels available. For heavy testing on 54808bab46fSMauro Carvalho ChehabD_DURING or more, it would be a REALLY good idea to kill your klogd daemon 54908bab46fSMauro Carvalho Chehabfirst! D_DURING displays 4-5 lines for each packet sent or received. D_TX, 55008bab46fSMauro Carvalho ChehabD_RX, and D_SKB actually DISPLAY each packet as it is sent or received, 55108bab46fSMauro Carvalho Chehabwhich is obviously quite big. 55208bab46fSMauro Carvalho Chehab 55308bab46fSMauro Carvalho ChehabStarting with v2.40 ALPHA, the autoprobe routines have changed 55408bab46fSMauro Carvalho Chehabsignificantly. In particular, they won't tell you why the card was not 55508bab46fSMauro Carvalho Chehabfound unless you turn on the D_INIT_REASONS debugging flag. 55608bab46fSMauro Carvalho Chehab 55708bab46fSMauro Carvalho ChehabOnce the driver is running, you can run the arcdump shell script (available 55808bab46fSMauro Carvalho Chehabfrom me or in the full ARCnet package, if you have it) as root to list the 55908bab46fSMauro Carvalho Chehabcontents of the arcnet buffers at any time. To make any sense at all out of 56008bab46fSMauro Carvalho Chehabthis, you should grab the pertinent RFCs. (some are listed near the top of 56108bab46fSMauro Carvalho Chehabarcnet.c). arcdump assumes your card is at 0xD0000. If it isn't, edit the 56208bab46fSMauro Carvalho Chehabscript. 56308bab46fSMauro Carvalho Chehab 56408bab46fSMauro Carvalho ChehabBuffers 0 and 1 are used for receiving, and Buffers 2 and 3 are for sending. 56508bab46fSMauro Carvalho ChehabPing-pong buffers are implemented both ways. 56608bab46fSMauro Carvalho Chehab 56708bab46fSMauro Carvalho ChehabIf your debug level includes D_DURING and you did NOT define SLOW_XMIT_COPY, 56808bab46fSMauro Carvalho Chehabthe buffers are cleared to a constant value of 0x42 every time the card is 56908bab46fSMauro Carvalho Chehabreset (which should only happen when you do an ifconfig up, or when Linux 57008bab46fSMauro Carvalho Chehabdecides that the driver is broken). During a transmit, unused parts of the 57108bab46fSMauro Carvalho Chehabbuffer will be cleared to 0x42 as well. This is to make it easier to figure 57208bab46fSMauro Carvalho Chehabout which bytes are being used by a packet. 57308bab46fSMauro Carvalho Chehab 57408bab46fSMauro Carvalho ChehabYou can change the debug level without recompiling the kernel by typing:: 57508bab46fSMauro Carvalho Chehab 57608bab46fSMauro Carvalho Chehab ifconfig arc0 down metric 1xxx 57708bab46fSMauro Carvalho Chehab /etc/rc.d/rc.inet1 57808bab46fSMauro Carvalho Chehab 57908bab46fSMauro Carvalho Chehabwhere "xxx" is the debug level you want. For example, "metric 1015" would put 58008bab46fSMauro Carvalho Chehabyou at debug level 15. Debug level 7 is currently the default. 58108bab46fSMauro Carvalho Chehab 58208bab46fSMauro Carvalho ChehabNote that the debug level is (starting with v1.90 ALPHA) a binary 58308bab46fSMauro Carvalho Chehabcombination of different debug flags; so debug level 7 is really 1+2+4 or 58408bab46fSMauro Carvalho ChehabD_NORMAL+D_EXTRA+D_INIT. To include D_DURING, you would add 16 to this, 58508bab46fSMauro Carvalho Chehabresulting in debug level 23. 58608bab46fSMauro Carvalho Chehab 58708bab46fSMauro Carvalho ChehabIf you don't understand that, you probably don't want to know anyway. 58808bab46fSMauro Carvalho ChehabE-mail me about your problem. 58908bab46fSMauro Carvalho Chehab 59008bab46fSMauro Carvalho Chehab 59108bab46fSMauro Carvalho ChehabI want to send money: what now? 59208bab46fSMauro Carvalho Chehab------------------------------- 59308bab46fSMauro Carvalho Chehab 59408bab46fSMauro Carvalho ChehabGo take a nap or something. You'll feel better in the morning. 595