Table of Contents

HOWTO Appletalk

This is a description copied from the forum posted by dcrosby. It's a draft howto on how to get Appletalk running on the DNS-323.

Background: Terminology

Note that there are two different technologies that are sometimes referred to (sometimes erroneously) as “AppleTalk.”

AppleTalk is a networking protocol developed by Apple before TCP/IP was ubiquitous. It originally ran on Apple-proprietary cabling, but was later adopted to run over standard Ethernet cables, which is still possible. There is little advantage to using AppleTalk over TCP/IP today, but there are some legacy machines and applications that may require it. On Linux, AppleTalk is enabled by the “atalkd” daemon.

AFP (Apple Filing Protocol) on the other hand, is a file-sharing protocol analogous to SMB or NFS, but with some features that make it more advantageous for Mac clients in some situations; for instance, AFP supports a wider character set than SMB, and has support for older Mac files with separate data and resource forks. AFP is supported on Linux by the “afpd” daemon.

Thus, if all you need is AFP and you are running Mac OS X clients, you do not need to configure or worry about atalkd at all!

Step-By-Step Instruction (ffp 0.5/optware method)

Step 1 - Preparation

Set up telnet access, and either follow the ffp 0.5 or the optware guides to set up those package systems.

Step 2 - Installing Appletalk/AFP

Telnet or ssh into the box, if you want to use the ffp package type:

mkdir /ffp/packages
cd /ffp/packages

#rsync -av --delete inreto.de::dns323/fun-plug/0.5/packages .
#The location of netatalk has changed...

wget http://www.inreto.de/dns323/fun-plug/0.5/extra-packages/All/netatalk-2.0.5-1.tgz
wget http://www.inreto.de/dns323/fun-plug/0.5/packages/db42-4.2.52-1.tgz

/ffp/sbin/funpkg -i netatalk*
/ffp/sbin/funpkg -i db42* 

If you want to use the optware package type:

/opt/bin/ipkg install netatalk

Step 3 - Configure your AFP

The default /ffp/etc/netatalk/afpd.conf or /opt/etc/netatalk/afpd.conf files should be adequate in most circumstances. It allows access to the user's home directory by using encrypted or cleartext passwords for all valid users on the system. There is good documentation in the configuration file to change the defaults if you desire.

Setting the home directories of the users is important. This can be done in the console or in the web GUI by setting the FTP access directory for each user.

OR, if you have an open configuration (no passwords/accounts) you can add the following to /ffp/etc/netatalk/AppleVolumes.default to export both of your drives (if you have 2) as Volume_1 and Volume_2. Note you can change the volume names to most any alphanumeric string.

        /mnt/HD_a2 Volume_1
        /mnt/HD_b2 Volume_2

Step 4 - Finalizing the installation

Now you should just be able to execute “afpd” and have access. You will probably want to add an “afpd” line to the fun_plug file, or the following script can be added to the ffp start directory so that it starts automatically when the unit boots.

afpd.sh:

#!/ffp/bin/sh

# PROVIDE: afpd
# BEFORE:
# REQUIRE:

. /ffp/etc/ffp.subr

name="afpd"
start_cmd="afpd_start"
stop_cmd="afpd_stop"
status_cmd="afpd_status"

afpd_start()
{
    /ffp/sbin/afpd
}

afpd_stop()
{
    killall afpd
}

afpd_status()
{
    ps -A | grep /ffp/sbin/afpd | grep -v grep
}

run_rc_command "$1"

In order to ensure fun_plug will detect this script and start-up the afpd automatically at startup, be sure to modify the permissions to ensure afpd.sh is executable. The command is:

chmod +x /ffp/start/afpd.sh

Step-By-Step Instruction (chroot debian method)

Step 1 - Preparation

Set up telnet access, a minimal Debian distro, and the “busybox” commands so that you can chroot to it. This is all on the wiki. Now for some reason I couldn't get this working with the “sarge” install, but with the “etch” install it went smoothly. By downloading the minimal “etch” distro, you do NOT need a separate x86 Debian box.

Step 2 - Installing Appletalk/AFP

Telnet to the box, chroot to debian, and install netatalk.

Although you should be able to just use the apt-get install netatalk command, two problems have come up. This will not include the necessary component to allow 128-bit secure logins, and I at least don't like sending passwords in cleartext, even over my local network. Second, several people who have tried this have run into an “invisible files” problem, where the Mac can connect to the share and access the files, but cannot see them from the Finder or open/save boxes, regardless of permissions on the NAS.

Therefore, it is best to compile netatalk yourself, which is not too scary. You will need gcc installed first. The following forum post helped, but I have also summarized the steps below:

http://ubuntuforums.org/showpost.php?p=918060&postcount=16

Summary of instructions, with a few extra necessary steps from other posts:

apt-get install dpkg-dev devscripts fakeroot cracklib2-dev libssl-dev
apt-get source netatalk
apt-get build-dep netatalk
cd netatalk-2.0.3
export DEB_BUILD_OPTIONS=ssl
debuild
dpkg -i ../netatalk_*.deb

Step 3 - Configure your AFP

Set up your afpd.conf file the way you want it for AFP (AppleShare) access. This is a little bit cryptic, but the PDF of netatalk instructions included in the package is actually quite fantastic.

If you want a very simple one to start with, just add a line to your /etc/netatalk/afpd.conf

“Personal” -uamlist uams_dhx.so -port 12000

This allows you to connect to your home directory via port 12000 and encrypts the passwords.

                 

OR, if you have an open configuration (no passwords/accounts) you can add the following to /ffp/etc/netatalk/AppleVolumes.default to export both of your drives (if you have 2) as Volume_1 and Volume_2. Note you can change the volume names to most any alphanumeric string.

          /mnt/HD_a2 Volume_1
          /mnt/HD_b2 Volume_2

Also note, if your harddrives are mounted at a different location, you'll need to modify the ”/mnt/HD_a2” string accordingly. The 'df' command will show you where all of the drives are mountd.

Step 4 - Finalizing the installation

Now you should just be able to execute “afpd” and have access. You will probably want to add an “afpd” line to the linuxrc file, so that it starts automatically when the unit boots.

Touch-up

Once I had everything working well, I created a user account in the Debian install (using adduser), gave it sudo access, verified that I could ssh into that account, and disabled telnet in the fun_plug file. I didn't like the fact that telneting to the box gave automatic root access, with no password. Now I can ssh to the box to make changes that I want, and if I need to add telnet access back, I can do so by changing fun_plug again.