FreeTCP ======= Assembled from bits 'n pieces by Jacco de Leeuw (leeuw@fwi.uva.nl) Introduction ============ With the contents of this archive file, you can use the Internet Access Kit included with regular Warp (Red box and Blue box) on your Local Area Network, e.g. Ethernet. Normally, the IAK can only be used on a serial dial up line with the SLIP or PPP protocol. You won't have to buy extra networking software such as Warp Connect or Lantastic. Although these packages are not bad at all, you may not want to spend more money. And perhaps you don't even need the full functionality of these products (such as Peer-to-Peer connectivity and TCP/IP server daemons, so that people can logon to your PC running TELNETD etc.). The solution contained in this archive works great for people on a budget, such as students with Ethernet in their dorms. What we want to do is pass TCP/IP packets to the network driver instead of the serial port. On the Web, http://pclt.cis.yale.edu/pclt/winworld/os2.htm gives a graphical display of it. Warp needs a couple of files to make this happen. Some of these files -- buried in several ZIP and Self Extracting archives -- can be found on Microsofts' FTP server (of all places!), others are up on Hobbes. In this archive you'll find the most relevant files so you won't have to go through the hassle of downloading, extracting, installing and deleting a couple of megabytes. One other file that is needed is IFNDIS.SYS (about 32 Kb). It is not included but can be found in the archive TCP20C4.EXE or TCP20C4.ZIP. See README.1ST about the controversy around this file. If you prefer to download the whole lot yourself, here are the locations: Microsoft LAN Manager 2.2c Client for OS/2: ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/ IBM TCP/IP 2.0 for OS/2 CSD: ftp://ftp.cdrom.com/pub/os2/ibm/tcpip/tcp20* ftp://ftp.cdrom.com/pub/os2/network/tcpip/tcp20* ftp://software.watson.ibm.com/pub/tcpip/os2/tcp20* ftp://hobbes.nmsu.edu/os2/ibm/tcpip/tcp20* ftp://hobbes.nmsu.edu/os2/network/tcpip/tcp20* An old Netbind.exe from Microsoft, but it seems to do the trick: (this one _was_ on Hobbes but apparently some old stuff has been cleaned up. You can still find it with Archie on some other sites.) ftp://infoserv.cc.uni-augsburg.de/pub/msdos/tcpip/driver/zip/ndis.zip ftp://ftp.latrobe.edu.au/archive-disk2/os2/16bit/network/ndis/ndis.zip Documentation ============= I've included some background information on the IAK, TCP/IP etc. in \FREETCP\DOCS. Not everything is relevant. Most of this stuff is even quite advanced. Just skip the hard bits. Some great stuff on Warp networking (Post- script format) can be found at ftp://ftp.cdrom.com/pub/os2/warp/info/warpslip.zip and on the Web at PC Lube & Tune, http://pclt.cis.yale.edu/pclt/winworld/os2.htm This is great technical stuff, also very informative when you are configuring your setup. Recommended. Installation ============ First, let me describe briefly what you'll have to do: 1. Get the CSD and extract the file IFNDIS.SYS from it to \FREETCP\BIN 2. Get an NDIS driver for your network card and put it in \FREETCP\BIN 3. Configure the interrupt, DMA, I/O address etc. for your network card in \FREETCP\BIN\PROTCOL.INI 4. Add \FREETCP\CONFIG.ADD to your \CONFIG.SYS and edit it 5. Edit \FREETCP\BIN\LANSTART.CMD 6. Make a shadow of LANSTART.CMD in your startup folder 7. Reboot (and goto step 3 if anything goes wrong *GRIN*) 8. Make an entry in the Dialer ('Dial Other Providers') 9. "Dial" your entry so that the correct configuration files will be set up 10. Configure your TCP/IP applications such as Ultimail/2 "Lite" (or replace them with better ones :-) 11. Start using TCP/IP apps. If you are setting up this stuff for the first time, I suggest you skip steps 6, 8..11 and put a REM before the line RUN=NETBIND.EXE in your CONFIG.SYS. This allows you to open an OS/2 window and execute NETBIND.EXE and LANSTART.CMD manually. This way, should something go wrong, there's more chance you will see an error message. If you get no errors, you can continue with the steps you skipped. 1. Get the CSD and extract files -------------------------------- First, you'll have to get the IBM TCP/IP 2.0 CSD. Actually, you only need "disk" #4 of the CSD. The latest CSD is on IBM's own FTP site: ftp://software.watson.ibm.com/pub/tcpip/os2/tcp20c4.exe but you'll probably want to get it from another FTP site :-), e.g. ftp://hobbes.nmsu.edu/os2/ibm/tcpip/tcp20c4.exe Next, you'll have to extract the only file needed, IFNDIS.SYS. I've made a command file, EXTRACT.CMD located in \FREETCP\BIN, which should do the trick for you (Info-Zip's UNZIP.EXE needs to be in your path). If you want, you can extract IFNDIS.SYS on your Unix host and then download it so that you won't have to download the whole 1.1 Mb. EXTRACT.CMD needs one parameter, the (path and) filename of the CSD file containing IFNDIS.SYS. For instance, if you have the March '95 Hobbes CD on F:, goto the directory \FREETCP\BIN and execute EXTRACT F:\NETWORK\TCPIP\TCP20C4.EXE. This will put IFNDIS.SYS in the desired directory. (If you got the CSD from a BBS, then there's a chance the file will be called TCP20C4.ZIP. You can use EXTRACT2.CMD in that case. I've received a free CD from IBM with files from the Hotline BBS Switzerland, which had the CSD in zip format as well). As you can read in \FREETCP\DOCS\WARPTCP.TXT, the INET.SYS included with the IAK of Warp will "break the full client/server functionality of Ultimail/2". I'm not sure but I think they mean Ultimail/2 as shipped with IBM TCP/IP 2.0, not Ultimail/2 "Lite" as shipped with the IAK. So I guess if you intend to use only the TCP/IP applications shipped with the IAK, the INET.SYS from Warp may be good enough. Anyway, there is a new INET.SYS included with the latest PPP/Dialer kit (just use "Retrieve Software Updates"), which may or may not solve the problem. Oh, and there's an INET.SYS in the CSD as well... 2. Get an NDIS driver --------------------- You'll need an OS/2 NDIS driver for your network card. You can use the one which was supplied with your card (if you're lucky) or else look for one in ftp://ftp.cdrom.com/pub/os2/network/ndis/, ftp://hobbes.nmsu.edu/os2/network/ndis/ or elsewhere. I'm not sure if it has to be a 32-bit driver. Several people have reported crashes with their (old), vendor supplied, driver for NE2000 compatibles. The Warp IAK is 32-bit, I'm not sure about the LAN Manager files. If your NDIS driver crashes, TRAPs etc., try to get a later version. For your convenience, I decided to include a driver for NE2000 compatibles in this archive because NE2000 clones are inexpensive and very common among home users, students, etc. Since OS/2 drivers for NE2000 clones are often buggy and several people have reported success with this particular driver, I thought I'd add it to this archive. So you won't have to waste time struggling with your own driver and looking for a better one... There seems to be a new NE2000 compatible driver on Hobbes, ftp://hobbes.nmsu.edu/os2/drivers/ne2000wc.zip which is for Warp Connect. Get this file if you run into troubles with the included NE2000 driver. It contains elaborate instructions on how to solve them. DON'T use the NE2000 driver included in the Microsoft LAN Manager archive (MS2000$) since it crashes Warp real hard! (What else would you expect, eh? :-). There are known problem with MS LAN Manager and some network cards (mainly Token Ring). For a list, see ftp://ftp.cdrom.com/pub/os2/network/ndis/lmos22.zip If you only have a Novell ODI driver for your network card, you need ODINSUP, the ODI-to-NDIS "shim". There's an old version up on ftp://ftp.jussieu.fr/pub6/pc/os2/16bit/network/odinsp.zip but I don't know if this one works. The latest version should be included with the Netware requester on ftp://ftp.novell.com/pub/netware/nwos/os2clnt211/ You'll probably still need the LAN Manager stuff since the IAK seems to be closely tied to NDIS. Token Ring network cards should be supported but I have no way of knowing. If you get one working, please contact me. 3. Edit PROTOCOL.INI -------------------- You should now edit \FREETCP\BIN\PROTOCOL.INI to reflect the settings for your network card. [TCPIP_XIF] DRIVERNAME = TCPIP$ BINDINGS = "NS2000_NIF" ^^^^^^^^^^ Here you tell LAN Manager to which NDIS driver the TCP/IP stack of Warp has to "bind", i.e. forward or receive packets to/from. The included PROTCOL.INI is configured to use the NS2000 driver for NE2000 compatibles. I myself had a 3COM EtherLink III 3C579 at my disposal. I picked up a driver from ftp://ftp.cdrom.com/pub/os2/network/ndis/3c5x9.zip. Most drivers contain an example PROTOCOL.INI file which you can use as a starting point. This file usually contains a description of all the "keywords" for the driver, but in many cases the default settings will do. If you wanted to use the EtherLink III driver, you would have to change the BINDINGS in the TCPIP_XIF section to the name of the 3C509_NIF section. This was all I had to do, since the 3COM card was self configuring. Your network card may be different. If you have an NE2000 clone for example, you'll need to specifify the Interrupt and the I/O base address. In the PROTOCOL.INI included with this archive, I have set these to IRQ 15 and IOBASE 340 in the [NS2000_NIF] section. 4. Edit CONFIG.SYS ------------------ You'll need to edit the CONFIG.SYS on your boot partition. In the following, I assume your boot partition is D: and you've put the contents of this archive in \FREETCP on D: as well. As a starting point, have a look at \FREETCP\CONFIG.ADD. You can copy lines to your own CONFIG.SYS and then edit them from there. First of all, \FREETCP\BIN should be added to both your PATH and DPATH. If you add this path _before_ \TCPIP\BIN, the replacement LINKUP.EXE will be used (see my remarks below about this LINKUP.EXE). Next, copy everything between the LANMAN lines to your CONFIG.SYS and modify them to reflect your paths. You might want to REM out the line with the RUN=NETBIND.EXE so that you can run it from a command line. This allows you to see error messages. Later on, when everything works, you can remove the REM again. In the CONFIG.ADD example, the INET.SYS from the IAK is loaded. See step 1 about this. Next, put in a DEVICE= entry for your OS/2 NDIS driver. In CONFIG.ADD, the NS2000 driver is used. REM out the two lines in your original CONFIG.SYS where INET.SYS and IFNDISNL.SYS are being loaded. (Or leave INET.SYS as it is but don't copy it from CONFIG.ADD. Just don't load it twice). Leave the SET TMP= and SET ETC= as they are in your CONFIG.SYS. I.e. don't copy them from CONFIG.ADD I've REMmed out the TCP/IP driver for the DOS boxes, as you can see in CONFIG.ADD. This is my own personal preference. I don't need TCP/IP access in DOS and Windows sessions. This saves some memory. If you need this feature you can leave them in your own CONFIG.SYS as they are. You should not REM out CNTRL.EXE, it has nothing to do with DOS drivers. See http://pclt.cis.yale.edu/pclt/winworld/os2logic.htm for what it does. 5. Edit LANSTART.CMD -------------------- You'll need to tell the TCP/IP stack a couple of things about the configuration for your network card. Most of this information should come from your system administrator. Some of this info has to go in \FREETCP\BIN\LANSTART.CMD. First, you need a (numerical) IP address for your machine. It is a no-no to just "make one up" if you want to connect to the big Internet. You should contact your network administrator for a valid IP address in order to play it by the book. If he/she isn't cooperating (or you don't have one :-) perhaps you could use some reserved private network IP address such as 192.168.20.20 or so (see RFC1597). You need to know your subnet mask as well. In most cases your subnet will be 255.255.255.0 Now put these two IP numbers in LANSTART.CMD, on the ifconfig line. (If your company/university/etc. uses Unix BOOTP servers you could try to change the two IFCONFIG and ROUTE lines to BOOTP.EXE). Next, you must get hold of the gateway's IP address which you are going to use. Put this IP address in LANSTART.CMD, on the route add line. The last parameter (the 1) is the hop count. Change it only if you know what you're doing. If your network is not really going to be connected to the Internet (you just want to use FreeTCP to link two PCs, in a crude manner), you might not need a route add command but I'm not sure. 6. Run LANSTART.CMD at startup ------------------------------ You can do this by dragging a shadow of LANSTART.CMD to your startup folder. Or you could copy LANSTART.CMD to the root of your boot partition and rename it to STARTUP.CMD. I suggest to do this after you have figured everything out. The first time you should run LANSTART.CMD from a command line so that you can see the error messages. 7. Reboot --------- Watch any errors you get. You might want to boot with ALT-F2 pressed so that you see the drivers being loaded and then run NETBIND.EXE and LANSTART.CMD manually. 8. Add Entry in Dialer ---------------------- Since TCP/IP originates from Unix, the IAK uses all kinds of obscure Unix-like configuration files. I prefer to use the Dialer since it does most of the work for you. Just "Add an entry" with the relevant information. You can skip (or enter whatever you want) the fields which have to do with modems (such as phone number, login sequence, MTU size, etc.) The Domain Name server is important and so is your Domain Name. You can make up "Your Host Name" yourself, if your network administrator didn't do that already. I'm not going to explain how to fill in all this information, because that has been done better elsewhere (press F1 in the Dialer or look on PC Lube & Tune's Web site). 9. "Dial" entry --------------- Start the Dialer and Dial your LAN entry. Of course, you won't get far but at least the configuration files will be set up. There's one thing I noticed: I had to copy \TCPIP\ETC\RESOLV to a backup file while the Dialer was "dialing", then I "hung up" and had to copy back this backup file to \TCPIP\ETC\RESOLV. Somehow the Dialer had deleted it, which resulted in "Cannot resolve name" errors. 10. Configure TCP/IP apps ------------------------- ...as you would normally do for a dial-up link. The Dialer does not set up all information for the applications. Especially Ultimail/2 needs a lot more configuring. 11. Get on the net! ------------------- If you got this far, don't you sit there waiting! Try it out! For example, you can use "Retrieve Software Updates" to download the latest WebExplorer, Dialer, etc. Question 5b in \FREETCP\DOCS\WARPTCP.FAQ says that Ultimail/2 "Lite" is configured for dial-up mail servers. You might want to try other mail packages such as PMMail or Netsuite instead. Look with the WebExplorer on http://wc62.residence.gatech.edu/sorensen/tcpip.html for some great TCP/IP apps. Notes ===== LINKUP.EXE ---------- Many TCP/IP apps included with the IAK first open LINKUP.EXE and check if there's a open dial-up link. If not, you get the warning "Not Connected to the Internet" and you'll have to click "Don't connect" before the actual application is loaded. Of course, if you use FreeTCP you'll get this warning every time you start a TCP/IP app, which you may find annoying. Well, I did, so I decided to make a replacement for \TCPIP\BIN\LINKUP.EXE. This replacement program had to run the actual TCP/IP app supplied as a parameter. I didn't even have to program one myself because I found exactly what I needed in the testsuite for the EMX/GCC combo (ftp://ftp.cdrom.com/pub/os2/unix/emx09a/emxtest.zip, file: system.c). I just had to compile it. If you want to use this replacement LINKUP.EXE, add the path \FREETCP\BIN _before_ \TCPIP\BIN in your CONFIG.SYS. If you prefer to add the path at the end of your PATH= line, rename the original LINKUP.EXE to something else and copy the replacement to \TCPIP\BIN. I found out, however, that my LINKUP.EXE only works in combination with 4OS/2! I don't know if that is a bug in CMD.EXE. If you insist on using OS/2's standard CDM.EXE, some TCP/IP objects will open up correctly with my LINKUP.EXE, other won't start at all. In that case you're probably better off using the original LINKUP.EXE. But 4OS/2 is such a great piece of software that you won't regret downloading it from ftp://ftp.cdrom.com/pub/os2/textutil/4os2pkg.zip LAN *and* serial access ----------------------- Perhaps you need both LAN access and SLIP/PPP access, but not the same time. It might be possible to do that using seperate entries in the Dialer but I'm not sure. Things will be extra complicated if you have different accounts with different email addresses, news servers, etc. You'll be on your own on that, sorry. If you get it to work, I'd like to hear. It's probably possible to get both LAN access and SLIP/PPP access running at the same time with FreeTCP. Suppose you're in a dorm and you and your roommate are connected through Ethernet. Both of you want to use one phone line and one modem. Then read questions 5c and 5d in WARPTCP.FAQ. They are talking about a "TCP/IP Configuration Notebook", but since you don't have one (I told you before to buy Warp Connect if you want that luxury :-), you might need to edit the files \TCPIP\ETC\RESOLV and \TCP\ETC\HOSTS. Next, read WARPTCP2.TXT, ROUTEOS2.TXT OS2SLIP.TXT. These contain some information on how to set up the different configuration files for the routing to your own little network. You might need to run ROUTED.EXE on the machine with the modem but perhaps static routing will work as well. I'm not sure about this (see ROUTEOS2.TXT). Anyway, ROUTED.EXE is not included with the IAK so you'll need the CSD for that. Also note that you might need to run IPGATE ON, on the PC which has the modem and has to forward (route) the packets. Scott Cooper (scooper@nando.net) writes about this: > When running Warp connect and TCP/IP on through both LAN and > SLIP/PP connections, IPGATE is turned off automatically by the > Connect code. If memory serves, this is done by the dialer. You can get around this by starting the PPP connection from the command line, Get this by using pppfake from hobbes. Free TIA replacement -------------------- I've got one final tip for you. Many companies, universities, etc. provide only command line dial-up accounts. That's fine, but it would be really great if you could use all your TCP/IP apps from home, wouldn't it? Well, it's possible. There's a commercial program which you start from the command line and turns it into a full blown SLIP link: The Internet Adapter TIA, ftp://marketplace.com/pub/tia/). It costs $25, no source included. However, there is an alternative which is free, based on 4.4BSD, comes with complete sources and does SLIP as well as PPP. You can ftp SLiRP from ftp://blitzen.canberra.edu.au/pub/slirp/ There's also a WWW page at http://blitzen.canberra.edu.au/~danjo/, look for the pages on how to set it up with the Warp IAK. Or have a look at my own homepage, http://carol.fwi.uva.nl/~leeuw/. You can compile the sources yourself or pick up the binaries (see the WWW pages, but use them on your own risk). SLiRP comes in extra useful if you want LAN and SLIP/PPP access at the same time. ROUTEOS2.TXT says the the administrator of the machine at the other end of your SLIP/PPP line (usually a commercial Internet provider or your university) has to assign you an IP "subnet" and add a route to your network. Usually, they charge you money for this since IP addresses are scarce and human intervention is required. With SLiRP, you can do all this yourself since SLiRP is based on "fake" IP addresses for your network. So you won't have to pay your service provider for extra service. See the README in the SLiRP package on how to route the packets from your own little LAN to the Internet. Need more? ========== There's one other thing: there are no "servers" included with the IAK. That means, for example, that other people cannot telnet to your machine because there is no "telnetd" running. In theory, it is possible to extract the daemons (including the ones you need to print over the network to a remote printer using the LPR protocol) you need from the CSD. Of course, this is illegal. They are quite difficult to set up without docs anyway. Warp Connect is much better at this. On the other hand, there are several freeware/ shareware servers available on Hobbes: ftpd, fingerd, telnetd(?), gopherd, talkd, httpd, pop3d, etc. With a little bit of tweaking, you might even get "peer to peer"-like functionality with Lynn's Workplace FTP from Hobbes. This will integrate your peer's ftpd (ask your roommate to run Linux, WinQVT or an OS/2 ftpd such as Neologic or Penguin) on the Desktop. If you find an even better solution, I'd like to hear. Acknowledgements ================ Thanks must go to Albert Crosby who made the Mini-FAQ about OS/2 and "Windows Networking" (OS2NET.TXT), bringing my attention to the freely available MS LAN Manager, and Henrik Stroem (WARPTCP.TXT) who posted an article on how to combine IBM TCP/IP and the IAK. If you combine these two pieces of information (and you manage to find the CSD and an old netbind somewhere :-), you come up with an idea like FreeTCP. I'd also like to thank my "beta testers", who probably wish to remain anonymous... Author ====== Well, I didn't actually make anything, I just looked and looked until I found the "missing parts". If you want to contact me: Jacco de Leeuw Student at the University of Amsterdam Computer Science Department J.C. van Wessemstraat 54 1501 VM Zaandam The Netherlands Internet: leeuw@fwi.uva.nl WWW Homepage: http://carol.fwi.uva.nl/~leeuw/ Fidonet: 2:280/130.20