![]() OverviewNetatalk offers support for Mac OS X clients. The Drobo FS ships with a version of netatalk (the "internal" version). Unfortunately, as of the creation of this package, the FS has very poor support for OS X Lion. The latest version of the firmware (1.2.x) does support Lion, but has terrible performance issues. The previous release of the firmware (1.1.x) has much better performance, but does not support Lion. This version of netatalk supports both file sharing and TimeMachine for OS X Lion on the Drobo FS, without the need to update to the latest firmware. This DroboApp does not delete the internal netatalk server. Instead, it stops the internal server and starts its own server using the same configuration files as the internal server. In other words, any changes made to the shares using the Drobo Dashboard app will eventually be reflected by this DroboApp. It is important to notice that in case of changes made using the Drobo Dashboard, the Drobo FS firmware will kill the new version and restart the internal one. Therefore, after every change to shares, you'll need either to reboot the FS or restart the netatalk DroboApp using the DroboAdmin webapp. The FS can be reverted to its original state by just removing this DroboApp. Once removed and the FS rebooted, the internal server will be restarted. Netatalk requires zlib, libgpg-error, libgcrypt, openssl and Berkeley DB. This version is statically linked and heavily optimized for the FS. It should behave as a drop-in replacement for the original netatalk server. Output of the configuration of netatalk (i.e. what is supported in this version): Configure summary:
Install style:
none
AFP:
Large file support (>2GB) for AFP3: yes
Extended Attributes: ad | sys
CNID:
backends: dbd last tdb
UAMS:
DHX ( SHADOW)
DHX2 ( SHADOW)
RANDNUM ( SHADOW)
passwd ( SHADOW)
guest
Options:
DDP (AppleTalk) support: no
SLP support: no
Zeroconf support: no
tcp wrapper support: no
quota support: no
admin group support: yes
valid shell check: yes
cracklib support: no
dropbox kludge: no
force volume uid/gid: no
ACL support: no
LDAP support: no
PreparationMake sure you have a cross-compiling virtual machine properly setup. Compilationexport DEST=/mnt/DroboFS/Shares/DroboApps/netatalk
cd ~/code
wget http://zlib.net/zlib-1.2.5.tar.gz
tar zxf zlib-1.2.5.tar.gz
cd zlib-1.2.5
CFLAGS="$CFLAGS -O3" ./configure --prefix=$DEST --static
make clean && make
ZLIB=`pwd`
cd ..
wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.gz
tar zxf libgpg-error-1.10.tar.gz
cd libgpg-error-1.10/
CFLAGS="$CFLAGS -O3" ./configure --host=arm-none-linux-gnueabi --prefix=$DEST --enable-static --disable-shared
make clean && make
LIBERROR=`pwd`
cd ..
wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.gz
tar zxf libgcrypt-1.5.0.tar.gz
cd libgcrypt-1.5.0/
CFLAGS="$CFLAGS -O3 -I$LIBERROR/src/" LDFLAGS="$LDFLAGS -L$LIBERROR/src/.libs" ac_cv_path_GPG_ERROR_CONFIG=$LIBERROR/src/gpg-error-config ./configure --host=arm-none-linux-gnueabi --prefix=$DEST --enable-static --disable-shared
make clean && make
LIBGCRYPT=`pwd`
cd ..
wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz
tar zxf openssl-1.0.0d.tar.gz
cd openssl-1.0.0d
./Configure linux-generic32 -DL_ENDIAN --prefix=$DEST --openssldir=$DEST/etc/ssl no-shared no-zlib-dynamic --with-zlib-include=$ZLIB --with-zlib-lib=$ZLIB
sed -i -e "s/CFLAG= /CFLAG=${CFLAGS} /g" Makefile
make clean && make && make install_sw
rm -fr $DEST/include
rm -fr $DEST/lib
OPENSSL=`pwd`
cd ..
wget http://commondatastorage.googleapis.com/drobofs/db-5.2.36.tar.gz
tar zxf db-5.2.36.tar.gz
cd db-5.2.36/build_unix
CFLAGS="$CFLAGS -O3" ../dist/configure --host=arm-none-linux-gnueabi --prefix=$DEST --disable-shared
make clean && make
ln -s . include
ln -s . lib
BDB=`pwd`
cd ../..
wget http://sourceforge.net/projects/netatalk/files/netatalk/2.2.1/netatalk-2.2.1.tar.gz
tar zxf netatalk-2.2.1.tar.gz
cd netatalk-2.2.1/
CFLAGS="$CFLAGS -O3 -I$LIBERROR/src -I$LIBGCRYPT/src" LDFLAGS="$LDFLAGS -L$BDB -L$LIBERROR/src/.libs -L$LIBGCRYPT/src/.libs" ac_cv_path_LIBGCRYPT_CONFIG=$LIBGCRYPT/src/libgcrypt-config ./configure --host=arm-none-linux-gnueabi --prefix=$DEST --with-shadow --without-pam --with-libgcrypt-dir=$LIBGCRYPT --with-ssl-dir=$OPENSSL --with-bdb=$BDB
make clean && make && make install
find $DEST -executable -type f -exec $STRIP {} \;
Packagingcd $DEST mkdir -p var/run var/log wget http://www.droboports.com/app-repository/netatalk-2-2-1/service.sh -O service.sh chmod a+x service.sh wget http://www.droboports.com/app-repository/netatalk-2-2-1/afpd.conf -O etc/afpd.conf ~/bin/package.sh InstallingDroboAdmin link: Install netatalk-2.2.1 (this link only works if you have not changed the DroboFS name). Otherwise, download below and place it in you DroboApps share. Final remarksThis app should have no serious, permanent effect on your Drobo FS. However, it is highly recommended to have a complete backup of your Drobo's content before installing this DroboApp since it overrides a fundamental piece of the Drobo firmware. Known issue 1: after installing the DroboApp, your shares may appear to be empty. This is a known issue with the latest netatalk. To solve this, you have to SSH into the Drobo FS and type this sequence of commands (replace 'share_name_here' with the name of the share in question): cd /mnt/DroboFS/Shares/share_name_here mv .AppleDB .AppleDB.old If you ever need to go back to the internal netatalk server, you have to SSH into the Drobo FS again, and do this: cd /mnt/DroboFS/Shares/share_name_here rm -fr .AppleDB mv .AppleDB.old .AppleDB Known issue 2: Some users have reported that if the FS is rebooted before the .AppleDB folders are (re)moved, then access to both AFP and SSH is lost. To prevent any bad surprises, it is highly advisable to perform the steps indicated above before restarting your Drobo. Please visit the DroboSpace forums to leave your comments, suggestions and feedback. |


