NDAS Treiber für FritzBox

Kannst du mal bitte dein Startskript posten?

MfG Oliver
 
Im Moment gerade nicht, weil es nicht hier auf dem Rechner habe. Mache ich heute Abend. Aber faktisch habe ich nur das File ndas.openwrt aus dem package angepaßt (d.h. Pfade korrigiert, die ndas_dev Option gesetzt und Befehle für ndasadmin register und ndasadmin enable hinzugefügt). Zu beachten ist hier vielleicht, daß die Anzahl der hard drives unter /dev die angelegt werden (8) nicht zu der Anzahl im Code paßt (16). Ich glaube im 1.1.10 Archiv habe ich ein mknod.sh gesehen, wo das Script die Anzahl aus /proc/irgendwas ausliest und die passende Anzahl anlegt.

Ist für mich aber unwichtig, da ich eh nur eine Platte habe, bzw. wenn ich bald eine zweite bekomme, diese nur als Raid-1 verwenden möchte. Interessanter wäre da schon, wenn die Treiber tatsächlich gemäß der Meldung "Block device /dev/ndas-13405909-0 is ready to use." diese /dev-Einträge auch anlegen würden. So könnte man nämlich sicher sein, daß man die richtige Platte an den richtigen Mount-Point legt. Das ist z.B. bei /dev/nda1 nicht sicher, weil es davon abhängt in welcher Reihenfolge man bei mehreren Platten das ndasadmin enable durchführt.

Ideal wäre meines Erachtens,
- wenn die Module so früh wie möglich geladen werden und die Registrierung so früh wie möglich stattfindet, daß Platten die online sind im normalen Prozess während des Bootens zuerst enabled werden und dann automatisch gemäß fstab direkt gemouted werden. Ich meine allerdings bei Ximeta gelesen zu haben, daß das nicht ohne weiteres geht. Zudem habe ich bei NTFS das konkrete Problem, daß der Befehl "ntfs-3g" zwar mounted, mit mount -t ntfs-3g es aber nicht klappt.
- wenn im laufenden Betrieb regelmäßig geprüft wird on zuvor registrierten Platten online gegangen sind und dann automatisch enabled und gemounted werden.

Gruß

Zwergnase

Code:
#! /bin/sh
# Create the block file to send the commands
test ! -b /dev/ndas && mknod -m 644 /dev/ndas c 60 0
M=0
# Let's create the block device files to access the hard disk. 
# Just for 8 hard disk, but you can increase if you want.
for s in a b c d;
do
    test ! -b /dev/nd${s} && mknod -m 644 /dev/nd${s} b 60 $M
    for t in 1 2 3 4 5 6 7;
    do
	M=$(($M + 1))
	test ! -b /dev/nd${s}${t} && mknod -m 644 /dev/nd${s}${t} b 60 $M
    done
done

# Now load the system abstraced layer implementation for NDAS technology
insmod /lib/modules/`uname -r`/ndas_sal.* > /dev/null 2>&1
if [ ! $? ] ; then
    echo " kernel version or gcc compiler version is not matched";
    exit 1;
fi
# Load the NDAS core functions
insmod /lib/modules/`uname -r`/ndas_core.* > /dev/null 2>&1
if [ ! $? ] ; then
    echo " fail"
    exit 1;
fi
# Load the block device implementation for NDAS
insmod lib/modules/`uname -r`/ndas_block.* > /dev/null 2>&1
if [ ! $? ] ; then
    echo " fail"
    exit 1;
fi
# Start the service
/usr/sbin/ndasadmin start > /dev/null 2>&1
if [ ! $? ]; then
    echo " fail"
    exit 1;
fi
 
Hallöle,

da mußte ich gestern doch noch das Recover bemühen. Also für alle, die vorhaben, die ndas-Module und die ndasasmin Befehle über die im Freetz verfügbaren und über die WebGUI änderbaren Scripte automatisch zu laden…das funktionert noch nicht so….

Olistudent, ich würd ja gerne das ndas Paket für Freetz so aufhübschen, daß es ähnlich komfortabel konfigurierbar ist, wie z.B. Samba. Ich schätze aber, ich brauche da ein wenig Nachhilfe ;-). Ich denke das Ganze könnte wie folgt aussehen:

1) WebGUI
In dem WebInterface sollte man folgendes eingeben können:
- ndas start automatisch/manuell
- die Option ndas_dev für das Modul ndas_core
- für jedes NDAS, daß man verwenden will, den Key und die Registeroption (enable, disable) und die Zugriffsart (ro,rw,shared). Wenn rw, dann muß auch der RW Key angegeben werden.
- pro NDAS mit Status enabled & online für jede entdeckte Partition den Mountpoints und die Mountoptions (ro,rw, filesystem, ..)
Wahrscheinlich ist es hilfreich, wenn die WebGUI dynamisch ist, d.h. Änderungen nach dem abspeichern direkt ausführt und nicht nur nach einem Reboot.

2) Files
Prinzipiell kann man die Daten der WebGUI in ein File schreiben, möglicherweise macht aber auch eine Auftrennung in ein ndas_register_data.con und ein ndas_fstab.conf Sinn. Die Files müssen einen Reboot natürlich überleben.

3) Scripte
Prinzipiell braucht man mal ein Boot-Script daß die config-Files ausliest, die Module lädt, ndas startet, mittels ndasadmin die Registrierungen und enables vornimmt und danach die Partitionen mounted. Idealerweise sollte beim reboot/shutdown auch ein unmount erfolgen.
Für die WebGUI bräuchte man ein Script, das ein wenig intelligenter ist. Wenn zB von enabled auf disabled geschalttet wird muß natürlich vorher ein unmount erfolgen und ähnliches. Grundsätzlich erscheint mir das Umfang des Bootscriptes eine Teilmenge des Scriptes zu sein, daß für die WebGUI gebraucht wird.

Olistudent: Ich werde die Tage mal versuchen durch Analyse der vorhandenen Pakete herauszufinden, wie man sowas am Besten macht (also wo ins Filesystem gehören die Config Files, wie funktioniert die WebGUI, wie intergriert man das Paket un den Trunk usw.). Ich bin aber bei CGI und shell-scripten eher unbedarft. Wenn du also Tipps hast…..immer her damit.

Gruß
Zwergnase

PS: Vielleicht hat noch jemand Antworten auf ein paar off-topic-Fragen:
- Mein USB Stick mounted immer als uStor00. Ich habe im Forum durch Suchen dieses Problem schon öfter gesehen, aber keine grundsätzliche Lösung, sondern nur remount-Lösungen. Auch ist mir unklar ob das für Freetz-Pakete ein überhaupt Problem darstellt?
- Der Mediaserver der 7170 kann nur mp3s. Mir bekannte Alternativen sind Twonky und MediaTomb, die mehr oder weniger gut sind. Ist es evtl. möglich den Mediaserver der 7270 der auch Bilder und Videos unterstützt auf die 7170 zu bekommen? Macht es Sinn zB MediaTomb als Paket in Freetz zu integrieren? Kann man den AVM Mediaserver irgendwie löschen um Platz zu sparen? (habe keinen solchen Patch im Trunk gefunden)
- Wenn man NTFS nur RO nutzen will, welche Freetz Option ist dann besser bzw. schlanker: das Kernelmodul ntfs.ko, oder ntfs-3g?
- könnte man das ndas-Freetz-Paket auch external machen?
 
Hallo Olistudent,

du fragst im Trac, ob jemand den patch bzw. das Paket ausprobiert hat...Antwort: Ja, ich ;-)

Es funktioniert gut, nur bin ich wegen Urlaub und Arbeit noch nicht dazu gekommen irgendein Webinterface zu basteln. Soweit läuft das bei mir alles noch mit einem Script um die Module zu laden und die Platte zu mounten.

Gruß

Zwergnase

PS: Der Patch tut natürlich nicht mehr 100% gegen den Trunk weil er beim patchen von CHANEGLOG Fehler auswirft. Tut der Funktion aber natürlich keinen Abbruch.
 
hey,

ich habe das Ganze ebenfalls mal versucht. Freetz-stable gezogen und den Patch ndas-1.1-22.2.patch drüber laufen lassen. Hat auch geklappt, leider kann ich die ndas-Platte irgendwie nicht einrichten. Ich habe das Script weiter oben genommen, und einfach auf der Box ausgeführt. Ich komm da jetzt nicht so recht weiter.

Code:
BusyBox v1.12.4 (2009-07-27 19:35:28) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
/var/mod/root # cd /var/media/ftp/uStor01/
/var/media/ftp/uStor01 # ./ndas
/var/media/ftp/uStor01 # ls /dev/n*
/dev/nda      /dev/nda4     /dev/ndas     /dev/ndb3     /dev/ndb7     /dev/ndc3     /dev/ndc7     /dev/ndd3     /dev/ndd7
/dev/nda1     /dev/nda5     /dev/ndb      /dev/ndb4     /dev/ndc      /dev/ndc4     /dev/ndd      /dev/ndd4     /dev/new_led
/dev/nda2     /dev/nda6     /dev/ndb1     /dev/ndb5     /dev/ndc1     /dev/ndc5     /dev/ndd1     /dev/ndd5     /dev/null
/dev/nda3     /dev/nda7     /dev/ndb2     /dev/ndb6     /dev/ndc2     /dev/ndc6     /dev/ndd2     /dev/ndd6

/dev/net:
tun
/var/media/ftp/uStor01 # ndasadmin register xxxxx-KSR59-xxxxx-AUF6X-B7CDX -name NetHDD
Failed to open /dev/ndas [COLOR="Blue"]<=========== hier kommt der erste Fehler, kein Plan warum.[/COLOR]

Der Fehler wird bei jedem weiteren Befehl angezeigt. Ich hoffe einfach mal, daß es nur etwas einfaches ist und mir jemand helfen kann, das Teil doch zum laufen zu bewegen.

thx
mfg
 
Hi,

das Script oben ist das Original, das natürlich auf die Freetz Pfade angepaßt werden muß:

Code:
#! /bin/sh
# Create the block file to send the commands
test ! -b /dev/ndas && mknod -m 644 /dev/ndas c 60 0
M=0
# Let's create the block device files to access the hard disk. 
# Just for 8 hard disk, but you can increase if you want.
for s in a b c d;
do
    test ! -b /dev/nd${s} && mknod -m 644 /dev/nd${s} b 60 $M
    for t in 1 2 3 4 5 6 7;
    do
	M=$(($M + 1))
	test ! -b /dev/nd${s}${t} && mknod -m 644 /dev/nd${s}${t} b 60 $M
    done
done

# Now load the system abstraced layer implementation for NDAS technology
insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko > /dev/null 2>&1
if [ ! $? ] ; then
    echo " Module ndas_sal failed to load";
    exit 1;
fi
# Load the NDAS core functions
insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_core.ko ndas_dev=lan > /dev/null 2>&1
if [ ! $? ] ; then
    echo " Module ndas_core failed to load"
    exit 1;
fi
# Load the block device implementation for NDAS
insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_block.ko > /dev/null 2>&1
if [ ! $? ] ; then
    echo " Module ndas_block failed to load"
    exit 1;
fi
# Start the service
/usr/bin/ndasadmin start > /dev/null 2>&1
if [ ! $? ]; then
    echo " ndasadmin start failed"
    exit 1;
fi
# Register the Device
/usr/bin/ndasadmin register ****hier dein code*** --name TrekStor
sleep 5
# Done
/usr/bin/ndasadmin enable -s 1 -o r
sleep 5
mkdir /var/media/ndas
mkdir /var/media/ndas/TrekStor
# ntfs-3g -o ro /dev/nda1 /var/media/ndas/TrekStor
sleep 5

Der Mountbefehl (ntfs-3g) und die Platten ID ist natürlich anzupassen.

Gruß

Zwergnase
 
mh, gleicher Fehler.

Code:
/var/media/ftp/uStor01 # ./ndas
Failed to open /dev/ndas
Check NDAS device file exists, driver module is loaded and started by administration tool
Failed to open /dev/ndas
Check NDAS device file exists, driver module is loaded and started by administration tool
/var/media/ftp/uStor01 #

Vieleicht noch eine Idee?
 
Zuletzt bearbeitet:
Nein, da kann ich dir nicht helfen. Ich sehe zunächst den Unterschied, daß du es auf der Stable benutzt während ich den Trunk benutzt habe. Probiers doch mal mit dem Trunk!
 
hey,

ok, habe es jetzt mit der Trunk-Version versucht. Da muß aber etwas schiefgelaufen sein. Nach flashen der Firmware, konnte ich nicht mehr auf's WebIF zugreifen, und die Box machte alle ca. 3min einen reboot. Konnte mich allerdings über ssh einloggen. Hab dan schnell mal das Script gestartet, und die gleichen Fehler wie vorher bekommen. Muß in der Entwicklerversion "replace Kernel" für ndas eingeschalten werden? Nun habe ich die vorherige Firm wieder geflasht, und erstmal weiter gesucht. Folgendes hab ich gefunden. Es lassen sich einfach die Module nicht laden.

Code:
/var/media/ftp # insmod /lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko
insmod: cannot insert '/lib/modules/2.6.13.1-ohio/kernel/fs/ndas/ndas_sal.ko': invalid module format
/var/media/ftp #

Das script gibt auf der Konsole beim laden der Module keine Fehler aus wenn dies fehlschlägt. Soll es wirklich nur mit der Entwicklerversion funktionieren?

mfg

mfg
 
Wo hast du denn das Modul her? Passt das zu deinem Kernel auf der Box?

MfG Oliver
 
ich habe freetz einfach mit dem "ndas-1.1-22.2.patch" gepatcht, und ndas im menuconfig aktiviert. Image erstellt, und geflasht. Mehr hab ich nicht gemacht.
 
Date doch mal bitte deine Signatur ab...
 
jep, sorry. Hab ich vernachlässigt.

//EDIT:

keiner eine Idee? Ich habe es jetzt mit dem replace Kernel versucht, ebenfalls ohne Erfolg. Leider bootet die Entwicklerversion die Box ständig neu, sodaß ich es mit ihr nicht richtig testen kann. Aber es sollte ja wohl mit der stable auch gehen oder?
Kann es sein, daß das Gerät vieleicht nicht unterstützt wird? Über Usb kann ich allerdings drauf zugreifen.

mfg
 
Zuletzt bearbeitet:
Kann es sein, dass du an verschiedenen Ecken was falsch machst? Der Trunk bootet nicht zwangsläufig neu, nur wenn du was falsch machst beim menuconfig (oder nicht weisst, was du tust).
Schaff erstmal das Problem aus der Welt, und versuchs dann mal weiter.
 
Kann es sein, dass du an verschiedenen Ecken was falsch machst? Der Trunk bootet nicht zwangsläufig neu, nur wenn du was falsch machst beim menuconfig (oder nicht weisst, was du tust).
Schaff erstmal das Problem aus der Welt, und versuchs dann mal weiter.

ja, hab ich auch schon gedacht. Aber ich habe schon reichlich Images gebaut, sodaß ich Fehler bei der config eigentlich ausschließen kann. Hab allerdings in letztert Zeit nur die stable genutzt, und bin erst jetzt wieder zum Trunk, da mich ndas an der Fritz echt interessiert. Mein letztes Image aus dem Trunk, liegt jetzt ca. 1 Jahr zurück, aber im Prinzip ist es ja der gleiche Vorgang wie beim stable. Einige Hinweise findet man ja auch über die SuFu wenn es irgendwo hänkt. Hatte solche restart Probleme beim Trunk damals auch nicht gehabt, und bin da etwas ratlos im Moment. Ich werde mal weiter suchen, und hoffen daß ich vieleicht doch noch etwas finde.

thx

//Edit:

ich habe jetzt doch ein lauffähiges Image erstellt bekommen. Wo der Fehler beim vorherigen liegt, kann ich jetzt noch nicht sagen, bekomm ich aber noch raus.
Jetzt sieht die Sache schon etwas anders aus. Module werden ordnungsgemäß geladen.

Code:
/var/media/ftp # ./ndas

'TrekStor' is registered successfully.
Please find the slot # by

cat /proc/ndas/devices/TrekStor/slots

Then execute the following command to enable the slot

For read-only mode
ndasadmin enable -s <slot#> -o r

For exclusive-write mode
ndasadmin enable -s <slot#> -o w

For GFS mode
ndasadmin enable -s <slot#> -o s
enable: slot 1 does not exist
mount: mounting /dev/nda1 on /var/media/ndas/TrekStor failed: No such device or address
/var/media/ftp #

leider aber noch nicht ganz. Woran liegt es jetzt noch?

Code:
/var/media/ftp # cat /proc/ndas/devices/TrekStor/slots
/var/media/ftp #

und ein lsmod bringt:

Code:
/var/media/ftp # lsmod
Module                  Size  Used by    Tainted: P
ndas_block             40480  0
ndas_core             188480  1 ndas_block
ndas_sal               29152  4 ndas_block,ndas_core
sch_sfq                 5088  4
sch_llq                 8896  1
sch_tbf                 5888  1
ext3                  127840  1
jbd                    58016  1 ext3
ext2                   60032  0
mbcache                 8144  2 ext3,ext2
vfat                   11392  0
fat                    49072  1 vfat
nls_cp437               5312  0
nls_iso8859_1           3680  0
usb_storage            33296  1
sd_mod                 15024  2
scsi_mod               92560  2 usb_storage,sd_mod
userman                33328  2
tiap                  452800  0
kdsldmod              878208  7 userman
usbahcicore            26064  0
usbcore               113328  3 usb_storage,usbahcicore
capi_codec            143040  0
isdn_fbox_fon4        899840  1 capi_codec
ubik2                  85440  2 capi_codec,isdn_fbox_fon4
tiatm                 112544  1 ubik2
Piglet                 10656  0
/var/media/ftp #

thx

//Edit:

ah ok, nach langem rumspielen funktionierts nun. Super, danke allen die hier im Thread und per PN geholfen haben. Jetzt muß ich sehen, daß ich mein Image noch anständig baue, danach ist alles gut. :D

THX
mfg
 
Zuletzt bearbeitet:
Hallo.
Kann mir mal bitte jemand die für ndas nötigen Devices hier auflisten. Bitte mit major und minor.

MfG Oliver
 
Hallo Olistudent,

wenn ich das gemäß obigem Script richtig sehe, dann braucht man

Code:
/dev/ndas  c 60 0
/dev/nda   b 60 0
/dev/nda1  b 60 1
/dev/nda2  b 60 2
...
/dev/nda7  b 60 7
/dev/ndb   b 60 8
/dev/ndb1  b 60 9
...
usw.

Soweit ich das auch im Quelltext richtig gesehen habe, ist die Anzahl der unterstützten /dev/nd(x) bzw der /dev/nd(x)(y) per Compilerschalter konfigurierbar. Auch scheint es so zu sein, daß der Treiber eigentlich selber devices wie z.B. dev/ndas-13405909-0 anlegen sollte. Ich weiß aber nicht ob das nur geht wenn mdev vorhanden ist.

Gruß
Zwergnase
 
hey,

so hab nun mein Image fertig, und läuft auch alles soweit. Hab die HD ins ext2 formatiert, und kann diese über ndas auch einbinden. Was mir jetzt aufgefallen ist, daß nur die erste Partition der HD eingebunden werden kann. Ist dies ein Fehler bei mir, oder liegt es irgendwo vieleicht doch an ndas?
Ein mount /dev/nda1 /var/media..... klappt super, aber beim Einbinden der 2. (/dev/nda2 = die zweite primere Part.) Partition, kommt nur der Fehler "unbekannte Device" oder so ähnlich. Kann es gerade nicht mounten, da ich im Moment wieder nur eine Partition auf der HD habe. Würde aber für eine genaue Fehlermeldung die HD nochmal gegen eine mit mehreren Partitionen wechseln und berichten. Wollte nur erstmal fragen, ob da vieleicht etwas bekannt ist in der Richtung.

thx
mfg
 
Tatsächlich habe ich es bisher auch nur mit einer Partition ausprobiert, da ich nur eine auf der Platte habe. Würde mich im allerings nicht wahnsinng verwundern, wenn es da noch Probleme gibt.... Wenn du das naochmal ausprobierst, dann schau dir doch mal die Ausgabe von dmesg nach dem Registrieren der Platte an und mit cat /proc/partitions mal, wiviele Partitionen das System denn erkannt hat.

Gruß

Zwergnase
 
jep, kein Problem.

die Ausgabe von dmesg:

Code:
NET: Registered protocol family 29

ndas: Initializing NDAS driver version 1.1.20
ndas: Setting max request size to 64kbytes
ndas: registering network interface lan
ndas: registered ndas device at major number 60
 ndas-13500368-0: p1 p2 p3 p4 < p5 p6 p7 >
ndas: /dev/ndas-13500368-0 enabled
EXT2-fs warning (device ndas-13500368-0p1): ext2_fill_super: mounting ext3 filesystem as ext2

EXT2-fs warning: maximal mount count reached, running e2fsck is recommended

und cat /proc/partitions gibt:

Code:
major minor  #blocks  name

  31     0       8192 mtdblock0
  31     1       6926 mtdblock1
  31     2       7616 mtdblock2
  31     3         64 mtdblock3
  31     4        256 mtdblock4
  31     5        256 mtdblock5
  31     6         64 mtdblock6
  31     7       7552 mtdblock7
  60     0  293034136 ndas-13500368-0
  60     1   19535008 ndas-13500368-0p1
  60     2    4883760 ndas-13500368-0p2
  60     3   19535040 ndas-13500368-0p3
  60     4          1 ndas-13500368-0p4
  60     5   19663528 ndas-13500368-0p5
  60     6   19679593 ndas-13500368-0p6
  60     7  209736576 ndas-13500368-0p7

ein mount der zweiten part:

Code:
mount /dev/nda2 /var/media/ftp/ndas2/
mount: mounting /dev/nda2 on /var/media/ftp/ndas2/ failed: Invalid argument
/var/media/ftp #

"unbekannte Device" war dann doch daneben. Sorry, hab in letzter Zeit zuviele Fehlermeldungen gesehen. :-D

mfg
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.