[letztes update vom 15.06.2010]
afpd mit mDNS/zeroconf/Bonjour auf FreeBSD 8 (aber genauso auf FreeBSD 7 bzw 7.1 )
netatalk-2.1.1_1,1 als AFP Server
avahi-0.6.24 für den mDNS Broadcoast
nss_mdns-0.10_1 als mDNS Resolver
neuen Kernel kompilen mit
options NETATALK
Mag zwar nicht wirklich nötig sein, denn afp läuft auch ohne, aber dann taucht in /var/log/messages bei jedem Start ein Mar 21 11:13:52 brutus afpd[1127]: main: atp_open: Protocol not supported auf.
# make install clean
# cd /usr/ports/dns/nss_mdns
# make install clean
avahi ist Vorraussetzung für nss_mdns, wird also direkt mitinstalliert, default Konfiguration bis auf [X] LIBDNS.
in /etc/rc.conf
avahi_daemon_enable="YES"
cnid_metad_enable="YES" # cnid backend für afpd
netatalk_enable="YES"
afpd_enable="YES"
/usr/local/etc/netatalk.conf
PAPD_RUN=no
AFPD_RUN=yes
Für jeden zu veröffentlichenden Dienst ist in /usr/local/etc/avahi/services eine XML-Datei nachfolgendem Schema anzulegen, hier ein Beispiel für afp, Name der Datei z.B. afp.service:
< !DOCTYPE service-group SYSTEM "avahi-service.dtd">
%h
_afpovertcp._tcp
548
Alle (?) Service Types sind hier beschrieben: http://www.dns-sd.org/ServiceTypes.html
Wer in der Findersidebar gerne einen anderes Bild als das standard Apple Display sehen möchte, fügt noch direkt über </service-group> ein:
model=bsd
0
Statt model=Xserve sind noch mehrere andere Modelle möglich.
Damit auch hostname.local aufgelöst wird die Zeile host: in /etc/nsswitch.conf bearbeiten:
Die zu exportierenden Volumes hier eintragen:
/usr/local/etc/AppleVolumes.default
/data wird geshared
die Benutzer user1 und user, sowie die Gruppen (bzw deren. Mitglieder) group1 und group2 haben Zugriff.
verlegt den .AppleDB Ordner
für weiter optionen siehe: AppleVolumes.default
ein “~” in einer Zeile shared die Home-Verzeichnisse.
Die Optiontmstellt das Volumen Time Machine zur Verfügung.
hat man mehr als ein Network Interface evtl. noch /usr/local/etc/afpd.conf editieren.
will man nicht neustarten:
# /usr/local/etc/rc.d/dbus start
# /usr/local/etc/rc.d/avahi-daemon start
In /var/log/messages tauchen ein paar Warnungen auf:
“WARNING: No NSS support for mDNS detected, consider installing nss-dns!”
trotz installiertem (und funktionierendem!) nss-dns. Nunja.
Und mehr oder weniger regelmäßig im Betrieb:
Mar 18 21:44:16 brutus afpd[pid]: bad function 4C
Mar 18 21:46:12 brutus afpd[pid]: bad function 4E
Mar 18 21:46:18 brutus afpd[pid]: bad function 4F
unter netatalk 2.1 tauchen diese Fehlermeldungen nicht mehr auf und sind evtl implementiert.
Diese Funktionen sind bisher undokumentierte Änderungen im AFP Protokoll, siehe hier:
http://lists.apple.com/archives/filesystem-dev/2008/Apr/msg00031.html (4C in hex ist 76 dezimal, 4E 78 und 4F 79.)
76 ist ein Spotlight Kommando. 78 und 79 werden für Timemachine Backups auf den AFP-Volumen benötigt, unter anderem sicher gehen, dass die Daten auch wirklich auf der Platte sind und nicht noch im Cache liegen. Wann und ob diese Funktionen von netatalk bereitgestellt werden, scheint noch nicht festzustehen.
Wer unbedingt möchte, kann natürlich auch schon jetzt TimeMachine Backups auf den AFP Server machen ( http://www.macosxhints.com/article.php?story=20071028173642747 ), besonders sicher scheint dies aber nicht zu sein.
[update2 17.6.2009]
TimeMachine Unterstützung ist bereits in HEAD und wird wohl mit netatalk 2.1 released werden (Re: [Netatalk-devel] Development Roadmap)
[update 3 10.10.2009] Time Machine Unterstützung kommt schon mit Netatalk 2.0.5, der zweite Release Canditade ist schon veröffentlicht, siehe: http://www.netafp.com/node/4
[update1 20.03.2009] Umstieg von howl auf avahi, mehr Informationen zu undokumentieten Funktionen
Technorati Tags: FreeBSD, Apple, OSX, afpd, netatalk, bonjour, zeroconf, mDNS, howto, lang:de
options NETATALK wird nur benötigt, wenn man AppleTalk benutzen möchte. Man kann das also getrost weglassen und sich den Kernel-Recompile sparen.
Ich bekomme nach einem Reboot immer “avahi-daemon[708]: IP_DROP_MEMBERSHIP failed: Can’t assign requested address”. Avahi läuft dann zwar, es funktioniert aber nicht (weder Bonjour nocht .local Auflösung). Nach einem restart von Avahi geht dann alles. Woran könnte das liegen?
Ich bekomme nach einem Reboot immer “avahi-daemon[708]: IP_DROP_MEMBERSHIP failed: Can’t assign requested address”. Avahi läuft dann zwar, es funktioniert aber nicht (weder Bonjour nocht .local Auflösung). Nach einem restart von Avahi geht dann alles. Woran könnte das liegen?
Ist die Netzwerkkarte schon “Up”, bzw, hat die schon eine IP-Adresse?
[...] Anmerkung, sollte man netatalk noch nicht installiert haben, hier ist eine schöne Anleitung das ganze auf freebsd [...]
Hallo
Danke für das Howto :-) läuft gut.
Mit der “Schreibrechten” hakt es bei mir aber. Ordner/Partitionen auf denen ich Eigner bin kann ich lesen und schreiben.
Andere Ordner/Partitionen nur lesen :-(
Wie bekomme ich einen “Shared” Ordner hin?
Mit @group bekomme ich auch nur leserechte.
Was mache ich falsch?
Gruss Fred
Also bei mir funktioniert das. Bei shared Ordnern setze ich die Gruppe “per Hand” auf die @group und gebe der Gruppe auch Schreibrechte.
Grüße
Christian
zu dem “IP_DROP_MEMBERSHIP failed: Can’t assign requested address” Problem,
das hatte ich auch und ich habe etwas rumprobiert,
bei mir lags an einem zu langsammen dhcp der die Interface erst nach dem Start von Avahi hochgebracht hat.
Lösung meines Problems habe ich mal hier :
http://www.ohnekontur.de/index.php/2010/03/26/avahi-nach-dhcp-freebsd/
gepostet
vielleicht hilfts ja noch wem