-
Notifications
You must be signed in to change notification settings - Fork 100
Troubleshooting
Getting the AppleTalk (DDP) transport layer working in modern environments can often be a steep hill to climb. This guide provides a few pointers for resolving common pitfalls.
Netatalk relies on AppleTalk support in the kernel to make use of the DDP layer. The atalkd
daemon, which is part of the Netatalk package when built with AppleTalk support, will attempt to dynamically load the kernel module if not detected, and error out if all attempts fail. You can still use the DSI layer (TCP/IP) without an AppleTalk kernel module.
At the time of writing, Linux and NetBSD are known to have officially maintained AppleTalk kernel modules. Most major Linux distributions provide the AppleTalk kernel module by default, but others may need user intervention to enable.
For further discussion on how to work with the kernel module, see AppleTalk Kernel Module.
Once you've confirmed that the OS kernel can speak AppleTalk, the next step is to get AppleTalk routing up and running.
The most simple scenario is when no other AppleTalk router exists on the local network, and a host computer with only one network interface.
See the atalkd.conf manual page for an overview to how atalkd
behaves when starting up.
If AppleTalk networking doesn't work out of the box (not visible in the Chooser), try the following steps.
First off, you want to make sure that atalkd
starts up fully before the other Netatalk daemons.
The atalkd
daemon can take a minute or longer to be fully available to register AppleTalk services.
When in doubt, run the nbplkup
command and validate that the default workstation services are registered.
Next up, you want to make sure that routing is working between the two machines you're trying to network. Obviously, you first need an Ethernet to LocalTalk bridge of some sort for the Netatalk host and classic Mac to communicate. This is out of scope for this guide. A Classic Mac OS machine will also register a default workstation name (usually the model name for that Mac) that will be visible on the AppleTalk network.
Therefore, if you run nbplkup
on the Netatalk host machine, you should see both the Netatalk workstation and the classic Mac workstation.
This is proof that routing is functioning correctly.
If this doesn't work, you want to make sure that the configuration in atalkd.conf
matches the correct network interface (especially when you have many interfaces and/or bridges available.)
And if you have other AppleTalk routers on the network, you may have to disable routing on your local atalkd instance.
You want to make sure that AppleTalk traffic is not routed over WiFi, unless you know for a fact that your WiFi router explicitly handles AppleTalk packages (e.g. Apple AirPort or other early 2000s routers marketed as AppleTalk compatible.)
Note that for this to work, your printer must be CUPS (Apple AirPrint) compatible. At the time of writing, the majority of modern printers are compatible. You can test this by piping some text to lp. First, list the printers that CUPS can see, then configure the default printer (HP Tango in the following example), finally pipe a stream to lp for printing.
$ lpstat -p -d
printer HP_Tango_333AB4_ is idle. enabled since Fri 07 Jan 2022 06:47:09 PST
system default destination: HP_Tango_333AB4_
$ lpoptions -d HP_Tango_333AB4_
device-uri=ipps://HP%20Tango%20%5B333AB4%5D._ipps._tcp.local/ printer-info='HP Tango [333AB4]' printer-location printer-make-and-model='HP Tango' printer-type=16781324
$ echo "NETATALK IS AWESOME" | lp
request id is HP_Tango_333AB4_-3 (0 file(s))
The next step is to configure papd. Edit /etc/netatalk/papd.conf
and add the following line to the bottom of the file:
cupsautoadd:op=root:
Save, exit, and restart papd.
At this stage, you want to test that the CUPS printer is shared over AppleTalk. This can be done using this command:
$ nbplkup
The output should look something like this:
rascsi3b:ProDOS16 Image 65280.205:3
HP Tango 333AB4 :LaserWriter 65280.205:130
rascsi3b:Apple //e Boot 65280.205:3
rascsi3b:AFPServer 65280.205:131
rascsi3b:TimeLord 65280.205:129
rascsi3b:Apple //gs 65280.205:3
If you see your printer here, the only thing left is to configure the printer on your vintage Mac in the Chooser. This part may vary depending on AppleTalk version, printer drivers on your system, and model and make of printer. The author has tested their HP Tango printer with LaserWriter 7 on System 7.1.1, and LaserWriter 8 on Mac OS 8.6:
- Pick the LaserWriter driver in the Chooser. Your printer should appear in the list of PostScript printers.
- If using LaserWriter 7 or earlier, just selecting the printer should be enough.
- If using LaserWriter 8, click Setup.
- When given the option to pick PPD (printer description file) choose plain LaserWriter from the list.
- Print!
If printing doesn't immediately work, try experiment with other stock PPD files in the Chooser, or track down 3rd party ones that may be compatible, and see it that makes a difference.
Resources
- Getting Started
- FAQ
- Troubleshooting
- Connect to AFP Server
- Webmin Module
- Benchmarks
- Interoperability with Samba
OS Specific Guides
- Installing Netatalk on Alpine Linux
- Installing Netatalk on Debian Linux
- Installing Netatalk on Fedora Linux
- Installing Netatalk on FreeBSD
- Installing Netatalk on macOS
- Installing Netatalk on NetBSD
- Installing Netatalk on OmniOS
- Installing Netatalk on OpenBSD
- Installing Netatalk on OpenIndiana
- Installing Netatalk on openSUSE
- Installing Netatalk on Solaris
- Installing Netatalk on Ubuntu
Tech Notes
- Kerberos
- Special Files and Folders
- Spotlight
- MySQL CNID Backend
- Slow AFP read performance
- Limiting Time Machine volumes
- Netatalk and ZFS nbmand property
Retro AFP
Development