Legacy Networking With Linux.
by Computothought in Circuits > Linux
5501 Views, 19 Favorites, 0 Comments
Legacy Networking With Linux.
Note: Experience at cable making is needed for this project if you can not find readily available parts. see also: https://www.instructables.com/id/DB9-serial-break-out-cable/
Software Available for Linux.
Small sample of software available:
Links2 – internet
Bashpodder – audio podcast collector
Alpine – email client
Irssi – inter relay chat
Centerim – instant messaging client
Oleo or Sc – spreadsheet
Vim, emacs, nani, joe, or a dozen other programs – word processing
Antiword – deals with office based documents
Putty – secure accessing tool
Screen -multiple seesion tool
Ledger – accounting (seems to be based on gnucash)
gpm, mc, synaptic, sed, awk, sort, ncurses, bash ,ssh, wget, curl, or other command line tools.
Sqllite, mysql, psql, plus man other – databases
Hnb – outliner to organize ideas
freebasic, gcc, python, pgp, pgp-cli, perl and many others – computer programming language tools.
Too many to list here – games. (i.e ninvaders)
Moc, aplay, mplayer, cmis and may others – music players
Espeak or Festival – voice synthesizer.
Nget and may others – news readers.
Cdrecord – cd buring program.
wird – nice calendar tool.
The Network.
The network is what traditionally is known as a star network. You will basically have one server with a few terminals (aka clients) connected. Since terminal programs have been out for many years, you have a variety of systems that can connect. There are basically two ways to connect either modem to modem or via rs232 (serial port) using a what is known as a null modem interface to make sure the right wires connect. The next two panels show the wiring for these connections.
Note: You have to be careful some rs232 interfaces use different voltage levels anywhere from 3 to 12 volts. Not matching the correct voltages will damage equipment. This is especially true with the old 8 bit computers such as the Commodore 64 unless you use a special interface. Check the specs for sure. (i.e. ttl not equal to rs232.) Maxim as well as other companies make integrated chips that make interfacing easier.
Actually real networking was done vie the serial line interface protocol. Most systems really did not support it, but there was an operating system for the C=64 called Lunix (not linux) that supported the Slip protocol so that you really did have separate systems working together.
Apple: http://www.6502.org/users/andre/adv65/65net.html
Trs-80 model III
https://home.comcast.net/~matt.boytim/uip/
os/9 it was I think built in
Old Laptops Can Make Great Terminals Too'
As much of a 'nix advocate as I am, there are a few times when for
really old equipment, a dos boot disk just works. All you really need is a dos boot disk, a terminal program, usb to serial adapter, null modem cable. The biggest advantage of this is that you do not need a network to connect to the unit.
You can get dos from all boot disks and then use the dd command to create a bootable disk. My computer did not have a floppy drive, so I found a usb floppy drive that was inexpensive. It is also great for making bios upgrade boot disks.
$ dd if=dosdisk.img of=/dev/sdb
As much of a 'nix advocate as I am, there are a few times when for
really old equipment, a dos boot disk just works. All you really need is a dos boot disk, a terminal program, usb to serial adapter, null modem cable. The biggest advantage of this is that you do not need a network to connect to the unit.
You can get dos from all boot disks and then use the dd command to create a bootable disk. My computer did not have a floppy drive, so I found a usb floppy drive that was inexpensive. It is also great for making bios upgrade boot disks.
$ dd if=dosdisk.img of=/dev/sdb
You will also need to set up your serial connection depending on whether
you are using the traditional serial port or the more modern usb to serial adapter. Every distro is a little different on the setup. We used "Arch Working with the serial console - ArchWiki.html" as a guide. Was working in just a few minutes after a host reboot.
When logging in you may have to hit the return or enter key a few times for things to sync. Minimal login might be like this.
TestSystem Login: username
Password:
Last login: Sat Dec 6 09:32:54 on ttyUSB0
[username@TestSystem ~$ _
From there you can use the system just like a ethernet connection, but there will be no gui. it is almost like going retro.
If you do have ethernet connected you could use lynx to connect to the net. This is great if you need internet access to fix and issue.
Search Images Maps Play YouTube News Gmail Drive More »
Web History | Settings | Sign in
_______________________________________________________
Google Search I'm Feeling Lucky Advanced search
Language tools
Advertising Programs Business Solutions +Google About
© 2013 - Privacy & Terms
Enter a whereis query:
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
You can even play games from the terminal such as ninvaders.
Having this terminal setup could also be used to rescuing other linux
systems in the rare case you might need it. Last but not least the terminal mode is great for running all those page scraping scripts to get data off the internet, we have shown you. It is not how powerful your machine is, but how you use it!
Null Modem Interface
You can get null modem adaptors readily made so you do not have to make one. I have left the specifications in case you want to make your own or you do have access to the parts, but not the ready made adaptors. A null modem is a way to interface two serial ports so that they can talk to each other. This sometimes known as a hard wired connection, See also http://www.lammertbies.nl/comm/info/RS-232_null_modem.html
Note: if you are unsure about the connections, then get a professional to help. I will not be responsible for any issues. Also some devices use non-standard rs232 pin outs. you have to check the documentation for each device to make sure.
Modem to Modem Cabling.
How to connect two modems directly together. You can either do it with a simple battery or use a wallwart to supply power. All the parts should be readily available from most real electronic stores.
Note: if you are unsure about the connections, then get a professional to help. I will not be responsible for any issues.
Note that the resistor value depends on the actual voltage used. For 24V about 1K Ohms max will give at most 24mA (12V @ 500 Ohms, 9V @ 380 Ohms); the resistance of the modem circuit will reduce this slightly (you may need to reduce the resistor value, but if it works with the values mentioned, leave it at that; I'm using 380 Ohms with a voltage input of 14V). The telephone company guarantees about 20mA minimum in an actual phone line, and we want to be about the same minimum. Note also that the battery shown can be replaced by a "wall wart" power supply; most of these are un-regulated (my "9V @ 130mA" plug in DC supply gives about 14V on this circuit when connected to a telepone for testing) and consequently will need an electrolytic capacitor of about 2200 uF across the power supply + and - terminals to reduce the "ripple" voltage (i.e., AC "noise"); be sure to match the polarity of the Electrolytic to the polarity of the power supply.
Logins and Etc.
ggarron@debian:~/tmp$ sudo adduser test Adding user `test' ... Adding new group `test' (1004) ... Adding new user `test' (1003) with group `test' ... Creating home directory `/home/test' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for test Enter the new value, or press ENTER for the default Full Name []: gasf Room Number []: asdg Work Phone []: asdf Home Phone []: asdf Other []: asdf Is the information correct? [Y/n] yWith useradd you have to add parameters.
$ sudo useradd test1
$
Hookem Up and Go to It.
You should be able to just plug in the parts and the terminal prompt for the login will automatically come up. (on some systems you might have to hit <ctrl>c or enter to get the attention of the server.
What is really neat is you can use the old pda's that have serial ports on them. this is great for connecting to servers when a monitor is not readily available for use. In fact, all our servers do not have monitors available on the servers. either you connect via rs232 using a terminal or you use the network via ssh.
Have fun and good luck.
Microsoft Info.
A direct cable connection is a link between the input/output (I/O) ports of two computers by using a single cable rather than a modem or other interfacing device. In most cases, you make a direct cable connection with a null modem cable. You can use a direct cable connection to transfer information between the computers to exchange files, access resources, and so on.
To Make a Direct Cable Connection
- Click Start, click Control Panel, and then double-click Network Connections.
- Under Network Tasks, click Create a new connection, and then click Next.
- Click Set up an advanced connection, and then click Next.
- Click Connect directly to another computer, and click Next.
- Choose the role this machine will play in the communication. If this computer has the information to which you need to gain access, click Host. If this computer will access information from the other computer, click Guest.
- Click the connection device that you want to use for this connection (a parallel or serial port, or an infrared port), and then click Next.
- Grant access to the users who are allowed to connect by selecting the appropriate check boxes, and then click Next.
- Click Finish to end the configuration process.
To Set Up the Guest Computer
- Type a name to identify this connection, and then click Next.
- Click the connection device that you want to use for this connection (a parallel or serial port, or an infrared port), and then click Next.
- Decide whether this connection will be available for all users (click Anyone's use), or only for you (click My use only), and then click Next.
- Click Finish to end the setup process.
Troubleshooting
- To create a direct network connection that acts as a host, you must be logged on as Administrator or be a member of the Administrators group. Guest direct network connections do not require administrator-level rights.
- If you specify your connection as a host when you create it, the connection appears as Incoming Connections in the Network Connections folder.
- You can create multiple direct connections by copying them in the Network Connections folder. You can then rename the connections and modify connection settings. By doing so, you can easily create different connections to accommodate multiple ports, host computers, and so on.
- Direct connections can bypass authentication requirements. This is useful for devices such as handheld computers. You must configure this setting in the host incoming connection.
- If you create a direct connection by using a serial (RS-232C) cable, the port that you select in the New Connection Wizard is enabled for connections that use a null modem.
- If you are logged on to your computer as Administrator or a member of the Administrators group when you create a direct connection, you see a list of connection devices to choose from that includes all of the parallel ports for the computer, infrared ports that are installed and enabled, and COM ports. If you are logged on as a user who is not a member of the Administrators group and you create a direct connection, the list of devices includes the parallel ports for the computer, infrared ports that are installed and enabled, and only the COM ports that are configured with null modems. If you need to use a COM port for a direct connection, ask your system administrator to configure one of the COM ports on your computer with a null modem by using the Phone and Modem Options tool in Control Panel.
Bulletin Board System.
[code]
COMMON SHARED Car.ret, Car.ret$, Lfeed, Lfeed$, Mod.dem, Console
DECLARE SUB delay (Secs!)
DECLARE SUB Lout (l$, Cr!)
CONST False = 0
CONST True = -1
' ****************************************************************************
' Lizzybbs version 0.00001
' main.loop written by computothought
' some data input routines borrowed from the dumbbs program
' last update 02/06/95
start.program:
GOSUB housekeeping
WHILE NOT done
GOSUB The.main.loop
WEND
GOSUB end.of.job
END
' *****************************************************************************
' Subroutines
' -----------------------------------------------------------------------------
housekeeping:
CLS
CLOSE
done = 0
Cdmask = &H80
Carrier = 0
'Status ports should be Com1 = 3fe and Com2 = 2fe (?f8+6)
Rs232.port = &H3FE: '&H3F8 + 6
Mod.dem = 1
Console = 2
Port$ = "COM1:"
Baud$ = "300,"
Flow$ = "N,8,1": ',DS0"
Minute = 60
Char.wait.time = 4 * Minute
Char.grace.time = 1 * Minute
Lin.length = 40
Q$ = CHR$(34)
Bell$ = CHR$(7)
Car.ret = 13
Car.ret$ = CHR$(Car.ret)
Lfeed = 10
Lfeed$ = CHR$(Lfeed)
' ------------------------------------------------
' select.baud - select the baud rate
Com.spec$ = Port$ + Baud$ + Flow$
' ----------------------------------------------
' open communication lines
OPEN Com.spec$ FOR RANDOM AS #Mod.dem
GOSUB pause
OPEN "scrn:" FOR OUTPUT AS #Console
' ---------------------------------------------
' Restart the work log file
OPEN "append", #5, "worklog"
PRINT #5, "Start of job", TIME$, DATE$
CLOSE #5
RETURN
' ------------------------------------------------
' gchar - get a character
Gchar:
Char.timeout = False
Charet = 0
T = TIMER
DO
IF NOT EOF(Mod.dem) THEN
Clizzyied$ = INPUT$(1, #Mod.dem)
C = ASC(Clizzyied$)
PRINT #Mod.dem, CHR$(C);
IF C <> 8 THEN
PRINT #Console, CHR$(C);
ELSE
PRINT #Console, CHR$(29);
END IF
Charet = 1
END IF
GOSUB Carchek
LOOP UNTIL TIMER > T + Char.wait.time OR Charet = 1 OR Carrier = False
IF TIMER > T + Char.wait.time THEN
a$ = Car.ret$ + Lfeed$ + Bell$ + Bell$
a$ = a$ + "This BBS will hang up if you don't press a key."
CALL Lout(a$, True)
Violation = 2
Char.timeout = True
C = 256
END IF
RETURN
' ----------------------------------------------------
' gline - get a line
Gline:
In.line$ = ""
GOSUB Clear.garbage
DO
GOSUB Gchar
SELECT CASE C
CASE IS > 255, Car.ret
REM
CASE 29, 8
In.line$ = LEFT$(In.line$, LEN(In.line$) - 1)
CASE ELSE
In.line$ = In.line$ + CHR$(C)
END SELECT
LOOP UNTIL LEN(In.line$) > Lin.length OR (C = Car.ret AND LEN(In.line$) > 0) OR C > 255 OR Carrier = False
RETURN
' -------------------------------------------------------------------------
' Dtrlow
Dtrlow:
PRINT #Mod.dem, "ATH0"
GOSUB pause
PRINT #Mod.dem, "ATZ"
GOSUB pause
RETURN
' --------------------------------------------------------------------------
' Dtrhi
Dtrhi:
PRINT #Mod.dem, "ATE0M0S0=1&C1"
GOSUB pause
RETURN
' ----------------------------------------------------------
' file download
file.download:
Dload.item$ = ""
DO WHILE UCASE$(Dload.item$) <> "0"
Usefile$ = "dir.fil"
GOSUB File.display
GOSUB Clear.garbage
GOSUB Gchar
Dload.item$ = UCASE$(CHR$(C))
DO WHILE Dload.item$ <= "Z" AND Dload.item$ >= "A"
CALL Lout("Please open your buffer now, then press any key!", True)
GOSUB File.display
GOSUB Clear.garbage
GOSUB Gchar
Usefile$ = "\ul\dload" + CHR$(C)
GOSUB File.display
CALL Lout("Please close your buffer now, then press any key!", True)
GOSUB Clear.garbage
GOSUB Gchar
LOOP
IF Carrier = False OR Char.timeout THEN EXIT DO
LOOP
RETURN
' ----------------------------------------------------------
' bulletin display
bulletins:
Bullet.item$ = ""
DO WHILE UCASE$(Bullet.item$) <> "Q"
Usefile$ = "poster"
GOSUB File.display
CALL Lout("Enter choice: ", False)
GOSUB Clear.garbage
GOSUB Gchar
Bullet.item$ = UCASE$(CHR$(C))
CALL Lout(" ", True)
DO WHILE C > 48 AND C < 57
Usefile$ = Usefile$ + Bullet.item$
GOSUB File.display
C = 256
LOOP
IF Carrier = False OR Char.timeout THEN EXIT DO
LOOP
RETURN
' ----------------------------------------------------------
' new user routine
New.user:
Usefile$ = "newuser"
GOSUB File.display
CALL Lout("Please enter a unique password: ", False)
GOSUB Gline
CALL Lout("", True)
Pass.in$ = In.line$
CLOSE #4
KILL "userfile.old"
NAME "userfile" AS "userfile.old"
OPEN "O", #6, "userfile"
Status = 4
PRINT #6, Q$; Log.name$; Q$; ","; Q$; Pass.in$; Q$; ","; Status; ","; Q$; Time.in$; Q$
CLOSE #6
OPEN "I", #7, "userfile.old"
OPEN "A", #8, "userfile"
DO WHILE NOT EOF(7)
INPUT #7, a$, B$, C, D$
PRINT #8, Q$; a$; Q$; ","; Q$; B$; Q$; ","; C; ","; Q$; D$; Q$
IF a$ = "END" THEN EXIT DO
LOOP
CLOSE #7
CLOSE #8
RETURN
' ---------------------------------------------------------
' file.display
File.display:
OPEN "I", #3, Usefile$
WHILE NOT EOF(3)
LINE INPUT #3, data.in$
CALL Lout(data.in$, True)
WEND
CLOSE #3
RETURN
' =========================================================
' The main Loop
'
' This is where the 'BBS' actually begins.
'
The.main.loop:
Restart:
VIEW PRINT
GOSUB Dtrlow
GOSUB Dtrhi
CLS
LOCATE 2, 30: PRINT "lizzyied BBS version 0.001"
Wait.for.ring:
DO
C = 256
LOCATE 3, 30
PRINT DATE$; " "; TIME$
LOCATE 4, 30
PRINT "Rs232:"; INP(Rs232.port)
GOSUB Carchek
LOOP UNTIL Carrier
' -----------------------------------------------------
' start
Mainloop:
VIEW PRINT 6 TO 25
GOSUB Clear.garbage
' -----------------------------------------------------
' header
Usefile$ = "prelog"
GOSUB File.display
' -----------------------------------------------------
' logon
logon:
Time.in$ = TIME$
Legal = False
CALL Lout("Please enter your name: ", False)
GOSUB Gline
Log.name$ = In.line$
CALL Lout("", True)
CLOSE #4
OPEN "I", #4, "userfile"
DO WHILE NOT EOF(4)
INPUT #4, Name.in$, Pass.in$, Status, Start$
IF UCASE$(Name.in$) = UCASE$(Log.name$) OR Name.in$ = "END" THEN EXIT DO
LOOP
IF Name.in$ = "END" THEN
GOSUB New.user
ELSE
FOR xdummy = 1 TO 3
CALL Lout(" password: ", False)
GOSUB Gline
Pass.word$ = ""
Pass.word$ = In.line$
CALL Lout("", True)
IF Pass.word$ = Pass.in$ THEN
EXIT FOR
ELSEIF ((Pass.word$ <> Pass.in$) AND (xdummy > 3)) THEN
violate = 1
GOTO Logoff
END IF
NEXT xdummy
END IF
CLOSE #4
' -----------------------------------------------------
' main
menu.item$ = ""
DO WHILE UCASE$(menu.item$) <> "G"
Usefile$ = "post2"
GOSUB File.display
CALL Lout(" ", True)
CALL Lout("Your choice: ", False)
GOSUB Clear.garbage
GOSUB Gchar
menu.item$ = UCASE$(CHR$(C))
CALL Lout(" ", True)
SELECT CASE menu.item$
CASE "D"
GOSUB file.download
CASE "B"
GOSUB bulletins
CASE "G"
violate = 0
END SELECT
IF Carrier = False OR Char.timeout THEN EXIT DO
LOOP
' -----------------------------------------------------
' footer
Usefile$ = "epilog"
GOSUB File.display
' -----------------------------------------------------
' pause
pause:
FOR x = 1 TO 4000
NEXT x
RETURN
' -----------------------------------------------------
' logoff
Logoff:
OPEN "append", #5, "worklog"
PRINT #5, Name.in$, Pass.word$, Time.in$, TIME$, violate
CLOSE #5
a$ = "Logging off"
CALL Lout(a$, True)
a$ = "+++"
CALL Lout(a$, True)
T = TIMER
DO
LOOP UNTIL TIMER > 4 + T
PRINT "Turning DTR low"
GOSUB Dtrlow
CALL delay(2)
PRINT "Bringing DTR high"
GOSUB Dtrhi
CALL delay(2)
RETURN
' ------------------------------------------------------
Carchek:
CC = (INP(Rs232.port) AND Cdmask)
IF CC = 128 THEN
Carrier = True
ELSE
Carrier = False
END IF
RETURN
' ------------------------------------------------------
Clear.garbage:
IF NOT EOF(1) THEN
DO
Clizzyied$ = INPUT$(1, #Mod.dem)
LOOP UNTIL EOF(Mod.dem)
END IF
RETURN
' ------------------------------------------------------
end.of.job:
OPEN "append", #5, "worklog"
PRINT #5, "End of use", TIME$, DATE$
CLOSE #5
CLOSE
RETURN
' ===========================================================================
SUB delay (Secs)
' ------------------------------------------------
' delay - wait so many seconds
delay (Secs):
T1 = TIMER
DO
LOOP UNTIL TIMER > 40 + T1
END SUB
SUB flush (Time)
' ----------------------------------------------------
' flush - flush buffer
T = TIMER
DO
IF NOT EOF(Mod.dem) THEN
Dummy$ = INPUT$(LOF(Mod.dem), #Mod.dem)
END IF
LOOP UNTIL TIMER > T + Time
END SUB
SUB Lout (l$, Cr)
' ---------------------------------------------------
' lout - line out
FOR j = 1 TO LEN(l$)
G = ASC(MID$(l$, j, 1))
PRINT #Mod.dem, CHR$(G);
PRINT #Console, CHR$(G);
NEXT j
IF Cr THEN
PRINT #Mod.dem, Car.ret$; Lfeed$
PRINT #Console, Car.ret$;
END IF
END SUB
[/code]
What About Wifi?
Wifi is no problem, but the setup for security reasons is a bit more involved. Basically you will use an access point, an old pc (with ethernet) to act as a router, switch, and of course the client or user systems. I will let you get into the research and the details yourself.
Most any generic access point should work if you can access it via telnet. Most documentation will not tell you about that feature. You almost have to test the unit yourself. Know that we had to test ours and was pleasantly surprised that it did work. You will probably have to change the settings to work with your network.
eddie@oedt01:~$ telnet 192.168.8.131
Trying 192.168.1.250…
Connected to 192.168.1.250.
Escape character is ‘^]’.
AP11G login: admin
Password: ******
Atheros Access Point Rev 4.0.0.167
AP11G wlan0 -> ?
List of Access Point CLI commands:
add remoteWbr — Add a remote Wireless Bridge
config wlan — config wlanX
connect bss — connect to bssX
del acl — Delete Access Control List
del key — Delete Encryption key
del remoteWbr — Delete a remote Wireless Bridge
find bss — Find BSS
…
…
You will need an old pc (even a floppy based 486 should work) and the Freesco software (there are other floppy based firewall distros): (LATEST STABLE RELEASE: 0.4.4 ... FREESCO is based on the Linux operating system. ... Minimum install requires a 486sx with 12mb of ram.)
http://freesco.org/
http://freescofaq.hopto.org/category1.html
Note freesco may no longer really supports floppies, but the do have a bootable cd.
Lastly you will need a switch. You could probably use an old fashioned hub, but the throughput could be horrendous.
Note if you use a 486, you will probably have to find some old isa ethernet networking cards of you 486 does not have a pci bus.