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<61>
|
|||
|
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<6F>
|
|||
|
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.
|
|||
|
|
|||
|
|
|||
|
|