Setting Up an Old 386 on Your Home Network
My wife has a profound mistrust of the blessings of modern life. Computer-wise she recently upgraded to a recycled Compaq DeskPro 386/25e after wearing out the XT she bought in 1987. All she needs from a computer is a text editor for writing and a spreadsheet program for organizing. She uses WP 4.2, Norton commander (to move files) and VP Planner (a Lotus 123 clone); all three she got around 1987. But now she wanted me to add her system to our home network, but without changing anything on her system. First she wanted to be able to transfer files from her system to mine. This I solved quite easily. Then she wanted Internet access from her old DOS machine—not so easy.
My home network is made of eight systems that I run as a Beowulf. Each system is different, and I made all of them from recycled parts. So I decided to hook my wife's little computer to the head node. The following is a description of how I did this and the hardware I used.
My system, tenn, (short for Tennessee Tuxedo, a cartoon penguin in the US) is a dual-boot Linux/MS 3.1 PI/166MHz with a 6.4GB hard drive and a PCI NIC. My wife's system, hilde, is a Compaq 386/25e with a 120MB hard drive and a NE2000 clone NIC that I added. Patch cables go from both systems to a D-Link 8-port hub. Looking at the software, she has MS-DOS version 5.0 on her computer. I have a standard install of SuSE 7.2 pro on my system.
The idea was to set this up so that my system was a fileserver to her system. I solved the fileserver problem two times. The first time she wanted to be able to connect to my system as if it was her DOS d:\ partition. To do this, I set up Microsoft's DOS Network client on her computer and then started Samba on my Linux system.
New problem: when I told my wife that I had used MS software to get her system connected, she was not amused at all and demanded that I use open-source software only. It did not sway her when I explained that she was already running MS-DOS. Her reasoning was that MS-DOS was written before MS became the evil empire, so it was okay.
Back to the drawing board. I found in my SuSE CDs a DOS utility called XFS, an open-source NFS client for DOS. This software was what I needed. On her system I set up XFS and on my system I added pcnfsd so XFS could login.
Here, then, is how I set up file sharing both ways. You decide which is better for you.
First you need to download Microsoft's DOS Network client software from their FTP site. There are two files from MS dsk3-1.exe and dsk3-2.exe. If you have the DOS drivers for your NIC, you only need the first file. But it was easier to use the MS disks, so I did.
Here is where you start the MS install. Going from the top of the list, you need to give, i.e., change, your machine a name. I gave hilde as the name on the first two lines, but the other two can be left at the default “workgroup”.
Go back to the main menu and make the next selection, Setup. You can leave all of this set to the defaults.
Now we get to the meat of the setup, Change Network Configuration. At this menu the first thing we should do is “add adapter”. Clicking on this will give you a list of all the drivers MS has. Select the one for your machine. Now we should change settings. If you have a NIC selected, it should show up on this menu. You'll need to add the IO and the IRQ numbers here, as well as the “adapter slot number”, the slot you've put your NIC in. Start with the left slot as number 1 counting to the right, up to number 8. This information is probably needed only for an EISA motherboard.
“Add protocol” is the next step, and the spot where most people mess up. MS will default to IPX, but you need to change it to TCP/IP. At the same time you should delete the IPX line, so that MS will not be confused. To delete the IPX protocol you need to tab to the upper menu and highlight the IPX line. Then tab back to the lower menu and click delete.
At this point highlight the line that says “options are correct” and press Return. MS will take over and install all the software. Now you need to reboot your DOS machine.
To keep it as simple as possible on the DOS system, I wrote two batch files for hilde. The startd.bat file loads all the networking files that DOS needs to connect. Because my wife does not need to be connected all the time, I put all the network programs into this file. Doing so frees up more of her system's memory. On that note, I wrote stopd.bat. This way she could free the memory up for other things when she was done transferring files. Her system has 4MB of main memory, which is quite a bit for a DOS-only system, so it's seldom that she receives an out-of-memory error.
############### startd.bat #############################################
@echo off C:\NET\net initialize C:\NET\netbind.com C:\NET\umb.com C:\NET cptsr.exe C:\NET inyrfc.exe C:\NET\nmtsr.exe C:\NET\emsbfr.exe C:\NET\net start net use * \ enn\cdisk
This batch file is a lot simpler than it looks. When I set up the MS client on hilde, the setup program put all the c:\NET\XXX programs in the autoexe.bat file. Since I did not want to have the Net start up every time the system turned on, I took these lines out and put them in the startd file. At the last line the system really makes the connection. This Net command means use the first open dir letter, i.e., *. You could give a letter, for example D:\, and connect to system \ enn's cdisk. Please note that this is not tenn's dir cdisk but the Samba share cdisk. Lastly you can add a password for Samba at the end. It is unnecessary here, but if you leave it off the program will ask you for one each time it starts.
When my wife is done with moving files around, she can turn the connection off by commanding stopd.bat, which contains the line net use * /delete.
The MS client uses about 100k of memory when it's running, which is no real problem because hilde has 4MB of memory. But some of the older DOS programs recognize only the first 640k. So even when the computer has plenty of space they bomb out. I later found out that stopd does not stop all the MS Net software; two or three programs are still running in the background. It seems that the only way to stop them is to reboot the system.
The easiest way to start Samba is to edit your rc.config file in /etc. Change the START_SMB="no" line to START_SMB="yes". Then run SuSEconfig. Of course, you have to do this part as root. If you cannot find this line in rc.config, Samba is not yet on your system and you need to install it. You can do that in YaST, the SuSE program to configure and administer your operating system. If you use another Linux distribution, use its configuration tools to install Samba.
To get Samba to work, you have to edit the file named “smb.conf”. Since my system is a home network and is not connected to the Internet, I've left out all security. If you are connected to the Net, don't use this or, if you do, be sure to add all the security measures.
# Global parameters [global] workgroup = workgroup null passwords = Yes [cdisk] comment = DOS system path = /cdisk read only = no browseable = yes public = yes guest ok = yes
To keep it simple, I did not add printer support. This is easily added, but WP 4.2 does not print correctly on my Epson, so I left it off. When my wife needs something printed, I transfer it to AbiWord and print it under Linux. Because her computer hilde has a MS-DOS filesystem, it would have problems reading my Linux files. Therefore, I restricted hilde to have access to only my /cdisk, which I had set up as a MS-DOS system for MS Windows. After you've got this done you should, as root, restart Samba with smbd restart so that Samba will read the changes. At this time, I also added hilde to my hosts files with this line:
This might not be needed, but it makes it easier than always typing 192.168.17.99 when I am referring to hilde.
The MS software comes with its own packet driver for the NE2000. Oddly enough, when I switched to other software the MS driver would not work. Therefore I had to look for a different driver for my card. Files full of drivers for almost all the older cards can be found on the Internet. The best packet driver I found was written by Crynwr; it's was simple and problem free. The driver has only three options and two are not always needed.
As much as possible, I use the most common type of cards in all my computers. It just makes things simpler. In this case I had in my wife's computer a NE2000 clone card, the most common of all NICs. To get it up and running I only had to use the command ne2000 0x60 10 0x300.
On the first SuSE CD is a directory called DOSutils. It has two subdirectories for XFS, one for plain DOS and the other for Windows. I used the plain DOS directory, called xfs186. This should work on any non-Windows DOS systems. It is easy to put all the XFS files on one 1.44 diskette and move it to the DOS system. I put all the files in the directory named XFS, then added the directory to the path list in the autoexec.bat file.
There are three files you need to configure in the XFS directory on your DOS system: hosts, xfs.bat and init.
# XFS Version 1.71 # hosts # # Note: Please keep this file in LF/CR (DOS) format! # 192.168.17.1 gateway 192.168.17.255 broadcast 255.255.255.0 netmask 192.168.17.44 tenn nfs-server 192.168.17.99 hilde
The host's file comes with sample data. All you need to do is change the names and numbers to the ones of your home network machines.
############### XFS.BAT ############################################ @echo off rem XFS Version 1.71 loadhigh ne2000 0x60 10 0x300 rem loadhigh winpkt 0x60 loadhigh xfskrnl 0x60 fstool @c:\xfs\init rem done
The above is the xfs.bat file, which starts the XFS system running. The first line loads your packet driver into high memory. If you have a NIC other than a NE2000 clone, you need to change this first line to match your NIC's software. The next line is needed only if you plan on using Windows 3.1; otherwise you can delete it. Next is the XFS program itself. Once the program is up and running, we have to initialize the connection between the two systems. This is done with the xfstool program. This one line runs the entire command script below. In the sample the line only says xfstool @init. But there is one problem: the program cannot find the script file, even though the XFS dir is part of the path in autoexec.bat. Solution: I had to add the path to it, then it worked fine.
# XFS Version 1.8 # Command Script init hilde csum=off # authentication pcnfsd tenn login mount d: tenn:/home/hilde/temp mount e: tenn:/cdisk # mount lpt2: speedy:laser timeo=30 umask 000 #
In the command script you start with, initialize the connection between hilde and tenn. Then you must tell tenn that you need the NFS filesystem with the command pcnfsd tenn.
Now you can login to the NFS system and mount the directories you need. For the XFS system I set up two DOS letter directories, d and e. The d: dir is in the Linux filesystem, and the e: dir is in the MS-DOS system. The umask command tells XFS to set the read/write permissions to allow access to all (chmod 666 *on the Linux system).
One odd thing about using the XFS system here is that I can read and write on the Linux filesystem without any problems. But I get permission-denied errors when I try to write to the MS-DOS partition. For example, a file is opened on tenn and saved as zero bits. I can read the partition fine, so it looks like a bug in the XFS software. Since hilde does not need to access the printer, I commented out the mount printer line.
When you run a normal Linux NFS system, you will find a dæmon called nfsd. This dæmon only works with other Linux/UNIX systems. To get XFS (on hilde) to run with your Linux computer, you need a different dæmon; you need to add the pcnfsd software to your system. In SuSE it's simple to add this dæmon. Simply run YaST and install it, then turn it on in the rc.config file. Each time you add a dæmon to your system, any configurations you need to do will be added to the end of this file.
Next you need to add this line to the exports file in /etc.
This allows hilde access to all files on your computer. You might want to limit it to some part like this:
Now hilde can only mount your /cdisk. At this point you need to command (as root) pcnfsd restart to get this dæmon up and running. Once you have hilde connected, you should find in your systems messages file these two lines:
Feb 1 12:35:14 Tenn mountd: NFS mount of /home/hilde/temp attempted from 192.168.17.99 Feb 1 12:35:14 Tenn mountd: /home/hilde/temp has been mounted by 192.168.17.99
Once I had my wife connected to our home network, she wanted to be able to send and receive e-mail and browse the Web. So I had to come up with a way to do that. I looked at all the DOS programs for e-mail and browsing and came to the conclusion that they were all a bit of a pain. Adding in the fact that I would have to set up IP masquerading, etc., on Linux, it became a major pain. So I decided to set her up as a user on my system. Now she can Telnet into my computer and run Pine and Lynx under Linux, and I avoid all the setup problems with DOS.
I did a search on the Net for DOS Telnet clients. Going over all of them, I ended up using sshdos. This is a secured client that is somewhat overkill for a home network, but if you are Telneting by the Net, it is quite nice to have.
A major problem with DOS is there is no central hosts file, so each piece of software demands its configuring files in another place. There are three files to configure to get sshdos running. sshdos uses the Waterloo TCP/IP software.
# Waterloo TCP/IP Host file # # ip-address hostname [alias(es)..] 127.0.0.1 localhost loopback 0.0.0.0 null 192.168.17.44 tenn ############################################################### # File of networks and domains # # name number [alias(es).. ] loopback 127 tenn 192.168.17.44 tenn ############################################################### print = "Waterloo TCP/IP setup" ; optional key/value my_ip = 192.168.17.99 ; really is 0.0.0.0, mandatory hostname = "hilde" ; optional netmask = 255.255.255.0 ; mandatory if not using DHCP nameserver = 192.168.17.99 ; primary DNS, gateway = 0.0.0.0 ; mandatory if not using BOOTP/DHCP domain_list = "Hilde.epost.de" ; mandatory if not using DHCP
My wife uses a monitor with a 12" color screen, too small for any type of windowing software. Such a little screen, overloaded with windows, is hard to read and a horror for somebody who believes, like my wife does, in simplicity. Therefore, I taught her how to use Lynx and Pine. A standard SuSE install normally includes these, so I will not go into installing them. Beyond teaching my wife how to use each program, I had to do very little. I wanted Lynx to be in color, and I wanted her bookmarks appear on the screen when she started. Therefore I added an alias in the .bashrc file for Lynx. Here is the line to add to the .bashrc file:
alias lynx='lynx-color lynx_bookmarks.html'
The neat thing about this is when you add a bookmark to your file, it will show up next time you use Lynx.
On Pine I only showed her how to write an e-mail and send it. I also helped her set up a .sig file. Of course, you will need to reconfigure sendmail and fetchmail for two (or more) users. But that's another article.
James Hatridge has a BS in Informations Systems Management. and lives on a farm in Bavaria.
email: [email protected]