I recently restored a NeXTstation computer — the grandfather of Mac OS X computers (and therefore the great grandfather of iOS). It joins a network of historical Mac computers in my basement, but was woefully disconnected from them. A crude file transfer between a G4 Cube running OS X 10.4 could be established relatively easily using FTP, but I wanted NeXT to really fit into the neighborhood.
Every computer in the house can reach a common file share running on a Raspberry Pi, which serves up a folder over SMB and legacy AFP (AppleTalk), with an ethernet-capable OS 9 machine bridging to the LocalTalk-only Macs from the early days. Unfortunately NeXTStep and OpenStep support neither SMB nor AFP (technically one version of NextStep had a crappy AppleTalk implementation, but not the version I’m running.) What Next did support was NFS — Network File System. And fortunately so does the Raspberry Pi…there’s just a little modification required to make it work with old versions.
After following the steps here to enable NFS and establish a share (using the same folder as AFP and SMB), a fellow nerd on Facebook provided some steps to force support for older clients (NFSv2):
- Edit the file
/etc/exportsthat you made when you enabled NFS, and decorate your share with some less secure options (at your own risk — obviously don’t expose this to the Internet!) I also had to assign an fsid. Here’s what my export looks like:
- Edit the file /
- At the bottom, add the line
exportfsand make sure no errors are reported.
On both OpenStep and NeXTStep, you’ll want to set up a Host for your server. This can be done in NextAdmin/HostManager.app — assuming you’ve already got networking setup. Instructions for setting up the network are here, and Sophie Haskins has a good blog entry about some of the hurdles to NextStep networking.
Important note: Your server should have a matching DNS or Hosts file record, since NFS does a reverse lookup when you try to mount a share.
On NeXTStep 3.3, the NFSManager.app GUI was not able to successfully mount the share — I had to do it from the su command line:
- Launch Terminal.app
suand hit enter — provide a password if needed.
- Enter a mount command like:
mount serverhost:/pathto/yourshare /Net/localmountpoint
- So, for example, my server is on a Host named NetPi and the shared path is /srv/A2SERVER/A2FILES (since the path is also used by A2Server’s AFP share) and I want to mount it to a local folder on my NeXTstation called NetPi, so my command is:
mount netpi:/srv/A2SERVER/A2FILES /Net/netpi
If you want this to run at every boot, use Edit.app as root to add your mount command to the end of the file
But be 100% sure your mount command works before you do — this can prevent booting if its wrong. To be on the safe side, include a time-out and limit retries like:
mount -o rw,bg,mnttimeo=8,retry=1 serverhost:/pathto/share /Net/localmountpoint/
In OpenStep 4.2, the NFSManager.app GUI did work, and Sophie’s blog shows how to use it. And just as a point of interest, following the same HostManager.app steps to tell NeXT about a LaserJet 4 compatible printer on the Network let’s it print too!