FreeBSD im Apple Netz (mit TimeMachine) [update 4]

[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.

# cd /usr/ports/net/netatalk
# 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

dbus_enable="YES"
avahi_daemon_enable="YES"
cnid_metad_enable="YES" # cnid backend für afpd
netatalk_enable="YES"
afpd_enable="YES"

/usr/local/etc/netatalk.conf

ATALKD_RUN=no # kein AppleTalk
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:

&lt; ?xml version="1.0" standalone='no'?&gt;<!--*-nxml-*-->
&lt; !DOCTYPE service-group SYSTEM "avahi-service.dtd"&gt;

%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:

_device-info._tcp
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:

hosts: files mdns_minimal [NOTFOUND=return] dns mdns

Die zu exportierenden Volumes hier eintragen:
/usr/local/etc/AppleVolumes.default

/data allow:user1,user2,@group1, @group2 dbpath:/var/AppleDB options:usedot,noadouble,nohex

/data wird geshared
die Benutzer user1 und user, sowie die Gruppen (bzw deren. Mitglieder) group1 und group2 haben Zugriff.

dbpath:/var/AppleDB

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/netatalk start
# /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: , , , , , , , , ,

8 Kommentare zu „FreeBSD im Apple Netz (mit TimeMachine) [update 4]“

  1. Stefan Bethke sagt:

    options NETATALK wird nur benötigt, wenn man AppleTalk benutzen möchte. Man kann das also getrost weglassen und sich den Kernel-Recompile sparen.

  2. 12 sagt:

    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?

  3. 12 sagt:

    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?

  4. Christian Geier sagt:

    Ist die Netzwerkkarte schon “Up”, bzw, hat die schon eine IP-Adresse?

  5. [...] Anmerkung, sollte man netatalk noch nicht installiert haben, hier ist eine schöne Anleitung das ganze auf freebsd [...]

  6. Fred Meier sagt:

    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

  7. Christian Geier sagt:

    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

  8. balu sagt:

    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

Kommentieren