302 lines
13 KiB
Plaintext
302 lines
13 KiB
Plaintext
The MacTerminal MINI-HOWTO
|
||
Robert Kiesling
|
||
v1.4, 9 November 1997
|
||
|
||
This mini HOWTO describes the 1,002nd use for a dead Macintosh (grin):
|
||
how to configure the Mac for use as a Linux terminal. Configurations
|
||
using getty and the terminal program kermit are described, as well as
|
||
using kermit peer-to-peer networking between between Linux and a Mac
|
||
intosh. This document may be reproduced freely, in whole or in part,
|
||
provided that any usage conforms to the general copyright notice of
|
||
the HOWTO series of the Linux Documentation Project. See the file
|
||
COPYRIGHT for details. Send all complaints, suggestions, errata, and
|
||
any miscellany to kiesling@terracom.net, so I can keep this document
|
||
as complete and up to date as possible.
|
||
______________________________________________________________________
|
||
|
||
Table of Contents
|
||
|
||
|
||
1. Introduction.
|
||
|
||
2. Setting up a serial link.
|
||
|
||
3. Client-server connection with
|
||
|
||
3.1 Macintosh resources.
|
||
|
||
4. Logging in via
|
||
|
||
4.1 Other Mac terminal programs.
|
||
|
||
5. Conclusion.
|
||
|
||
|
||
|
||
______________________________________________________________________
|
||
|
||
1. Introduction.
|
||
|
||
This mini-HOWTO should give you some Insanely Great ideas for how to
|
||
make your Macintosh work with Linux. Unfortunately, I have been very
|
||
busy, and so I haven't been able to include even half of what I wanted
|
||
to include, like using MacTCP and Open Transport to connect to your
|
||
Linux box via a PPP line. That will need to wait for future versions.
|
||
|
||
This mini-HOWTO doesn't cover networking with LocalTalk and AppleTalk,
|
||
either. I might explore these avenues if there's enough interest in,
|
||
say, printing to a LaserWriter printer from Linux. Otherwise, it
|
||
seems to me that such applications, being more trouble than they're
|
||
worth (not to mention pricey), are beyond the scope of this document.
|
||
|
||
I don't plan to cover MkLinux in this document, either. It's more
|
||
than adequately documented elsewhere.
|
||
|
||
So if you have ideas for this document, drop me a line at the e-mail
|
||
above. Both systems embody a lot of the beginner's mindset as well as
|
||
technical prowess, and in my opinion they don't talk to each other
|
||
nearly enough.
|
||
|
||
|
||
2. Setting up a serial link.
|
||
|
||
To set up a serial link between a Mac and a Linux machine, you will
|
||
need, on the Linux side, either a DB9 Female-to-DB25 Male serial cable
|
||
or a DB25 Female-to-DB25 Male serial cable, depending on your serial
|
||
port. On the Macintosh side, you will need a DIN9-to-DB25 Male high-
|
||
speed modem cable.
|
||
|
||
Make sure that the cable is labeled a "high speed" cable, because some
|
||
older Macintosh cables are configured with their handshaking lines
|
||
tied high, which makes them useless for high-speed serial connections.
|
||
|
||
You will also need a null modem adapter, available at Comp USA, Radio
|
||
Shack, and similar outlets, and a DB25 Female-to-DB25 Female serial
|
||
gender changer to connect the two serial cables.
|
||
|
||
I have heard that Mac printer cables are really null modem cables in
|
||
disguise, but I can't confirm this. Some of them are DIN9-to-DIN9
|
||
anyway, and wiring one into a serial link would be more trouble than
|
||
it's worth.
|
||
|
||
If this sounds like Greek to you, read the Serial-HOWTO for details of
|
||
RS-232 cable configurations and data transmission protocols.
|
||
|
||
Before connecting the Mac and the Linux machines, you should determine
|
||
that you have a working serial port on both machines, either by
|
||
connecting a modem and dialing out to another computer with minicom
|
||
(Linux), ZTerm (Mac), kermit (either), or the communications program
|
||
of your choice.
|
||
|
||
The latest version of minicom is available from
|
||
sunsite.unc.edu/pub/Linux/apps/serialcomm/dialout and mirror sites.
|
||
|
||
ZTerm is a complete, easy to use comm program. Unfortunately, it's
|
||
shareware. A current version is available from mac.archive.umich.edu
|
||
and outlets like it.
|
||
|
||
The kermit program has been ported to every computer and operating
|
||
system in existence. The archives are located at
|
||
ftp.columbia.edu/kermit.
|
||
|
||
You should strongly consider using kermit on both machines at this
|
||
stage at least, because 1) it's free (although it's not covered by the
|
||
Free Software Foundation's General Public License); and 2) it's a lot
|
||
less confusing to have kermit on both machines than two completely
|
||
different communications programs.
|
||
|
||
If you have another way to determine that the serial ports of the two
|
||
machines are operational, feel free to use that. The point is to
|
||
ensure that both machines have working serial ports.
|
||
|
||
Making the actual serial connection should be easy, given the
|
||
directions above. In case it isn't, the connection looks like this:
|
||
|
||
|
||
Linux PC DB9- or DB25- Null Gender DIN9-to- MacBox
|
||
--------- to-DB25 male Modem Changer DB25 Mac --------
|
||
| | serial cable. | | | | Serial Cable | |
|
||
| |-----------------| |--| |-----------------| |
|
||
| | | | | | | |
|
||
--------- Adapter --------
|
||
|
||
|
||
|
||
3. Client-server connection with kermit .
|
||
|
||
This is the most transient of all the configurations described here.
|
||
It requires the least amount of system configuration, although in
|
||
operation, it is the more difficult to use of the systems described
|
||
here.
|
||
|
||
In brief, you start kermit on both the Linux machine and the Mac, and
|
||
place one of them in server mode. It doesn't matter which machine is
|
||
the client ant which is the server, because this is a peer-to-peer
|
||
connection. However, the Linux kermit can take advantage of Linux's
|
||
superior scripting abilities, so it seems logical (to me at least) to
|
||
designate the Linux-side kermit as the server, because this is the
|
||
more readily automated task.
|
||
|
||
You should ensure that kermit is installed correctly on both the Mac
|
||
and the Linux PC. Follow the instructions in the respective kermit
|
||
distributions. On the Linux machine type kermit at the shell prompt
|
||
to start it. You may need root permissions in order to set the port
|
||
and baud rate.
|
||
|
||
kermit, the recent POSIX versions for Unices, supports baud rates up
|
||
to 115 Kbps. The more recent Macintosh versions support serial port
|
||
speeds up to 57.6 Kbps. This should be more than sufficient for any
|
||
dumb tty-type application, but if you need a higher-speed connection,
|
||
you're s.o.l, as far as kermit and serial lines are concerned.
|
||
However, kermit provides facilities for communication over a TCP/IP
|
||
link, but I haven't been able to test it. See the alternative in the
|
||
following sections. Just remember, especially on the Mac side, to use
|
||
a different port for kermit serial connections than your TCP/IP
|
||
connections, because Mac kermit will rudely hose a serial port that is
|
||
already in use.
|
||
|
||
With that in mind, your .kermrc file would contain something like
|
||
this:
|
||
|
||
echo Executing site initialization file /usr/local/bin/ckermit.local.ini....
|
||
set prompt Chanel3 >
|
||
set line /dev/ttyS0
|
||
set baud 38400
|
||
set send packet-length 2000
|
||
set receive packet-length 2000
|
||
set block 3
|
||
set file type binary
|
||
|
||
|
||
Then, in your ~/.kermrc file, you would have a line like
|
||
|
||
take /usr/local/bin/ckermit.local.ini
|
||
|
||
|
||
On the Macintosh side, set the same communication parameters for bps,
|
||
stop bits, parity, and word length. Some older versions of Mac Kermit
|
||
do not support 2k packets, so you might need to set a smaller packet
|
||
size. Howerver, kermit sets the communication packet length based on
|
||
the receive packet-length setting, so you need to set a shorter packet
|
||
size on the Linux end, too.
|
||
|
||
To actually communicate over the link, you need to enter server mode
|
||
on either the Mac or Linux side. It doesn't matter which. See the
|
||
kermit docs for details of server mode.
|
||
|
||
|
||
3.1. Macintosh resources.
|
||
|
||
This is one of the very few kermit applications where setting a text
|
||
file type for transfers is useful. This is because Macintosh files
|
||
have two parts: the data fork and the resource fork. The data fork
|
||
corresponds to what we in the Linux world think of as a file: it's the
|
||
actual data. The resource fork contains bitmaps for the icons,
|
||
keymaps, font specifications, and the like. If you transfer a file
|
||
from Linux to the Mac, the file won't be recognized as a text file by
|
||
the Mac, if you use binary mode.
|
||
When transferring binary files between the two systems, you should use
|
||
the Macintosh .hqx BinHex format, which is a 7-bit encoding of an
|
||
8-bit data file. Mac utilities like BinHexer or StuffIt will covert
|
||
the file to its binary form.
|
||
|
||
If you have a text file which inadvertently ends up as a data-only
|
||
file on the Mac, it's likely that it won't even appear in an Open
|
||
dialog list box. What you need to do is open the file with ResEdit,
|
||
which is available from mac.archive.umich.edu. ResEdit will tell you
|
||
that the file you're opening has no resource fork and then asks if you
|
||
would like to add one. You should answer "Yes" to this question. You
|
||
can then edit the file's Type and Creator by selecting the Open
|
||
Special option of the File menu. All Macintosh text files are type
|
||
TEXT, so replace the question marks in the Text box with that. The
|
||
Creator code depends on your text editor or word processor. Each one
|
||
is unique, incidentally, and is how the Mac identifies different apps.
|
||
The Creator code for GNU Emacs on the Mac is EMAC, for example. If in
|
||
doubt what the creator code of your text editor or word processor is,
|
||
use ttxt, which is the creator code for TeachText (which is the Mac
|
||
equivalent of EDLIN.EXE.) Then your real word processor or text
|
||
editor can translate the file from TeachText to its native type.
|
||
|
||
There are many other neato things which TeachText can do, so it's
|
||
worthwhile to keep it permanently on your Mac. The book Voodoo Mac,
|
||
by Kay Yarborough Nelson, is a good source of tried-and-true Macintosh
|
||
tricks that use ResEdit, TeachText, the Finder, and other overlooked
|
||
programs.
|
||
|
||
|
||
4. Logging in via kermit .
|
||
|
||
Configuring Linux to use the Mac as a login: terminal is even easier.
|
||
kermit is ideal for this purpose, because it is one of the few free
|
||
communication programs which provides credible VT100/120/220
|
||
emulation.
|
||
|
||
Essentially, what you want to do is start kermit on the Macintosh side
|
||
as in the previous section, but rather than issue server commands, you
|
||
enter connect mode. This is the normal terminal emulation mode that
|
||
most people use, anyway.
|
||
|
||
On the Linux side, the serial line must be configured with a getty on
|
||
it to start a login: shell. To do this, you need to tell init that
|
||
the serial line has a terminal on it. In your /etc/inittab file you
|
||
will need a line something like this:
|
||
|
||
T1:23:respawn:/sbin/getty -L ttyS0 9600 vt100
|
||
|
||
|
||
Be sure to substitute the appropriate serial device for /dev/ttyS0 and
|
||
the correct baud rate for 9600 in the command line above.
|
||
|
||
This command tells getty to start login (the -L switch) on the
|
||
terminal display, and, when the login times out, to re-start (respawn)
|
||
the login program until someone logs in. If no device is connected to
|
||
the serial line, or if the connection is defective, you may see a
|
||
message on the system console like: /dev/ttyS0 respawning too fast:
|
||
disabling for 5 minutes. If this happens, you can return things to
|
||
normal by (as root) killing the getty process, or using the init q
|
||
command. Both of them have the effect of re-spawning the getty
|
||
processe(s). If everything is in order, you should see the Linux
|
||
banner and login prompt on the Mac's kermit window. That's all there
|
||
is to it.
|
||
|
||
Also, if you use something besides vanilla getty, like getty_ps, the
|
||
command above will look somewhat different. The important thing to
|
||
remember is that everything to the right of /sbin/getty is an argument
|
||
for getty itself; not init. You should look at the manual pages for
|
||
getty, init,and inittab if you have questions concerning the setup of
|
||
init and getty.
|
||
|
||
The Serial HOWTO provides helpful details on how to configure
|
||
/etc/inittab for getty_ps, if that's what your system uses.
|
||
|
||
To transfer files back and forth between the Macintosh and the Linux
|
||
machine, you can (via the Mac's Kermit) issue the kermit -x command to
|
||
start the Linux kermit in server mode. You can then use the normal
|
||
file transfer commands to send files across the serial line. It's
|
||
useful to set a prompt in your ~/.kermrc with a line like
|
||
|
||
set prompt Linux-kermit >
|
||
|
||
|
||
Otherwise, remembering which machine you're on can quickly become con
|
||
fusing.
|
||
|
||
|
||
4.1. Other Mac terminal programs.
|
||
|
||
This method should work equally well for any other Mac terminal
|
||
program. If you have ZTerm, you can use rz and sz on the Linux
|
||
machine to transfer files via the ZModem protocol. If Microphone Lite
|
||
came bundled with your fax modem, that works equally well, albeit
|
||
without kermit's superior scripting and configuration facilities.
|
||
|
||
|
||
5. Conclusion.
|
||
|
||
If you have questions about any of this material, or suggestions for
|
||
future directions of Mac-Linux serial-line connectivity, don't
|
||
hesitate to drop me a line at kiesling@terracom.net.
|
||
|
||
|
||
|