NDAS Treiber für FritzBox

ghandis

Neuer User
Mitglied seit
17 Okt 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo,

leider reicht meine Erfahrung noch nicht soweit selbst AddOns für die FritzBox zu erstellen. Vielleicht hilft hier jemand oder findet die Idee nützlich.
Ximeta verkauft Chips für externe Netzwerkplatten mit einem speziellem Protokoll LXP statt TCPIP als NDAS, diese sind etwas scheller als NAS können aber wegen fehlendem Routing nicht von extern verwendet (z.B. via openVpn) werden. Vom Hersteller gibt es jedoch eine kurze Anleitung wie ein Treiber für OpenWRTG kompiliert werden kann (http://code.ximeta.com/trac-ndas/wiki/OpenWRT)
Dies müsste mit der FritzBox doch auch möglich sein. Dann könnte diese Platte direkt in das Dateisystem der FritzBox gemountet werden und von dort weiter verteilt werden (z.B. via SMB und/oder SSH-Tunnel/S-FTP ...) damit hätte man den Geschwindigkeitsvorteil via NDAS im lokalen Netz und könnte dennoch von extern zugreifen.

Was meint ihr?
Andreas
 
Es sollte kein Problem sein, das Paket kompiliert zu bekommen.
Code:
wget [URL="http://code.ximeta.com/dev/current/openwrt/ndas-1.1-12.mipsel.tar.gz"]http://code.ximeta.com/dev/current/openwrt/ndas-1.1-12.mipsel.tar.gz[/URL]
tar xzf ndas-1.1-10.mipsel.tar.gz
export PATH=$PATH:/home/userid/ds26-15.2/toolchain/kernel/bin::/home/userid/ds26-15.2/toolchain/target/bin
export NDAS_KERNEL_PATH=/home/userid/ds26-15.2/source/ref-8mb_26-04.33/kernel/linux
export NDAS_KERNEL_VERSION=2.6.13.1
export NDAS_KERNEL_ARCH=mips
export NDAS_CROSS_COMPILE=mipsel-unkown-linux-gnu-
export NDAS_CROSS_COMPILE_UM=mipsel-linux-
export NDAS_EXTRA_CFLAGS="-mlong-calls -DNDAS_SIGPENDING_OLD"
make ARCH=mips CC=mipsel-unknown-linux-gnu-gcc
MfG Oliver
 
Zuletzt bearbeitet:
Ich hab's probiert (unter Suse 10.2 64 bit). Für mich aber doch ein Problem! :-(

Code:
schmatke@lindose1:~/fritz/ndas-1.1-12> make
Invoking make againt the kernel at /home/schmatke/fritz/ds26-15.2/source/ref-8mb_26-04.33/kernel/linux
make -C /home/schmatke/fritz/ds26-15.2/source/ref-8mb_26-04.33/kernel/linux \
                SUBDIRS=/home/schmatke/fritz/ndas-1.1-12 \
                KBUILD_VERBOSE=1 \
                ndas_root=/home/schmatke/fritz/ndas-1.1-12 \
                modules
make[1]: Entering directory `/home/schmatke/fritz/ds26-15.2/source/ref-8mb_26-04.33/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1'
mkdir -p /home/schmatke/fritz/ndas-1.1-12/.tmp_versions
make -f scripts/Makefile.build obj=/home/schmatke/fritz/ndas-1.1-12
  gcc -Wp,-MD,/home/schmatke/fritz/ndas-1.1-12/block/.block24.o.d  -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.1.2/include -D__KERNEL__ -Iinclude  -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -Os  -falign-functions=4  -falign-labels=4  -falign-loops=4  -falign-jumps=4 -fomit-frame-pointer  -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks    -Wno-sign-compare -fno-asynchronous-unwind-tables -funit-at-a-time -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -funit-at-a-time -Wdeclaration-after-statement -Wno-pointer-sign -DMODULE -DLINUX -I/home/schmatke/fritz/ndas-1.1-12/inc  -D_MIPSEL -mlong-calls -DNDAS_SIGPENDING_OLD  -DMODULE -DKBUILD_BASENAME=block24 -DKBUILD_MODNAME=ndas_block -c -o /home/schmatke/fritz/ndas-1.1-12/block/block24.o /home/schmatke/fritz/ndas-1.1-12/block/block24.c
cc1: error: unrecognized command line option "-mlong-calls"
make[2]: *** [/home/schmatke/fritz/ndas-1.1-12/block/block24.o] Fehler 1
make[1]: *** [_module_/home/schmatke/fritz/ndas-1.1-12] Fehler 2
make[1]: Leaving directory `/home/schmatke/fritz/ds26-15.2/source/ref-8mb_26-04.33/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1'
make: *** [/home/schmatke/fritz/ndas-1.1-12/ndas_sal.ko] Fehler 2
schmatke@lindose1:~/fritz/ndas-1.1-12>
 
Guten morgen,

@ olistudent, solltest du das wirklich kompilliert bekommen würde ich gerne
bei dem Spielchen mitmachen (hab auch ein NDAS im Netz).

@ ghandis, die idee ist gut aber auch ndas-platten erreichen nicht die geschwindigkeit
von "echten" netzwerkfestplatten.
Ist eigentlich nur eine spielerei obs auf der fb läuft.
auf jedem client die treibersoftware installiert und fertisch.
argh, nochmal drübergelesen.
du willst dein ndas ja auch aus dem inet erreichbar machen.
wenn das klappt wärs genial.

ich bleib am ball ;)

Grüße kleinroland
 
@schmattke
Probier mal statt "make" "CC=mipsel-linux-gcc make".

MfG Oliver
 
Bekomm die gleiche Meldung wie oben.
Code:
cc1: error: unrecognized command line option "-mlong-calls"
Werde es nochmal von ner anderen Umgebung probieren!
Hab ja mehr als genug davon. :rolleyes:

@kleinroland
Code:
Ist eigentlich nur eine spielerei obs auf der fb läuft.
auf jedem [B]client[/B] die treibersoftware installiert und fertisch.
Das ist ja das Übel! Lese- Schreibzugriff ...
Alles von der fritzbox wäre schon cool!!!!!!!
 
Hätte mir ja mal jemand sagen können, dass man da den Kernel-Compiler nehmen muss...
Code:
make ARCH=mips CC=mipsel-unknown-linux-gnu-gcc
MfG Oliver

edit: Bei dem Sigmask Fehler ist die Abfrage für die Kernelversion nicht vollständig. Für unseren 2.6.13.1 muss der untere Block genommen werden.
 
Zuletzt bearbeitet:
olistudent schrieb:
Code:
PATH=$PATH:/home/userid/ds26-15.2/toolchain/kernel/bin make ARCH=mips CC=mipsel-unknown-linux-gnu-gcc
damit gehts schon mal nen stück weiter.
Code:
 /home/xtc/ds-neu/packages/ndas-1.1-12/sal/thread.c
/home/xtc/ds-neu/packages/ndas-1.1-12/sal/thread.c: In function `sal_thread_pend_signals':
/home/xtc/ds-neu/packages/ndas-1.1-12/sal/thread.c:106: error: structure has no member named `sigmask_lock'
/home/xtc/ds-neu/packages/ndas-1.1-12/sal/thread.c:108: error: too many arguments to function `recalc_sigpending'
/home/xtc/ds-neu/packages/ndas-1.1-12/sal/thread.c:109: error: structure has no member named `sigmask_lock'
make[2]: *** [/home/xtc/ds-neu/packages/ndas-1.1-12/sal/thread.o] Fehler 1
make[1]: *** [_module_/home/xtc/ds-neu/packages/ndas-1.1-12] Fehler 2
make[1]: Verlasse Verzeichnis '/home/xtc/ds-neu/source/ref-8mb_26-r4884/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1'
make: *** [/home/xtc/ds-neu/packages/ndas-1.1-12/ndas_sal.ko] Fehler 2
olistudent schrieb:
edit: Bei dem Sigmask Fehler ist die Abfrage für die Kernelversion nicht vollständig. Für unseren 2.6.13.1 muss der untere Block genommen werden.
:confused: welcher untere block???
 
/home/xtc/ds-neu/packages/ndas-1.1-12/sal/thread.c:106
 
Code:
--- sal.orig/thread.c   2007-10-05 00:49:15.000000000 +0200
+++ sal/thread.c        2007-10-05 19:14:40.000000000 +0200
@@ -103,10 +103,10 @@
        defined(NDAS_SIGPENDING_OLD) ||\
     (defined(NDAS_MSHARE) && LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,26)) ||\
     defined(NDAS_EM86XX)
-    spin_lock_irqsave(&current->sigmask_lock, flags);
+    spin_lock_irqsave(&current->sighand->siglock, flags);
     siginitsetinv(&current->blocked, sigmask(SIGKILL)|sigmask(SIGTERM));
-    recalc_sigpending(current);
-    spin_unlock_irqrestore(&current->sigmask_lock, flags);
+    recalc_sigpending();
+    spin_unlock_irqrestore(&current->sighand->siglock, flags);
 #else
     spin_lock_irqsave(&current->sighand->siglock, flags);
     siginitsetinv(&current->blocked, sigmask(SIGKILL)|sigmask(SIGTERM));
 
thxs, das hab ich hinbekommen. ( wenn auch nicht vertanden )
usage:
1. copy ndas_sal.o ndas_core.o ndas_block.o into /lib/modules/{kernel version}/
2. copy ndas.openwrt as /etc/init.d/S60ndas and add executable property(chmod u+x /etc/init.d/S60ndas)
3. copy ndasadmin into /usr/sbin and add executable property.(chmod u+x /usr/sbin/ndasadmin)
4. Reboot or run /etc/init.d/S60ndas to initialize NDAS driver.

eventuell sin da noch sachen anzupassen. ich bekomme erst in ein paar tagen ein laufwerk zum testen.

(edit)
file entfernt, neues file
 
Zuletzt bearbeitet:
*.o ist doch für Kernel 2.4!

Code:
/ # uname -a
Linux fritz.box 2.4.17_mvl21-malta-mips_fp_le #1 So 23 Jul 20:23:30 CEST 2006 mips unknown
/ # cd /var/mod/home/samba/
/var/mod/home/samba # ls
ndas.openwrt  ndas_block.o  ndas_core.o   ndas_sal.o    ndasadmin
/var/mod/home/samba # insmod ndas_core.o
insmod: unresolved symbol sal_thread_daemonize
insmod: unresolved symbol param_set_int
insmod: unresolved symbol sal_net_alloc_buf_bufseg
insmod: unresolved symbol sal_atomic_inc
insmod: unresolved symbol sal_netdev_get_mtu
insmod: unresolved symbol sal_get_tick
insmod: unresolved symbol SAL_TICKS_PER_SEC
insmod: unresolved symbol param_get_charp
insmod: unresolved symbol sal_sock_destroy
insmod: unresolved symbol __printk
insmod: unresolved symbol sal_net_set_change_handler
insmod: unresolved symbol sal_snprintf
insmod: unresolved symbol sal_netdev_close
insmod: unresolved symbol sal_atomic_dec_and_test
insmod: unresolved symbol sal_net_free_platform_buf
insmod: unresolved symbol sal_spinlock_destroy
insmod: unresolved symbol sal_malloc
insmod: unresolved symbol sal_thread_pend_signals
insmod: unresolved symbol param_get_int
insmod: unresolved symbol sal_create_mem_pool
insmod: unresolved symbol sal_netdev_register_proto
insmod: unresolved symbol sal_spinlock_take
insmod: unresolved symbol sal_spinlock_create
insmod: unresolved symbol sal_msleep
insmod: unresolved symbol sal_event_reset
insmod: unresolved symbol sal_semaphore_create
insmod: unresolved symbol sal_free
insmod: unresolved symbol sal_semaphore_destroy
insmod: unresolved symbol sal_spinlock_give
insmod: unresolved symbol sal_semaphore_give
insmod: unresolved symbol sal_event_wait
insmod: unresolved symbol sal_net_copy_platform_buf
insmod: unresolved symbol sal_spinlock_take_irqsave
insmod: unresolved symbol sal_netdev_open
insmod: unresolved symbol sal_thread_flush_signals
insmod: unresolved symbol sal_alloc_from_pool
insmod: unresolved symbol sal_thread_yield
insmod: unresolved symbol sal_error_print
insmod: unresolved symbol param_set_charp
insmod: unresolved symbol sal_event_create
insmod: unresolved symbol sal_event_set
insmod: unresolved symbol sal_thread_create
insmod: unresolved symbol sal_net_clone_platform_buf
insmod: unresolved symbol sal_netdev_get_address
insmod: unresolved symbol sal_free_from_pool
insmod: unresolved symbol sal_destroy_mem_pool
insmod: unresolved symbol sal_ether_send
insmod: unresolved symbol sal_spinlock_give_irqrestore
insmod: unresolved symbol sal_process_page_to_net_buf_mapping
insmod: unresolved symbol sal_net_alloc_platform_buf_ex
insmod: unresolved symbol sal_netdev_unregister_proto
insmod: unresolved symbol sal_atomic_dec
insmod: unresolved symbol sal_thread_exit
insmod: unresolved symbol sal_time_msec
insmod: unresolved symbol sal_sock_create
insmod: unresolved symbol sal_semaphore_take
insmod: unresolved symbol sal_event_destroy
/var/mod/home/samba # insmod ndas_sal.o
insmod: unresolved symbol __printk
insmod: unresolved symbol set_user_nice
insmod: unresolved symbol finish_wait
insmod: unresolved symbol sock_create_kern
insmod: unresolved symbol __kmalloc
insmod: unresolved symbol sk_stream_wait_memory
insmod: unresolved symbol dump_stack
insmod: unresolved symbol prepare_to_wait
insmod: unresolved symbol jiffies
insmod: unresolved symbol autoremove_wake_function
insmod: unresolved symbol malloc_sizes
/var/mod/home/samba # insmod ndas_block.o
insmod: unresolved symbol ndas_unregister_device
insmod: unresolved symbol ndas_probed_list
insmod: unresolved symbol alloc_disk
insmod: unresolved symbol __printk
insmod: unresolved symbol ndas_set_registration_name
insmod: unresolved symbol ndas_set_registration_data
insmod: unresolved symbol ndas_query_raid
insmod: unresolved symbol elv_next_request
insmod: unresolved symbol end_request
insmod: unresolved symbol ndas_get_ndas_dev_info
insmod: unresolved symbol blk_queue_max_sectors
insmod: unresolved symbol blk_queue_max_hw_segments
insmod: unresolved symbol ndas_detect_device
insmod: unresolved symbol sal_net_drop_count
insmod: unresolved symbol class_destroy
insmod: unresolved symbol ndas_set_slot_handlers
insmod: unresolved symbol ndas_get_string_error
insmod: unresolved symbol ndas_query_unit
insmod: unresolved symbol sal_malloc
insmod: unresolved symbol ndas_register_device
insmod: unresolved symbol ndas_set_encryption_mode
insmod: unresolved symbol ndas_registered_size
insmod: unresolved symbol class_create
insmod: unresolved symbol __kmalloc
insmod: unresolved symbol ndas_registered_list
insmod: unresolved symbol sal_free
insmod: unresolved symbol ndas_enable_exclusive_writable
insmod: unresolved symbol ndas_query_ndas_id_by_serial
insmod: unresolved symbol elv_remove_request
insmod: unresolved symbol ndas_request_permission
insmod: unresolved symbol ndas_get_registration_data
insmod: unresolved symbol add_disk
insmod: unresolved symbol ndas_write
insmod: unresolved symbol ndas_start
insmod: unresolved symbol ndas_read
insmod: unresolved symbol class_device_destroy
insmod: unresolved symbol class_device_create
insmod: unresolved symbol ndas_probed_size
insmod: unresolved symbol ndas_enable_slot
insmod: unresolved symbol ndas_disable_slot
insmod: unresolved symbol ndas_get_version
insmod: unresolved symbol ndas_query_slot
insmod: unresolved symbol blk_queue_hardsect_size
insmod: unresolved symbol ndas_register_device_by_serial
insmod: unresolved symbol ndas_stop
insmod: unresolved symbol sal_net_recv_count
insmod: unresolved symbol ndas_enable_writeshare
insmod: unresolved symbol malloc_sizes
insmod: unresolved symbol put_disk
insmod: unresolved symbol blk_queue_max_phys_segments
insmod: unresolved symbol ndas_set_device_change_handler
/var/mod/home/samba # lsmod | grep ndas*
/var/mod/home/samba #
Schade, leider noch nix! Aber immerhin ein bisschen weiter.:rolleyes:
 
Am Besten baust du das selbst und gibts auch die Kernelversion an, die sich auf der Box befindet. Ansonsten passieren solche Sachen. Wenn du bei den Exports Kernel 2.6.13.1 angibst und das richtige Verzeichnis, dann kommen da auch *.ko raus.

MfG Oliver
 
Wollte ja nur mal heini's Ergebnis testen. Hab extra die *.21er Firmware eingespielt (inkl. dsmod). Funzt aber nicht.

Selbst bauen? Ich bleib am Ball, befürchte aber, dass ich zu doof bin.:doof:
 
Steht doch alles hier und Patch von hier.

MfG Oliver
 
Immernoch nicht selbst gebaut. :rolleyes:

Code:
/var/mod/home/samba/sda1/ndas1.12-2.6 $ lsmod
Module                  Size  Used by    Tainted: P
ndas_block             34784  1
ndas_core             183120  1 ndas_block
ndas_sal               27776  2 ndas_block,ndas_core
Meckert beim ndas_block.ko und ndas_emu.ko mag er gar nicht.
Registrieren geht dann auch, aber
Code:
cat /proc/ndas/devices/disk/slots
gibt dann nix.
dmesg sagt (unter anderem):
Code:
ndas: Initializing NDAS driver version 1.1.12
ndas: Setting max request size to 32kbytes
ndas: registering network interface cpmac0
ndas: registering network interface eth0
ndas: registering network interface lan
ndas: registering network interface dsl
ndas: fail to register network interface dsl (-12): ignored
ndas: NDAS binary is not built for NDAS emulator
CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 940b07e8, ra == 940ded40
Oops in arch/mips/mm/fault.c::do_page_fault, line 167[#1]:
Cpu 0

Hat jemand bessere Erfahrungen? Und vielleicht 'n Tipp?
 
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.