[Frage] Netatalk mit Zeroconf

simonszu

Neuer User
Mitglied seit
12 Mrz 2007
Beiträge
73
Punkte für Reaktionen
0
Punkte
6
Hi,

ich versuche, auf meiner 7390 einen AFP-Server per Netatalk zum laufen zu bringen, der seine Dienste auch über Zeroconf/Bonjur/avahi (wie auch immer) announced.

Ich hänge da aber gerade etwas an der Zeroconf-Geschichte fest. Ich habe im freetz die avahi- und netatalk-Pakete ausgewählt, und netatalk auch mit zeroconf-support gebaut. Der afp-server läuft auch soweit.
Nur...wie kriege ich jetzt avahi zum laufen? Das Ding scheint sich ja noch nicht irgendwo in der WebUI zu registrieren, also über die Kommandozeile. Allerdings weiß ich jetzt nicht so genau, wie ich Daemons steuere. Hat Freetz sowas wie Initscripte?

Wenn ich den avahi-daemon so calle, kriege ich eine Meldung, dass /etc/avahi/avahi.conf (oder so) nicht gefunden wurde. Aber die hauptsächlichen Configs liegen doch in /var/mod/etc...

Was mache ich falsch, wo fang ich am besten an, oder denke ich gar viel zu kompliziert?
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,847
Punkte für Reaktionen
14
Punkte
38
Wenn ich den avahi-daemon so calle, kriege ich eine Meldung, dass /etc/avahi/avahi.conf (oder so) nicht gefunden wurde. Aber die hauptsächlichen Configs liegen doch in /var/mod/etc...

Was mache ich falsch, wo fang ich am besten an, oder denke ich gar viel zu kompliziert?
Für den avahi-daemon gibt es in Freetz, ein Start-Stop-Script ( http://svn.freetz.org/trunk/make/avahi/files/root/etc/init.d/rc.avahi ). D. h., Du musst nicht mit dem binary hantieren.
 

futurmat

Neuer User
Mitglied seit
6 Apr 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hallo simonzu,

ich versuche auch gerade Timemachine mit meiner FritzBox + externe HDD + Freetz Firmware zum Laufen zu bekommen. Bin diesem Artikel gefolgt:
http://www.jens-david-consulting.com/de/?option=com_content&view=article&id=11
Allerdings ist er wohl nicht mehr ganz aktuell.
So weit ich es sehe muss man auf der FritzBox zuerst per /etc/init.d/rc.avahi load die Konfiguration laden (man findet sie dann unter /tmp/flash/avahi/ zum Bearbeiten). Wenn man dann /etc/init.d/rc.avahi start macht findet avahi die Konfiguration, bricht dann aber nach einiger Zeit mit:
"Starting avahi ... Timeout reached while wating for return value
Could not receive return value from daemon process."
Leider habe ich keine Ahnung, ob es an meiner Konfiguration liegt oder an irgendetwas anderem ... Vielleicht gibt es ja Profis hier im Forum?!

Grüsse,

futurmat
 

controlletti2

Neuer User
Mitglied seit
3 Sep 2011
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hallo allerseits,

bin auch neuer Freetz User und bin auf dem gleichen Stand wie futurmat gelandet.
Netatalk läuft, aber der avahi daemon bricht mit der gleichen Message wie bei futurmat ab.

Für Ideen wäre ich dankbar.

Meine Umgebung: Fritzbox 7390 FRITZ!OS 05.20-freetz-devel-8867

Viele Grüße

controlletti2
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,847
Punkte für Reaktionen
14
Punkte
38
Wenn man dann /etc/init.d/rc.avahi start macht findet avahi die Konfiguration, bricht dann aber nach einiger Zeit mit:
"Starting avahi ... Timeout reached while wating for return value
Could not receive return value from daemon process."
Wie ist die Ausgabe von:
Code:
sh -x /etc/init.d/rc.avahi start
 

futurmat

Neuer User
Mitglied seit
6 Apr 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hallo sf3978,

danke für Deine Antwort!

Die Ausgabe sieht bei mir so aus:
[email protected]:/var/mod/root# sh -x /etc/init.d/rc.avahi start
+ DAEMON=avahi
+ DAEMON_BIN=avahi-daemon
+ . /etc/init.d/modlibrc
+ export PATH=/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ : avahi
+ : avahi
+ : avahi_ENABLED
+ : /mod/etc/avahi.conf
+ : avahi-daemon
+ : /var/run/avahi-daemon.pid
+ [ -n avahi ]
+ modlib_loadconfig
+ local CONF_FILE=/mod/etc/conf/avahi.cfg
+ [ ! -r /mod/etc/conf/avahi.cfg ]
+ . /mod/etc/conf/avahi.cfg
+ export AVAHI_ENABLED=no
+ DAEMON_USER=nobody
+ DAEMON_GROUP=nobody
+ start
+ modlib_startdaemon avahi-daemon -D
+ echo -n Starting avahi ...
Starting avahi ... + config
+ :
+ which avahi-daemon
+ [ ! -x /usr/sbin/avahi-daemon ]
+ env - PATH=/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib avahi-daemon -D
Timeout reached while wating for return value
Could not receive return value from daemon process.
+ local rv=255
+ [ 255 -ne 0 ]
+ echo failed.
failed.
+ exit 255


Übrigens: wenn ich noch ein zweites mal "/etc/init.d/rc.avahi load" starte bekomme ich die Ausgabe "avahi is disabled." Keine Ahnung, ob das was zu sagen hat?

In "/mod/etc/conf/avahi.cfg" steht "export AVAHI_ENABLED='no'" ... auch komisch, oder?
 
Zuletzt bearbeitet:

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,847
Punkte für Reaktionen
14
Punkte
38
In "/mod/etc/conf/avahi.cfg" steht "export AVAHI_ENABLED='no'" ... auch komisch, oder?
Ja, das ist komisch. Ich denke da fehlt etwas, z. B. die avahi.cgi-Datei. AVAHI_ENABLED sollte man doch auf yes ändern können. Schau mal im trac nach, wer das WEB-IF für das Paket avahi erstellt hat. Evtl. kann derjenige, hier weiter helfen.
 

futurmat

Neuer User
Mitglied seit
6 Apr 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
habe es jetzt mal per Hand auf "yes" geändert und kompiliere gerade neu. Aber vermutlich wird es nicht so trivial sein.
Ausserdem habe ich noch im Trac gesucht (im Source von trunk). Allerdings habe ich keine Ahnung wo ich das WEB-IF finde. Der letzte der im Ordner trunk/make/avahi Änderungen vorgenommen hat ist, so weit ich das sehe, Whoopie.
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,847
Punkte für Reaktionen
14
Punkte
38
Der letzte der im Ordner trunk/make/avahi Änderungen vorgenommen hat ist, so weit ich das sehe, Whoopie.
reiffert sollte dir weiter helfen können. Er hat das avahi-Paket committet. Evtl. im ticket fragen: http://freetz.org/ticket/1483
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Sieht mir so aus als gäbe es kein Webinterface für das avahi-Paket...

Der Fehler hat jedoch nichts mit dem fehlenden Webinterface zu tun.

Gruß
Oliver
 

cyberlight

Neuer User
Mitglied seit
4 Feb 2006
Beiträge
26
Punkte für Reaktionen
0
Punkte
0
Das avahi-projekt wurde vor etwa einem Jahr auf Git ins Leben gerufen. https://github.com/dg1kjd/freetz-avahi.git
Diese Version hat ein WebIF.
Wieso das dann bei der Übernahme verloren gegangen ist... jedenfalls habe ich mit dieser Version und den aktuellen Versionen von Netatalk eine fast perfekte Timecapsule nachgebaut. Incl. funktionierendem Zeroconf.
 

simonszu

Neuer User
Mitglied seit
12 Mrz 2007
Beiträge
73
Punkte für Reaktionen
0
Punkte
6
In welches Ticket kann man denn reporten, dass Avahi wieder ein Webinterface spendiert bekommt?
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,847
Punkte für Reaktionen
14
Punkte
38

futurmat

Neuer User
Mitglied seit
6 Apr 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
@cyberlight: Danke für den Hinweis.
Ich hatte das Paket über die oben genannte Anleitung auch gefunden. Allerdings scheint es mir mittlerweile "outdated". Es hat die Versionsnummer 06.25.00, das aktuelle aus dem Trunk ist 06.30.00. Wenn man das Trac ticket verfolgt sieht man auch, dass es an einem Punkt von avahi-daemon in avahi umbenannt wurde. Avahi wird nun auch im menuconfig als Voraussetzung für Netatalk automatisch angewählt.
Eventuell könnte man aber mit einer stable Version probieren, ob es funktioniert. Dann sollte man ja auf Deinen Stand kommen.
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,847
Punkte für Reaktionen
14
Punkte
38
Allerdings scheint es mir mittlerweile "outdated". Es hat die Versionsnummer 06.25.00, das aktuelle aus dem Trunk ist 06.30.00.
Anbei die geänderte avahi-daemon.mk-Datei (Version 06.30.00) für das Paket von cyberlight. Das geänderte Paket von cyberlight funktioniert mit dem trunk. Das Verzeichnis "make/avahi" aus dem trunk, musst Du löschen. Die erforderlichen Änderungen in: "make/Config.in", "make/external.in", "make/libs/Config.in", "make/libs/external.in", "make/netatalk/Config.in" und "make/netatalk/netatalk.mk" musst Du manuell machen.
Code:
$(call PKG_INIT_BIN, 0.6.30)
$(PKG)_SOURCE:=avahi-$($(PKG)_VERSION).tar.gz
#$(PKG)_SOURCE_MD5:=d0143a5aa3265019072e53ab497818d0
$(PKG)_SOURCE_MD5:=e4db89a2a403ff4c47d66ac66fad1f43
$(PKG)_SITE:=http://avahi.org/download
AVAHI_DAEMON_DIR:=$(SOURCE_DIR)/avahi-$($(PKG)_VERSION)
$(PKG)_BINARY:=$(SOURCE_DIR)/avahi-$($(PKG)_VERSION)/$(pkg)/.libs/$(pkg)
$(PKG)_TARGET_BINARY:=$($(PKG)_DEST_DIR)/usr/bin/$(pkg)
$(PKG)_AVAHI_DNSCONFD:=$(SOURCE_DIR)/avahi-$($(PKG)_VERSION)/avahi-dnsconfd/.libs/avahi-dnsconfd
$(PKG)_TARGET_AVAHI_DNSCONFD:=$($(PKG)_DEST_DIR)/usr/bin/avahi-dnsconfd

$(PKG)_LIB:=$(SOURCE_DIR)/avahi-$($(PKG)_VERSION)/avahi-common/.libs/libavahi-common.so.3.5.3
$(PKG)_TARGET_LIB:=$($(PKG)_DEST_LIBDIR)/libavahi-common.so.3.5.3

$(PKG)_LIB2:=$(SOURCE_DIR)/avahi-$($(PKG)_VERSION)/avahi-core/.libs/libavahi-core.so.7.0.2
$(PKG)_TARGET_LIB2:=$($(PKG)_DEST_LIBDIR)/libavahi-core.so.7.0.2

$(PKG)_LIB3:=$(SOURCE_DIR)/avahi-$($(PKG)_VERSION)/avahi-client/.libs/libavahi-client.so.3.2.9
$(PKG)_TARGET_LIB3:=$($(PKG)_DEST_LIBDIR)/libavahi-client.so.3.2.9

AVAHI_DAEMON_LIBS := -lpcap -lexpat -ldaemon -lintl
$(PKG)_DEPENDS_ON := dbus expat libpcap libdaemon gettext
AVAHI_CFLAGS := -DDISABLE_SYSTEMD
AVAHI_LDFLAGS := -lpthread

$(PKG)_CONFIGURE_PRE_CMDS += $(call PKG_PREVENT_RPATH_HARDCODING,./configure)

$(PKG)_CONFIGURE_ENV += ac_cv_func_malloc_0_nonnull=yes
$(PKG)_CONFIGURE_ENV += ac_cv_func_realloc_0_nonnull=yes
$(PKG)_CONFIGURE_ENV += ac_cv_func_memcmp_working=yes

$(PKG)_CONFIGURE_OPTIONS += --enable-static
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-ps
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-pdf
$(PKG)_CONFIGURE_OPTIONS += --enable-libdaemon
$(PKG)_CONFIGURE_OPTIONS += --disable-dbm
$(PKG)_CONFIGURE_OPTIONS += --enable-shared
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-chm
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-chi
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-man
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-rtf
$(PKG)_CONFIGURE_OPTIONS += --with-autoipd-user=nobody
$(PKG)_CONFIGURE_OPTIONS += --with-autoipd-group=nobody

$(PKG)_CONFIGURE_OPTIONS += --with-avahi-user=nobody
$(PKG)_CONFIGURE_OPTIONS += --with-avahi-group=nobody
$(PKG)_CONFIGURE_OPTIONS += --with-avahi-priv-access-group=avahi
$(PKG)_CONFIGURE_OPTIONS += --with-xml=expat
$(PKG)_CONFIGURE_OPTIONS += --with-distro=none
$(PKG)_CONFIGURE_OPTIONS += --disable-qt3
$(PKG)_CONFIGURE_OPTIONS += --disable-qt4
$(PKG)_CONFIGURE_OPTIONS += --disable-gtk
$(PKG)_CONFIGURE_OPTIONS += --disable-gtk3
$(PKG)_CONFIGURE_OPTIONS += --disable-glib
$(PKG)_CONFIGURE_OPTIONS += --disable-gobject
$(PKG)_CONFIGURE_OPTIONS += --enable-dbus
$(PKG)_CONFIGURE_OPTIONS += --disable-gdbm
$(PKG)_CONFIGURE_OPTIONS += --disable-python
$(PKG)_CONFIGURE_OPTIONS += --disable-pygtk
$(PKG)_CONFIGURE_OPTIONS += --disable-python-dbus
$(PKG)_CONFIGURE_OPTIONS += --disable-mono
$(PKG)_CONFIGURE_OPTIONS += --disable-monodoc
#$(PKG)_CONFIGURE_OPTIONS += --disable-autoipd
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-doc
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-dot
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-xml
$(PKG)_CONFIGURE_OPTIONS += --disable-doxygen-html
$(PKG)_CONFIGURE_OPTIONS += --disable-manpages
$(PKG)_CONFIGURE_OPTIONS += --disable-xmltoman
$(PKG)_CONFIGURE_OPTIONS += --with-bdb="$(TARGET_TOOLCHAIN_STAGING_DIR)/usr"
$(PKG)_CONFIGURE_OPTIONS += --sysconfdir="/mod/etc"

$(PKG_SOURCE_DOWNLOAD)
$(PKG_UNPACKED)
$(PKG_CONFIGURED_CONFIGURE)

$($(PKG)_BINARY): $($(PKG)_DIR)/.configured
		$(SUBMAKE) -C $(AVAHI_DAEMON_DIR) \
		CFLAGS="$(TARGED_CFLAGS) $(AVAHI_CFLAGS)" \
		LDFLAGS="$(TARGED_LDFLAGS) $(AVAHI_LDFLAGS)" \
		LIBS="$(AVAHI_DAEMON_LIBS)"

$($(PKG)_TARGET_BINARY): $($(PKG)_BINARY)
	$(INSTALL_BINARY_STRIP)

$($(PKG)_TARGET_AVAHI_DNSCONFD): $($(PKG)_AVAHI_DNSCONFD)
	$(INSTALL_BINARY_STRIP)

$($(PKG)_TARGET_LIB): $($(PKG)_LIB)
	$(INSTALL_LIBRARY_STRIP)

$($(PKG)_TARGET_LIB2): $($(PKG)_LIB2)
	$(INSTALL_LIBRARY_STRIP)

$($(PKG)_TARGET_LIB3): $($(PKG)_LIB3)
	$(INSTALL_LIBRARY_STRIP)

$(pkg):

$(pkg)-precompiled: $($(PKG)_TARGET_BINARY) \
		    $($(PKG)_TARGET_AVAHI_DNSCONFD) \
		    $($(PKG)_TARGET_LIB) \
		    $($(PKG)_TARGET_LIB2) \
		    $($(PKG)_TARGET_LIB3)

$(pkg)-clean:
	-$(SUBMAKE) -C $(AVAHI_DAEMON_DIR) clean
	 $(RM) $(AVAHI_DAEMON_DIR)/.configured

$(pkg)-uninstall:
	$(RM) $(AVAHI_DAEMON_TARGET_BINARY) \
	      $(AVAHI_DAEMON_TARGET_AVAHI_DNSCONFD) \
	      $(AVAHI_DAEMON_TARGET_LIB) \
	      $(AVAHI_DAEMON_TARGET_LIB2) \
	      $(AVAHI_DAEMON_TARGET_LIB3)

$(PKG_FINISH)
 

futurmat

Neuer User
Mitglied seit
6 Apr 2012
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Habe nun avahi-daemon aus dem git repository geladen und in den make folder kopiert. Wie beschrieben habe ich folgende Änderungen vorgenommen:

- make/Config.in: source make/avahi-daemon/Config.in
- make/external.in: source make/avahi-daemon/external.in
- make/libs/Config.in: Libs konnte ich keine im avahi-daemon finden, daher habe ich die avahi Einträge einfach auskommentiert.
- make/libs/external.in: siehe oben
- make/netatalk/Config.in: select FREETZ_PACKAGE_AVAHI_DAEMON
- make/netatalk/netatalk.mk:
ifeq ($(strip $(FREETZ_PACKAGE_NETATALK_ENABLE_ZEROCONF)),y)
$(PKG)_DEPENDS_ON += avahi_daemon
endif

make lief durch und ich finde den avahi-deamon nun als Eintrag im Freetz-Menü. Kann nun bequem die Konfiguration über das Web-Frontend machen.

Allerdings: beim Starten des Dienstes bekomme ich wiederum :
Timeout reached while wating for return value
Could not receive return value from daemon process.
Starting Avahi-daemon ... failed.


Habe ich noch etwas vergessen? Wie hast Du es gemacht, cyberlight?
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,847
Punkte für Reaktionen
14
Punkte
38
$(PKG)_DEPENDS_ON += avahi_daemon
Ist das Paket "avahi_daemon" oder "avahi-daemon"? Wenn "avahi-daemon", dann muss es so sein:
Code:
$(PKG)_DEPENDS_ON += avahi-daemon
BTW: "AVAHI_DAEMON" ist richtig.
 

cyberlight

Neuer User
Mitglied seit
4 Feb 2006
Beiträge
26
Punkte für Reaktionen
0
Punkte
0
Habe heute auch mal wieder etwas rumprobiert.

Die Fehlermeldung
Timeout reached while wating for return value
Could not receive return value from daemon process.
Starting Avahi-daemon ... failed.
ist etwas irreführend. Eigentlich fehlt ihm nur der User nobody.
Beim direkten Aufruf von Avahi per Konsole z.B. so: avahi-daemon -f /mod/etc/avahi-daemon/avahi-daemon_conf verrät er das auch sofort.
nach anlegen des Users: adduser nobody, mousers save und modsave flash startete avahi anstandslos.
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Vermutlich fehlen folgende Zeilen im rc-Skript?
Code:
--- make/avahi/files/root/etc/init.d/rc.avahi	(revision 8870)
+++ make/avahi/files/root/etc/init.d/rc.avahi	(working copy)
@@ -20,6 +20,9 @@
 			cp -a /etc/default.avahi/* /tmp/flash/avahi/
 		fi
 		
+		modlib_addgroup $DAEMON_GROUP
+		modlib_adduser $DAEMON_USER -s /bin/false -D -S -H -G $DAEMON_GROUP -g $DAEMON_GROUP
+				
 		modlib_start $AVAHI_ENABLED 
 		;;
 	start)
Gruß
Oliver
 

cyberlight

Neuer User
Mitglied seit
4 Feb 2006
Beiträge
26
Punkte für Reaktionen
0
Punkte
0
Hier mal mein Versuch, aus zweien eins zu machen: Dem Avahi im Trunk habe ich das Webinterface vom weiter oben genannten Avahi-daemon verpasst.
So weit scheint das auch zu funktionieren bis auf ein paar Macken:
  • standardmäßig ist dbus-support aktiv. dbus startet aber momentan nur von hand.
  • mir ist etwas unklar was mit den Dateien aus /etc/default.avahi/services passieren soll

hier das diff, welches im Ordner /make/Avahi erzeugt wurde.
Anhang anzeigen avahi-Webinterface.diff.tar.gz

Hoffe, hiermit helfen zu können...

(edit) und hier mal meine Avahi-konfigurationsdateien, mit denen ich eine einigermaßen perfekte Timecapsule hinbekommen habe. Allerdings: nur manuell. Ich habe es noch nicht geschafft, dass Netatalk oder andere programme ihre Dienste automatisch anmelden. Anhang anzeigen avahi-config.zip
 
Zuletzt bearbeitet: