Monday, February 02, 2009
The SheepShaver Chronicles, Part 8
Blog Entry #135
SheepShaver and the Internet
Connecting to the Internet in the SheepShaver environment was admittedly not one of my original SheepShaver goals. "Why bother, when the SheepShaver Internet experience is guaranteed to be vastly inferior to what you have with your Intel Mac?" you might legitimately ask. OK, then: let's just say that I decided to see if I could patch in to the Web in the SheepShaver environment because...because it is there, that's why. Sir Edmund Hillary would have understood.
If you access the Internet via an Ethernet DSL connection, then setting up a connection to the Internet in the SheepShaver environment is straightforward:
(1) In the SheepShaverGUI Serial/Network tab, set the "Ethernet Interface" field to slirp.
(2) In the emulated environment, set the TCP/IP control panel's "Connect via" menu to Ethernet built-in (or just Ethernet, depending on the OS) and its "Configure" menu to Using DHCP Server.
That's it! You can now in the emulated environment open a browser and (attempt to) start surfing.
But I don't access the Internet via an Ethernet DSL connection: I'm a dinosaur with an EarthLink dial-up account. And my Apple USB Modem
requires...Mac OS X v10.4.3 or later- pretty far removed from the OS 8.6 of my SheepShaver environment. I should be sunk, right? Not at all, friends and neighbors. Read on...
Connecting via PPP
According to Gwenolé Beauchesne's SheepShaver portal,
SheepShaver supports Internet and LAN networking via Ethernet and PPP with all Open Transport compatible MacOS applications.The Setting Up SheepShaver page of the portal's Help Center contains a relevant Linux ⇒ Serial/Network section that in part reads,
You can select to which devices the MacOS modem and printer ports are redirected. You can assign them to any serial ports you have (/dev/ttyS*), or even to parallel ports (/dev/lp*).
Time to go trawling through the Leopard Unix /dev/ directory; therein I see seventeen ttys* files (but no ttyS* files - Darwin evidently lowercases the S) and no lp* files. Per this screen shot, I open SheepShaverGUI and type /dev/ttys0 into the Serial/Network tab's "Modem Port" field. Upon clicking the Start button, SheepShaver stalls and does not boot.
My /dev/ directory contains 116 other tty* (terminal) files, including a tty.usbmodem file - might this file be more appropriate? Nope - a /dev/tty.usbmodem modem port setting again causes the SheepShaver boot to hang.
When I am online, Terminal ps -a execution shows that the "controlling terminal" for my modem connection process is cu.usbmodem, which also has a corresponding file in the /dev/ directory:
SheepShaver boots uneventfully with a /dev/cu.usbmodem modem port setting. We're on our way!
$ ps -ac PID TTY TIME CMD 1736 cu.usbmodem 0:00.03 pppd 1748 ttys000 0:00.01 login 1749 ttys000 0:00.01 -bash 1758 ttys000 0:00.00 ps $ ls -l /dev/cu.usbmodem crw-r--r-- 1 root wheel 9, 1 Feb 4 15:39 /dev/cu.usbmodem
In the name of completeness, I should mention at this point that an initial attempt to "retrieve" my EarthLink account via EarthLink's Registration & Utilities 2.1.3 program, which is present in the Classic HD disk's /Internet/Internet Applications/EarthLink TotalAccessTM/ directory, was unsuccessful.
Our next task is to configure the following system control panels in the emulated environment:
(1) Remote Access
(1) I respectively populate the Remote Access control panel's "Name", "Password", and "Number" fields with the values of the "Account Name", "Password", and "Telephone Number" fields in the External Modem subpane of the OS X System Preferences Network pane.
(2) (a) I set the TCP/IP control panel's "Connect via" menu to PPP and its "Configure" menu to Using PPP Server.
(b) While online* in the OS X environment, I obtain name server addresses for the TCP/IP control panel from the DNS tab of the External Modem subpane of the System Preferences Network pane, which is accessed by clicking the subpane's Advanced... button. (*The DNS tab's "DNS Servers" field is blank when I am offline.)
(3) My Apple USB Modem is a v.92 modem and its operation is presumably directed by the Apple External 56K Modem (v.92) script located at:
/Library/Modem Scripts/Apple External 56K Modem (v.92)
the Modem Scripts folder also contains an Apple Internal 56K Modem (v.92) script and an Apple Modems.ccl/Contents/Resources/Apple Modem (v.92) script; a Terminal diff3 comparison shows the three scripts to be identical. These same script files can also be found in the /System/Library/Modem Scripts/ directory. According to the "File-System Domains" article in the Apple Developer Connection's "Introduction to the File System Overview" document, OS X reaches for the local-domain /Library/ script file (whichever one it is) before it would reach for the system-domain /System/Library/ script file.
I bring the Apple External 56K Modem (v.92) file into the SheepShaver environment and plant it in OS 8.6's /System Folder/Extensions/Modem Scripts/ directory. Unfortunately, OS 8.6 does not see the v.92 file as a modem script but as a generic document, and thus the file is not added to the Modem control panel's "Modem" menu. Even if the v.92 file had been recognized as a modem script, however, it's not clear that OS 8.6 would know what to do with it. My G3 iMac was equipped with a v.90 internal 56K modem, so I run a Terminal diff comparison between the OS 8.6 and Leopard versions of the Apple Internal 56K Modem (v.90) script: there's a vast difference between the two.
Figuring that I have nothing to lose, I decide to see if any of OS 8.6's '56K' modem scripts will work with my modern-day modem. To my utter surprise, no fewer than five of these scripts allow me to connect to the Internet in the emulated environment:
• 3Com Impact ISDN 56K
• 3Com Impact ISDN 56K MLPPP
• Farallon Netopia 56K
• Farallon Netopia 56K MLPPP
• Supra 336v+/336e/56e
Noteworthily, OS 8.6's Apple 56K modem scripts - Apple Internal 56K Modem (v.34), Apple Internal 56K Modem (v.90), and Apple/GV 56k - do not work with my modem; upon clicking the Remote Access Connect button, these scripts (and most of the other OS 8.6 56K modem scripts) throw the following error:
Neither the System Preferences Network pane nor Terminal in the OS X environment registers my SheepShaver Internet connection, but when I pick up my phone receiver, there's no question that, yes, I am connected.
Connecting via AirPort
My Intel Mac's AirPort Extreme card also allows me to connect to the Internet in the SheepShaver environment. After I turn AirPort on in the System Preferences Network pane and then connect to a network, the SheepShaver connection setup is the same as that described for an Ethernet DSL connection at the outset of the post (set the SheepShaverGUI "Ethernet Interface" to slirp, etc.). At least on my computer, the order of operations here is important: connection in the emulated environment is unsuccessful if I first launch SheepShaver and then establish my AirPort connection.
The AirPort bit rate is considerably higher than that of an analog modem, and therefore AirPort connectivity is clearly the way to go for a dial-up user such as myself.
Now, if for some perverse reason you really do want to surf the Web in the SheepShaver environment, which browser should you use? Low End Mac's Tommy Thomas addresses this question in another context in his "Making the Case for a Truly Modern, Up-to-date Browser for Mac OS 9" article. With some reservations, Tommy has good things to say about the use of the iCab and Mozilla browsers in the Classic environment. In lieu of making any recommendations myself, I will add that my own benchmark for assessing whether a given browser is up to scratch is how well it handles the Christian Science Monitor's home page - I can confirm that both IE 5.1.6 and Netscape 7.02 have 'immense difficulties' with this page, and iCab 3.0.5 also has some trouble with it - if you can find a Classic-era browser that flawlessly renders http://www.csmonitor.com/, then you've definitely got a winner on your hands.
In the next post, I'll continue the SheepShaver/Internet theme with a look at how I used SheepShaver to 'rescue' Outlook Express email messages that I thought were gone for good.