u/Ct_cruncher

For #Appril (Because i missed #Marchintosh) I got my Mac SE/30 printing to a current HP DeskJet. Here's the full setup in case anyone wants to do the same.

The hardware:

Mac SE/30, System 7.1, with an Ethernet card (EtherTalk Phase 2)

Raspberry Pi 3

Standard Ethernet cable between them

HP DeskJet 2855e (any modern IPP Everywhere printer should work)

How it works:

The SE/30's Ethernet card runs AppleTalk natively over Ethernet (EtherTalk Phase 2). The Raspberry Pi runs Netatalk, which speaks the same protocol — so from the Mac's perspective, the Pi looks like an old-school AppleTalk print server. The SE/30 opens the Chooser, clicks LaserWriter, and sees the printer. It sends PostScript over PAP (Printer Access Protocol), Netatalk hands it to CUPS, and CUPS delivers it to the HP.

Thirty-five year old protocol, modern inkjet, Raspberry Pi in the middle making it all work.

Software stack on the Pi (Raspberry Pi OS):

CUPS — handles the actual print queue and talks to the HP via IPP Everywhere (no driver needed for modern HP printers, just add it through the CUPS web interface at localhost:631)

Netatalk 4.2.3 — provides the AppleTalk layer. Two daemons matter here:

atalkd — the AppleTalk network daemon, binds to the Ethernet interface

papd — the PAP print server, registers the printer on the AppleTalk network and bridges to CUPS

Config files:

/etc/netatalk/atalkd.conf:

eth0 -phase 2 -zone "LocalNet"

/etc/netatalk/papd.conf:

RetroPrinter:\

:pr=retroprinter:\

:pd=/etc/cups/ppd/retroprinter.ppd:\

:op=lp:

One non-obvious thing: the op=lp line is required on Linux. Without it, Netatalk tries to use a system user called "operator" that doesn't exist on Debian/Raspberry Pi OS, and print jobs silently fail.

The PPD file at that path is auto-generated by CUPS when you add the printer — just copy it from /etc/cups/ppd/ after setup.

Result: Open Chooser → click LaserWriter → select RetroPrinter → print. Works exactly as it would have in 1991, except the printer on the other end costs $80 and prints in color.

u/Ct_cruncher — 15 days ago