Skip to content

AppleTalk Kernel Module

Daniel Markstedt edited this page Oct 11, 2025 · 24 revisions

AppleTalk Kernel Module

Netatalk relies on AppleTalk support in the kernel to make use of the DDP transport layer for AFP. The atalkd daemon will attempt to dynamically load the kernel module if not detected, and errors out with the following message if all attempts fail:

Address family not supported by protocol

At the time of writing, Linux and NetBSD are known to have actively maintained AppleTalk kernel modules. Many major Linux distros, such as Alpine, Debian, and Ubuntu, ship with the AppleTalk module enabled out of the box.

Other distros, notably Fedora and other Red Hat derivatives, ship it as an optional kernel module, and may have an active blacklisting in the default configuration that needs to be disabled first. See the Installing Netatalk on Fedora Linux guide for more info.

Note: A userland AppleTalk network stack is considered feasible and is known to have been prototyped, but no complete implementation is known to the netatalk project at the time of writing.

Linux

To check if your kernel has AppleTalk support, first start the atalkd daemon, then issue this command and inspect the output:

$ lsmod | grep appletalk

Some default distribution kernels have already compiled Appletalk DDP as a module, you may have to edit your /etc/modules.conf to include this line:

alias net-pf-5 appletalk

Before making any changes, check your distribution documentation about editing /etc/modules.conf.

If no appletalk module is detected, you have the option of compiling a new kernel with AppleTalk networking enabled.

In the menuconfig structure, you can find the module under:

Networking support ---> Networking options ---> Appletalk protocol support

For more complete information about the Linux kernel see the Kernel-HOWTO.

Broadcast packets handling issue

The module in Linux kernel v6.8 and earlier has a known bug with multi-interface routing. In short, the bug will cause atalkd to send responses on the first socket listening on port 6 that it finds, regardless of which interface packets originated from. This may lead to devices on the network not consistently showing up in the Chooser on Mac clients on the same network. E.g. appearing and then disappearing.

There is a patch for this bug available that you can apply if this affects you. The patch has been accepted into the Linux kernel and is included as of v6.9.

NetBSD

The AppleTalk kernel module is available in NetBSD's default configuration, and should work with atalkd out of the box.

Clone this wiki locally