In order to do a quick test, I used Finder, selected Go from the menu bar and then Connect to Server... In the Server address, I entered afp://
The problem is Apple decided to drop support for DHCAST128 in favour of DHX2. Unfortunately I couldn't find a prebuilt package for OpenSuSE with DHX2 compiled so I had to do it myself. The process is relatively simple in itself, grab a copy of 2.2 beta4 from sourceforge, unpack it and run configure. Assuming you have the basic requirements this should complete and present you with a summary.
Originally I was missing a few options. DHX2 didn't show up, and ACL support didn't work no matter what the configure options said. Without ACL support, your AFP server will work fine, but Time Machine will error out with the following message:
The problem was pretty simple in the end; missing dependencies. While compiling you will run into several errors. Here they are with the packages required to get by them:
configure: error: Zeroconf installation not found
# zypper in libavahi-devel-0.6.28-7.10.1.x86_64
checking whether to enable the TCP wrappers... configure: error: libwrap not found
# zypper in tcpd-devel-7.6-866.1.x86_64
Make sure you have the required Berkeley DB libraries AND headers installed.
# zypper in berkeleydb-3.3.75-10.1.noarch
# zypper in libdb-4_8-devel-4.8.30-2.4.x86_64
You will also need a few development libraries that won't give errors but without them, you will have missing features, like DHX2 and ACL support:
# zypper in libopenssl-devel-1.0.0c-18.19.2.x86_64
# zypper in libgcrypt-devel-1.4.6-3.1.x86_64
# zypper in libacl-devel-2.2.48-12.1.x86_64
Install them using zypper as shown above or with Yast along with any dependent packages, re-run configure, and the required features should show up. Once you are done that, run make and then make install. Here's the summary you should have:
# ./configure --enable-suse --enable-zeroconf --enable-tcp-wrappers --enable-acl-support --disable-cups
UAMS:
DHX2 ( SHADOW)
passwd ( SHADOW)
guest
Options:
DDP (AppleTalk) support: no
CUPS support: no
SLP support: no
Zeroconf support: yes
tcp wrapper support: yes
quota support: yes
admin group support: yes
valid shell check: yes
cracklib support: no
dropbox kludge: no
force volume uid/gid: no
Apple 2 boot support: no
ACL support: yes
You can then run netatalk with the defaults although I made a couple of custom entries in /usr/local/etc/netatalk/AppleVolumes.default as follows:# tail AppleVolumes.default
~/ "$u" allow:*user cnidscheme:dbd options:usedots,upriv
~/TimeMachine "$u Backup" allow:*user cnidscheme:dbd options:usedots,upriv,tm
This will automatically share out a home directories for those users specified after allow: and will give you a Time Machine target to backup to. The last step is to create a sparse file for Time Machine to use. I took this from Steffen L. Norgren's blog, so all the credit goes to him.# hdiutil create -size 512g -fs HFS+J -volname "Time Machine" `grep -A1 LocalHostName /Library/Preferences/SystemConfiguration/preferences.plist | tail -n1 | awk 'BEGIN { FS = "|" } ; { print $2 }'`_`ifconfig en0 | grep ether | awk 'BEGIN { FS = ":" } ; {print $1$2$3$4$5$6}' | awk {'print $2'}`.sparsebundle
# defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Launch Time Machine, select your Linux server and new backup volume as a target and you should be good to go.
Thanks for your article. It really helped me set up my new server with AFP. Keep up the good work.
ReplyDelete