Hardware
Adapters
Virtualization
Networked
Devices & Sharing
Written
By: Adam Rosen
This article was published in the Adam's
Apple column on Low End
Mac
A recurring
issue that users of all platforms face is the question of how to use
older peripherals with newer computers. Printers, scanners, hard drives
and various specialty equipment have long lifespans and often remain
in use longer than the computers they were originally used with. But
as Operating Systems evolve and new computers lose ports and hardware
interfaces they once had, continuing to use those peripherals can present
challenges.
Hardware Adapters
On
the Mac hardware front, there are several ways to tackle the problem.
USB adapters are available for a wide variety of legacy connectors,
including ADB, Serial (DIN8 and DB9), PS/2 and Parallel Ports (which
can be useful with Macs - see below). These types of adapters are particularly
useful for printers and input devices (keyboards, mice, tablets, etc.).
Expansion
cards are another popular option. Desktop Macs with PCI slots (PCI,
PCI-X or PCIe) and laptops with expansion card slots (PC-Card for PowerBooks,
ExpressCard for MacBook Pros) have options to add USB, FireWire, SCSI,
IDE/ATA, Serial Ports (RS422), etc.. Manufacturers of USB adapters
and expansion cards include Keyspan, Belkin and Griffin, among others.
If
you're lucky, just having the expansion card or adapter with the right
connector for your legacy device will be enough - the drive will mount
on the desktop, the printer can be added as a USB device, etc..
For example, you can use ADB mice and keyboards via the Griffin iMate
adapter, just plug and play.
More
often than not however, particularly with devices more than a few years
old, additional software is required that may not be compatible with
your current operating system. Old Printer and Scanner drivers, software
for the expansion card or adapter itself, and even some USB devices,
may only work in Mac OS 9 or earlier. Another solution is required.
Virtualization
To
bridge the Operating System Gap, you can use Virtualization to run old
hardware and drivers on newer systems. Virtualization is the practice
of running a guest Operating System inside a host operating system:
the host OS runs the computer, and the guest or virtualized OS runs
as a process, fooling the older software into thinking it's running
on an actual computer. The older peripheral runs inside the virtual
machine, which will have a mechanism to share data with the host OS.
On
PowerPC Macs, examples of Virtualization include running Mac OS 9 in Classic
mode within Mac OS X, and running Windows within VirtualPC.
On Intel Macs, Parallels
and VMWare
can run Windows side by side with Mac OS X, and SheepShaver
provides the ability to run Mac OS 9 on current machines (with some limitations).
To
illustrate how virtualization can help, and the challenges of getting
it to work, consider the tale of an inkjet printer. I have a Primera
Signature II CD printer, which is an old professional workhorse. It's
slow but reliable, and I can still get ink from the manufacturer. The
printer includes a Mac DIN8 Serial Port and a PC Parallel port, and
has drivers for Mac OS 9 and Windows98/2K. With the printer I use a label
database created in Filemaker Pro v4 (Mac and Win compatible) which
contains templates with my business logo and fields for disc content
information.
The
printer was originally used in a commercial recording studio. After
several upgrades to faster CD printers, the old Sig II got relegated
to a shelf in the basement. I claimed it during a subsequent equipment
purge - "take it now or it's trash" - and decided to
put it to use in my home office.
Using
Classic Mode on PowerPC Macs
By
the time the printer was ready for it's second career at my home, Mac OS X
was the current Operating System and I was running 10.3.9 on a PowerMac
G4 that didn't have DIN8 serial ports. I decided to try using Classic
Mode with a USB-to-Serial adapter.
I
already had Classic running on my PowerMac, so the first step was to
install the Mac OS 9 printer driver for the Primera; nothing more complicated
here than running the installer. In order to provide a DIN8 serial port,
I purchased a Keyspan USA28X USB to Dual Serial adapter. This adapter
was released back in the Classic MacOS days and is still supported in
Mac OS X, with drivers for both operating systems.
One
problem with sharing USB devices in a virtualized setting is that both
operating systems may try to claim the device simultaneously - this
was a big problem in early versions of Mac OS X with Classic. Since the
Keyspan adapter requires drivers to work correctly in both operating
systems, I avoided the problem by only installing the OS 9 drivers in
Classic, skipping the OSX installation. The final step was to install
Filemaker Pro v4 into Classic and copy over my label template database.
To
print a CD I would start Classic first, then turn on the printer and
plug it the Keyspan USB adapter; I found that to be the most reliable
way to connect the printer. Once connected go to Chooser, select the
Primera and choose which serial port on the adapter is being used (#1
or #2). As with all printer changes in Mac OS 9, you then have to visit
Page Setup... in Filemaker Pro (or your current app) to ensure that
page format settings are correct.
This
worked beautifully and I used this setup for several years, eventually
swapping the PowerMac G4 for a PowerMac G5 and upgrading from Mac OS X
10.3.x to 10.4.x. All was well in the world (at least on this front)
until I bought an Intel-based Mac Pro earlier this summer.
Using
SheepShaver on Intel Macs
Apple's
switch to Intel-based Macs has been a major success, but one drawback
for longtime Mac users is their inability run Mac OS 9 in Classic mode.
My printing solution was no longer viable.
I
could have kept the Primera connected to a PowerPC Mac running Classic
- or even one booted into Mac OS 9, I have dozens of old Macs around as
part of my Vintage Mac
Museum - but that's less convenient then having the printer
connected to my primary machine. I decided to try SheepShaver, an open
source project that runs Mac OS 9 (and Mac OS 8) on Intel Macs.
SheepShaver
requires a Mac OS ROM file and a CD installer for MacOS 9.0.x to get
started (the program does not support 9.1 or 9.2 due to conflicts with
Virtual Memory). These may be trivial or significant hurdles depending
on what items you have on hand. It took me about two days to get SheepShaver
working on my system, and I have more experience and old software lying
around than the average user.
I
had a MacOS 9.0 install CD handy, but extracting a Mac OS ROM from several
of my older Macs per the documentation was unsuccessful; the extracted
files were not recognized by SheepShaver. After a bit of googling I
learned that the MacOS 8.6 install CD contained a "Mac OS ROM"
file that would work, and I had this disc handy.
I
created a SheepShaver disk image file and installed MacOS 9.0. I next
wanted to run the 9.0.4 updater, but first had to figure out how to
get the installer onto the OS 9 disk image (the program runs in a window
with a virtual disk image, unlike Classic which shares the screen and
primary drive with Mac OS X). SheepShaver creates a "UNIX" drive
on the OS 9 desktop linked to the OSX filesystem, but I found that to
be flakey and often unable to copy files. After more trial and error
I found that I could mount AppleShare volumes by IP address and use
the network drive as a transfer medium. FTP and web access also worked.
After
the 9.0.4 update I installed the Primera printer driver, the Keyspan
USB adapter driver for Mac OS 9, and Filemaker Pro 4. Rebooted, opened
my label database, went to Chooser and... no luck. The Sig II was listed
and selectable but no serial ports were available to choose from. A
bit more investigation revealed that emulation of the serial port is
as-yet unavailable in the Mac version of SheepShaver; currently only
the Linux version appears to support serial ports.
The
USB adapter was probably working, but it emulates another port which
does not. Stymied. SheepShaver is able to access networked TCP/IP
printers (lasers and the like), so I was able to use the Apple Desktop
Printer Utility to create a desktop printer for my networked HP LaserJet
(create an LPR printer and add by IP address). However, this didn't
help with my CD printing needs.
Hopefully
SheepShaver will evolve into a capable replacement for Classic on Intel
Macs, but at the moment it has several major limitations. Just for kicks
however I made a second disk image and installed MacOS 8.6 on that one
- Mac OS 8 running on Intel, who'da thunk it?
Running Windows with Parallels on Intel Macs
The
primary virtualization use for Intel Macs is running Windows, not Mac OS 9,
and two strong solutions exist for this task: Parallels and VMWare.
I already had a copy of Parallels on my Mac Pro so I went down this
road.
The
Primera Signature II has drivers written for Windows 98 and 2000; these
drivers are listed as not XP compatible. They are Parallel port drivers,
so I needed to purchase a USB-to-Parallel adapter. The Keyspan UP6C
Parallel Printer adapter fit the bill.
First
step, set up the virtual disk image. Parallels has the ability to install
Windows from scratch, migrate a VirtualPC disk image, or migrate from
an actual PC with Windows installed. I had several Win2K VirtualPC disk
images available and an old PC running Win2K on the shelf, so I started
with those.
Unfortunately
the Parallels Transporter migration utility is not the program's most
reliable feature and I had no success migrating my VirtualPC disk images.
Searches of the Parallels support forums revealed this was not an isolated
problem, and several workarounds that were posted (and subsequently
suggested to me by the Parallels tech support team) did not work for
me. After a few attempts I gave up and tried my physical PC.
A small
Migration Agent app runs on the PC, then the migration occurs via ethernet.
This did work for me but was very slow and had to be left running overnight.
Once migrated I ran the Parallels Tools installer on the virtual machine
to help integrate the system with Mac OS X.
Next
came a bit of typical Windows hell: I tried to install the Primera printer
driver and got all sorts of permissions errors. After more googling,
help via an expert PC colleague, forcing permissions, editing secpol.msc,
etc., I finally got the printer installed and remembered why
I prefer Macs. Another several days had passed.
Last
came the USB-to-Parallel adapter. This was recognized by Windows when
I plugged it in and needed to have it's own drivers installed - please
insert the Windows 2000 CD. Installation began then bombed out with
another error, the installer couldn't write something it needed.
I move the file there manually and ran the installer again, still no
dice. I tred to install in Safe Mode - USB doesn't work in Safe Mode.
Aarrgghh! Swore again at Microsoft and Bill Gates.
I
suspect the problems stemmed from converting my physical PC to a virtual
machine. I should probably just reinstall Win2K from scratch, but unlike
XP this requires about 40 reboots to update itself online and will likely
bring more headaches. Stymied again.
When All Else Fails...
It
was now about a week into my printer project and I needed to print some
CDs for clients. I hauled out my PowerBook G4, installed the printer
and adapter in Classic, copied over Filemaker Pro 4 and had things up
and running in about 5 minutes, CDs printed no sweat. Hmmm, maybe I
should just leave the PowerBook next to my Mac Pro whenever I'm home...
But
I'm stubborn! With nothing left to lose, I decided to see if I could
get the printer working in Parallels with Windows XP before I reinstalled
Windows 2000. I booted up an XP image and installed the (non-qualified)
Signature II printer driver. No problem, went without a hitch. I then
plugged in the Keyspan USB-Parallel adapter, the system made the typical
Windows device-attached "ka-blink" sound and said "Primera
Signature II printer found." XP automatically installed the necessary
drivers in a few seconds. Not bad.
I
installed Filemaker Pro v4 for Windows, which still runs fine in XP
(wish I could do that in Mac OS X - score 1 for Microsoft, I take back
a few curses). Open my label database, print to the Primera printer
and bingo! A labeled CD gets printed immediately, requiring only a few
minor formatting tweaks to the template.
Victory!
The solution that shouldn't work, does. The solutions that should work,
don't. Welcome to computers. But hey, my goal was attained.
Networked Devices & Sharing
Persistence
is the name of the game with a project like this. But besides virtualization,
one more suggestion for using older peripherals with newer computers
is to directly network devices and/or share peripherals via other computers
over the network.
For
printers, many adapters exist to connect DIN8 serial (AppleTalk), USB
or Parallel port devices to wired ethernet or WiFi networks. I recommend
wired adapters when possible, these are more reliable than wireless
devices (fewer dropouts). If you can enable the adapter or device for
TCP/IP connectivity do so, this will be more widely useable than AppleTalk
or Windows Sharing. Use a fixed IP address on the adapter so you can
add by address rather than having to scan the network. FYI HP JetDirect
adapters are great for HP laser printers, but they don't work with inkjet
models.
For
printers and hard drives, another solution may be to keep the old peripheral
connected to an older Mac and enable printer or file sharing. You may
then be able to add the shared printer or drive to your Mac OS X system
and access the device via the keyboard and software of your current
machine.
Scanners
and other specialized peripherals were usually not sharable in Classic
MacOS versions, but you may wish to explore remote desktop control of
your old Mac to access the peripherals over a network. Methods for Mac
remote desktop control will be covered in a future Adam's Apple column.
Adam Rosen