Netatalk is a Unix implementation of Apple's suite of networking protocols. This allows a Unix machine to act as an AppleTalk router or file and print server, and in turn to use Apple printers.
Linux 1.3.x comes with AppleTalk support in the kernel, and netatalk 1.3.3 contains support for Linux. The AppleTalk device you are using must be able to use Ethernet (ie. it has to have Apple's EtherTalk and an apropriate network card), or your Linux box must have a LocalTalk connection (highly unlikely, although I think this is possible (??))
A Slackware binary is available from ftp://tonelli.sns.it/pub/Linux/Slackware3.0.0
The current source (version 1.3.3) is at ftp://terminator.rs.itd.umich.edu/unix/netatalk/
There are a few patches which may be necessary to get it to run properly: http://www.umich.edu/~rsug/netatalk/patches/. From memory I haven't applied any, and mine seems to go OK.
Basic installation/configuration can be found in README and README.LINUX with the sourcecode distribution. The Slackware distribution places these in /usr/doc/netatalk-1.3.3-3
The FAQ for netatalk is at: http://www.umich.edu/~rsug/netatalk/faq.html This FAQ is not for Linux specifically, but for all the OSes that netatalk supports
There is a mailing list for netatalk at email@example.com. To join the mailing list, send mail to firstname.lastname@example.org.
There are also a number of web pages that deal with Netatalk:
You need AppleTalk DDP compiled into the kernel - in 1.3.x and above. You may need to make a link from /usr/include/sys/uio.h to ../linux/uio.h. In particular, this file changed from linux 1.2.x to 1.3.x, so if, for instance, you've installed Slackware 3.0.0, and upgraded your kernel to 1.3.x, you'll need to fix this.
Apart from that, the appropriate README tells it all - compile it up and drop the relevant binaries in the right spots. You may have a bit of fiddling to do to get the AppleTalk zoning and other information correct, but Netatalk can generally work this out anyway.
Netatalk users are the same as normal users on your Linux box. This means there is no extra administration required for users who want AppleTalk file services.
The user must make sure that the password for the Linux machine is no more than 8 characters - this is the limit that the Mac gives you on login, so if your password is longer you won't be able to log in. There are a few other provisos (given in the Tips link above).
Because the Mac filesystem is organised as a B-tree, netatalk has had to do some strange things to the normal Unix filesystem to compensate. For starters, the user can create an .AppleVolumes file, which details the volumes that will be available to them from the Mac.
This is arranged as a simple list of directories and the volume name they appear as on the Mac desktop. As far as I know, you may not have spaces in either of these fields.
/home/mjch mjch /home/ftp ftp / root /mnt/dos dos
Netatalk also creates a few other directories in the home directory:
Every directory you use with netatalk has an .AppleDouble directory created in it. This directory is where netatalk stores the binary or resource fork of the Macintosh filesystem. For example, text data is stored in the main directory, and binaries would be stored in the .AppleDouble subdirectories. (Check this out by copying a Mac binary to your Linux box and see where it puts things).
Note that although Unix is able to handle files with spaces in their names, they are a pain to type in at the keyboard. It is probably a good idea to place all your Mac stuff under a single sub-directory rather than place it all in the home directory, unless you only use the account for AppleTalk access.
Under netatalk, you will not be able to see any `hidden' directories (those that start with `.', nor any files with filenames that are longer than 31 characters in length.
Also note that the Mac allows special characters to appear in filenames legally (as opposed to when things go wrong under DOS :). These are stored in the filename as `:xx' where xx is the hexadecimal value of the appropriate ASCII character.