• Hello, Guest! Welcome back, and be sure to check out this post for more info about the recent service interruption and migration.

The MacIPpi Rpi. The MacIPpi concept for Raspberry Pi.

History_SE30_Dude

Active member
I found drivers for Linux and MacOS and the plan was to just share using cups once I could establish a connection. I'll come back to it at some point, I'm currently upgrading/cleaning up my home network.
 

NJRoadfan

Well-known member
The papd included with netatalk is broken with older LaserWriter drivers (and doesn't work with the GS/OS driver at all). You need to use LaserWriter 8 on the client side. The CUPS integration needs to be updated to compile against newer versions of CUPS as well. Once its "working", papd will automatically share any CUPS printer queues you have and cups-filters will convert the PostScript output from the Mac automatically.
 

reukiodo

Active member
I'm wondering if this could be adapted to a RPi0W, using the GPIO to interface with the Mac serial over AppleTalk, and NAT to the network using WiFi... Would the Mac serial port be able to provide the 5V power the RPi0W needs?

This would likely be the cheapest physical adaptation to get a classic Mac onto a WiFi network, while possibly providing more services also.
 

mactjaap

Well-known member
You could give it a try. Download my MacIPRpi image and go ahead. Keep us posted if you get it working. I always advice not to use WIFI because Netatalk doesn’t like it. But if there is a way…..
 

mactjaap

Well-known member
I like to give some attention to a very interesting development in Hacks & Development. The making of a totally new LocalTalk bridge. Read all about it.
 

Fizzbinn

Well-known member
I just setup MacIPpi Rpi on a new Raspberry Pi 4 (Model B 2GB RAM) and I'm really liking it! I used a 64GB SD card as I want to use it as an "appliance like" server/achieve for my home network retro Macs. I'd previously tried to use a G4 Mac mini running 10.4 for this but it doesn't support the older AppleTalk/AFP clients and I would then have to break out another bridge OS 9 machine for. Made for a tedious process for transferring files over a network from a modern download machine to my oldest boxes. I'll put it through its paces but for now I've tested successfully from a Performa 575 7.1p6, LC III 7.5.3, Mac mini G4 10.4.11 and MacBook Pro (16-inch, 2021) 12.0.1.

I have a Farallon EtherMac iPrint adapter LT for bridging Ethernet to LocalTalk for Macs without Ethernet cards but also for my LaserWriter 4/600 which hasn't seen much use since Apple dropped AppleTalk/Pap from OS X 10.6. While its fun to occasionally print to it from the older Macs directly (recently made some reproduction floppy disk labels in Pagemaker 5 :) I thought I'd try to setup the CUPS PAP print server on the MacIPpi Rpi so I could maybe print to it from modern machines.

Used Info from these sites to set it up:
https://www.reddit.com/r/VintageApple/comments/furad8
Getting the CUPS "PAP backend" /usr/lib/cups/backend/pap was the main thing that had to be added. I got an error about not being able to find the netatalk utilities on the first manual test run which was fixed by editing the pap file (a BASH script actually) to set NetatalkBinDir to /usr/bin instead of /usr/local/bin:

#NetatalkBinDir=/usr/local/bin NetatalkBinDir=/usr/bin

I also got CUPS errors with some of the CUPS config file lines they suggested for /etc/cups/cupsd.conf I commented out those and added some others I found in a doc suggesting the config format is different in newer CUPS setups:

#BrowseOrder allow,deny #BrowseAllow all #BrowseRemoteProtocols CUPS dnssd pap #BrowseAddress @LOCAL #BrowseLocalProtocols CUPS dnssd pap # Browsing Yes BrowseWebIF Yes BrowseLocalProtocols All #

To add the printer you need the printer pap URL which is easiest to get by manually running the CUPS "PAP backend":

macipgw@macippi:~ $ sudo /usr/lib/cups/backend/pap network pap "Unknown" "AppleTalk Devices via pap" atp_rresp: Connection timed out %%[ status: idle ]%% %%[ status: idle ]%% %%[ status: idle ]%% %%[ status: idle ]%% %%[ status: busy; source: LocalTalk ]%% %%[ status: busy; source: LocalTalk ]%% %%[ status: busy; source: LocalTalk ]%% %%[ status: busy; source: LocalTalk ]%% network pap://%2a/4%2f600%20PS/LaserWriter "LaserWriter 4/600 PS" "4/600 PS@* (pap)"

Using the CUPS web interface http://<RPi-ip-address>:631/admin I was able to "Add Printer" via the "AppleTalk Devices via pap" option. At first I got stuck when it errored out with bad pap URL but realized I was copying the whole line when "pap://%2a/4%2f600%20PS/LaserWriter" (the URL, duh) was all it needed.

You can probably use the Generic PostScript PPD but I also copied over a 7.5.3 printer PPD for the LaserWriter 4/600 PS from the LC III and used that.

On my brand new MacBook Pro (16-inch, 2021) 12.0.1 I'm now printing wirelessly to a LaserWriter that only has a LocalTalk Interface and only speaks AppleTalk! ...and works from my iPad too. Trivial client setup as the printer is Bonjour discovered "Apple LaserWriter 4-600 PS @ macippi". So cool!

It seems like most of this could be included with future MacIPpi Rpi builds. The setup for old postscript laser printers wouldn't exactly be out of the box but finding the name with the pap script and using the CUPS web interface is not that bad...
 
Last edited:

mactjaap

Well-known member
Wowwww what a great write up about printing! I never worked with it before so I have to read your post carefully. I’m not sure if printing is possible to make ‘generic’ enough to include in the MacIPRpi, but with your ‘how to’ it must be doable for everybody. I will be back on this! Thank you very much for your efforts!
 

slipperygrey

Well-known member
The papd included with netatalk is broken with older LaserWriter drivers (and doesn't work with the GS/OS driver at all). You need to use LaserWriter 8 on the client side. The CUPS integration needs to be updated to compile against newer versions of CUPS as well. Once its "working", papd will automatically share any CUPS printer queues you have and cups-filters will convert the PostScript output from the Mac automatically.
Out of curiosity, and since I've been working in the Netatalk codebase recently: In what fashion is Netatalk's papd not working with older LaserWriters, and do you have idea how it can be improved? Also, is your experience with Netatalk 3.x, 2.x, or both?
 

slipperygrey

Well-known member
@mactjaap What file system are you using on these images? I don't have a spare SD card around to write to, but I wanted to explore the contents of MacIPpi. However ImDisk seems to identify the main partition as a "Xenix" file system, which can't be right! And it's not recognized as an Ext variant after mounting.
 

NJRoadfan

Well-known member
Out of curiosity, and since I've been working in the Netatalk codebase recently: In what fashion is Netatalk's papd not working with older LaserWriters, and do you have idea how it can be improved? Also, is your experience with Netatalk 3.x, 2.x, or both?
Netatalk 2.2.6. 3.x drops all Appletalk support and is strictly a TCP/IP AFP server. I fixed the problems with papd a while back. It works on modern Linux distros and current versions of CUPS and can talk to the GS/OS LaserWriter driver (along with LaserWriter 7 on the Mac side).
 

Fizzbinn

Well-known member
Wowwww what a great write up about printing! I never worked with it before so I have to read your post carefully. I’m not sure if printing is possible to make ‘generic’ enough to include in the MacIPRpi, but with your ‘how to’ it must be doable for everybody. I will be back on this! Thank you very much for your efforts!

I just redid the setup to help another member and be sure I got the minimum that that needed to be done:


Not sure if its possible to bundle the pap backend in your next release or not (and maybe a directory of old Apple printer ppd files) but that would mean folks would only need to use the Cups web interface to get an old AppleTalk printer working for new machines using your image...

Also still LOVING MacIPRpi, looking forward to trying out the Timelord/Tardis stuff soon!
 
Last edited:

NJRoadfan

Well-known member
The current CUPS web interface is pretty broken with "add-in" printing backends. You used to be able to browse and select detected pap printers. This is likely due to the CUPS project moving to pure IPP printing only. A shame because its a nice way to link printers of various protocols on one centralized spooler.
 
Top