For those of us running Linux file shares at home, AFP support is provided using something called Netatalk. Since my original posting on this a few years ago, this is now at version 3.0 and the configuration has changed somewhat. This article outlines some of the things you will need to do to configure Netatalk assuming you are running Ubuntu server.
Running AFP allows you to natively mount file shares from your Mac to your Linux based fileserver. While you can certainly use other methods (NFS/SMB), AFP is able to provide integrated support with your TimeMachine backup. You can download the latest version from http://netatalk.sourceforge.net/, which will be required for optimal support. The version shipping with Ubuntu currently is rather outdated, so this is a necessity.
After downloading, extract everything into a source directory that you will use for building it. Then use the following steps as a guideline for building and installing your Netatalk distribution:
- Install Pre-Requisits. In addition to the standard suite of build tools (make/gcc), you will also need ssl, PAM and crypt development libraries.
apt-get install avahi-daemon libnss-mdns cracklib2-dev fakeroot libssl-dev libpam0g-dev libgcrypt11-dev
- Configure Everything. Inside the directory with the extracted source code, do the following:
make distclean sh ./configure --with-init-style=debian --with-zeroconf --enable-fhs
The debian style init will create a startup script in /etc/init.d. The zeroconf attribute provides integration with avahi for resource discovery, and the –enable-fhs will install the server with the main configuration in /etc.
- Build and Install. Compile the source code and install:
make && sudo make install
- Configure AFP Server. Setup a configuration file for your server. This will be in
/etc/afp.confand is much easier to do than previous releases. If you have your file share settings in AppleVolumes.default you will need to transcribe them into this new config file. Here is a sample setup to get you started:
; ; Netatalk 3.x configuration file ; http://netatalk.sourceforge.net/3.0/htmldocs/afp.conf.5.html ; [Global] vol preset = default_for_all_vol log file = /var/log/netatalk.log uam list = uams_dhx.so,uams_dhx2.so save password = yes afpstatus = yes zeroconf = yes mimic model = RackMac [default_for_all_vol] file perm = 0664 directory perm = 0774 cnid scheme = dbd valid users = @users [Homes] basedir regex = /export/home [Public] path = /export/public [TimeMachine] path = /export/timemachine time machine = yes
- Startup and Connect. With your configuration file in place, startup the server and connect to it from your favorite Mac:
There are a few things to watch out for, if you have an Avahi configuration from a previous install you may need to remove settings from there. For example, if you crafted an adisk.service file with record entries for your shares you no longer need this with zeroconf. If you didn’t do this then this doesn’t apply.
Finally, if you get the dreaded “The version of the server you are trying to connect to is not supported” when trying to connect to your AFP server from your Mac then you should confirm what your server supports as there is likely something missing.
The result should look something like this:
AFP reply from localhost:548 Flags: 1 Cmd: 3 ID: 57005 Reply: DSIGetStatus Request ID: 57005 Machine type: Netatalk3.0.4 AFP versions: AFP2.2,AFPX03,AFP3.1,AFP3.2,AFP3.3 UAMs: DHX2,DHCAST128 Volume Icon & Mask: Yes
Make sure DHX2 is available, if this is not here then something went wrong with libgcrypt.