WNR3500L Mac OSX Time Machine with afpd

5 posts / 0 new
Last post
netgearl
netgearl's picture
WNR3500L Mac OSX Time Machine with afpd

I have created a small howto for setting up Time Machine with AFP (Apple Filing Protocol) on WNR3500L router.

 

Optware packages needs to be installed:

netatalk
avahi
useradd
coreutils (optional to get the chown command)
openssl (optional authentication)
libgcrypt (optional authentication)

Filesystems:

1. afpd does not support NTFS fuse volume, if you only have NTFS, consider using Time Machine over a Samba Share.

2. Works on Ext3 filesystem on USB.

3. HFS - you can only mount non-journaled HFS volume under Linux, TomatoUSB has hfsplus kernel module.

 

Avahi setup:

Change the following settings in /opt/etc/avahi/avahi-daemon.conf

host-name=TimeMachine
allow-interfaces=br0
deny-interfaces=vlan2
enable-dbus=no

The dbus daemon did not work due to incompatible libc, so I disabled dbus support.

Create a file named /opt/etc/avahi/services/multi.service

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
 <service-group>
    <name replace-wildcards="yes">%h</name>
    <service>
       <type>_afpovertcp._tcp</type>
       <port>548</port>
    </service>
    <service>
       <type>_device-info._tcp</type>
       <port>0</port>
       <txt-record>model=Xserve</txt-record>
    </service>
 </service-group>

Start the service with:

adduser avahi

(you need the create the user after each reboot, unless you hack /etc/passwd in NVRAM)

avahi-daemon -D

 

Afpd setup:

Create a directory for Time Machine backups and set up in /opt/etc/netatalk/AppleVolumes.default

/your_mount_point/TimeMachine  "Time Machine" options:tm

You may need to change the the ownership or permissions of this directory in order to be accessible for the guest or other user.

Set up /opt/etc/netatalk/afpd.conf file

Option 1. Guest authentication (nobody user)

"Time Machine" -tcp -noddp -uamlist uams_guest.so

Option 2. Guest authentication (you need to create the "guest" user with useradd)

"Time Machine" -tcp -noddp -uamlist uams_guest.so -guestname "guest"

Option 3. DHX2 authentication (create a user, place the encrypted password in /etc/passwd file)

"Time Machine" -tcp -noddp -uamlist ams_dhx2_passwd.so,uams_randnum.so

Please note that root login is not allowed.

Start "afpd" from the router prompt.

 

Things to do from the Mac OSX prompt:

Turn on unsupported Time Machine feature.

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

Create a backup drive

hdiutil create -size 100g -fs HFS+J -volname "Backup Drive" MacBook_xxxxxxxxxxxx.sparsebundle

where MacBook is the Mac's hostname and xxxxxxxxxxxx is the MAC address

Copy the MacBook_xxxxxxxxxxxx.sparsebundle created by hdiutil to the router under the time machine backup directory in AppleVolumes.default.

Open the Time Machine from finder and that's it.

Southpaw32
Southpaw32's picture
Thanks for the tutorial!

Thanks for the tutorial!

Ok, I just ordered my WNR3500L yesterday, and this is exactly one of the main functions I would love for my router to have.

My question is, what firmware would you recommend to do this with? and is this built into any of the firmware builds?

Thanks for your time and help!

netgearl
netgearl's picture
Hi,

Hi,

Tomato or dd-wrt or any firmware which supports installation of optware/unslung packages.

Alternatively you need a samba enabled firmware, create a share and follow the steps from "Things to do from the Mac OSX prompt" and copy the sparsebundle directory from the MAC to the share.

afpd solution is supposed to be faster than samba, but it is easier to set up samba with time machine.

See more details here:
http://www.nslu2-linux.org/wiki/HowTo/TimeMachineBackups

Regards,
Netgearl

nGotme
nGotme's picture
In case someone wants to get

In case someone wants to get netatalk working with Lion: netatalk 2.2 was released and fresh builds for dd-wrt can be found here: http://netatalk-ddwrt.blogspot.com/

I got Time Machine working on Lion. My afpd server is a Netgear WNR3500L with dd-wrt and opt ware installed.

croc786
croc786's picture
I know this is an old post,

I know this is an old post, but I followed the guide to try to make it work on my router and OS X 10.9 Mavericks on the client. Couldn't get it to work, though. AFP share is accesible, but only read-only. I did change the permissions on the router's share as follows:
Owner and Group: nobody
Permissions 0777
Can't really think of anything else.
By the way, dbus works, but you have to use this one: http://www.dd-wrt.com/phpBB2/viewtopic.php?p=438903
Thanks!