====== HOWTO Appletalk ======
This is a description copied from the [[http://forum.dsmg600.info/p1910-Yesterday-222158.html#p1910|forum]] posted by [[http://forum.dsmg600.info/profile.php?id=336|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.
[[wp>Apple_Filing_Protocol|AFP]] (Apple Filing Protocol) on the other hand, is a file-sharing protocol analogous to [[wp>Server_Message_Block|SMB]] or [[wp>Network_File_System_(protocol)|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 [[chroot_debian|Debian distro]], and the "busybox" commands so that you can chroot to it. This is all on the [[chroot_debian|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_debian|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.