Back to Null Modem Menu

Setting up HyperLink for Null Modem (Linux)

Thanks to Gaelyne Gasson and the folks at VideoCam for this how-to document.

I sent the message below to Cameron Kaiser as he wanted some docs to send others on how to set up a null modem connection in order to use HyperLink connected to a Linux computer.

During the weekend I made a discovery that has a big impact on my ability to check on how our VideoCam server is working using programs like Novaterm and HyperLink. To my utter amazement, I am able to use a null modem set up with VICE (a Commodore emulator) and connect to VideoCam. I'm blown away it's possible, and feel fortunate I have the equipment to do it with. For the last few months while my C128 has been out of commission, I haven't been able to check things on my own and that's bugged me no end.

Anyway, this info below is for a null modem set-up for either using a real C64 or C128 or using VICE (the Versatile Commodore Emulator for Unix/Win32/MS-DOS). [NB! These steps are for Linux ONLY! -- ck]

Requirements for using VICE with HyperLink or other terminal software: 2 free serial ports and 1 null modem connected between the two.

Requirements for using a null modem between the Commodore and Linux machine: 1 free serial port on the Linux computer, a null modem, SwiftLink and serial cable to connect to the serial port.

VICE Settings (Ignore this if using a real C64/128)

This has the effect of emulating a SwiftLink cartrige and setting the baud rate at 9600. The "x" stands for a tick. [To set this to a different baud rate, such as 19200, 38400, or 57600, change the 9600s below to the appropriate rate. -- ck]

Rightclick in VICE and go to the RS232 menu:

RS232 Settings /
              x  ACIA $DExx RS232 Interface Emulation
                 ACIA $DExx Device:  set this for the serial device.
                                     Example: /dev/ttyS3

                 ACIA $DExx Baudrate:   9600
              x  No User Port Emulation

Joystick Settings  /
                   Joystick Port 1 - none
                   Joystick Port 2 - keypad

Setup for Linux Null Modem

Note: The following is a quick summary of the 'Linux Serial HOWTO', chapter 8 ("How Do I Set Up A Terminal Connected To My PC?") with additional comments. [To set this to a different baud rate, such as 19200, 38400, or 57600, change the 9600s below to the appropriate rate. -- ck]


As root, edit /etc/gettydefs

Find the lines near the top starting like: DT.......... Look for a line with DTxxxx where xxxx is the baud rate you want to use. If one exists already, then skip down to editing /etc/inittab.

Copy one of the DT entries (DT = Dumb Terminal) and ensure that all the numbers (including the last one) are the same as the baudrate set in VICE and/or in your C64/128 term program (EG, DT38400 or DT115200). You're just making an appropriate config line for your terminal speed. If you use hardware flow control, you will need to add the flag CRTSCTS to the line. For example, the following is a 9600bps entry with h/w flow control (all on one line):

DT9600# B2400 CS8 CLOCAL # B9600 SANE CRTSCTS CLOCAL #@S @B login: #DT9600

Save the file.


Down near the bottom, you'll see a row of lines with the heading # Run gettys in standard run levels after the last one (probably 6:2345:respawn....), add one that looks like this (all one line):

S2:2345:respawn:/sbin/getty ttyS2 DT9600 vt100

This example is for COM port 2. If your null-modem connection is using COM port one, change the line to S0.........ttyS0.... or S2 and ttyS2 for COM port 3, etc.

The DT96000 text should be the same as your baud rate for HyperLink or your Commodore term program. If you use 38400, change DT9600 to DT38400. The last part (vt100) is the default terminal emulation. Save the file.

What does this file do? It controls which serial ports offer a login prompt to the user. In this scenario, we want S2 to be the listening port, waiting for HyperLink to connect to it via ttyS3 (or, the device we've told VICE to use for the serial device in the example above).


This comment and file is from personal experience. It can be used as a stand-alone program and run to change the baud (and other settings) for the serial ports. Its primary use is the set these rates upon booting the system. Here's what I have in mine.

[If you don't know what to do with this file, try the steps above and see if you get a login prompt without this. If you don't, you may need this script. -- ck]


setserial /dev/ttyS2 uart 16550A port 0x2A0 irq 7 fourport
setserial /dev/ttyS3 uart 16550A port 0x2A8 irq 7 fourport
stty 9600 < /dev/ttyS2
stty sane < /dev/ttyS2
stty 9600 < /dev/ttyS3
stty sane < /dev/ttyS3

Please note - that uart 16550A port 0x2A0 irq 7 fourport is something very specific to my system - I just happen to have a 4 port serial octopus sitting there waiting to be used. You will need to set these for your own serial devices. When this file is setup, run it so it will do the serial settings for you.

Ready to go?

Now, type /sbin/init q on the Linux machine so it will re-read the /etc/inittab file. Anytime you make a change to /etc/inittab you need to run /sbin/init q so your changes are put into effect.

If using a null modem connected to the Commodore, set up your term program or HyperLink to the same baud rate (9600 in the examples above).

If using VICE, set up HyperLink so it's set for the same baud rate (9600 in the examples above).

Now, test it out by engaging terminal mode (either click on the link for HyperPlanet, or registered users, press F3 and enter any web URL). If nothing exciting is showing, press RETURN. You should see a login prompt for your Linux machine. Voila, there's a "dumb terminal" set up. :-) Log in, start HLPP, press F1 twice to signal you're connected, and you're ready!

If you get odd characters, recheck all settings and files to ensure that you're using the same baudrates, and that your serial port(s) are defined correctly - be sure you know which serial port is going to be "talking" (that's the one set within VICE) and which is doing the listening (the one you set in /etc/inittab).

If using a null modem with a Commodore make sure the serial port defined in /etc/inittab matches the one you've actually plugged the null modem into.

Hope this is useful to someone. In my case, I've spent part of the weekend using HyperLink to be able to view our "WAP" pages and make changes. It's nice to finally have a viewer for this format. WAP is what's used by mobile phones that connect to the Internet, and it's really radical that HyperLink can view these type files. Way to go, Cameron!