NDAS an Fritzbox 7170 - Problem beim anbinden...

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
Benötigt wird:

Falls Ndas-Festplatten mit NTFS-Partitonen: ntfs-3g-Package!

Wer Freetz 1.1.4 benutzt benötigt den patch von sf3978 (Klick)

Vorgehensweise:



Tip1: leert bitte Ndas-relevante einträge aus eurer rc.custom bzw autorun.sh, falls ihr das schon etliche male gemacht habt...


Achtung: Sollten zwischen dem NDAS-Gerät und der Fritzbox... eventuel Firewalls oder Packetfilter sein.... so muss bei den Firewalls eine Regel erstellt werden:

Code:
Update: Symantec Endpoint-Protection blockiert per default LPX-Datenverkehr! Was somit das suchen der Platte im netzwerk verhindert!

Code:
Richtung: eingehend und ausgehend
Protokol: Ethernet (LPX-Protokol) Typ: "0x88ad" oder "088ad"
Name: "NDAS-Platte" oder "Learning Packet Exchange" .... naja name ist egal...
Interfaces: die betroffenden ;)
Fangen wir an...

1. Wir erstellen uns als erstes die sogenannten Devices (Files), das Ndas, das nda (Laufwerk) und die nda1 (partition1), dabei führen wir folgende befehle in einer Telnet-Sitzung auf der Fritz!Box aus


Code:
mknod -m 644 /dev/ndas c 60 0
mknod -m 644 /dev/nda b 60 0

mknod -m 644 /dev/nda1 b 60 1
Wer mehre Partitionen hat und diese mounten möchte, muss zusätzliche nda<partition-nr>-Dateien anlegen...

Code:
...
mknod -m 644 /dev/nda2 b 60 [COLOR="red"]2[/COLOR] // Für die [COLOR="red"]2te[/COLOR] Partition
mknod -m 644 /dev/nda2 b 60 [COLOR="red"]3[/COLOR] // Für die [COLOR="red"]3te[/COLOR] Partition
mknod -m 644 /dev/nda2 b 60 [COLOR="red"]4[/COLOR] // Für die [COLOR="red"]4te[/COLOR] Partition
Die Befehle geben nach der ausführung keine Rückmeldung zurück...
Nun haben wir die Geräte erstellt, jetz (Falls es die Fritzbox nicht schon getan hat), laden wir mittels "insmod" die 3 benötigten Module ndas_sal, ndas_core und ndas_block

Code:
insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko
insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_core.ko ndas_dev=[B][COLOR="red"]lan[/COLOR][/B] 
insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_block.ko
Anmerkung: Lan gegebenfalls mit dem entsprechenden LAN-PORT ersetzen (da die box bei mir als "ethmode_router" läuft und die ndas-Platte an einem switch hinter der Box, der wiederum an Port 1 der Fritzbox hängt, habe ich statt "lan" -> "eth0" gesetzt.

Damit wäre der Treiber geladen... Jetzt führen wir folgende Befehle aus (REIHENFOLGE BEACHTEN)

Code:
ndasadmin start
ndasadmin register "rrrrr-rrrrr-rrrrr-rrrrr-wwwww" -n ndas-01
wwwww = Schreib-Key
rrrrr = Lese-Key

Tip: wurde alles richtig befolgt, kann es sein, dass durch das registrieren, das anlaufen des NDAS-Gerätes zuhören ist, das muss nicht der fall sein, weist aber somit hin, dass die Festplatte schonmal erkannt wurde... darauf folgen die nächsten Befehle

Code:
cat /proc/ndas/devs # Wer den status sehen will, ob die platte da ist... sollte diesen Befehl ausführen....
ndasadmin enable -s 1 -o r
mkdir /var/media/ftp/ndas
Die Rückmeldung bei einer erfolgreichen "Aktivierung" des NDAS-Gerätes lautet "/dev/ndas-xxxxxxxx-0 ..... ist ready to use"..., mit "mkdir /var/media/ftp/ndas" erstellen wir den Mount-Point
Als letztes mounten wir das gerät... beachtet beim mounten, dass Ihr "/dev/nda1" verwendet und nicht ""/dev/ndas-xxxxxxxx-0p1"

ich habe meine Partition mit NTFS formatiert... daher nutzt man für ntfs:

Code:
ntfs-3g -o ro [COLOR="red"]/dev/nda1[/COLOR] /var/media/ftp/ndas
bzw bei Fat32 reicht glaube:

Code:
mount -t fat [COLOR="red"]/dev/nda1[/COLOR] /var/media/ftp/ndas
Beide Mount-Varianten geben bei erfolg, keine Rückmeldung... Danach schauen wir mit folgendem Befehl ob das "Anbinden" erfolgreich war...

Code:
ls  /var/media/ftp/ndas
Nachtrag:

Bei NTFS wurde das Laufwerk Schreibgeschützt gemountet, das Ndas auch selbst als Read-only gestartet... da die Box in meinem Fall nicht darauf schreiben muss (darf), wer jedoch schreibrechte braucht.... muss oben die jeweiligen Modes ändern... bedenkt jedoch auch, dass die Übertragung im durchschnitt bei der FB7170... 2MB/s beträgt... (über USB-Port bei der FB7170... nur 470 KB/s) daher habe ich sie auch nur im "read-only"-Mode. Da die Client selber per Gigabit auf die Platte direkt zugreifen...

Auch möchte ich anmerken, dass Ihr überlegen solltet, dass wenn Mehre Clients gleichzeitig zugriff haben, die Übertragungsrate langsamer ist und hohe Zugriffzeiten entstehen... Wer denn zudem noch nen film von der Platte streamt, der sieht es dann in form von Ruckeln".


Und wie machen wir das jetzt bei jedem start der Box automatisch?

Da wir das nicht jedesmal per hand mittels eingeben wollen, nur weil die box rebootet oder vom sterom ging... etc tragen wir folgenden Block im Freetz-Webinterface unter "Freetz -> rc.custom" ein

Code:
mknod -m 644 /dev/ndas c 60 0
mknod -m 644 /dev/nda b 60 0
mknod -m 644 /dev/nda1 b 60 1

insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko > /dev/null
insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_core.ko ndas_dev=eth0 > /dev/null 
insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_block.ko > /dev/null

ndasadmin start
ndasadmin register "rrrrr-rrrrr-rrrrr-rrrrr-wwwww" -n ndas-01
sleep 4
cat /proc/ndas/devs 
ndasadmin enable -s 1 -o r
mkdir /var/media/ftp/ndas
Für NTFS-Partitionen nutzen wir zum schluss diesen Befehl
Code:
ntfs-3g -o ro /dev/nda1 /var/media/ftp/ndas
oder bei Fat32:

Code:
mount -t fat /dev/nda1 /var/media/ftp/ndas
(Oder beide, wenn man beide Dateisysteme auf der Festplatte hat!)

in der rc.custom am ende anhängen....

zum schluss "Übernehmen" klicken und die FritzBox per telnet mittels "reboot" neustarten.. oder per Webinterface :D

da es doch recht viele geben wird, die damit probleme haben.... Ndas-Platten an die Box anzubinden...

Danke an Giffi und sf3978 für das auswirtschaften, unter Freetz 1.1.4 ;)
 

Anhänge

Zuletzt bearbeitet:

Giffi

Neuer User
Mitglied seit
26 Dez 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich würde an meine Box auch gerne eine NDAS platte betreiben, leider kenne ich mit Linux so gut wie gar nicht aus.

Bei der Eingabe des Befehls "insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko > /dev/null" über Telnet kommt die FM "can´t open /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko > /dev/null".

Ich denke, das der Treiber einfach nicht in der FB Firmware installiert ist.

Meine Box ist ein Speedport 701V der zu einer FB gefreetzt ist.

Kernel Version: Linux version 2.6.13.1-ohio (2176) (gcc-Version 3.4.6) #1 Mon Feb 16 13:02:19 CE T 2009
Speed!Box Version: FRITZ!Box Fon WLAN 7170 Speedport W701V Firmware-Version 29.04.70

Ein Ubuntu_10.04_32-Bit Image über VMware habe ich schon mal zum laufen gebracht, mit enthalten sind die Tools "freetz-Trunk", "freetz 1.1.4" und "speed-to-fritz".

Was mir nun fehlt (anderen bestimmt auch), ist eine Step by Step Anleitung, oder evtl. ein fertiges Firmware Image, welches ich verwenden kann. DSL und Telefoni Funktion ist bei mir nebensächlich, da ich die Box nur als Router nutze...

Hoffe, das mir jemand helfen kann und schon mal vielen Dank im voraus.

Gurß
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Fertige Firmware gibts hier nicht...

Hast du denn das ndas-Paket im Freetz-menuconfig ausgewählt?

Gruß
Oliver
 

Giffi

Neuer User
Mitglied seit
26 Dez 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
hab jetzt freetz 1.1.4 über make menueconfig gestartet. Ich bin nun alle Punkte im Menü durchgegangen und konnte leider nichts mit ndas finden, auch nicht unter package selection....

Falsche freetz Version???
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
1
Punkte
0
Bei der Eingabe des Befehls "insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko > /dev/null" über Telnet kommt die FM "can´t open /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko > /dev/null".
Das passt nicht zusammen. Was genau hast Du eingegeben, damit diese Meldung kommt? Vermutlich irgendwo Anführungszeichen zuviel.
Der Teil "> /dev/null" ist sowieso unnötig/bedenklich. Wenn es Probleme gibt, ist es besser, wenn man das weiß als wenn die Meldung unterdrückt wird.
 

sf3978

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

Giffi

Neuer User
Mitglied seit
26 Dez 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Ich habe auf der freetz Seite das NDAS Paket gefunden: http://freetz.org/ticket/465

Nur was mache ich damit? Wie binde ich das in die Firmware mit ein ???? Fragen über Fragen:)

Meine Eingabe im Telnet, ohne " Zeichen..... Fehler bleibt.

BusyBox v1.8.2 (2008-11-26 13:15:43 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/1"
weitere telnet Verbindung aufgebaut
# insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko
insmod: can't open '/lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko': No s uch file or directory
# insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko > /dev/null
insmod: can't open '/lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko': No such file or directory
#
 

Giffi

Neuer User
Mitglied seit
26 Dez 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Das kannst Du auch mit
Code:
find / -iname '*ndas_sal*'
auf deinem Speedport überprüfen.
Schade, funzt leider nicht. In der Telnet Konsole erscheint dann folgendes:


# find / -iname '*ndas_sal*'
find: unrecognized: -iname
BusyBox v1.8.2 (2008-11-26 13:15:43 CET) multi-call binary

Usage: find [PATH...] [EXPRESSION]

Search for files in a directory hierarchy. The default PATH is
the current directory, default EXPRESSION is '-print'

EXPRESSION may consist of:
-follow Dereference symlinks
-maxdepth N Descend at most N levels. -maxdepth 0 applies
tests/actions to command line arguments only
-name PATTERN File name (w/o directory name) matches PATTERN
-path PATTERN Path matches PATTERN
-regex PATTERN Path matches regex PATTERN
-type X File type is X (X is one of: f,d,l,b,c,...)
-print Print (default and assumed)
-print0 Delimit output with null characters rather than
newlines
-exec CMD ARG ; Execute CMD with all instances of {} replaced by the
matching files
(EXPR) Group an expression

#
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,848
Punkte für Reaktionen
14
Punkte
38
Nur was mache ich damit? Wie binde ich das in die Firmware mit ein ?
Versuch mal den Patch aus dem Anhang. Den Eintrag in die "kernel/Config.in" musst Du manuell machen.

EDIT:
Code:
[COLOR=red]-name[/COLOR] PATTERN   File name (w/o directory name) matches PATTERN
Beim nächsten mal, dann -name statt -iname benutzen.;)
 

Anhänge

Zuletzt bearbeitet:

Giffi

Neuer User
Mitglied seit
26 Dez 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Versuch mal den Patch aus dem Anhang. Den Eintrag in die "kernel/Config.in" musst Du manuell machen.

EDIT:
Code:
[COLOR=red]-name[/COLOR] PATTERN   File name (w/o directory name) matches PATTERN
Beim nächsten mal, dann -name statt -iname benutzen.;)
Wie rufe ich den die Kernel/config.in auf? über Telnet und kann sie dann bearbeiten?
 

dileks

Neuer User
Mitglied seit
7 Apr 2006
Beiträge
180
Punkte für Reaktionen
0
Punkte
0
Zuletzt bearbeitet:

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,848
Punkte für Reaktionen
14
Punkte
38
Just FYI: Falls dein Patch für trunk sein sollte:
Nein. Warum denn für den trunk? Dort gibt es ndas doch schon. Er wollte doch für freetz 1.1.4.
BTW: Es ist nicht mein Patch, es ist der Patch von Oliver.

EDIT:
Code:
Wie rufe ich den die Kernel/config.in auf? [COLOR=red]über Telnet[/COLOR] und kann sie dann bearbeiten?
Nein, im Build-System, bevor Du "make" machst.
 
Zuletzt bearbeitet:

Giffi

Neuer User
Mitglied seit
26 Dez 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
OK, verstanden die Config habe ich nun gefunden, wie binde ich den Patch ein? Einfach den Code am Ende rein koppieren?
 

Anhänge

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,848
Punkte für Reaktionen
14
Punkte
38
..., wie binde ich den Patch ein? Einfach den Code am Ende rein koppieren?
Was meinst Du mit "am Ende"? In deinem Build-System, in den Ordner in dem Du auch "make" machst, den Patch downloaden und anwenden:
Code:
patch -p0 < ndas-1.1-22.2.patch.txt
EDIT:
Den manuellen Eintrag in die "make/Config.in" (... im menu "Testing") nicht vergessen, sonst wird ndas mit "make menuconfig" nicht gefunden.
 
Zuletzt bearbeitet:

Giffi

Neuer User
Mitglied seit
26 Dez 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
So, schon mal ein stück weiter. Patchen hat funktioniert, aber was passe ich in der Config.in an bzw. wo? Wie gesagt, ich kenne mich nicht wirklich mit Linux aus. Vielen Dank für die turbo Hilfe:)
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,848
Punkte für Reaktionen
14
Punkte
38
..., aber was passe ich in der Config.in an bzw. wo?
In der Datei "make/Config.in", im menu "Testing" folgende Zeile einfügen und speichern:
Code:
source make/ndas/Config.in
 

Giffi

Neuer User
Mitglied seit
26 Dez 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
meinst du diesen Abchnitt in der Config.in : #-->only for testing ? Dahinter einfach bzw. dazunter einfach source make/ndas/Config.in eintragen?

Was wird dadurch bewirkt?
 

sf3978

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

Giffi

Neuer User
Mitglied seit
26 Dez 2011
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Bist Du im menu "Testing" der "make/Config.in"? Am besten in alphabetischer Reihenfolge eintragen.
Äh ich hoffe, habe die config.in per Editor geöffnet und nach testing gesucht, dabei bin ich dann auch die Zeile #-->only for testing gestoßen. bin ich auf den richtigen Weg?
 

sf3978

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