If you appriciate the data collected here, please donate.


You can check your netatalk install with:

afpd -V


And localhost



Upgrading your Netatalk Install on Ubuntu 12.04 LTS Precise Pangolin

Required Packages

Install the following packages by "sudo apt-get install".

  • build-essential
  • libssl-dev (DHX auth aka DHCAST128)
  • libgcrypt11-dev (DHX2 auth)
  • libkrb5-dev (Kerberos V auth)
  • libpam0g-dev (PAM)
  • libwrap0-dev (TCP Wrapper)
  • libdb-dev (dbd CNID backend)
  • libmysqlclient-dev (mysql CNID backend)
  • libavahi-client-dev (Bonjour support)
  • libacl1-dev (ACL support)
  • libldap2-dev (enhanced ACL support)
  • libcrack2-dev (password ckeck)
  • systemtap-sdt-dev (DTrace-compatible)
  • libdbus-1-dev (used by afpstats command)
  • libdbus-glib-1-dev (used by afpstats command)
  • libglib2.0-dev (used by afpstats command)
  • tracker (used for spotlight indexing)
  • libtracker-sparql-0.14-dev (used for spotlight indexing) (version number may differ)
  • libtracker-miner-0.14-dev (used for spotlight indexing) (version number may differ)
  • zlib1g-dev

If tracker's version is unknown, you can know using command "dpkg-query -l tracker" or "aptitude search tracker".

Note that 12.04 only has libtracker 0.14 availabile at this writing. 0.16 has not been backported.

If libavahi-compat-libdnssd-dev package is installed, remove it, in order to avoid conflict between Avahi and mDNSResponder.

You can type it as one command:

sudo apt-get install build-essential libssl-dev libgcrypt11-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev tracker libtracker-sparql-0.14-dev libtracker-miner-0.14-dev zlib1g-dev


Extract a tarball.

tar xvf netatalk-3.x.x.tar.bz2
cd netatalk-3.x.x


You should read the help message, in order to know configure options.

If the applicable libraries are installed, many options will be detected automatically.

$ ./configure --help


Do configure! The following options are not auto-detected.

./configure \
        --with-init-style=debian \
        --with-cracklib \
        --enable-krbV-uam \
        --with-pam-confdir=/etc/pam.d \
        --with-dbus-sysconf-dir=/etc/dbus-1/system.d \


The version 0.14 --with-tracker-pkgconfig-version=0.14 must match the pkg-config version of the installed Tracker libraries. Use the following commands for finding the version info:

pkg-config --list-all | grep tracker


On successful completion, you will see a report similar to the following:

Compilation summary:
    CPPFLAGS       = -I$(top_srcdir)/include -I$(top_builddir)/include 
    CFLAGS         = -D_U_="__attribute__((unused))" -g -O2
    LIBS           = -ldl  -lcrack
        LIBS   = 
        CFLAGS = -pthread
        LIBS   = -Wl,--export-dynamic -pthread -ltracker-sparql-0.16 -lgio-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0  
        CFLAGS = -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/tracker-0.16 -I/usr/include/tracker-0.16/libtracker-sparql  
        LIBS   =  -L/usr/lib64 -lcrypto
        CFLAGS =  -I/usr/include/openssl
        LIBS   = -lgcrypt
        CFLAGS = 
        LIBS   =  -lpam
        CFLAGS = 
        LIBS   = -lwrap
        CFLAGS = 
        LIBS   =  -L/usr/lib64 -ldb-5.3
        CFLAGS = 
        LIBS   = -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
        CFLAGS = 
        LIBS   =  -lavahi-common -lavahi-client
        LIBS   =  -lldap
        CFLAGS = 
        LIBS   = -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl
        CFLAGS = -I/usr/include/mysql -DBIG_JOINS=1  -fno-strict-aliasing   -g -DNDEBUG
Configure summary:
         Extended Attributes: ad | sys
         ACL support: yes
         Spotlight: yes
         backends:  dbd last tdb mysql
         DHX     (PAM SHADOW)
         DHX2    (PAM SHADOW)
         RANDNUM (afppasswd)
         Kerberos V
         clrtxt  (PAM SHADOW)
         Zeroconf support:        yes
         tcp wrapper support:     yes
         quota support:           yes
         admin group support:     yes
         valid shell check:       yes
         cracklib support:        yes
         ACL support:             auto
         Kerberos support:        yes
         LDAP support:            yes
         AFP stats via dbus:      yes
         dtrace probes:           yes
         Netatalk lockfile:       /var/lock/netatalk
         init directory:          /etc/init.d
         dbus system directory:   /etc/dbus-1/system.d
         pam config directory:    /etc/pam.d
         Docbook:                 no


Docbook is not needed because it is for developers only.

Make and watch for errors.




Begin with stopping the Netatalk service:

sudo service avahi-daemon stop
sudo service netatalk stop


sudo make install



Check features and paths, using "afpd -V".

$ /usr/local/sbin/afpd -V
afpd 3.1.2 - Apple Filing Protocol (AFP) daemon of Netatalk

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.

afpd has been compiled with support for these features:

          AFP versions: 2.2 3.0 3.1 3.2 3.3 3.4 
         CNID backends: dbd last tdb mysql 
      Zeroconf support: Avahi
  TCP wrappers support: Yes
         Quota support: Yes
   Admin group support: Yes
    Valid shell checks: Yes
      cracklib support: Yes
            EA support: ad | sys
           ACL support: Yes
          LDAP support: Yes
         D-Bus support: Yes
     Spotlight support: Yes
         DTrace probes: Yes

              afp.conf: /usr/local/etc/afp.conf
           extmap.conf: /usr/local/etc/extmap.conf
       state directory: /usr/local/var/netatalk/
    afp_signature.conf: /usr/local/var/netatalk/afp_signature.conf
      afp_voluuid.conf: /usr/local/var/netatalk/afp_voluuid.conf
       UAM search path: /usr/local/lib/netatalk//
  Server messages path: /usr/local/var/netatalk/msg/


Finally, restart the Netatalk service:

sudo service avahi-daemon start
sudo service netatalk start



My Netatalk 3.1 Install

I used the following configuration on Ubuntu:

./configure --with-default-backend=dbd --with-pam --with-ssl --with-libgcrypt --enable-zeroconf --with-acls --with-cracklib --with-tracker-pkg-config=tracker-sparql-0.14 --with-tracker-miner-pkg-config=tracker-miner-0.14

Make sure you get all the necessary packages, it's easiest to cut-and-paste to the command line. If you get errors you'll probably need the "-dev" bits. It's understood by the "Gurus" but not obvious to the casual administrator that when you build a package rather than downloading a pre-buit package you need the dev packages to get them to connect.

Of course the developers have all that installed, they're the developers! But they forget the rest of us aren't. We're just looking for a well built tool.

You really want the latest build, not the old one in Ubuntu's repositories.


Netatalk Platform Codes

I've been setting up Netatalk at home and work.

For those who don't know, Netatalk is a linux service that provides native Macintosh compatible file sharing. It's pretty excellent, and it's the basis for Mac file sharing on many home servers. If you're building your own home server and want to support Macs, especially with Time Machine, this is what you need.

Netatalk has two flavors, 2.2 and 3, to choose from. Version 3, at this writing at 3.1, is generally what you will use. It's updated frequently to be compatible with modern Macs, support the latest Time Machine changes, and the latest system updates.

The only major failing of a Linux based Netatalk/Samba (Window File Sharing) server is that trying to share the same files over both does not always work smoothly. They are seperate projects and the two teams have not worked out all the connection differences yet, however 3 is much better at this than 2.2 was. In a home network scenerio having both share the same files works reasonably well, but since Macs can connect to Windows shares, it's a little redundant.

Netatalk 2.2, which is slowly winding down, is useful to the classic Mac and Apple II collector. It provides AppleTalk and can be configured for NetBoot an Apple IIgs. The file system on the server contains a number of hidden files, so it's advisible to NOT share it in any other manner.

When you configure Netatalk, you will be able to specify what Apple server it imitates. Depending on what it reports as, most versions of MacOS X will provide a default icon.

Apple Cinema Display = Any invalid or blank string
Airport Express = AirPort4 AirPort4,102 AirPort4,107
Airport Extreme = AirPort Airpor5 AirPort5,104 AirPort5,105 AirPort5,108 AirPort5,114 AirPort5,117
AppleTV = AppleTV AppleTV1,1
AppleTV 2 = AppleTV2
eMac = PowerMac4,4 PowerMac6,4
iBook G4 = PowerBook6,3 PowerBook6,5 PowerBook6,7
Aluminum 20" iMac = iMac7,1 iMac8,1
Aluminum 24" iMac = iMac9,1
G4 iMac 15" = PowerMac4,2
G4 iMac 17" = PowerMac4,5 PowerMac6,1
G4 iMac 20" = PowerMac6,3
Unibody G5 iMac 17" = PowerMac8,1 PowerMac8,2
Unibody G5 iMac 17" w/ iSight = PowerMac12,1
iMac 24" = iMac4,1 iMac4,2
Unibody iMac 21" = iMac11,2 iMac12,1
Unibody iMac 27" = iMac10,1 iMac11,1 iMac11,3 iMac12,2
iPad = iPad iPad1,1
iPhone = M68AP iPhone1,1
iPhone3G = N82AP iPhone1,2
iPhone4 = N90AP iPhone iPhone3,1
iPodTouch = N45AP iPod1,1
iPod Touch 2 = N72AP iPod2,1
iPod Touch 4 = N81AP iPod4,1
Black MacBook = MacBook1,1,Black MacBook2,1,Black MacBook3,1,Black MacBook4,1,Black
White Unibody MacBook = MacBook6,1 MacBook7,1
Aluminum Unibody MacBook = MacBook5,1
White MacBook = MacBook1,1 Macbook2,1 MacBook3,1 MacBook4,1 MacBook5,2 MacBook1,1,White MacBook2,1,White MacBook3,1,White MacBook4,1,White
MacBook Air = MacBookAir1,1 MacBookAir2,1
MacBook Air Unibody 11" = MacBookAir3,1 MacBookAir4,1 MacBookAir5,1
MacBook Air Unibody 13" = MacBookAir3,2 MacBookAir4,2 MacBookAir5,2
MacBook Pro 13" = MacBookPro5,5 MacBookPro7,1 MacBookPro8,1 MacBookPro9,1
Retina MacBook Pro 15" = MacBookPro
Unibody MacBook Pro 15" = MacBookPro5,1 MacBookPro5,3 MacBookPro5,4 MacBookPro6,2 MacBookPro8,2 MacBookPro9,2
Unibody Macbook Pro 17" = MacBookPro5,2 MacBookPro6,1 MacBookPro8,3
Silver MacBook Pro = Laptop
Mac Mini 2009+ w/o Disk Drive = Macmini Macmini5,1 Macmini5,2 Macmini5,3
Mac Mini 2009+ w/ Disk Drive = Macmini4,1
Mac Mini 2005-2009 = PowerMac10,1 PowerMac10,2
MacPro = MacPro MacPro1,1 MacPro2,1 MacPro3,1 MacPro4,1 MacPro5,1
PowerBook G4 12" = PowerBook6,1 PowerBook6,2 PowerBook6,4 PowerBook6,8
PowerBook G4 15" = PowerBook5,2 PowerBook5,4 PowerBook5,6 PowerBook5,8
PowerBook G4 17" = PowerBook5,1 PowerBook5,3 PowerBook5,5 PowerBook5,7 PowerBook5,9
Titanium PowerBook = PowerBook3,2 PowerBook3,3 PowerBook3,4 PowerBook3,5
Graphite G4 PowerMac = PowerMac
Quicksilver G4 PowerMac = PowerMac3,5
Time Capsule = AirPort6 AirPort6,106 TimeCapsule TimeCapsule6 TimeCapsule6,106 TimeCapsule6,109 TimeCapsule6,113 TimeCapsule6,116
XServe = RackMac RackMac1,1 RackMac1,2 RackMac3,1 Xserve Xserve1,1 Xserve2,1 Xserve3,1

I hope this list helps you customize your Netatalk expierence.


New Articles

Check out the instructions for repairing the vaccum advance unit on an old Prestolite system (and increasing your gas milage).

Also, selecting a transfer case for the Eagle and Jeep owner who isn't building a trail rig.