Giter VIP home page Giter VIP logo

freetz-netatalk's Introduction

Netatalk

If you don’t speak German but would like to work on this project, please let me know by adding a comment in the forum.

Stand der Dinge

Netatalk ist im Beta-Test. Bitte Probleme und Anregungen im Bugtracker Github Issues erfassen, zuerst aber unbedingt “Konfiguration” weiter unten lesen!

Wer bereits eine Netatalk-Version von vor dem 4.12.2010 installiert hat, muss zusätzlich folgende Kommandos ausführen, um libdb zu patchen und neu zu bauen:

cd freetz/trunk
sed -i 's%enable-smallbuild%enable-smallbuild\n$(PKG)_CONFIGURE_OPTIONS += --with-mutex=MIPS/gcc-assembly%' make/libs/db.mk
make db-dirclean

Leute

Im Moment schrauben nur ich (Sven) und dg1kjd (Jens) an diesen Paketen. Um mit mir Kontakt aufzuznehmen, schreibe eine Reply ins Forum, schicke mir auf Github eine Message an “svoop” oder suche mich auf IRC (nick: “svoop”).

Installation

Zuerst sollte das Git Repo geforked werden:
http://github.com/svoop/freetz-netatalk

Danach die Entwicklungsumgebung erzeugen. Anstelle von {USERNAME} sollte der eigene Github-Username eingesetzt werden:

mkdir freetz
cd freetz
svn checkout http://svn.freetz.org/trunk
git clone [email protected]:{USERNAME}/freetz-netatalk.git netatalk
ln -s ../../netatalk trunk/make/
sed -i 's%ncftp/Config.in%ncftp/Config.in\nsource make/netatalk/Config.in%' trunk/make/Config.in
sed -i 's%enable-smallbuild%enable-smallbuild\n$(PKG)_CONFIGURE_OPTIONS += --with-mutex=MIPS/gcc-assembly%' trunk/make/libs/db.mk
cd trunk
make menuconfig

Das Netatalk-Paket befindet sich hier:

FREETZ_PACKAGE_NETATALK
  Package selection -> Testing -> Netatalk

Konfiguration

Netatalk und andere Protokolle

AFP (Netatalk) unterscheidet sich fundamental von SMB (Samba)! Der wichtigste Unterschied besteht darin, dass AFP zum Referenzieren der Dateien und Verzeichnisse nicht die Pfade, sondern eine in gewisser Weise redundante CNID (Catalog Node ID) benutzt. Für das Mapping zwischen Pfad und CNID wird eine Datenbank im Verzeichnis .AppleDB angelegt.

Diese Datenbank ist natürlich eine potentielle Fehlerquelle. Sehr schlecht ist Beispielsweise ein plötzlicher Tod des Datenbank-Daemons cnid_dbd mit SIGKILL oder durch einen Stromausfall. In diesem Fall muss die Datenbank vor dem nächsten Mounten unbedingt mit dbd repariert werden. Der Prozess darf nur mit SIGTERM abgeschossen werden.

Eine weitere Nebenwirkung ist, dass alle Änderungen am Filesystem via AFP geschehen müssen, d.h. auf ein AFP-Share darf mit anderen Methoden (SMB, SFTP, Shell etc) nicht geschrieben werden, denn nur AFP aktualisiert die CNID Datenbank. Wird z.B. mit SMB eine neue Datei erstellt, ist sie für AFP nicht sichtbar. Künftige Versionen von Netatalk werden möglicherweise einen Filesystem-Crawler beinhalten.

Volsizelimit

Damit die CNID Datenbank immer geschrieben werden kann, ist es wichtig, dass die von Netatalk gemeldete Kapazität des Shares eine Ecke geringer ist als die physikalische Kapazität. Die gemeldete Kapazität kann man mit volsizelimit:100000 definieren.

TimeMachine

Wer ein Share als TimeMachine-Medium benutzen möchte, sollte sich die Option options:tm näher anschauen und das Volsizelimit nicht zu knapp setzen.

Shell

Wer lieber in der Shell herumprobiert, muss einmal Netatalk über das Webinterface starten und stoppen. Dadurch werden die folgenden Konfigurationsdateien angelegt und können danach direkt bearbeitet werden:

  • /mod/etc/netatalk/afpd.conf
  • /mod/etc/netatalk/AppleVolumes.default

Starten der Daemons:

pre.
cnid_metad -s /sbin/cnid_dbd -l LOG_INFO
afpd -F /mod/etc/netatalk/afpd.conf -f /mod/etc/netatalk/AppleVolumes.default -P /var/run/afpd.pid

Stoppen der Daemons:

pre.
killall -SIGTERM afpd
killall -SIGTERM cnid_metad

Links

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.