Need an "I don't know jack" guide to Pi 3 and Netatalk/CUPS

LaPorta

Well-known member
So, I finally got my Pi 3 hooked to a TV. Installed one of the versions of Raspberry Pi 32-bit OS (with GUI). Now I'm stuck. I have absolutely no idea how to do any of this other stuff. I wanted to install Netatalk for its CUPS support to get my Macs printing to a modern Laser Printer. I have been reading online documentation, and it says to install this Docker thing to make it easier to install Netatalk. Problem is, I can't figure out how to do that even. Heck, I can't even figure out how you shut down the machine. I'm going to need some serious, "I know I'm an idiot but I just need help" level help.
 

Mk.558

Well-known member
I can help you install it from source, if you'd like. There's some specifics about the Pi that I don't know much about, but the rest is quite workable. You'll probably want to build it from source as chances are good you may want some specific features.
 

LaPorta

Well-known member
Thank you very much. Essentially the only feature I am actually interested in is the CUPS printer drivers so I can do as above. I already have a classic Mac file server so it would be redundant…though going through how to set it up would be helpful.
 

Byte Knight

Well-known member
I would recommend going with a PiSCSI - netatalk and CUPS are a breeze to install with the easyinstall.sh script. And you'll get a SCSI emulator out of the deal too!
 

slipperygrey

Well-known member
So, I finally got my Pi 3 hooked to a TV. Installed one of the versions of Raspberry Pi 32-bit OS (with GUI).
IINM the RPi 3 series has a 64 bit CPU. You should be using the 64 bit version of the OS.

I have been reading online documentation, and it says to install this Docker thing to make it easier to install Netatalk.
...but for some bizarre reason, Docker Engine only supports 32 bit RPi OS. So it might not be the best choice for your setup after all.

Due some time later this year, the next major RPi OS release is expected to come with netatalk v4 out of the box (as in, installable with apt). But that doesn't help you right now of course.
 

LaPorta

Well-known member
IINM the RPi 3 series has a 64 bit CPU. You should be using the 64 bit version of the OS.


...but for some bizarre reason, Docker Engine only supports 32 bit RPi OS. So it might not be the best choice for your setup after all.

Due some time later this year, the next major RPi OS release is expected to come with netatalk v4 out of the box (as in, installable with apt). But that doesn't help you right now of course.
Yes, the documentation said Docker required 32-bit (I figured out that much), so thats what was installed.
 

slipperygrey

Well-known member
Yes, the documentation said Docker required 32-bit (I figured out that much), so thats what was installed.
It’s more important to run a 64 bit operating system on your RPi than to have docker for netatalk. IMHO. Building from source is not hard.
 

slipperygrey

Well-known member
I recommend you find resources that explain the general upsides of 64 bit addressing and instructions better than I can (or ask ChatGPT.)

But the primary reason in my mind that you should run 64 bit software, is that most people develop and test on 64 bit machines exclusively, and generally don't bother with 32 bit anymore. So you're most likely to run into bugs when code is compiled as 32 bit.
 

mactjaap

Well-known member
Includes CUPS and all that?
CUPS and papd are started at boot. You can access CUPS with a browser on port 631 on localhost. So connect a mouse, keyboard and monitor (TV) to your Rpi3 with MacIPRpi image on it and startup a browser and connect to http://localhost:631
But I guess some tweaking is needed ... you need to configure CUPS and papd...

But we all can help!
(... to be honest...I didn't configure it at home... and I think it would be cool to add it to the MacIPRpi.. so that it easy for people to use.)
That is the idea behind the MacIPRpi. No UNIX/Linux knowledge is needed to use it.
 

NJRoadfan

Well-known member
If you want to give a development version of A2SERVER a spin, copy the following into a terminal:

Code:
export A2SERVER_SCRIPT_URL=https://raw.githubusercontent.com/NJRoadfan/a2server/cicpoffs-testing/
export A2SERVER_BINARY_URL=https://appleii.ivanx.com/a2server/files
wget -O setup ${A2SERVER_SCRIPT_URL}setup/index.txt; source setup

If you don't want to netboot Apple II machines or install support for a TashTalk hat, just say "no" to the option. Note that if you have any other AppleTalk seed routers on your Ethernet network, this will clash with them. It also sets up TashRouter, so your AirTalk connected machines will "just work" as well. If your printers are AirPrint compatible, no additional setup is needed, they should just appear in Chooser.
 

LaPorta

Well-known member
If you want to give a development version of A2SERVER a spin, copy the following into a terminal:

Code:
export A2SERVER_SCRIPT_URL=https://raw.githubusercontent.com/NJRoadfan/a2server/cicpoffs-testing/
export A2SERVER_BINARY_URL=https://appleii.ivanx.com/a2server/files
wget -O setup ${A2SERVER_SCRIPT_URL}setup/index.txt; source setup

If you don't want to netboot Apple II machines or install support for a TashTalk hat, just say "no" to the option. Note that if you have any other AppleTalk seed routers on your Ethernet network, this will clash with them. It also sets up TashRouter, so your AirTalk connected machines will "just work" as well. If your printers are AirPrint compatible, no additional setup is needed, they should just appear in Chooser.
I like that…let me see.
 

NJRoadfan

Well-known member
I'm running into regressions with Netatalk 4.1.0 with systemd..... UGH. You will have to manually start the services after a reboot with "netatalk-restart" until its fixed.
 

NJRoadfan

Well-known member
OK, problem solved, go ahead and install. Stupid Debian and its multiple ways of configuring a network interface.....
 

slipperygrey

Well-known member
CUPS and papd are started at boot. You can access CUPS with a browser on port 631 on localhost. So connect a mouse, keyboard and monitor (TV) to your Rpi3 with MacIPRpi image on it and startup a browser and connect to http://localhost:631
But I guess some tweaking is needed ... you need to configure CUPS and papd...
You are correct, both CUPS and papd need to be configured. For papd, the papd.conf file must have the cupsautoadd directive with f.e. root owner.

A while ago I wrote this guide on configuration and troubleshooting of papd and CUPS: https://netatalk.io/docs/Print-Server
 

theirongiant

Well-known member
I'm pulling my hair out over here trying to expose my printer to AppleTalk.

It worked exactly once with the cupsautoadd parameter ... but I wanted to customize the way the printer name appears in Chooser.

So I tried adjusting the papd.conf file according to the manual, and now papd absolutely refuses to start — even if I revert to using cupsautoadd.

I have a Raspberry 4 Pi with Debian 12.9 and Netatalk 4.2.0dev. I have already tried setting up Netatalk on a Synology NAS docker container, but I accidentally enabled the container on first boot before configuring the settings, and enabled auto-restart so I got the whole container system in a permanent reboot loop and had to log in via SSH to stop it from running away. And I can't run netatalk it on the Mac because we all know why. So I'm back to the RPi.

I followed this guide to compile Netatalk for Debian from source. It worked. Netatalk is running and advertising services, and the nbplkup command is is able to see other nodes on the network. I'm running an Apple Internet Router elsewhere on the network, and #globaltalk is working normally (i.e.: I can see lots of other zones).

I did not specify a release for netatalk, so git pulled from the bleeding edge and gave me 4.2.0dev instead of 4.1.2. Please note: I am a professional sysadmin, but have never worked in a dev-ops capacity, so I do not use github in any meaningful way for software version control, and need a few pointers if this is going to be a "downgrade, recompile, uninstall, reinstall" scenario.

I've tried using sudo systemctl disable papd and enable papd but it keeps failing to start.

Here is my current /etc/netatalk/papd.conf file:

Code:
# PAP print server daemon configuration (Netatalk 4.x)
#
# See the `papd.conf' manual page for examples.

# Uncomment the following line to share all CUPS enabled printers.
cupsautoadd:op=root:

#cupsautoadd@68kradio.ddns.net:op=root:

#O Brother Where Art Thou:\
#    :pr=ps:\
#    :pd=/etc/cups/ppd/brother-hl-l2380dw.ppd:\
#    :op=root:

And here is a snippet of /var/log/syslog:

Code:
2025-03-11T22:29:18.935642-07:00 pihole4 systemd[1]: Starting papd.service - AppleTalk PAP printer server daemon...
2025-03-11T22:29:18.965045-07:00 pihole4 papd: Set syslog logging to level: debug
2025-03-11T22:29:18.965356-07:00 pihole4 papd: restart (4.2.0dev)
2025-03-11T22:29:18.965523-07:00 pihole4 papd: CUPS support enabled (2.4)
2025-03-11T22:29:18.966601-07:00 pihole4 systemd[1]: Started papd.service - AppleTalk PAP printer server daemon.
2025-03-11T22:29:20.042853-07:00 pihole4 systemd[1]: papd.service: Main process exited, code=exited, status=1/FAILURE
2025-03-11T22:29:20.043587-07:00 pihole4 systemd[1]: papd.service: Failed with result 'exit-code'.
2025-03-11T22:29:21.223288-07:00 pihole4 systemd[1]: papd.service: Scheduled restart job, restart counter is at 1.
2025-03-11T22:29:21.223548-07:00 pihole4 systemd[1]: Stopped papd.service - AppleTalk PAP printer server daemon.
2025-03-11T22:29:21.240314-07:00 pihole4 systemd[1]: Starting papd.service - AppleTalk PAP printer server daemon...
2025-03-11T22:29:21.265852-07:00 pihole4 papd: Set syslog logging to level: debug
2025-03-11T22:29:21.266160-07:00 pihole4 papd: restart (4.2.0dev)
2025-03-11T22:29:21.266320-07:00 pihole4 papd: CUPS support enabled (2.4)
2025-03-11T22:29:21.267546-07:00 pihole4 systemd[1]: Started papd.service - AppleTalk PAP printer server daemon.
2025-03-11T22:29:21.766404-07:00 pihole4 systemd[1]: papd.service: Main process exited, code=exited, status=1/FAILURE
2025-03-11T22:29:21.766872-07:00 pihole4 systemd[1]: papd.service: Failed with result 'exit-code'.
2025-03-11T22:29:22.973286-07:00 pihole4 systemd[1]: papd.service: Scheduled restart job, restart counter is at 2.
2025-03-11T22:29:22.973499-07:00 pihole4 systemd[1]: Stopped papd.service - AppleTalk PAP printer server daemon.
 

slipperygrey

Well-known member
It's best to start the daemon directly rather than using systemd, to get more helpful output.

I.e. run "papd -d" from the terminal.
 
Top