Table of Contents

Hinweise zum avahi-linker

In diesem Wiki ist der avahi-linker bereits auf dieser Seite erwähnt. Hier soll es insbesondere darum gehen, Hilfen und Diagnosemöglichkeiten zu erhalten, wenn der avahi-linker nicht wie gewünscht funktioniert. Diese Seite ist bei der Portierung des avahi-linkers auf die MLD 6.0 entstanden.

Was leistet der avahi-linker

Der avahi-linker ist ein Phyton-Skript, das sich u.a. der Dienste automount und nfs-server bedient und darüber alle Aufnahmeverzeichnisse der im Netz befindlichen VDRs auf dem Gerät zur Verfügung stellt.

Diagnosemöglichkeiten

erteilte Freigaben

Welche Freigaben für andere Geräte erteilt werden, wird in der Datei /etc/exports festgelegt. Dies kann auf dem Gerät mit dem Befehl

exportfs -av

überprüft werden. Bei MLD sollte hier /data angezeigt werden.

Aktuell (Stand Nov. 2023) ist bei MLD6 nach der Installation des Avahi-Linkers zwar eine /etc/exports vorhanden, wird aber nicht verwendet. Deshalb funktioniert der nfs-server nicht.

Man erkennt das an dieser Meldung von exportfs -av

exportfs: No file systems exported!

Workaround: Die /etc/exports mit einem Editor öffnen, in einer Kommentarzeile (z.B. Zeile1) ein Leerzeichen einfügen, wieder löschen und Datei speichern Nach einem Reboot wird die exports verwendet und der nfs-server funktioniert.

Eine Überprüfung auf dem Zielsystem ist mit dem Befehl

showmount -e <IP-Adresse des Quellsystems>

möglich.

Konfigurationsdateien

Die nachfolgenden Konfigurationsdateien werden durch die MLD bereits passend konfiguriert. Änderungen sind hier nur erforderlich, wenn man vom MLD-Standard abweichen muss.

/etc/exports

Darin sind die Verzeichnisse definiert, die vom System nach außen freigegeben sind. Bei der MLD ist das das Verzeichnis /data

/etc/hostname

Darin ist der Hostname definiert, der vom avahi-linker verwendet wird um die MLD-VDRs im lokalen Netzwerk zu per nfs zu mounten und zu verlinken.

Besonders bei MLD6 unbedingt darauf achten, dass diese Datei existiert und den “System Namen” enthält, der für jedes System eindeutig sein muss. Ggf. im MLD6-WebIF unter Eistellungen den den “System Name” anpassen.

/etc/avahi-linker/default.cfg

Hier ist als Basis für die Verlinkung zu den anderen VDRs die Option “autofsdir =” wichtg.

Bei MLD6 Stand Nov. 2023 ist hier per Default “autofsdir = /net” konfiguriert, wodurch der avahi-linker direkte Links zu den per automount mit Hostname unter /net gemounteten VDRs anlegt.

Ein einstufiger Link von einem VDR mit Hostname MLD6-VDR-A zu einem Ziel-VDR MLD6-VDR-B schaut z.B. so aus:

/net/MLD6-VDR-B/data/tv

Dies führt jedoch zu Problemen, wenn sich 2 und mehr VDRs mit MLD6 und installiertem avahi-linker gegenseitig verlinken. Wenn z.B. MLD6-VDR-A den unter /data verlinkten MLD6-VDR-B öffnet ist der dortige Link zurück zu MLD6-VDR-A sichtbar und kann geöffnet werden. Dies führt dazu, dass sich die Anzahl der Aufnahmen, die für diese Links im OSD unter Aufzeichnungen angezeigt werden, auf mehrere Tausend hochschaukeln auch wenn dort lokal nur 1 Aufnahme vorhanden ist.

Abhilfe schafft eine zweistufige Verlinkung, wie sie bei MLD5.5 automatisch konfiguriert wird, die dafür sorgt, dass die Links auf VDR-B bei Zugriff von VDR-A auf VDR-B inaktiv sind.

Als Workaround für MLD6 kann diese zweistufige Verlinkung nach dem Muster der MLD 5.5 wie folgt manuell anlelegt werden.

Dazu wird erst ein Symlink nach /net mit dem Hostnamen des MLD6-VDRs unter /mnt angelegt, was z.B. für VDR-A mit Hostname MLD6-VDR-A dann so ausschaut.

ln -s /net /mnt/MLD6-VDR-A

Dann den autofs Eintrag in der /etc/avahi-linker/default.cfg auf Basis des Hostnamen wie folgt anpassen:

autofsdir = /mnt/MLD6-VDR-A

Dann alle bereits automatisch angelegten einstufigen Links löschen.

Bei einem Neustart des Systems werden zweistufige Links neu angelegt die z.B. für einen Link auf VDR-A zu VDR-B so ausschauen sollten:

/mnt/MLD6-VDR-A/MLD6-VDR-B/data/tv

/etc/avahi-linker/staticmount.cfg

Diese Datei dient dazu, Freigaben außerhalb des VDR mit einzubinden (z.B. Aufnahmen, die auf ein NAS ausgelagert sind

unterstützte Protokolle

Welche Protokolle für Netzwerkfreigaben vom System unterstützt werden, kann mit nachfolgendem Befehl ermittelt werden, wobei das Ergebnis wie folgt ausschauen sollte.

root@MLD6:~# cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2