-
Notifications
You must be signed in to change notification settings - Fork 87
Installing Netatalk 2 on Debian
Install required packages with the package manager of your choice:
$ sudo apt install \
autoconf \
automake \
docbook-xsl \
libacl1-dev \
libavahi-client-dev \
libcrack2-dev \
libcups2-dev \
libdb-dev \
libgcrypt-dev \
libkrb5-dev \
libldap2-dev \
libltdl-dev \
libpam0g-dev \
libssl-dev \
libtirpc-dev \
libtool \
libtool-bin \
libwrap0-dev \
quota \
tcpd
- libcups2-dev is required for CUPS support. If you don't need an AppleTalk printer server, you can omit this.
- libavahi-client-dev is required for zeroconf support, which Mac OS X / macOS uses for service discovery. (Classic Mac OS uses built-in AppleTalk service discovery.)
- libgcrypt20-dev is needed to compile the dhx2 UAM, which later Mac OS X / macOS versions require.
Get the latest release tarball of Netatalk 2, or clone the netatalk git repository and check out the latest bleeding-edge Netatalk 2 branch.
If you chose the latter option, you need to first bootstrap the build system with autoconf to generate the configure script:
$ git clone https://github.com/Netatalk/netatalk.git -b branch-netatalk-2-3 netatalk2
$ ./bootstrap
Run the configure script with the following parameters, then compile and install the software:
$ ./configure --enable-systemd --sysconfdir=/etc --with-uams-path=/usr/lib/netatalk
$ make all
$ sudo make install
If this process finishes without errors, you should now have the Netatalk software installed on your system. The next step is to tweak the configuration.
First off, decide on the directory(ies) that you want to share, as well as the user that you want sharing them. You will need the Linux username and password of the user to access the shared directories, and due to limitations of classic Mac OS the password cannot be longer than 8 characters.
The following example uses the a user called "pi", a single shared directory, and a single routerless AppleTalk network without Zones.
$ mkdir ~/afpshare $ chmod 2775 ~/afpshare
Edit the following configuration files:
$ sudo pico /etc/netatalk/AppleVolumes.default
At the bottom of the file, add this line:
/home/pi/afpshare "File Server"
Tip: You can append adouble:v1 volcharset:ASCII
if you are having
issues with very old versions of Mac OS.
Next file to edit:
$ sudo pico /etc/netatalk/afpd.conf
Add this to the bottom of the file:
- -transall -uamlist uams_guest.so,uams_clrtxt.so,uams_dhx2.so -nosavepassword
You may customize the -uamlist
option to disable and enable various
authentication methods. For instance, remove uams_guest.so if you want
to disallow guest access.
Note that the -nosavepassword
is for additional security, and you may
opt omit this if you're on a private network.
If your Mac OS system is using a codepage different from MAC_ROMAN, e.g.
MAC_CYRILLIC, you can specify this in -maccodepage
. See the afpd.conf
documentation for more info. Similarly, if your host system uses a
different codepage than UTF-8, you can specify that with
-unixcodepage
.
For troubleshooting, append something like this:
-setuplog "default log_maxdebug /var/log/afpd.log"
See the man page for 'afpd.conf' for a breakdown of all of the options available.
(Optional - Netatalk will autodetect the network in most cases) Finally, edit this file:
$ sudo pico /etc/netatalk/atalkd.conf
Specify the interface you want Netatalk to use by adding this to the bottom of the file using eth0 as an example:
eth0
If you are running into issues connecting to your File Server, you can try to change this line to:
eth0 -phase 2 -net 0-65534 -addr 65280.163
In order to use AppleShare / AFP over AppleTalk (DDP) the Linux system must have an AppleTalk networking stack. Luckily, Debian's Linux kernel comes with a module called "appletalk", which provides this functionality. Without an AppleTalk networking stack, you will only be able to use Netatalk with TCP.
To check if your kernel has AppleTalk support, issue this command and inspect the output:
$ lsmod | grep appletalk
If the module isn't detected, try launching atalkd first and try again. If atalkd errors out complaining about "Address family not supported by protocol", you may have to try another version of Linux, or compile the Linux kernel yourself. There are guides elsewhere on this topic that you can follow.
At this point, you should be able to run the Netatalk daemons on your system.
$ sudo systemctl enable atalkd.service afpd.service cnid.service
$ sudo systemctl start atalkd.service afpd.service cnid.service
Optional services:
$ sudo systemctl enable papd.service timelord.service a2boot.service
$ sudo systemctl start papd.service timelord.service a2boot.service
Resources
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
Technical Docs
- CatalogSearch
- Kerberos
- Special Files and Folders
- Spotlight
- AppleTalk Kernel Module
- Print Server
- MacIP Gateway
Development