PDA

View Full Version : [Modfs] Sviluppo pacchetti e porting su altri router


Pagine : [1] 2 3 4

cionci
28-12-2010, 11:48
Modfs permette di aggiungere feature a router basati su Linux che presentano la possibilità di installare una memoria di massa su porta USB.
Potete recuperare ulteriori informazioni su Modfs nel thread di supporto (http://www.hwupgrade.it/forum/showthread.php?t=2297494).
Questo thread è dedicato a chi vuole contribuire allo sviluppo di Modfs, aiutandoci ad aggiungere feature o a risolvere problemi per router già supportati.
E' anche possibile fare il porting ad altri router con porta USB. Serve un po' di esperienza su Linux e la possibilità di lanciare il firmware aggiuntivo tramite telnet o tramite http.
La cosa migliore sarebbe ovviamente poter creare un firmware modded che faccia partire Modfs direttamente all'avvio del router.

Qui è spiegato a grandi linee come si sviluppa un pacchetto per Modfs: http://www.hwupgrade.it/forum/showpost.php?p=34066728&postcount=29

Utenti che stanno lavorando al porting su altri router:

Alpine su WAG320N

cionci
28-12-2010, 12:29
Allora parto con il segnalare le attuali problematiche da risolvere sul DGN2200.
La prima e la più importante è che il DGN2200 non usa iptables per NAT e firewall, ma usa un modulo e degli eseguibili proprietari chiamati "acos".
Questo è un limite molto grande per i seguenti motivi:
- il limite di regole del firewall è 20
- non si può redirigere traffico da un porta ad un'altra
Le prestazioni non mi sembrano un problema, perché mi sembra veramente prestante.

Ora quindi, io sono quasi pronto a pubblicare un firmware con il supporto a iptables e relativi moduli. Il problema è che non so come far partire da zero il nat e il firewall e non so quali moduli siano necessari e quali no. Per compilarli non ci sono problemi, perché ho trovato nel DGN2200M il kernel con la configurazione già fatta.
Aggiungeteci che per i prossimi 2-3 mesi sarà incasinato all'inverosimile...

Quindi farebbe comodo che qualcuno si prendesse carico di questa problematica :sofico:

L'altro problema del DGN2200 è che, come rilevato da Parnas72, lo spegnimento o l'accensione della rete wifi, sia tramite il bottone in Setup che tramite lo scheduling, viene fatto con i comandi

wl radio on
wl radio off
wl radio (per lo stato)

Questi comandi non sono compatibili con il bottone del router. Quindi sarebbe bene individuare la procedura esatta che avviene con lo spegnimento e l'accensione tramite bottone.

Ho messo a punto una utility che monitora ogni 10 ms gli ultimi processi eseguiti tramite ps.
L'output va in /tmp/mod/dev (cioè il device su cui si trovare il file immagine di modfs).
Sono riuscito a riportare su la mia rete in uno stato funzionante, dopo averla spenta con il bottone, con questa lunga serie di comandi:

wlctl -i wl0 bss -C 2 down
wlctl -i wl0.1 cur_etheraddr xx:xx:xx:xx:xx:4f (l'interfaccia wl0 ha indirizzo 4e)
wlctl -i wl0 wpa_cap -C 0 0 2>/dev/null
wlctl -i wl0 wpa_cap -C 1 > /var/wpa_cap0
wlctl -i wl0 protection_control 2
wlctl -i wl0 gmode Auto
wlctl -i wl0 rateset default
wlctl -i wl0 chanspec > /var/curchaspec0
wlctl -i wl0 rmwep -C 2 0
wlctl -i wl0 bss -C 0 up

ifconfig wl0 up
brctl addif br0 wl0
/bin/lld2d br0
/bin/bcmupnp -D
/bin/eapd
/bin/nas
wps_monitor &

E' chiaro che le cose da fare sono molte e dipendono dalla configurazione del router. Quindi bisognerebbe mettersi lì a capire tutti i comandi che bisogna dare in base alle impostazioni wan che si possono rilevare dalle variabili in nvram.

gnommo
28-12-2010, 14:50
Cionci tempo fa mi chiedesti tutte le regole che il firmware imposta ad iptables.
Ecco qua, c'è giusto qualche porta aperta da me, il resto è del firmware:
iptables -t nat -F
iptables -t filter -F
iptables -t mangle -F
iptables -t nat -X PRE_BASIC
iptables -t nat -N PRE_BASIC
iptables -t nat -X DNS
iptables -t nat -N DNS
iptables -t nat -X PRE_PROXY
iptables -t nat -N PRE_PROXY
iptables -t nat -X MINIUPNPD
iptables -t nat -N MINIUPNPD
iptables -t nat -X PT
iptables -t nat -N PT
iptables -t nat -X NAPT
iptables -t nat -N NAPT
iptables -t nat -X VS
iptables -t nat -N VS
iptables -t nat -X DMZ
iptables -t nat -N DMZ
iptables -t nat -X VPN
iptables -t nat -N VPN
iptables -t filter -X DOS
iptables -t filter -N DOS
iptables -t filter -X SCAN
iptables -t filter -N SCAN
iptables -t filter -X PROXY
iptables -t filter -N PROXY
iptables -t filter -X LOCAL_SERVICE
iptables -t filter -N LOCAL_SERVICE
iptables -t filter -X OUT_FILTER
iptables -t filter -N OUT_FILTER
iptables -t filter -X CFILTER
iptables -t filter -N CFILTER
iptables -t filter -X HTTP
iptables -t filter -N HTTP
iptables -t filter -X BLOCK
iptables -t filter -N BLOCK
iptables -t filter -X IN_FILTER
iptables -t filter -N IN_FILTER
iptables -t filter -X MINIUPNPD
iptables -t filter -N MINIUPNPD
iptables -t filter -X FW_BASIC
iptables -t filter -N FW_BASIC
iptables -t filter -X FTP_SHARES
iptables -t filter -N FTP_SHARES
iptables -t filter -X HTTPS_SHARES
iptables -t filter -N HTTPS_SHARES
iptables -t nat -A PREROUTING -j PRE_BASIC
iptables -t nat -A PREROUTING -j PRE_PROXY
iptables -t nat -A PREROUTING -j MINIUPNPD
iptables -t nat -A PREROUTING -j PT
iptables -t nat -A PREROUTING -j NAPT
iptables -t nat -A PREROUTING -j VS
iptables -t nat -A PREROUTING -j DMZ
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ipsec0 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --syn -j DOS
iptables -A INPUT -p udp -j DOS
iptables -A INPUT -p icmp --icmp-type echo-request -j DOS
iptables -A INPUT -j PROXY
iptables -A INPUT -j LOCAL_SERVICE
iptables -P FORWARD DROP
iptables -A FORWARD -j OUT_FILTER
iptables -A FORWARD -j CFILTER
iptables -A FORWARD -j FW_BASIC
iptables -A FORWARD -p tcp --syn -j DOS
iptables -A FORWARD -p udp -j DOS
iptables -A FORWARD -p icmp --icmp-type echo-request -j DOS
iptables -A FORWARD -j IN_FILTER
iptables -A FORWARD -j MINIUPNPD
iptables -A FW_BASIC -i lo -j ACCEPT
iptables -A FW_BASIC -i ipsec0 -j ACCEPT
iptables -A FW_BASIC -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A FW_BASIC -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -j VPN
iptables -I INPUT -i br0 -j ACCEPT
iptables -A FW_BASIC -i br0 -j ACCEPT
iptables -A DOS -i ! ppp1 -j RETURN
iptables -A DOS -m psd -j SCAN
iptables -A SCAN -m limit --limit 10/s -j LOG --log-level 4 --log-prefix "[PORT SCAN]"
iptables -A SCAN -j DROP
iptables -A DOS -p tcp --syn -m limit --limit 5/s --limit-burst 10 -j RETURN
iptables -A DOS -p udp -m limit --limit 5/s --limit-burst 10 -j RETURN
iptables -A DOS -p icmp --icmp-type echo-request -m limit --limit 5/s --limit-burst 60 -j RETURN
iptables -A DOS -m limit --limit 10/s -j LOG --log-level 4 --log-prefix "[DOS] "
iptables -A DOS -j DROP
iptables -I MINIUPNPD -t nat -i ! ppp1 -j RETURN
iptables -A PRE_BASIC -t nat -i ppp1 -d ! zzzzzzzz -j DROP
iptables -t nat -F PT
iptables -t nat -A PT -d ! 192.168.0.1 -j PNAT --set-mark 0x2511
iptables -A IN_FILTER -i ! ppp1 -j RETURN
iptables -t nat -A NAPT -s 0/0 -d zzzzzzzz -p udp --dport 4672:4672 -j DNAT --to 192.168.0.2:4672-4672
iptables -t nat -A NAPT -s 0/0 -d zzzzzzzz -p udp --dport 4672:4672 -j DROP
iptables -A IN_FILTER -d 192.168.0.2 -p udp --dport 4672:4672 -j ACCEPT
iptables -t nat -A NAPT -s 0/0 -d zzzzzzzz -p tcp --dport 54662:54662 -j DNAT --to 192.168.0.2:54662-54662
iptables -t nat -A NAPT -s 0/0 -d zzzzzzz -p tcp --dport 54662:54662 -j DROP
iptables -A IN_FILTER -d 192.168.0.2 -p tcp --dport 54662:54662 -j ACCEPT
iptables -A OUT_FILTER -i ! br0 -j RETURN
iptables -I INPUT -d zzzzzzzzzzzzzz -p tcp --dport 7547 -j ACCEPT

iptables -A INPUT -j FTP_SHARES
iptables -D INPUT -i br0 -p tcp --dport 20:21 -j DROP
iptables -I INPUT -i br0 -p tcp --dport 20:21 -j DROP
iptables -t nat -D PRE_BASIC -i ppp1 -p tcp --dport 21 -d zzzzzzzzzzzzz -j DNAT --to 192.168.0.1:20-21
iptables -t nat -D PRE_BASIC -i br0 -p tcp --dport 21 -d zzzzzzzzzzzzzzz -j DNAT --to 192.168.0.1:20-21
iptables -D FTP_SHARES -d 192.168.0.1 -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -j HTTPS_SHARES
iptables -t nat -D PRE_BASIC -i ppp1 -p tcp --dport 443 -d zzzzzzzzzzzzzzzz -j DNAT --to 192.168.0.1:443
iptables -t nat -D PRE_BASIC -i br0 -p tcp --dport 443 -d zzzzzzzzzzzzzzzzzz -j DNAT --to 192.168.0.1:443
iptables -D HTTPS_SHARES -d 192.168.0.1 -p tcp --dport 443 -j ACCEPT
iptables -A LOCAL_SERVICE -d 192.168.0.1 -p tcp --dport 23 -j ACCEPT
iptables -t nat -A PRE_BASIC -d 192.168.0.1 -p tcp --dport 5000 -j DNAT --to 192.168.0.1:80
iptables -A CFILTER -i br0 -m string --algo bm --string GET -p tcp --dport 80 --tcp-flags ALL PSH,ACK -j HTTP
iptables -A CFILTER -i br0 -m string --algo bm --string POST -p tcp --dport 80 --tcp-flags ALL PSH,ACK -j HTTP
iptables -A CFILTER -i br0 -m string --algo bm --string HEAD -p tcp --dport 80 --tcp-flags ALL PSH,ACK -j HTTP
iptables -A BLOCK -j LOG --log-level 4 --log-prefix "[BLOCK]"
iptables -A BLOCK -p tcp --dport 80 -j REJECT --reject-with http-block
iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE
iptables -A FORWARD -t mangle -m dscp --dscp-class CS7 -o ! br0 -j MARK --set-mark 0x04
iptables -A FORWARD -t mangle -m dscp --dscp-class CS6 -o ! br0 -j MARK --set-mark 0x04
iptables -A FORWARD -t mangle -m dscp --dscp-class CS5 -o ! br0 -j MARK --set-mark 0x03
iptables -A FORWARD -t mangle -m dscp --dscp-class CS4 -o ! br0 -j MARK --set-mark 0x03
iptables -A FORWARD -t mangle -m dscp --dscp-class CS3 -o ! br0 -j MARK --set-mark 0x02
iptables -A FORWARD -t mangle -m dscp --dscp-class CS2 -o ! br0 -j MARK --set-mark 0x01
iptables -A FORWARD -t mangle -m dscp --dscp-class CS1 -o ! br0 -j MARK --set-mark 0x01
iptables -A POSTROUTING -t mangle -o ppp1 -j IMQ --todev 0
#

cionci
28-12-2010, 14:52
Ecco, questo dovrebbe semplificare di molto la situazione. Però cavolo, non credevo che il setup del firewall fosse così complesso.

Parnas72
28-12-2010, 15:26
Ora quindi, io sono quasi pronto a pubblicare un firmware con il supporto a iptables e relativi moduli. Il problema è che non so come far partire da zero il nat e il firewall e non so quali moduli siano necessari e quali no. Per compilarli non ci sono problemi, perché ho trovato nel DGN2200M il kernel con la configurazione già fatta.Ma portando il NAT su iptables non bisognerebbe anche riscrivere la funzionalità di uPNP ? Perchè adesso, se un'applicazione chiede un'apertura, il demone uPNP la effettuerà su acos, non su iptables.

E' chiaro che le cose da fare sono molte e dipendono dalla configurazione del router. Quindi bisognerebbe mettersi lì a capire tutti i comandi che bisogna dare in base alle impostazioni wan che si possono rilevare dalle variabili in nvram.Molto impegnativo prevedere tutte le casistiche, praticamente bisogna riscriversi il wlanconfigd. Sarebbe più semplice riuscire a invocarlo, facendogli fare il suo lavoro, ma non capisco quale sia la sua interfaccia... non è in ascolto su nessuna porta TCP/UDP.
Non c'è qualcosa tipo truss/strace che si possa installare sul router a scopo di reverse engineering ?

gnommo
28-12-2010, 15:27
Cionci su sourceforge non riesco a cancellare o uppare niente, sai cosa è successo?
Mi da Permission denied

cionci
28-12-2010, 15:51
Cionci su sourceforge non riesco a cancellare o uppare niente, sai cosa è successo?
Mi da Permission denied
Strano, io ho uppato. Forse perché sono entrato in ssh ed ho spostato i file da lì invece che upparli di nuovo ?
Guardo i permessi...

gnommo
28-12-2010, 15:54
Non riesco a fare alcuna operazione nelle directory che hai creato tu.

cionci
28-12-2010, 16:01
Non riesco a fare alcuna operazione nelle directory che hai creato tu.
Stranamente come permessi di default non setta 662, ma 664. Ho cambiato i permessi, fai pure.

cionci
29-12-2010, 08:09
Ma portando il NAT su iptables non bisognerebbe anche riscrivere la funzionalità di uPNP ? Perchè adesso, se un'applicazione chiede un'apertura, il demone uPNP la effettuerà su acos, non su iptables.
Molto probabile.
Peccato perché è il demone UPnP che funziona meglio fra tutti i router che ho provato.
Molto impegnativo prevedere tutte le casistiche, praticamente bisogna riscriversi il wlanconfigd. Sarebbe più semplice riuscire a invocarlo, facendogli fare il suo lavoro, ma non capisco quale sia la sua interfaccia... non è in ascolto su nessuna porta TCP/UDP.
Non c'è qualcosa tipo truss/strace che si possa installare sul router a scopo di reverse engineering ?
Io tempo che non abbia opzioni da linea di comando, ma che semplicemente monitori le variabili d'ambiente, lo stato del bottone (anche qui chissà dove) e poi cambi le cose al volo.
Puoi mettere ciò che vuoi sul router. Il compilatore è questo: http://www.mediafire.com/download.php?9a7qa8522bz4l54
Sinceramente non so cosa si faccia prima a fare, se l'una o l'altra cosa.
In teoria la possibilità di prendere esattamente tutti i comandi ce l'ho, mi basta installare un firmware con il comando wlctl sostituito da uno script. In questo modo wlanconfigd chiama il mio script ed io faccio un log esatto di tutti i comandi inviati.

cionci
29-12-2010, 09:44
Gnommo: ho uppato il README in inglese e le istruzioni per il DGN2200. Dagli uno sguardo e modifica quello che vuoi. Sono un pippa in inglese purtroppo :D

gnommo
29-12-2010, 10:07
Sono un pippa in inglese purtroppo :D

me, too. :D

cionci
29-12-2010, 14:06
Ho qualche dubbio su etherwake:

usage: ether-wake [-i <ifname>] [-p aa:bb:cc:dd[:ee:ff]] 00:11:22:33:44:55

This program generates and transmits a Wake-On-LAN (WOL)
"Magic Packet", used for restarting machines that have been
soft-powered-down (ACPI D3-warm state).
It currently generates the standard AMD Magic Packet format, with
an optional password appended.

The single required parameter is the Ethernet MAC (station) address
of the machine to wake.
The MAC address may be found with the 'arp' program while the target
machine is awake.

Options:
-b Send wake-up packet to the broadcast address.
-D Increase the debug level.
-i ifname Use interface IFNAME instead of the default 'eth0'.
-p <pw> Append the four or six byte password PW to the packet.
A password is only required for a few adapter types.
The password may be specified in ethernet hex format
or dotted decimal (Internet address)
-p 00:22:44:66:88:aa
-p 192.168.1.1

Passando -b cosa cambia ? A me il PC si sveglia anche senza -b.
Usa l'indirizzo MAC broadcast invece che di quello unicast o l'indirizzo IP broadcast ?

gnommo
29-12-2010, 14:20
Ho qualche dubbio su etherwake:

usage: ether-wake [-i <ifname>] [-p aa:bb:cc:dd[:ee:ff]] 00:11:22:33:44:55

This program generates and transmits a Wake-On-LAN (WOL)
"Magic Packet", used for restarting machines that have been
soft-powered-down (ACPI D3-warm state).
It currently generates the standard AMD Magic Packet format, with
an optional password appended.

The single required parameter is the Ethernet MAC (station) address
of the machine to wake.
The MAC address may be found with the 'arp' program while the target
machine is awake.

Options:
-b Send wake-up packet to the broadcast address.
-D Increase the debug level.
-i ifname Use interface IFNAME instead of the default 'eth0'.
-p <pw> Append the four or six byte password PW to the packet.
A password is only required for a few adapter types.
The password may be specified in ethernet hex format
or dotted decimal (Internet address)
-p 00:22:44:66:88:aa
-p 192.168.1.1

Passando -b cosa cambia ? A me il PC si sveglia anche senza -b.
Usa l'indirizzo MAC broadcast invece che di quello unicast o l'indirizzo IP broadcast ?

Per completezza dovrebbe essere così

if ($ip== broadcast ip)
etherwake -b $mac
else
etherwake -p $ip $mac

edit: opss :D brodcast intende l'indirizzo broadcast ethernet e non l'indirizzo broadcast ip :D

cionci
29-12-2010, 14:23
Sicuro ? -p mi sembra che serva solo per specificare una password.

edit: ma così non dovrebbe svegliare tutti i PC con WOL sulla rete ?

gnommo
29-12-2010, 14:23
Quindi questa deve essere la riga corretta.
etherwake -p $ip $mac

gnommo
29-12-2010, 14:25
Sicuro ? -p mi sembra che serva solo per specificare una password.



appunto come spiegato nell'help per garantire la massima compatibilità, qualche pc potrebbe richiedere questo parametro aggiuntivo

cionci
29-12-2010, 14:32
http://en.wikipedia.org/wiki/Wake-on-LAN#Security_Issues

Qui non sembra che la password debba corrispondere all'IP. Anzi, sembra che possa essere specificata a piacere.

gnommo
29-12-2010, 14:43
vabbè mettiamo solo
etherwake $mac
altrimenti ora si accendono tutti i pc.

gnommo
29-12-2010, 14:46
vabbè mettiamo solo
etherwake $mac
altrimenti ora si accendono tutti i pc.

anzi no, mi sono letto i sorgenti vabbene così come è :D
basta poco per mettermi in confusione :stordita:

cionci
30-12-2010, 19:17
C'era un problema in build.sh, gli archivi non venivano creati con la versione di build corretta. Lo sto fixando.

Alpine
31-12-2010, 11:49
sto usando una versione di busybox da me compilata copiata su tmp:

sono riuscito a configurare correttamente dropbear (che secondo me funziona meglio di utelnetd), in ogni caso non riesco a montare il file bin:

/tmp/bin/mount -t exit3 /harddisk/usb_1/FLASH_1_1/moduli_hack/mod_image.bin /tmp/mountpath
mount: mounting /dev/loop0 on /tmp/mountpath failed: No such device

ho anche spostato la dir /dev su ramfs per renderla scrivibile, un ipotesi è che il modulo kernel non venga correttamente caricato all'avvio :

insmod: cannot insert `ext3.ko': Success (2): Success

ps: ne approfitto per farvi gli auguri di un buon 2011

cionci
31-12-2010, 11:52
Per montarlo devi fare così:
/tmp/bin/mount -t ext3 /harddisk/usb_1/FLASH_1_1/moduli_hack/mod_image.bin /tmp/mountpath -o loop
Per vedere se te lo carica dai il comando dmesg

gnommo
31-12-2010, 14:02
sto usando una versione di busybox da me compilata copiata su tmp:

sono riuscito a configurare correttamente dropbear (che secondo me funziona meglio di utelnetd), in ogni caso non riesco a montare il file bin:

/tmp/bin/mount -t exit3 /harddisk/usb_1/FLASH_1_1/moduli_hack/mod_image.bin /tmp/mountpath
mount: mounting /dev/loop0 on /tmp/mountpath failed: No such device

ho anche spostato la dir /dev su ramfs per renderla scrivibile, un ipotesi è che il modulo kernel non venga correttamente caricato all'avvio :

insmod: cannot insert `ext3.ko': Success (2): Success

ps: ne approfitto per farvi gli auguri di un buon 2011
Per insmod dai dmesg -n 8 prima di dare l'insmod, poi dopo l'insmod dai dmesg e vedi quali sono le dipendenze non soddisfatte dal modulo ext3.
Il kernel è compilato con il supporto per i loop device, si?

Alpine
31-12-2010, 16:05
ok bin montato con successo, avevo compilato il modulo ext3.ko con l'opzione POSIX_ACL che non è presente sul kernel del router.

ho potuto quindi testare il funzionamento dello script /bin/router_detect

grazie del supporto, per il porting ne parliamo il prossimo anno...

Auguri bye bye

cionci
31-12-2010, 16:17
Alpine, io ti consiglio di provare a far riconoscere il tuo router come DGN2200 da router_detect (togli tutto dalla seconda riga in poi e ci metti echo "DGN2200"). Secondo me ti parte tutto. L'unico problema è la tua libreria che è basata su uClibc 0.9.27, ma intanto ti consiglio di provare. Se non rilevi altri problemi puoi andare avanti anche così.
A quel punto da shell puoi tranquillamente lanciare boot.sh, seguito dal percorso di boot.sh stesso.

Ad esempio, se boot.sh si trova in /tmp/mod/modfs devi lanciare:

/tmp/mod/modfs/boot.sh /tmp/mod/modfs

VICIUS
01-01-2011, 17:25
Oggi preso dalla noia ho fatto questo: http://www.pigaz.org/snr.php
È tutto html + css quindi non servono librerie per generare grafici. Se volessi aggiungerlo all'interfaccia di modfs da dove dovrei partire? Pensavo che ci starebbe bene in "Diagnostic".

gnommo
01-01-2011, 18:00
Oggi preso dalla noia ho fatto questo: http://www.pigaz.org/snr.php
È tutto html + css quindi non servono librerie per generare grafici. Se volessi aggiungerlo all'interfaccia di modfs da dove dovrei partire? Pensavo che ci starebbe bene in "Diagnostic".

Devi prendere uno dei pacchetti di esempio, come base per partire, nello specifico

pack_own_iface (http://modfs.svn.sourceforge.net/viewvc/modfs/trunk/packages/sample/pack_own_iface/?view=tar)

Modificare nella cartella scripts il file package.descriptor sostituendo all'interno dove compare il nome pack_own_iface con il nome del tuo pacchetto, poi nella dir www, devi modificare il file main.php inserendo all'interno del tag form il tuo html e css .
Poi ovviamente dovrai inserire anche il codice php per recuperare i valori che ti servono per il grafico.
una volta finito crei un tar.gz delle dir del pacchetto e lo installi nel router.

cionci
01-01-2011, 18:57
Ottimo.
Per aggiungerlo devi partire dai pacchetti di esempio, in questo caso da own_iface: https://sourceforge.net/projects/modfs/files/distribution/modfs-0.2_beta/included_packages/sample/

Magari lo metto nel primo post.
Si differenziano in base a come si vanno ad integrare con l'interfaccia web.
Nella GUI del router ci sono categorie (Administration, ad esempio) e sotto categorie (Main, Package Manager).

Un pacchetto può andare ad integrare la GUI in due modi:
- si possono aggiungere dei settaggi alla sotto categoria Main (vedere Administration, con i settaggi dei pacchetti telnet, ssh e https)
- si può aggiungere un sotto categoria propria (Package Manager)

Ci sono tre pacchetti di esempio.
Per tutti e tre: bisogna cambiare scripts/package.descriptor per identificare il proprio pacchetto. In scripts/ si possono cambiare anche gli script per l'installazione, la disinstallazione, l'avvio e l'arresto del pacchetto. Se non bisogna fare niente di particolare (far partire un servizio si possono anche lasciare vuoti.

pack_own_iface (interfaccia con sotto categoria propria, come Package Manager)

L'interfaccia va in www/main.php (c'è lo script che genera il popup di risposta e due bottoni di esempio) e l'help in www/help.php.
www/process.php contiene invece il codice che si occupa di processare le richieste che arrivano da main.php.

Un pacchetto completo di esempio potrebbe essere minidlna.

pack_main_iface (settaggi aggiuntivi per sotto categoria Main)

L'interfaccia va in www/fieldset.php, www/validator contiene uno script jquery per validare i dati di input, www/help.php

Un pacchetto di questo tipo potrebbe essere telnet

pack_no_iface (senza interfaccia web)

Qui gli unici file utilizzati sono quelli relativi alla directory scripts/. Poi chiaramente ogni pacchetto potrebbe aggiungere file significativi in etc/ o bin/ o db/.

Un esempio di questo pacchetto potrebbe essere swap (per il DGN2200).

VICIUS
01-01-2011, 19:21
Una domanda. Se ad esempio metto un file png nella cartella www come faccio ad accedervi tramite http. Qual è l'indirizzo preciso da usare?

gnommo
01-01-2011, 19:29
Una domanda. Se ad esempio metto un file png nella cartella www come faccio ad accedervi tramite http. Qual è l'indirizzo preciso da usare?

Il percorso deve essere costruito dinamicamente da php
Ci vuole una riga come questa:
<img src= <?php echo "\"".$router."/".$row['menu']."/".$row['submenu']."/tuofile.png\"" ?>

VICIUS
01-01-2011, 19:47
Finito :D

Vi allego il pacchetto così potete provarlo anche voi e vedere se funziona anche sul dgn3500. Per ora ho lasciato solo il 2200 tra quelli della lista.

cionci
01-01-2011, 19:49
Ti basi sul comando adsl info etc etc, no ? Allora non funziona sul 3500.
Più tardi lo provo ;)

VICIUS
01-01-2011, 19:56
Esatto piglia tutto quanto da li. Tra l'altro ero partito con preg_match_all ma a quanto pare non va sul router. C'è php compilato senza regex?

cionci
01-01-2011, 20:02
Esatto piglia tutto quanto da li. Tra l'altro ero partito con preg_match_all ma a quanto pare non va sul router. C'è php compilato senza regex?
Sì... Abbiamo limitato al massimo le dimensioni dell'eseguibile. Inoltre è PHP 4.

gnommo
01-01-2011, 20:13
Sì... Abbiamo limitato al massimo le dimensioni dell'eseguibile. Inoltre è PHP 4.

:stordita: ma in wol ho usato preg_split, non fa parte di regex?

cionci
01-01-2011, 20:25
:stordita: ma in wol ho usato preg_split, non fa parte di regex?
Boh :D

gnommo
01-01-2011, 20:33
Volevo provare sul dgn3500, ma come al solito quando si parla di adsl diventa tutto problematico, purtroppo non ho ancora trovato un metodo per cacciare l'snr in maniera veloce, l'unico comando ha un delay di 2-3 sec o più quindi inutilizzabile per fare grafici.

gnommo
01-01-2011, 20:39
Un'output del vostro
adsl info --SNR
e di
adsl info --SNR | tail -256 | cut -f 3
?

cionci
01-01-2011, 20:44
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
46.8750
47.6250
48.1250
48.3125
48.8125
49.1250
49.8125
50.1875
50.6250
50.8750
51.3125
51.0000
51.1250
50.5000
50.3125
50.5625
51.1250
50.1875
51.0625
50.1875
49.7500
49.8750
50.0625
49.2500
49.1250
49.4375
49.0625
48.5625
48.3750
48.5625
48.4375
51.5000
48.1250
47.8125
47.5000
47.3125
47.6250
47.7500
47.3750
46.9375
47.0000
47.0000
46.9375
47.1250
47.5000
47.1250
47.0000
46.6875
46.8125
46.5000
46.5625
46.3750
45.8750
45.7500
45.7500
45.3750
45.3125
44.6875
45.0000
45.3125
44.6875
44.4375
44.7500
44.6250
44.6250
44.2500
44.1875
44.5000
44.4375
44.0625
44.0000
44.2500
44.6875
44.1875
43.9375
43.1875
43.3750
43.2500
43.1875
43.1250
42.8750
43.2500
42.5625
42.4375
42.6250
42.0000
41.6875
42.0625
41.9375
41.0000
32.4375
39.3750
31.0000
38.5625
37.8750
39.7500
38.8750
40.0000
40.8125
40.6875
5.0625
40.1250
40.5000
40.2500
40.5000
39.6875
40.0625
35.6875
39.8750
39.3125
38.8125
36.1250
38.1875
32.5000
5.0625
31.1250
33.1250
29.8750
25.8750
5.0625
19.6875
27.0000
30.4375
32.6250
33.8750
35.0000
35.5000
35.3125
32.4375
33.6250
25.1875
35.1250
36.3125
37.5000
35.3750
37.1250
32.9375
36.8750
35.5625
35.7500
27.1875
31.7500
21.6875
28.0000
33.8750
35.7500
35.5000
35.7500
35.6875
34.7500
35.1250
32.3750
35.1250
30.4375
35.3125
30.1875
36.6250
36.7500
37.1875
35.0000
36.7500
26.3125
36.4375
36.3125
34.1250
23.8750
31.1250
33.5625
35.3125
33.4375
34.2500
35.4375
35.7500
36.1875
35.8125
35.0625
30.8125
35.5000
33.0625
35.6250
34.6250
35.9375
33.8125
35.4375
27.0625
35.0000
33.5625
34.6875
33.0000
32.6875
24.1875
29.5625
32.6250
32.0000
25.7500
26.2500
32.1250
32.9375
30.1875
26.2500
31.6875
28.8750
32.5000
26.8750
33.0625
31.6875
33.7500
33.1250
33.3125
33.3750
32.5625
24.1875
31.8750
28.8750
31.7500
32.2500
32.5625
32.3125
32.3125
32.4375
32.0000
30.6875
0.0000

cionci
01-01-2011, 20:44
VICIUS...già che ci sei fai anche il grafico della bit allocation ;)

VICIUS
01-01-2011, 20:45
Un'output del vostro
adsl info --SNR
~ # adsl info --SNR
xdslctl.original: ADSL driver and PHY status
Status: Showtime
Retrain Reason: 0
Max: Upstream rate = 912 Kbps, Downstream rate = 8608 Kbps
Channel: INTR, Upstream rate = 480 Kbps, Downstream rate = 8128 Kbps

Tone number SNR
0 0.0000
1 0.0000
2 0.0000
3 0.0000
4 0.0000
5 0.0000
6 0.0000
7 0.0000
8 0.0000
9 0.0000
10 0.0000
11 0.0000
12 0.0000
13 0.0000
14 0.0000
15 0.0000
16 0.0000
17 0.0000
18 0.0000
19 0.0000
20 0.0000
21 0.0000
22 0.0000
23 0.0000
24 0.0000
25 0.0000
26 0.0000
27 0.0000
28 0.0000
29 0.0000
30 0.0000
31 0.0000
32 0.0000
33 23.9375
34 25.8125
35 27.2500
36 28.6250
37 29.6875
38 30.5625
39 32.1250
40 34.1875
41 36.0000
42 38.1250
43 39.8125
44 41.2500
45 41.1875
46 41.8750
47 41.3750
48 42.5625
49 43.2500
50 43.0000
51 43.9375
52 43.3750
53 43.4375
54 43.8750
55 44.0000
56 44.5625
57 44.5000
58 44.5000
59 44.1250
60 44.5625
61 44.6875
62 44.5625
63 45.0625
64 48.0000
65 45.0000
66 44.3125
67 44.6250
68 44.6250
69 44.2500
70 45.5625
71 44.1250
72 43.6250
73 44.5000
74 44.1250
75 45.1250
76 44.5625
77 44.0625
78 44.5625
79 45.2500
80 44.5000
81 44.1250
82 44.1250
83 43.5000
84 43.7500
85 43.3750
86 43.0000
87 43.4375
88 43.1250
89 43.8125
90 42.6250
91 43.4375
92 42.7500
93 42.9375
94 43.1250
95 43.3125
96 42.1250
97 43.1250
98 43.1250
99 42.0625
100 42.7500
101 41.9375
102 42.0000
103 41.9375
104 41.9375
105 42.0625
106 41.6875
107 41.7500
108 41.6250
109 41.6875
110 42.0000
111 42.1250
112 42.0000
113 41.4375
114 41.2500
115 41.1250
116 40.9375
117 40.6875
118 41.1250
119 40.7500
120 40.9375
121 40.7500
122 40.9375
123 40.5000
124 40.4375
125 40.6250
126 39.6250
127 40.5625
128 40.1250
129 40.0625
130 40.0625
131 40.1250
132 39.3125
133 40.3125
134 39.5625
135 39.8750
136 40.1875
137 39.3125
138 39.9375
139 39.5000
140 40.1250
141 39.9375
142 39.4375
143 40.1250
144 40.1875
145 38.9375
146 40.0625
147 40.0625
148 39.5625
149 39.5625
150 39.2500
151 39.6875
152 39.4375
153 39.3750
154 38.8125
155 39.2500
156 39.0625
157 39.3125
158 39.5625
159 38.7500
160 39.3750
161 38.8125
162 39.0000
163 39.0000
164 38.8750
165 38.8125
166 38.6875
167 38.8750
168 38.5625
169 38.8750
170 38.5000
171 39.2500
172 38.9375
173 39.3750
174 38.7500
175 38.8750
176 38.5000
177 39.0625
178 38.9375
179 38.2500
180 38.1875
181 38.4375
182 37.9375
183 38.8750
184 38.2500
185 38.5625
186 38.6250
187 38.7500
188 38.0000
189 38.6250
190 38.3750
191 38.7500
192 38.9375
193 38.1875
194 38.0625
195 38.1250
196 37.4375
197 37.8750
198 38.0625
199 38.0625
200 37.5000
201 36.8750
202 37.7500
203 36.8750
204 37.5625
205 37.5000
206 37.4375
207 36.8750
208 37.3125
209 37.0625
210 37.3125
211 36.7500
212 36.8750
213 36.9375
214 36.3125
215 36.0625
216 36.4375
217 36.5625
218 36.6250
219 36.2500
220 35.9375
221 36.0000
222 36.0000
223 36.2500
224 35.7500
225 35.7500
226 35.5625
227 35.4375
228 35.5625
229 35.6250
230 35.5000
231 34.7500
232 33.3125
233 35.3750
234 35.1250
235 34.8750
236 34.8125
237 34.9375
238 34.6250
239 35.0000
240 34.4375
241 34.3750
242 34.0625
243 34.0625
244 33.9375
245 33.3750
246 33.0625
247 32.6875
248 32.5000
249 31.6875
250 31.9375
251 31.6250
252 32.0000
253 31.6250
254 31.4375
255 0.0000

e di
adsl info --SNR | tail -256 | cut -f 3
?
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
23.9375
25.8125
27.2500
28.6250
29.6875
30.5625
32.1250
34.1875
36.0000
38.1250
39.8125
41.2500
41.1875
41.8750
41.3750
42.5625
43.2500
43.0000
43.9375
43.3750
43.4375
43.8750
44.0000
44.5625
44.5000
44.5000
44.1250
44.5625
44.6875
44.5625
45.0625
48.0000
45.0000
44.3125
44.6250
44.6250
44.2500
45.5625
44.1250
43.6250
44.5000
44.1250
45.1250
44.5625
44.0625
44.5625
45.2500
44.5000
44.1250
44.1250
43.5000
43.7500
43.3750
43.0000
43.4375
43.1250
43.8125
42.6250
43.4375
42.7500
42.9375
43.1250
43.3125
42.1250
43.1250
43.1250
42.0625
42.7500
41.9375
42.0000
41.9375
41.9375
42.0625
41.6875
41.7500
41.6250
41.6875
42.0000
42.1250
42.0000
41.4375
41.2500
41.1250
40.9375
40.6875
41.1250
40.7500
40.9375
40.7500
40.9375
40.5000
40.4375
40.6250
39.6250
40.5625
40.1250
40.0625
40.0625
40.1250
39.3125
40.3125
39.5625
39.8750
40.1875
39.3125
39.9375
39.5000
40.1250
39.9375
39.4375
40.1250
40.1875
38.9375
40.0625
40.0625
39.5625
39.5625
39.2500
39.6875
39.4375
39.3750
38.8125
39.2500
39.0625
39.3125
39.5625
38.7500
39.3750
38.8125
39.0000
39.0000
38.8750
38.8125
38.6875
38.8750
38.5625
38.8750
38.5000
39.2500
38.9375
39.3750
38.7500
38.8750
38.5000
39.0625
38.9375
38.2500
38.1875
38.4375
37.9375
38.8750
38.2500
38.5625
38.6250
38.7500
38.0000
38.6250
38.3750
38.7500
38.9375
38.1875
38.0625
38.1250
37.4375
37.8750
38.0625
38.0625
37.5000
36.8750
37.7500
36.8750
37.5625
37.5000
37.4375
36.8750
37.3125
37.0625
37.3125
36.7500
36.8750
36.9375
36.3125
36.0625
36.4375
36.5625
36.6250
36.2500
35.9375
36.0000
36.0000
36.2500
35.7500
35.7500
35.5625
35.4375
35.5625
35.6250
35.5000
34.7500
33.3125
35.3750
35.1250
34.8750
34.8125
34.9375
34.6250
35.0000
34.4375
34.3750
34.0625
34.0625
33.9375
33.3750
33.0625
32.6875
32.5000
31.6875
31.9375
31.6250
32.0000
31.6250
31.4375
0.0000

VICIUS
01-01-2011, 21:16
VICIUS...già che ci sei fai anche il grafico della bit allocation ;)
Fatto. L'upload in grigio mette un po' di tristezza ma non mi andava di cercare il colore giusto con gimp :D

cionci
01-01-2011, 21:34
Nono, va bene, è molto bello.

Mi funzionano entrambi. E' una soddisfazione :D

Che ne dici di metterli nello stesso pacchetto ? Magari bisogna trovargli un nome adatto...

Ne tiro qualcuno:
Carrier Info ? Carrier Graphs ? SNR/Bits Graphs ? Boh...

Poi mi piacerebbe fare anche un pacchetto per monitorare il SNR Margin, portante e attenuazione per lunghi periodi, la cosa potrebbe essere molto interessante. Quindi bisogna cercare di differenziarli bene.

Edit: Tone Graphs ?

cionci
02-01-2011, 15:06
C'è un altro problemino: l'ADSL2+ ha 512 toni, quindi va cambiato il grafico in caso di ADSL 2+.

VICIUS
02-01-2011, 16:57
C'è un altro problemino: l'ADSL2+ ha 512 toni, quindi va cambiato il grafico in caso di ADSL 2+.

Facendo adsl info --show c'è una riga di nome Mode. Che valore mostra quando è in adsl2+?

VICIUS
02-01-2011, 17:05
Per ora ho assunto che ci sia "ADSL2+". Dovrebbe funzionare. Questa è la versione con tutti e due i grafici nello stesso pacchetto. Dimmi se funziona.

cionci
02-01-2011, 17:34
Funziona. Per la modalità...ti basta vedere quanti dati hai nel risultato di adsl info ;)

In ADSL 2+ ritorna anche valori negativi nel SNR, ma io in quel caso li riporterei a zero. Sono toni su cui suppongo si stia per effettuare un bitswap.
Inoltre, sempre in ADSL2+, anche il SNR dell'upstream è valorizzato
Poi centrerei in orizzontale i grafici, che ne dici ?

Se ti va bene, questo potrebbe essere l'help:

<p><b>What is a tone ?</b></p>
<p>Adsl protocols make a partition of the frequency spectrum. Each element of this partition is called tone. A tone is 4.3125 Mhz wide.</p>
<hr>
<p><b>SNR Graph</b></p>
<p>Shows Signal to Noise Ratio of each single tone.</p>
<hr>
<p><b>Bit Allocation Graph</b></p>
<p>Adsl protocols partition their carrier into many small parts. Each tone receives a small part of the carrier in proportion to SNR of the tone. Graph shows bit allocated in each upstream (grey) and downstream (green) tone.</p>
<hr>

VICIUS
03-01-2011, 06:31
Funziona. Per la modalità...ti basta vedere quanti dati hai nel risultato di adsl info ;)

In ADSL 2+ ritorna anche valori negativi nel SNR, ma io in quel caso li riporterei a zero. Sono toni su cui suppongo si stia per effettuare un bitswap.
Inoltre, sempre in ADSL2+, anche il SNR dell'upstream è valorizzato
Poi centrerei in orizzontale i grafici, che ne dici ?
I toni con snr negativo potrei evidenziarli con una barra rossa. Può essere utile sapere se ce ne sono molti sulla linea in un certo momento? Altrimenti metto un <= e passa la paura.

L'upload è compreso tra i primi 32 valori come in adsl1?

Se ti va bene, questo potrebbe essere l'help:

<p><b>What is a tone ?</b></p>
<p>Adsl protocols make a partition of the frequency spectrum. Each element of this partition is called tone. A tone is 4.3125 Mhz wide.</p>
<hr>
<p><b>SNR Graph</b></p>
<p>Shows Signal to Noise Ratio of each single tone.</p>
<hr>
<p><b>Bit Allocation Graph</b></p>
<p>Adsl protocols partition their carrier into many small parts. Each tone receives a small part of the carrier in proportion to SNR of the tone. Graph shows bit allocated in each upstream (grey) and downstream (green) tone.</p>
<hr>

Grazie. Non sapevo proprio cosa scrivere :D

gnommo
03-01-2011, 07:57
L'upload è compreso tra i primi 32 valori come in adsl1?

toni 6-31 :D
Lo sto adattando al dgn3500.

cionci
03-01-2011, 08:35
I toni con snr negativo potrei evidenziarli con una barra rossa. Può essere utile sapere se ce ne sono molti sulla linea in un certo momento? Altrimenti metto un <= e passa la paura.
Boh, così ad occhio direi di sì.
Però dovresti mettere le scale automatiche sui grafici.

gnommo
03-01-2011, 15:14
Plausibile il mio grafico?
http://img840.imageshack.us/img840/847/modfsscreen8.th.png (http://img840.imageshack.us/img840/847/modfsscreen8.png)


Chiedo se sono plausibili, perchè io non ho valori diretti ma devo calcolarli.

cionci
03-01-2011, 15:48
Plausibile il mio grafico?
http://img840.imageshack.us/img840/847/modfsscreen8.th.png (http://img840.imageshack.us/img840/847/modfsscreen8.png)


Chiedo se sono plausibili, perchè io non ho valori diretti ma devo calcolarli.
Ci dovremmo essere. Anzi, ottima linea.

gnommo
03-01-2011, 16:32
Con l'allocazione dei bit devo aver combinato un casotto
http://img406.imageshack.us/img406/4435/modfsscreen9.th.png (http://img406.imageshack.us/img406/4435/modfsscreen9.png)


che ho sbagliato?

VICIUS
03-01-2011, 19:12
Grafici centrati. Upload colorato diversamente anche nel snr e valori negativi troncati a zero. C'è però un piccolo problema. Ora i grafici sembrano partire dopo l'help :confused:

Edit: Come non detto. Era un problema con il float: right del Help. Ho settato l'height e risolto tutto. Allego l'ultima versione.

VICIUS
03-01-2011, 19:16
Con l'allocazione dei bit devo aver combinato un casotto
http://img406.imageshack.us/img406/4435/modfsscreen9.th.png (http://img406.imageshack.us/img406/4435/modfsscreen9.png)


che ho sbagliato?
È strano che mostri così tante barre scure. Dovrebbero essere solo quelle ai margini. Controlla l'html. Dovresti avere un sacco di div con class="bar first" o class="bar last".

gnommo
04-01-2011, 09:23
Ci dovremmo essere. Anzi, ottima linea.

Mi faccio gli screenshot della linea alice, visto che mi accingo a cambiare operatore :D
Non essendo coperto direttamente da nessun altro faccio un bel salto nel buio, speriamo che l'adsl sia la stessa.
Teletu,infostrada, tiscali. Mi sa che ora vedrò veramente come si comporta il dgn3500.
Devo solo scegliere con chi farmi più (o meno) male :D

cionci
04-01-2011, 09:32
Se non sei coperto direttamente e non ci sono altri DSLAM, la linea sarà praticamente identica ;)

VICIUS
06-01-2011, 07:44
Ho separato il codice che disegna i grafici da quello che preleva i dati e fatto un po' di ordine. Ora dovrebbe essere molto più facile adattarlo anche al 3500 ed in futuro ad altri router. Basta scriversi le funzioni che calcolano i dati da disegnare e aggiungerle una chiamata agli switch delle funzioni get_snr_values/get_bitallocation_values.

gnommo
06-01-2011, 08:39
Ho separato il codice che disegna i grafici da quello che preleva i dati e fatto un po' di ordine. Ora dovrebbe essere molto più facile adattarlo anche al 3500 ed in futuro ad altri router. Basta scriversi le funzioni che calcolano i dati da disegnare e aggiungerle una chiamata agli switch delle funzioni get_snr_values/get_bitallocation_values.

Grazie :D

cionci
10-01-2011, 11:34
A questo non avevo pensato: http://www.networkedmediatank.com/wiki/index.php/Openvpn

Magari senza generare certificati, ma potremmo generare un passfile da condividere.

vs0587
12-01-2011, 09:59
Riguardo al client torrent, non si riesce ad estrapolare nulla da qui?
http://www.belkin.com/it/support/article/?lid=it&pid=F7D4301nt&aid=15124&scid=0

cionci
12-01-2011, 13:43
Ho provato ctorrent, ma è molto lento :(

vs0587
12-01-2011, 14:20
Ho provato ctorrent, ma è molto lento :(

mentre per utorrent non c'è speranza? :mc:

cionci
12-01-2011, 14:22
mentre per utorrent non c'è speranza? :mc:
utorrent non son riuscito a compilarlo :stordita: Ho qualche problemino di compatibilità con il mio compilatore.

VICIUS
12-01-2011, 14:24
mentre per utorrent non c'è speranza? :mc:

E' un programma closed source. Senza sorgenti è impossibile.

vs0587
12-01-2011, 14:24
utorrent non son riuscito a compilarlo :stordita: Ho qualche problemino di compatibilità con il mio compilatore.

Ah.. Vorrei aiutarti ma non saprei come fare! ti ho proposto uorrent perchè è molto molto leggero.......

vs0587
12-01-2011, 14:25
E' un programma closed source. Senza sorgenti è impossibile.

e questo lo conoscevate??
http://www.trackback.it/articolo/halite-alternativa-completamente-open-source-a-utorrent/1798/

Gippe
12-01-2011, 14:25
secondo voi è possibile caricare un Bouncer IRC? (es. http://www.psybnc.at/)

p.s: chiedo solo se è fattibile, non chiedo il pacchetto bello e pronto eh :D

npole
12-01-2011, 14:28
secondo voi è possibile caricare un Bouncer IRC? (es. http://www.psybnc.at/)

p.s: chiedo solo se è fattibile, non chiedo il pacchetto bello e pronto eh :D

Lo compili a tradimento su quello di un amico per evitare le kline che ti pigli? :D

VICIUS
12-01-2011, 14:50
e questo lo conoscevate??
http://www.trackback.it/articolo/halite-alternativa-completamente-open-source-a-utorrent/1798/

Usa libtorrent come libreria per gestire il download e non quello di utorrent.

Gippe
12-01-2011, 14:57
Lo compili a tradimento su quello di un amico per evitare le kline che ti pigli? :D

hihi non sono così lamer :p bella idea però :D

no semplicemente è di oggi la notizia che han chiuso il famoso server "irc.tin.it" e ripensando alle millemila ore passate su IRC (ahhhh bei tempi... altro che FB :D ) mi son chiesto chissà se sul DGN2200 funzionerebbe.. magari provo!

ora siccome son parecchio (e aiutatemi a dire parecchio) niubbo ma anche parecchio smanettone e all'epoca lo compilai su una shell "a noleggio" senza troppi problemi mi garberebbe provarci ma allo stesso tempo non vorrei fare casini :p

domanda: dalla busybox posso tutto al più fare casini su Modfs ma il router non lo vado a toccare giusto? :confused:

vs0587
12-01-2011, 15:02
Usa libtorrent come libreria per gestire il download e non quello di utorrent.

Per il fatto di essere open source, non di essere uguale a utorrent.. :rolleyes:

VICIUS
12-01-2011, 15:03
domanda: dalla busybox posso tutto al più fare casini su Modfs ma il router non lo vado a toccare giusto? :confused:

Esatto. La root con il filesystem del router è montata in sola lettura quindi non puoi fare praticamente niente li.

Gippe
12-01-2011, 15:12
Esatto. La root con il filesystem del router è montata in sola lettura quindi non puoi fare praticamente niente li.

Perfetto! :D

primo problema però

edit: come non detto... son niubbo forte.

p.s: se sono OT ditemelo, non voglio inzozzarvi il thread ;)

VICIUS
12-01-2011, 15:21
Per il fatto di essere open source, non di essere uguale a utorrent.. :rolleyes:

Ah scusa non avevo capito. E' un programma che sembra legato ad un interfaccia grafica. La vedo veramente dura riuscire a portare tutto quanto sul'hardware del router. La ram già ora sul dgn2200 è praticamente piena :(

vs0587
12-01-2011, 15:23
Ah scusa non avevo capito. E' un programma che sembra legato ad un interfaccia grafica. La vedo veramente dura riuscire a portare tutto quanto sul'hardware del router. La ram già ora sul dgn2200 è praticamente piena :(

Che peccato, anche killando processi tipo wps&co...?

VICIUS
12-01-2011, 15:49
Che peccato, anche killando processi tipo wps&co...?

Si guadagna veramente poco. Serve molta più ram per pensare di mettere su un piccolo server grafico come X.

vs0587
12-01-2011, 15:51
Si guadagna veramente poco. Serve molta più ram per pensare di mettere su un piccolo server grafico come X.

Capito.. Mentre dal firmware del belkin play max, come ho linkato prima, che ce l'ha la parte torrent, non si riesce a "rubare" nulla?

cg48
12-01-2011, 16:21
A proposito del meter.htm (thread del dgn3500), ho provato a debuggare il file graph_wifi.cgi modificando in plot_data le righe seguenti:
var data=obj.content.split(/\s+|:/);
var ifsig=parseInt(data[5]);
var ifnoise=parseInt(data[6]);
con queste:
var data=obj.content.replace(":"," ").split(/\s+/);
if (data[0].length == 0) data.shift();
var ifsig=parseInt(data[3]);
var ifnoise=parseInt(data[4]);
In questo modo wifi.htm funziona sia con firefox che con IE.
Ma nel modfs era già stato corretto?

gnommo
12-01-2011, 16:29
A proposito del meter.htm (thread del dgn3500), ho provato a debuggare il file graph_wifi.cgi modificando in plot_data le righe seguenti:
var data=obj.content.split(/\s+|:/);
var ifsig=parseInt(data[5]);
var ifnoise=parseInt(data[6]);
con queste:
var data=obj.content.replace(":"," ").split(/\s+/);
if (data[0].length == 0) data.shift();
var ifsig=parseInt(data[3]);
var ifnoise=parseInt(data[4]);
In questo modo wifi.htm funziona sia con firefox che con IE.
Ma nel modfs era già stato corretto?

No, come detto sono un pecorone, feci questo grafico allora e poi non l'ho toccato più ed in seguito l'ho integrato direttamente in modfs.
Ora inserisco la tua fix nell'svn e creo un pacchetto nuovo con la correzione.
Grazie ancora, se vuoi unirti a noi nello sviluppo, sei il benvenuto :D

cionci
12-01-2011, 18:12
E' un programma closed source. Senza sorgenti è impossibile.
Vero, è rtorrent che mi crea problemi :D
La ram già ora sul dgn2200 è praticamente piena :(
Se non ricompilavo il kernel con il supporto allo swap non si riusciva nemmeno a far girare minidlna :eek:

cionci
13-01-2011, 13:28
In risposta a Stufo76...
Una chiavetta da 128 MB non basta perché sono 128 MB di Modfs + 32 MB per il file di swap.
OpenSSL l'ho già ricompilato. Ti impacchetto l'ultimo compilatore che uso e te lo passo.
Qui c'è qualcosa su come compilare OpenVPN: http://www.networkedmediatank.com/wiki/index.php/Openvpn
Ovviamente bisogna modificare la routing table per farlo funzionare.

Il sorgente di modfs lo trovi sul SVN sul sito ufficiale di Modfs: http://sourceforge.net/projects/modfs/files/

Stufo76
13-01-2011, 13:48
In risposta a Stufo76...
Una chiavetta da 128 MB non basta perché sono 128 MB di Modfs + 32 MB per il file di swap.
OpenSSL l'ho già ricompilato. Ti impacchetto l'ultimo compilatore che uso e te lo passo.
Qui c'è qualcosa su come compilare OpenVPN: http://www.networkedmediatank.com/wiki/index.php/Openvpn
Ovviamente bisogna modificare la routing table per farlo funzionare.

Il sorgente di modfs lo trovi sul SVN sul sito ufficiale di Modfs: http://sourceforge.net/projects/modfs/files/

Grazie mille!
Inizio a guardarci e nel frattempo vedo di prendermi il DGN2200.
P.S.: io di solito utilizzo l'autenticazione a chiave condivisa 2048bit, che ne pensate? secondo me è un livello di sicurezza sufficiente e la configurazione è semplice.

cionci
13-01-2011, 13:57
Perfetto è quello che pensavo, invece di stare a perdere tempo con i certificati.

Stufo76
13-01-2011, 14:05
Perfetto è quello che pensavo, invece di stare a perdere tempo con i certificati.

benebenebene :)
lzo c'è?

cionci
13-01-2011, 14:26
benebenebene :)
lzo c'è?
No, va compilato.
Leggiti le altre pagine della discussione, c'è scritto come creare i pacchetti. Per la questione IP come pensi di risolvere ? Mi immagino che tu voglia permette ai router di fare sia da client che da server, giusto ?

Questo è il compilatore: http://www.megaupload.com/?d=TVILAOG0

gnommo
13-01-2011, 14:28
benebenebene :)
lzo c'è?

Per quanto riguarda la chiavetta, su una da 128MB ci sta.
Attualmente io ce l'ho una chiavetta da 128MB.
Basta che ti tiri giu l'svn e dai come comando build.sh -s 64
e ti costruirà un binario da 64MB.
Quindi hai spazio anche per lo swap.

cionci
13-01-2011, 14:33
Tra l'altro il modulo TUN per il server bisogna compilarlo. Per compilarlo ti consiglio di costruire l'intero firmware dal sorgente Netgear (ti si blocca su fakeroot, ma non ti serve andare avanti), poi modifichi il file .config (anche con make menuconfig) e dai

make modbuild PROFILE=96358GW

A questo punto ti dovresti trovare il modulo con tun con estensione .ko da poter caricare dinamicamente.

Stufo76
13-01-2011, 14:34
No, va compilato.
Leggiti le altre pagine della discussione, c'è scritto come creare i pacchetti. Per la questione IP come pensi di risolvere ? Mi immagino che tu voglia permette ai router di fare sia da client che da server, giusto ?

Questo è il compilatore: http://www.megaupload.com/?d=TVILAOG0

Grazie, scarico e guardo.
La mia idea è di far operare il router da server e di far assegnare al client remoto sulla interfaccia virtuale tun un IP appartenente alla stessa subnet della mia lan. Poi mettendo in bridge l'interfaccia virtuale tun con le ethernet dovrei poter accedere alla mia lan da remoto... è una boiata?

Stufo76
13-01-2011, 14:42
Per quanto riguarda la chiavetta, su una da 128MB ci sta.
Attualmente io ce l'ho una chiavetta da 128MB.
Basta che ti tiri giu l'svn e dai come comando build.sh -s 64
e ti costruirà un binario da 64MB.
Quindi hai spazio anche per lo swap.

Fantastico :sofico:

cionci
13-01-2011, 14:45
Grazie, scarico e guardo.
La mia idea è di far operare il router da server e di far assegnare al client remoto sulla interfaccia virtuale tun un IP appartenente alla stessa subnet della mia lan. Poi mettendo in bridge l'interfaccia virtuale tun con le ethernet dovrei poter accedere alla mia lan da remoto... è una boiata?
Mmmmm...se la metti in bridge dovrebbe funzionare dal lato server.
Almeno in prima istanza dovrebbe essere una buona soluzione (brctl è il comando per il bridge). Secondo te riusciamo ad usare come sia come client che come server due router con Modfs ? Secondo me è un bel problema...
Avendo i due router fasce di indirizzo diverse però, modificando la routing table, si potrebbe instradare il traffico in modo corretto. Mi spiego:

Router A 192.168.0.x
Router B 192.168.1.x

Interfaccia tun0 Router A 10.0.0.1
Interfaccia tun0 Router B 10.0.0.2

Da aggiungere alla routing table del router A:

192.168.1.0/24 -> 10.0.0.1

Da aggiungere alla routing table del router A:

192.168.0.0/24 -> 10.0.0.2

Secondo voi funziona ?

Stufo76
13-01-2011, 14:55
Mmmmm...se la metti in bridge dovrebbe funzionare dal lato server.
Almeno in prima istanza dovrebbe essere una buona soluzione (brctl è il comando per il bridge). Secondo te riusciamo ad usare come sia come client che come server due router con Modfs ? Secondo me è un bel problema...
Avendo i due router fasce di indirizzo diverse però, modificando la routing table, si potrebbe instradare il traffico in modo corretto. Mi spiego:

Router A 192.168.0.x
Router B 192.168.1.x

Interfaccia tun0 Router A 10.0.0.1
Interfaccia tun0 Router B 10.0.0.2

Da aggiungere alla routing table del router A:

192.168.1.0/24 -> 10.0.0.1

Da aggiungere alla routing table del router A:

192.168.0.0/24 -> 10.0.0.2

Secondo voi funziona ?

cioè tu vorresti poter fare tramite openvpn il bridge di due lan attaccate a due router? dovrebbe funzionare, qui c'è un esempio concreto: http://ubuntuforums.org/showthread.php?t=752127

cionci
13-01-2011, 15:18
Sì, è esattamente quello che volevo fare.
Lì usano il bridge e in effetti dovrebbe funzionare anche mettendole direttamente in bridging, senza modificare la tabella di routing. E' da provare direi.

Stufo76
13-01-2011, 15:48
Questo è il compilatore: http://www.megaupload.com/?d=TVILAOG0

mi da qualche errore in fase di estrazione (ho fatto il classico tar xzf in una dir della mia home), non è che il file è corrotto?
facendo l'md5sum mi da:
d75bf2a8667a149fc922684b15f1c5b2 DGN2200_toolchain.tar.gz

cionci
13-01-2011, 16:23
mi da qualche errore in fase di estrazione (ho fatto il classico tar xzf in una dir della mia home), non è che il file è corrotto?
facendo l'md5sum mi da:
d75bf2a8667a149fc922684b15f1c5b2 DGN2200_toolchain.tar.gz
Prova questo: http://www.megaupload.com/?d=GQBKNBH9

Stufo76
13-01-2011, 17:16
Prova questo: http://www.megaupload.com/?d=GQBKNBH9

con questo nessun errore tnx

Stufo76
13-01-2011, 18:00
Tra l'altro il modulo TUN per il server bisogna compilarlo. Per compilarlo ti consiglio di costruire l'intero firmware dal sorgente Netgear (ti si blocca su fakeroot, ma non ti serve andare avanti), poi modifichi il file .config (anche con make menuconfig) e dai

make modbuild PROFILE=96358GW

A questo punto ti dovresti trovare il modulo con tun con estensione .ko da poter caricare dinamicamente.

mi sai dire dove trovo i sorgenti del firmware modificato per modfs?

cionci
13-01-2011, 19:24
mi sai dire dove trovo i sorgenti del firmware modificato per modfs?
In teoria non ti dovrebbe servire, tanto i comandi sono sulla busybox esterna, mentre tutti i file di configurazione sono identici a quelli del firmware ufficiale.

Avevo realizzato un sistema di build ridotto: http://www.mediafire.com/download.php?ieg5u5fv8k45k27 (il firmware non è aggiornato)
Ma non ti dovrebbe servire.

Stufo76
14-01-2011, 08:02
In teoria non ti dovrebbe servire, tanto i comandi sono sulla busybox esterna, mentre tutti i file di configurazione sono identici a quelli del firmware ufficiale.

Avevo realizzato un sistema di build ridotto: http://www.mediafire.com/download.php?ieg5u5fv8k45k27 (il firmware non è aggiornato)
Ma non ti dovrebbe servire.

uhm... allora mi sa che non ho capito :boh:
nel senso: metto la chiavetta esterna con modfs e accendo il router, ma se non modifico almeno in minima parte il firmware ufficiale, come gli dico di montare automaticamente l'immagine modfs esterna ed avviare quello che c'è? :boh:

cionci
14-01-2011, 10:28
uhm... allora mi sa che non ho capito :boh:
nel senso: metto la chiavetta esterna con modfs e accendo il router, ma se non modifico almeno in minima parte il firmware ufficiale, come gli dico di montare automaticamente l'immagine modfs esterna ed avviare quello che c'è? :boh:
Scarichi il firmware dal sito: http://sourceforge.net/projects/modfs/files/distribution/modfs-0.2_beta/FIRMWARE.DGN2200/download :fiufiu: :D

ketto
14-01-2011, 19:23
Ciao ragazzi,

sono piuttosto incuriosito da questo modfs..ho seguito le vostre istruzioni per l'aggiornamento del firmware e la procedura per avviare modfs..è andato tutto a buon fine..ho guadagnato anche qualcosa in banda modificando i valori che avete segnalato..ora però ho bisogno del vostro aiuto perchè sono incuriosito dal client torrent e vorrei provare ctorrent come qualcuno ha già fatto qualche post più indietro, però non conosco niente di linux..qualcuno con molta pazienza potrebbe istruirmi sull'utilizzo dei pacchetti?

grazie a tutti

cionci
15-01-2011, 07:47
ctorrent non è stato rilasciato sotto forma di pacchetto. Già con tre torrent rallenta veramente troppo il router.

cionci
15-01-2011, 10:39
VICIUS: stavo riguardando i grafici dei toni. Forse così sono un po' troppo piccoli come altezza, che ne dici ? Magari raddoppiare l'altezza aiuterebbe ?

cionci
15-01-2011, 10:42
VICIUS: stavo riguardando i grafici dei toni. Forse così sono un po' troppo piccoli per la lettura su schermi full hd, che ne dici ? Magari raddoppiare l'altezza aiuterebbe ?

gnommo
15-01-2011, 11:04
Forse così sono un po' troppo piccoli per la lettura su schermi full hd, che ne dici ?

Confermo :D , lo spazio all'interno della pagina c'è.

Avete qualche consiglio per me per il bit allocation? Io i dati li prendo da un file in proc, solo questo file fa l'output dei valori all'infinito. Ho risolto filtrando con head e tail.
Solo che alcune volte non fa l'output per un pò di tempo con la conseguenza che accedere alla pagina del grafico ha un delay di qualche secondo e comunque il grafico dei bit è vuoto.
Una costruzione del grafico tramite ajax a me gioverebbe perchè l'accesso alla pagina sarebbe veloce, la ricezione dei dati del grafico avverrebbe secondo la disponibilità dei dati e riceverebbe l'aggiornamento ogni tot sec.

cionci
15-01-2011, 11:09
Bel problema e se ogni minuto prendessi l'output del file con un job cron ? La cosa sarebbe un po' costosa, ma mi sembra che tu abbia gli stessi problemi anche per i dati relativi al pacchetto adslinfo. In questo modo risolveresti il problema alla base.

VICIUS
15-01-2011, 11:26
Doppio:
http://img535.imageshack.us/img535/8305/grafico2c.png

Un po' meno:
http://img403.imageshack.us/img403/254/grafico3.png

Io preferisco l'ultimo. Con altezza doppia sembra sproporzionato.

VICIUS
15-01-2011, 11:28
Bel problema e se ogni minuto prendessi l'output del file con un job cron ? La cosa sarebbe un po' costosa, ma mi sembra che tu abbia gli stessi problemi anche per i dati relativi al pacchetto adslinfo. In questo modo risolveresti il problema alla base.

Si potrebbe fare al boot e poi aggiornamenti tramite cron ogni 10/20 minuti. Dubito che i grafici cambino da un minuto all'altro.

Stufo76
15-01-2011, 17:18
Per quanto riguarda la chiavetta, su una da 128MB ci sta.
Attualmente io ce l'ho una chiavetta da 128MB.
Basta che ti tiri giu l'svn e dai come comando build.sh -s 64
e ti costruirà un binario da 64MB.
Quindi hai spazio anche per lo swap.

Stavo provando a compilare ma ho qualche problema con le dipendenze (uso distro debian lenny). Nel frattempo che risolvo, saresti così gentile da passarmi il binario da 64mb? Grazie mille.

cionci
15-01-2011, 17:28
Concordo con la tua osservazione sulla dimensione VICIUS ;)
Per l'aggiornamento...il problema è che dopo bisognerebbe comunque gestire il caso del riallineamento della portante.
Stavo provando a compilare ma ho qualche problema con le dipendenze (uso distro debian lenny). Nel frattempo che risolvo, saresti così gentile da passarmi il binario da 64mb? Grazie mille.
Fai il checkout sul server SVN di sourceforge, poi puoi fare anche tu la build. Nota che non viene compilato alcun sorgente. Sono già binari.

Basta dare

sudo build.sh -s 64

cionci
16-01-2011, 08:54
Stufo76: hai risolto il problemino di dipendenze ?
Comunque per ora non capisco quale differenza ci possa essere. Ora faccio un nuovo checkout e provo.

cionci
16-01-2011, 09:26
Ho verificato gli md5 della directory lib e di quella bin. Non è che hai fatto il checkout proprio nel momento in cui stavo aggiornando le librerie ? Prova a rifare il checkout.

cionci
16-01-2011, 09:47
Il problema si presenta anche a me, la cosa è un po' assurda, visto che le librerie sono esattamente identiche a quelle che ho sull'altra immagine.

cionci
16-01-2011, 09:53
Il problema l'ho trovato, nell'immagine ci sono meno librerie...ma perché ? Visto che quelle sul repository sono corrette :eek:

cionci
16-01-2011, 10:02
E' il comando rsync che non copia tutti i file :mbe:
Lo usavo perché è il modo più semplice per copiare tutti i file in modo ricorsivo saltando le directory .svn. Allora ricorrerò ad un tar...

Stufo76
16-01-2011, 11:01
cionci ho risolto con le dipendenze (mancava sqlite3 e un altro po' di roba...) e ho appena estratto la revision 136 ma non ho ancora provato... è quella giusta?
nel frattempo volevo ricompilare il firmware così da abilitare il supporto per il tun e cominciare a studiare il modo d'infilarci dentro openvpn, però sto incontrando i soliti problemi di dipendenze... che @@ :muro: quasi quasi metto su una fc6 giusto per l'occasione che faccio prima :D

cionci
16-01-2011, 11:09
Ho appena risolto il problema di build.sh ed aggiornato il SVN. Se tutto gira vai tranquillo.

Dimmi che errori hai. Fai così, estrai la toolchain in /opt/toolchains/
Da terminale esegui setup.sh che si trova nella directory che hai scompattato.
Ora dovrebbe funzionare tranquillamente tutto.

Dalla root del sorgente del firmware:

make PROFILE=96358GW

Tanto ti si blocca sulla creazione dell'immagine per un problema di path assoluto nel sorgente di fakeroot (tra l'altro quell'immagine non funzionerà mai, quindi non tentare di montarla sul router).
Poi dopo abilita tun e ricostruisci solo i moduli.

Io ho messo Fedora Core 6, quel compilatore è compilato lì sopra, ma il resto lo faccio tranquillamente da Ubuntu, addirittura a 64 bit.

cionci
16-01-2011, 11:17
Gnommo: sei d'accordo sul togliere il pulsante Save o Apply dal Wifi Schedule ? La differenza fra i due mi sembra troppo fine per l'utente finale.

Stufo76
16-01-2011, 13:27
Ho appena risolto il problema di build.sh ed aggiornato il SVN. Se tutto gira vai tranquillo.

perfect, immagine da 64mb compilata e funzionante su chiavetta da 128mb :cool:
un piccolo appunto: build.sh alla fine mi restituisce "Creating modfs compressed archive build 136" mentre in realtà la revisione svn è la 137


Dimmi che errori hai. Fai così, estrai la toolchain in /opt/toolchains/
Da terminale esegui setup.sh che si trova nella directory che hai scompattato.
Ora dovrebbe funzionare tranquillamente tutto.

Dalla root del sorgente del firmware:

make PROFILE=96358GW

Tanto ti si blocca sulla creazione dell'immagine per un problema di path assoluto nel sorgente di fakeroot (tra l'altro quell'immagine non funzionerà mai, quindi non tentare di montarla sul router).
Poi dopo abilita tun e ricostruisci solo i moduli.

ora provo e ti faccio sapere. tra l'altro ho pochissimo spazio in /opt spero che basti un symlink da un'altra parte...

Io ho messo Fedora Core 6, quel compilatore è compilato lì sopra, ma il resto lo faccio tranquillamente da Ubuntu, addirittura a 64 bit.
beato te :D io compilo con debian lenny su questo (http://www.soekris.com/net5501.htm) hardware :rolleyes:
è un po' (un BEL po' :D) lento ma va :stordita:

cionci
16-01-2011, 13:31
perfect, immagine da 64mb compilata e funzionante su chiavetta da 128mb :cool:
un piccolo appunto: build.sh alla fine mi restituisce "Creating modfs compressed archive build 136" mentre in realtà la revisione svn è la 137
Questo perché prende il valore massimo fra le revision dei pacchetti, non essendo build.sh parte dei pacchetti non aggiorna la versione.

Complimenti per l'hardware :eek: Ma una macchina virtuale su qualche altro computer non andrebbe meglio ?

Stufo76
16-01-2011, 13:35
stavo provando un po' modfs... mooolto fico :sofico:
pensavo però una cosa: guardando la parte relativa alla modifica snr, vedo che avete impostato un valore tra 10 e 300... ma non va fino a 200?
in ogni caso, guardando questo (http://forum.kitz.co.uk/index.php?topic=5195.0), pensavo: non è meglio modificare il codice in modo da impostare il snr direttamente in una scala che va da -12db a +12db, in passi da 1db, magari con uno slider, come ad es. fa il firmware dgteam? che ne pensate?

Stufo76
16-01-2011, 13:42
Complimenti per l'hardware :eek: Ma una macchina virtuale su qualche altro computer non andrebbe meglio ?

ehm... non è che abbia di molto meglio... ho un netbook atom con 1gb di ram, e ci sta a malapena win7... non posso mica far usare linux a mia moglie :rolleyes:
si potrebbe fare un dual boot ma poi mia moglie s'incasina lo stesso :muro:

gnommo
16-01-2011, 13:46
Gnommo: sei d'accordo sul togliere il pulsante Save o Apply dal Wifi Schedule ? La differenza fra i due mi sembra troppo fine per l'utente finale.

Si ok, se è causa di confusione...

Stufo76
16-01-2011, 13:47
ah, poi un'altra cosa: perché non integrate nell'svn anche l'ottimo Tones Graphs sviluppato da vicious?
in realtà stavo anche pensando che, prendendo spunto dal modulo Bandwith, si potrebbe facilmente fare un altro modulo che si potrebbe chiamare "Load" o qualcosa del genere, che visualizzasse tre grafici per cpu ram e swap...
quanta carne al fuoco!

cionci
16-01-2011, 14:05
ah, poi un'altra cosa: perché non integrate nell'svn anche l'ottimo Tones Graphs sviluppato da vicious?
in realtà stavo anche pensando che, prendendo spunto dal modulo Bandwith, si potrebbe facilmente fare un altro modulo che si potrebbe chiamare "Load" o qualcosa del genere, che visualizzasse tre grafici per cpu ram e swap...
quanta carne al fuoco!
Quando abbiamo finito lo integriamo ;)

Certo, potrebbe essere un'ottima idea. Ad esempio sarebbe veramente d'aiuto mettere un grafico sul SNR Margin, magari che si possa far partire e poi continui a monitorarlo anche senza lasciare aperta la finestra (visto che di solito si fa un monitoraggio di diverse ore).

Di roba da fare ce n'è molta :D

Comunque mi hai fatto trovare un bug. Avevo duplicato il controllo sul valore immesso come SNR anche in timezone :doh:
Lo slide non si può mettere, o al massimo potremmo metterlo fra 1 e 300. Questo perché quanto e come varia il SNR Margin agganciato a seconda della percentuale cambia a seconda del target SNR Margin impostato dal provider (non sono tutti 12 dB), la reazione cambia da DSLAM a DSLAM e solitamente non è lineare (abbassare da 12 dB al 50% non implica agganciare a 6 dB).

cionci
16-01-2011, 14:06
Si ok, se è causa di confusione...
Qualcuno diceva che non funzionava il wol proprio per quello :D

Stufo76
16-01-2011, 14:14
Quando abbiamo finito lo integriamo ;)

Certo, potrebbe essere un'ottima idea. Ad esempio sarebbe veramente d'aiuto mettere un grafico sul SNR Margin, magari che si possa far partire e poi continui a monitorarlo anche senza lasciare aperta la finestra (visto che di solito si fa un monitoraggio di diverse ore).

Di roba da fare ce n'è molta :D

Comunque mi hai fatto trovare un bug. Avevo duplicato il controllo sul valore immesso come SNR anche in timezone :doh:
Lo slide non si può mettere, o al massimo potremmo metterlo fra 1 e 300. Questo perché quanto e come varia il SNR Margin agganciato a seconda della percentuale cambia a seconda del target SNR Margin impostato dal provider (non sono tutti 12 dB), la reazione cambia da DSLAM a DSLAM e solitamente non è lineare (abbassare da 12 dB al 50% non implica agganciare a 6 dB).

Ok, che non fosse lineare me n'ero accorto, però pensavo che non variasse a seconda del DSLAM... ad es. il mio provider imposta a 12db, quindi posso variare da -12 a +12 provando l'effetto reale che fa.
se vedi la tabella nel thread che ti avevo linkato:
N Change in target noise margin (dB)

100 0
50 -3
1 -5.5
65500 -9
65450 -12
io mi trovo alla perfezione, il mio snr è esattamente così, perciò pensavo uno slider da -12 a +12, modificando il codice in modo da calcolare il giusto valore snr. in modo che, se ad es. aggancio a 12db, come nel mio caso, posso variare da -12 a +12, se invece aggancio a 6 anche se metto meno di -6 ho raggiunto già il massimo...
non so se mi sono capito :D

Stufo76
16-01-2011, 14:45
dunque... ho tirato giù i sorgenti del firmware dalla netgear, e stavo provando a compilare la toolchain... ho seguito le istruzioni, ma al make menuconfig mi da "toolchain/Config.in.2:8: can't open file "toolchain/ccache/Config.in""
ovviamente non c'è proprio toolchain/ccache/... qualche idea?

Stufo76
16-01-2011, 15:20
dunque... ho tirato giù i sorgenti del firmware dalla netgear, e stavo provando a compilare la toolchain... ho seguito le istruzioni, ma al make menuconfig mi da "toolchain/Config.in.2:8: can't open file "toolchain/ccache/Config.in""
ovviamente non c'è proprio toolchain/ccache/... qualche idea?

precisamente:

To build the toolchain, please follow these step:

1. untar buildroot.src.tar.bz2 in your home directory
2. change directory to buildroot
3. copy supplied buildroot.config to buildroot/.config
4. execute "make menuconfig" then select exit
5. exectute make "uclibc-menuconfig" then select exit
6. copy supplied uClibc.config to buildroot/toolchain_build_mips/uClibc-0.9.29/.config
7. exectute make "uclibc-menuconfig" then select exit
8. execute make

- After build, patch usr/include/bits/socket.h by removing "__THROW" in line 272:

From:
extern struct cmsghdr * __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) __THROW;

To:
extern struct cmsghdr * __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg));

Parnas72
16-01-2011, 16:39
dunque... ho tirato giù i sorgenti del firmware dalla netgear, e stavo provando a compilare la toolchain... ho seguito le istruzioni, ma al make menuconfig mi da "toolchain/Config.in.2:8: can't open file "toolchain/ccache/Config.in""
ovviamente non c'è proprio toolchain/ccache/... qualche idea?Scusate, ma per semplificare la vita a chi vuole smanettare un po', non sarebbe pensabile di avere un'immagine modfs per sviluppatori, che includa il gcc e gli altri strumenti di sviluppo ?
Io su WDTV Live faccio così... ho sull'hard disk un'immagine debian squeeze di 800 MB con installato il compilatore, e quando voglio provare qualcosa compilo direttamente lì.

Capisco che il DGN2200 ha un hardware molto meno performante della WDTV, però in fin dei conti io negli anni '90 compilavo il kernel di Linux sul mio PC con 8 MB di RAM. :D

cionci
16-01-2011, 17:06
dunque... ho tirato giù i sorgenti del firmware dalla netgear, e stavo provando a compilare la toolchain... ho seguito le istruzioni, ma al make menuconfig mi da "toolchain/Config.in.2:8: can't open file "toolchain/ccache/Config.in""
ovviamente non c'è proprio toolchain/ccache/... qualche idea?
Stufo, ma la toolchain non la devi compilare, te l'ho già compilata io ;)

Parnas72: la toolchain gliela avevo già linkata...

cionci
16-01-2011, 17:41
Ok, che non fosse lineare me n'ero accorto, però pensavo che non variasse a seconda del DSLAM... ad es. il mio provider imposta a 12db, quindi posso variare da -12 a +12 provando l'effetto reale che fa.
se vedi la tabella nel thread che ti avevo linkato:
N Change in target noise margin (dB)

100 0
50 -3
1 -5.5
65500 -9
65450 -12
io mi trovo alla perfezione, il mio snr è esattamente così, perciò pensavo uno slider da -12 a +12, modificando il codice in modo da calcolare il giusto valore snr. in modo che, se ad es. aggancio a 12db, come nel mio caso, posso variare da -12 a +12, se invece aggancio a 6 anche se metto meno di -6 ho raggiunto già il massimo...
non so se mi sono capito :D
Sì, ma come fai a rilevare il target SNR di default ? Chi ti ha detto che quando fai il rilevamento non sia già variato ?

Inoltre a me ad esempio con 50% passo da 12 a 9.8. Quindi non ce una correlazione di quel tipo.

Parnas72
16-01-2011, 18:05
Parnas72: la toolchain gliela avevo già linkata...Sì, ma la toolchain (se ho capito bene) è un cross-compilatore che richiede un ambiente Linux su PC (i386), e genera eseguibili MIPS...
io mi chiedevo se non fosse fattibile avere il gcc direttamente sul router.

cionci
16-01-2011, 18:09
Sì, ma la toolchain (se ho capito bene) è un cross-compilatore che richiede un ambiente Linux su PC (i386), e genera eseguibili MIPS...
io mi chiedevo se non fosse fattibile avere il gcc direttamente sul router.
E perché mai ? E' molto più utile un cross-compilatore che un compilatore nativo in questi ambiti. I tempi di compilazione sono 20 a 1. Inoltre non tutti devono compilare sul router, ma solo chi sviluppa. Quindi al limite se proprio non si vuole installare Linux, basta una macchina virtuale.
Condividendo Modfs da samba (tramite l'opzione presente in tweak) lo sviluppo è immediato, perché si può cross-compilare anche direttamente sui file presenti sul router. Oppure ci vogliono pochi secondi per trasferire l'eseguibile e lanciarlo da telnet.

Stufo76
16-01-2011, 18:19
cionci, ho usato la tua toolchain ma dopo aver pianto in aramaico antico per risolvere qualche altra manciata di dipendenze :D mi trovo:
/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/mips-linux-uclibc-gcc: /lib/libc.so.6: version `GLIBC_2.11' not found (required by /opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/mips-linux-uclibc-gcc)
ora vediamo come risolvere anche questo :muro:

cionci
16-01-2011, 18:24
Azz, non ci pensavo alle dipendenze del compilatore :muro: :muro:

Prendi la directory cache da un altro buildroot. Poi dopo rimane un path assoluto in non mi ricordo quale dei due file di configurazione.

gnommo
16-01-2011, 18:25
cionci, ho usato la tua toolchain ma dopo aver pianto in aramaico antico per risolvere qualche altra manciata di dipendenze :D mi trovo:
/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/mips-linux-uclibc-gcc: /lib/libc.so.6: version `GLIBC_2.11' not found (required by /opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/mips-linux-uclibc-gcc)
ora vediamo come risolvere anche questo :muro:

Io ancora non ho capito, cosa stai compilando? :D

cionci
16-01-2011, 18:28
Io ancora non ho capito, cosa stai compilando? :D
La toolchain perché ha una versione di linux con glibc non compatibile con quel quella del compilatore che gli ho passato.

Stufo76
16-01-2011, 19:19
La toolchain perché ha una versione di linux con glibc non compatibile con quel quella del compilatore che gli ho passato.

stavo compilando il firmware dai sorgenti netgear per vedere di metterci sto benedetto modulo tun...
ma mi sa che il problema non lo risolvo, perché dovrei installare glibc6 più una grossa fetta di dipendenze dalla testing, e così m'incasinerei tutto l'ambiente! ufff... vabbé mi sa che mi tocca metter su una fc6 virtuale... amen :muro: :muro: :muro:

Parnas72
16-01-2011, 20:13
E perché mai ? E' molto più utile un cross-compilatore che un compilatore nativo in questi ambiti. I tempi di compilazione sono 20 a 1.Sì, il problema è che mettere in piedi l'ambiente su PC non è semplicissimo... o si usa esattamente la stessa distro con le stesse librerie che hai usato tu, altrimenti si incorre in questi problemi sulle librerie.
L'ideale sarebbe avere la toolchain, invece che nel tar.gz, in una immagine iso che integri gli strumenti di sviluppo e le relative librerie di sistema; così chiunque potrebbe essere operativo con un semplice mount e un chroot dal proprio sistema Linux. Diciamo che faciliterebbe chi magari vuole provare a smanettare un po' ma non è espertissimo di Linux.

Stufo76
16-01-2011, 20:52
Sì, il problema è che mettere in piedi l'ambiente su PC non è semplicissimo... o si usa esattamente la stessa distro con le stesse librerie che hai usato tu, altrimenti si incorre in questi problemi sulle librerie.
L'ideale sarebbe avere la toolchain, invece che nel tar.gz, in una immagine iso che integri gli strumenti di sviluppo e le relative librerie di sistema; così chiunque potrebbe essere operativo con un semplice mount e un chroot dal proprio sistema Linux. Diciamo che faciliterebbe chi magari vuole provare a smanettare un po' ma non è espertissimo di Linux.

faciliterebbe chiunque, perché non sempre si possono risolvere le dipendenze: ad es. nel mio caso dovrei installare la versione di glibc6 (e relative dipendenze... TANTE dipendenze) della testing, ma non mi va di "rovinare" il mio serverino che è lì buono buono da tanto tempo con la sua bella lenny 100% stable...

Stufo76
16-01-2011, 21:04
pensavo: visto che il contenuto attuale della modfs pesa circa 36mb, perché non abilitare di default la creazione di un'immagine da 64mb al posto di 128? e magari fornirla anche già pronta, così sarebbe installabile anche su una chiavetta da 128 anche da chi non sa come fare per ricompilare

cionci
17-01-2011, 01:07
Sì, il problema è che mettere in piedi l'ambiente su PC non è semplicissimo... o si usa esattamente la stessa distro con le stesse librerie che hai usato tu, altrimenti si incorre in questi problemi sulle librerie.
L'ideale sarebbe avere la toolchain, invece che nel tar.gz, in una immagine iso che integri gli strumenti di sviluppo e le relative librerie di sistema; così chiunque potrebbe essere operativo con un semplice mount e un chroot dal proprio sistema Linux. Diciamo che faciliterebbe chi magari vuole provare a smanettare un po' ma non è espertissimo di Linux.
Nella toolchain c'è tutto quello che serve per lo sviluppo. Librerie comprese. Le dipendenze sono quelle degli eseguibili del compilatore. L'unica dipendenza è glibc 2.4 che è stata rilasciata nel 2006. Quindi è sicuramente compatibile con larghissima parte dei sistemi linux desktop attualmente usati.
Non è necessario usare la stessa distro che uso io, perché anche io ho compilato su un'altra distro, Fedora Core 6, che è del 2006.
Purtroppo più di così non posso fare, per ovvi motivi di tempo e di utilità.

Paranas...hai provato a compilare un hello world con la toolchain ?

Stufo76
17-01-2011, 10:55
facendo il reboot il router ritorna alla configurazione di fabbrica... capita a qualcun'altro? ho compilato dall'svn con -s 64

cionci
17-01-2011, 14:48
facendo il reboot il router ritorna alla configurazione di fabbrica... capita a qualcun'altro? ho compilato dall'svn con -s 64
Ma il firmware che hai installato sul router è l'11.01 ?
Ritorna sempre alle impostazioni di fabbrica ? Da dove riavvii ?

Stufo76
17-01-2011, 15:52
Ma il firmware che hai installato sul router è l'11.01 ?
Ritorna sempre alle impostazioni di fabbrica ? Da dove riavvii ?

ho installato il firmware dal sito di modfs; faccio reboot dal pannello di controllo e anche da shell # reboot e ritorna sempre alle impostazioni di default

cionci
17-01-2011, 16:08
ho installato il firmware dal sito di modfs; faccio reboot dal pannello di controllo e anche da shell # reboot e ritorna sempre alle impostazioni di default
Ho appena verificato il problema del login e non mi si presenta.
Ho fatto il checkout di Modfs, ho costruito l'immagine da 64 MB e fatto il login con admin/admin ed entra.

Riguardo al firmware, dal sito di Modfs il firmware linkato attualmente in FIRMWARE.DGN2200 è la versione 11.01 che non presenta più il problema di reset delle impostazioni. E' già qualche giorno che è online. Attualmente io posso fare il reboot da Dignostic -> Reboot che tramite il comando reboot di busybox e non si resettano le impostazioni. Potresti provare resettando il router alle impostazioni di default tramite pulsante e poi setta magari qualche semplice cosa, tipo la password. E prova ora a fare il reboot. Poi man mano che vai avanti setta sempre più cose e prova via via a fare il reboot fino a quando non ti perde le impostazioni.

Alpine
17-01-2011, 23:09
scusate le mie lunghe assenza (dopo 2 mesi sono ancora senza adsl :muro: a Telecom...).

sono riuscito a compilare sqllite3 però ho un errore in nelle funzioni

force_set

force_unset

# /tmp/soft_links/sh /tmp/mountpath/bin/package -ll
/tmp/mountpath/bin/package: 60: -column: not found
# /tmp/soft_links/sh /tmp/mountpath/bin/package -l
/tmp/mountpath/db/WAG320N/system: 1: Syntax error: "(" unexpected

qualche idea?
ho aggiornato svn ed ora sono riuscito ad avviare il server http + php

ora ho
"Fatal error: Call to undefined function: sqlite3_open()" sarà un problema di php...

Parnas72
18-01-2011, 00:15
Parnas...hai provato a compilare un hello world con la toolchain ?Ciao Cionci... allora, io ho fatto una prova con i binari della toolchain postati da te, e ho provato proprio su una Fedora Core 6, con l'ultimo upgrade delle glibc disponibile nel repository ufficiale (versione 2.5-18).

Purtroppo non mi funziona, perchè se cerco di avviare il compilatore ottengo il seguente errore:
mips-linux-gcc: /lib/libc.so.6: version `GLIBC_2.11' not found (required by mips-linux-gcc)
Sembra quindi che non basti la glibc-2.4, ma ce ne voglia una più recente. Appena ho un po' di tempo pensavo di provare a installare in una VM l'ultima Fedora (Core 14).

cionci
18-01-2011, 03:29
Mea culpa, la toolchain che uso attualmente è compilata con Ubuntu 10.04 32 bit, domani mattina posto il link.

cionci
18-01-2011, 07:38
Ecco qua, questa funziona su Fedora Core 6: http://www.mediafire.com/download.php?yfp4z6w2kjq4yp5

Stufo76
18-01-2011, 07:58
Ho appena verificato il problema del login e non mi si presenta.
Ho fatto il checkout di Modfs, ho costruito l'immagine da 64 MB e fatto il login con admin/admin ed entra.

Riguardo al firmware, dal sito di Modfs il firmware linkato attualmente in FIRMWARE.DGN2200 è la versione 11.01 che non presenta più il problema di reset delle impostazioni. E' già qualche giorno che è online. Attualmente io posso fare il reboot da Dignostic -> Reboot che tramite il comando reboot di busybox e non si resettano le impostazioni. Potresti provare resettando il router alle impostazioni di default tramite pulsante e poi setta magari qualche semplice cosa, tipo la password. E prova ora a fare il reboot. Poi man mano che vai avanti setta sempre più cose e prova via via a fare il reboot fino a quando non ti perde le impostazioni.

Forse sono riuscito a trovare il bug: se vado in advanced -> lan setup e provo a modificare qualcosa e poi clikko su apply il router si riavvia come è giusto che sia, però poi ritorna alle impostazioni di default. Se faccio un restore della configurazione e riprovo non succede.

cionci
18-01-2011, 08:02
Forse sono riuscito a trovare il bug: se vado in advanced -> lan setup e provo a modificare qualcosa e poi clikko su apply il router si riavvia come è giusto che sia, però poi ritorna alle impostazioni di default. Se faccio un restore della configurazione e riprovo non succede.
Guardo subito...

cionci
18-01-2011, 08:18
scusate le mie lunghe assenza (dopo 2 mesi sono ancora senza adsl :muro: a Telecom...).

sono riuscito a compilare sqllite3 però ho un errore in nelle funzioni

force_set

force_unset

# /tmp/soft_links/sh /tmp/mountpath/bin/package -ll
/tmp/mountpath/bin/package: 60: -column: not found
# /tmp/soft_links/sh /tmp/mountpath/bin/package -l
/tmp/mountpath/db/WAG320N/system: 1: Syntax error: "(" unexpected

qualche idea?
ho aggiornato svn ed ora sono riuscito ad avviare il server http + php

ora ho
"Fatal error: Call to undefined function: sqlite3_open()" sarà un problema di php...
Devi far tornare a router_detect DGN2200 anche per il WAG320N ;)
Così puoi provare quello che non funziona.

Modifica router_detect mettendoci semplicemente:

#!/bin/sh
echo "DGN2200"

Modifica boot.sh inserendoci dentro l'avvio di un server telnet (l'avvio del DGN2200 sicuramente non ti funzionerà).
Per far questo inserisci prima dell'ultima riga di boot.sh:

telnetd -p 24 /tmp/soft_links/sh

Così ti parte un server telnet, però sulla porta 24, ma con la shell di busybox e relative variabili d'ambiente. Perfetta per testare i vari programmi.

Ti consiglio di costruire l'immagine lasciandoci solo i pacchetti base.
Modifica la lista dei pacchetti aggiuntivi di build.sh in:

additional_DGN2200=""

Fai la build dell'immagine.

Monta l'immagine sul router e fai partire il tutto eseguendo boot.sh dal vecchio server telnet:

boot.sh /path/to/boot.sh

ovviamente devi sostituire a /path/to/boot.sh il percorso di boot.sh.

Se tutto ti parte, la prima cosa che devi fare è adattare start.sh e stop.sh del server telnet.

A questo punto puoi pensare di ricostruire l'immagine aggiungendo le directory per il WAG320N.
Per fare questo adatta router_detect per tornare WAG320N (testalo sul router, hai a disposizione l'editor vi nel telnet aggiuntivo).

Nel sorgente di Modfs...

cp -aR base/bin/DGN2200 base/bin/WAG320N
cp -aR base/lib/DGN2200 base/lib/WAG320N
cp -aR base/db/DGN2200 base/db/WAG320N
mkdir base/www/WAG320N

Adatta i package.descriptor dei pacchetti in packages/base per essere installati anche sul WAG320N. Adatta il pacchetto telnet per aprire un server telnet anche per il WAG320N. Io proverei con lo stesso comando del DGN3500, ma su una porta diversa, quindi metti il parametro -p 25.
In questo modo puoi testare il telnet con il login sulla porta 25, ma hai sempre il telnet senza login sulla porta 24.

Ora devi adattare build.sh. Per farlo è semplice, basta mettere il WAG320N fra i router supportati e aggiungere

additional_WAG320N=""

Quindi fai la build e provi incrociando le dita. Se parte allora puoi testare l'interfaccia web del router ed i vari comandi package.
A questo punto ti resta da testare la compatibilità dovuta alla differenza di librerie uClibc fra modfs ed il tuo firmware. Fermo restando che dall'interfaccia web del router funzionerà tutto perché le variaibili d'ambiente non sono cambiate, devi provare dal telnet di Modfs i vari comandi del router per vedere se funzionano quando vengono lanciati da script shell o php di Modfs.
Se qualcosa non funziona allora è d'obbligo ricompilare tutti i sorgenti, a partire da busybox e php. Che trovi già configurati e pronti alla compilazione nel SVN di Modfs. Ovviamente devi sostituire il contenuto di lib/WAG320N con le librerie che usi nel tuo compilatore (va ricompilato anche sqlite3), il contenuto di bin/WAG320N con la busybox ottenuta dal tuo compilatore a cui aggiungere anche il php e l'eseguibile di sqlite3.

cionci
18-01-2011, 09:13
Forse sono riuscito a trovare il bug: se vado in advanced -> lan setup e provo a modificare qualcosa e poi clikko su apply il router si riavvia come è giusto che sia, però poi ritorna alle impostazioni di default. Se faccio un restore della configurazione e riprovo non succede.
Niente, a me non lo fa.

Stufo76
18-01-2011, 11:06
ok, ho provato la compilazione dai sorgenti ufficiali netgear, ma come diceva cionci si ferma qui:

cd /root/DGN2200/targets; \
/root/DGN2200/hostTools/fakeroot/fakeroot ./buildFS
fakeroot: preload library not found, aborting.
make: *** [buildimage] Error 1

comunque, ho compilato il modulo tun, ve lo allego. qualcuno ha voglia di provare se funzia, visto che non ho il router sottomano almeno fino a domani sera?

cionci
18-01-2011, 12:37
Non ti arrischiare a correggere quel problema ed a compilare tutta l'immagine perché poi finisci così: http://www.hwupgrade.it/forum/showthread.php?p=33143030#post33143030 :doh:

Stufo76
18-01-2011, 12:40
Non ti arrischiare a correggere quel problema ed a compilare tutta l'immagine perché poi finisci così: http://www.hwupgrade.it/forum/showthread.php?p=33143030#post33143030 :doh:

noooouuuu :muro: :muro: :muro:

cionci
18-01-2011, 13:24
noooouuuu :muro: :muro: :muro:
Per prendere il rootfs funzionante ho recuperato i file dall'immagine squashfs del firmware ufficiale. Poi sono riuscito a montarla sul router e a farne un backup. A quel punto ho cominciato a modificare i file e mi sono costruito il sistema di build partendo dal quello del firmware ufficiale.
E non era nemmeno il kernel a non funzionare. E' evidente che manca qualche file closed nel sorgente ufficiale.
Il modulo non funziona:

tun: Unknown symbol bitrev32
tun: Unknown symbol crc32_le

Il secondo mi immagino che sia il modulo crc32, il primo non ne ho idea.

cionci
18-01-2011, 13:39
Inserendo i moduli crc32.ko e bitrev.ko il tuo modulo si installa ;)
Certo non saprei come provarlo...

Stufo76
18-01-2011, 13:45
Per prendere il rootfs funzionante ho recuperato i file dall'immagine squashfs del firmware ufficiale. Poi sono riuscito a montarla sul router e a farne un backup. A quel punto ho cominciato a modificare i file e mi sono costruito il sistema di build partendo dal quello del firmware ufficiale.
E non era nemmeno il kernel a non funzionare. E' evidente che manca qualche file closed nel sorgente ufficiale.
Il modulo non funziona:

tun: Unknown symbol bitrev32
tun: Unknown symbol crc32_le

Il secondo mi immagino che sia il modulo crc32, il primo non ne ho idea.

Uhm... hai ragione :doh:
Mancano i moduli bitrev e crc32.
Te li allego, prova a caricare prima il modulo bitrev.ko, poi il crc32.ko e infine il tun.ko.

cionci
18-01-2011, 13:50
Si installano tutti ;)

Stufo76
18-01-2011, 13:59
Si installano tutti ;)

grande! ci siamo arrivati in contemporanea :D
per provarlo... resta "solo" da compilare lzo e openvpn... vediamo se riesco a combinar qualcosa.
piuttosto, un dubbio/curiosità: lzo serve a openvpn per la compressione/decompressione realtime, ma... il "misero" hardware del router ce la farà a gestirla decentemente? :confused:

cionci
18-01-2011, 14:00
grande! ci siamo arrivati in contemporanea :D
per provarlo... resta "solo" da compilare lzo e openvpn... vediamo se riesco a combinar qualcosa.
piuttosto, un dubbio/curiosità: lzo serve a openvpn per la compressione/decompressione realtime, ma... il "misero" hardware del router ce la farà a gestirla decentemente? :confused:
Non ne ho idea, al limite credo che si possa disattivare.

Edit: magari guarda se lo puoi disattivare in fase di compilazione da configure. Così riduciamo anche al dimensione dell'eseguibile.
Edit2: --disable-lzo per compilare senza lzo

cionci
18-01-2011, 14:07
Ah, devi ricompilarti anche ssl :( Purtroppo era inclusa solo nell'altro compilatore.

Stufo76
18-01-2011, 14:09
Ah, devi ricompilarti anche ssl :( Purtroppo era inclusa solo nell'altro compilatore.

ufff... qui l'affare s'ingrossa :D

cionci
18-01-2011, 14:17
ufff... qui l'affare s'ingrossa :D
Dai, openvpn te lo passo io. L'importante è che tu riesca provarlo. Io in questo momento non posso.

cionci
18-01-2011, 14:26
Compilato: http://www.mediafire.com/?4iannt2docuubgn
In due versioni, 2.0.9 e 2.1.4

Stufo76
18-01-2011, 15:54
Compilato: http://www.mediafire.com/?4iannt2docuubgn
In due versioni, 2.0.9 e 2.1.4

allra, mi sa che è necessario ricompilare di nuovo il kernel con l'opzione CONFIG_NET_IPIP=y che dovrebbe essere <*> IP: tunneling in menuconfig.
puoi aiutarmi a ricompilare il kernel e metterlo in un nuovo firmware visto che hai già la jtag? altrimenti va a finire che brikko il router :muro:

cionci
18-01-2011, 16:28
allra, mi sa che è necessario ricompilare di nuovo il kernel con l'opzione CONFIG_NET_IPIP=y che dovrebbe essere <*> IP: tunneling in menuconfig.
puoi aiutarmi a ricompilare il kernel e metterlo in un nuovo firmware visto che hai già la jtag? altrimenti va a finire che brikko il router :muro:
Vediamo se ce la faccio questa sera ;)

cionci
18-01-2011, 18:48
allra, mi sa che è necessario ricompilare di nuovo il kernel con l'opzione CONFIG_NET_IPIP=y che dovrebbe essere <*> IP: tunneling in menuconfig.
puoi aiutarmi a ricompilare il kernel e metterlo in un nuovo firmware visto che hai già la jtag? altrimenti va a finire che brikko il router :muro:
Ho visto che si può configurare anche come modulo ;)
Meglio usarlo come modulo, visti i limiti di memoria.
Serve

CONFIG_NET_IPIP=m

ma anche

CONFIG_INET_TUNNEL=m

Creano tunnel4.ko e ipip.ko

Stufo76
18-01-2011, 20:44
dunque: andrebbe creato il device tun con un 'mknod /dev/net/tun c 10 200'.
mknod l'ho preso e sembra che funzia, però il filesystem è readonly e non lo posso mica rimontare come rw :( qualche idea :confused:

cionci
18-01-2011, 21:34
dunque: andrebbe creato il device tun con un 'mknod /dev/net/tun c 10 200'.
mknod l'ho preso e sembra che funzia, però il filesystem è readonly e non lo posso mica rimontare come rw :( qualche idea :confused:
http://www.mediafire.com/?cn8lkerdlm4xexk
Già testato

Alpine
18-01-2011, 22:39
dunque: andrebbe creato il device tun con un 'mknod /dev/net/tun c 10 200'.
mknod l'ho preso e sembra che funzia, però il filesystem è readonly e non lo posso mica rimontare come rw :( qualche idea :confused:

io ho fatto cosi:

mkdir /tmp/tmp2
cp /dev/* /tmp/tmp2/
mount -n -t ramfs ramfs /dev
cp /tmp/tmp2/* /dev
rm -rf /tmp/tmp2

ps. con l'ultima compilazione e fix sugli script eseguendo il boot.sh riesco ad avviare il server http, però non vado oltre l'autenticazione dopo ho una pagina con la cornice blu e la scritta (WAG320N Modfs v.0.3 beta ) e un link con "ORDER BY term number 1 does not match any result column"

cionci
18-01-2011, 22:57
Hai duplicato la directory db ?

Alpine
18-01-2011, 22:59
Hai duplicato la directory db ?

si ,

se eseguo il comando
# /tmp/mountpath/bin/package -ll
ottengo
Name Version Dependencies Type SubType Boot Priority State
---------- ---------- ------------ ---------- ---------- ---------- ---------- ----------
httpd 0.1 NONE NONE 1 1 1
webpass 0.1 Administra NONE 0 1 0
pack_manag 0.1 Administra pack_manag 1 1 1
service_ma 0.1 Services NONE 0 1 0

cionci
18-01-2011, 23:10
C'è la directory WAG320N in www ?

Alpine
18-01-2011, 23:14
C'è la directory WAG320N in www ?

# ls -al /tmp/mountpath/www/WAG320N/
drwxr-xr-x 9 root root 1024 Jan 18 2011 .
drwxr-xr-x 6 root root 1024 Jan 18 2011 ..
drwxr-xr-x 2 root root 1024 Jan 1 00:24 Administration
drwxr-xr-x 2 root root 1024 Jan 18 2011 Diagnostic
drwxr-xr-x 2 root root 1024 Jan 18 2011 NAT-QoS
drwxr-xr-x 2 root root 1024 Jan 18 2011 Security
drwxr-xr-x 2 root root 1024 Jan 18 2011 Services
drwxr-xr-x 2 root root 1024 Jan 18 2011 Setup
drwxr-xr-x 2 root root 1024 Jan 18 2011 Status

# ls -al /tmp/mountpath/www/WAG320N/Diagnostic/
drwxr-xr-x 2 root root 1024 Jan 18 2011 .
drwxr-xr-x 9 root root 1024 Jan 18 2011 ..

# ls -al /tmp/mountpath/www/WAG320N/Administration/
drwxr-xr-x 2 root root 1024 Jan 1 00:24 .
drwxr-xr-x 9 root root 1024 Jan 18 2011 ..
lrwxrwxrwx 1 root root 42 Jan 18 2011 pack_manager -> ../../../packages/WAG320N/pack_manager/www
lrwxrwxrwx 1 root root 37 Jan 18 2011 webpass -> ../../../packages/WAG320N/webpass/www
lrwxrwxrwx 1 root root 33 Jan 1 00:24 wol -> ../../../packages/DGN2200/wol/www



si

cionci
18-01-2011, 23:27
Alla fine non ho capito, hai ricompilato o stai usando le librerie e gli eseguibili del DGN2200 ?
Mi manderesti l'immagine di modificata così posso dargli un'occhiata ?

cionci
19-01-2011, 01:48
Alla fine mi era venuta voglia di provare openvpn...e devo dire che funziona :yeah:
Mi sono connesso dalla macchina virtuale con Windows ad openvpn sul router :eek:

nickthird
19-01-2011, 09:03
Ho separato il codice che disegna i grafici da quello che preleva i dati e fatto un po' di ordine. Ora dovrebbe essere molto più facile adattarlo anche al 3500 ed in futuro ad altri router. Basta scriversi le funzioni che calcolano i dati da disegnare e aggiungerle una chiamata agli switch delle funzioni get_snr_values/get_bitallocation_values.

Sto usando il pacchetto oramai da diversi giorni e lo trovo molto utile: in un colpo solo si ha la visione globale della qualità della linea. C'è giusto da correggere un errore di battitura nell'Help di destra: sicuramente si intende 4.3125 Khz e non Mhz.
Grazie dell'ottimo lavoro che state svolgendo.

Alpine
19-01-2011, 09:21
Alla fine non ho capito, hai ricompilato o stai usando le librerie e gli eseguibili del DGN2200 ?
Mi manderesti l'immagine di modificata così posso dargli un'occhiata ?

Ho ricompilato tutto per WAG320N ( php, busybox, dropbear, etherweak, sqllite3 ecc..., wol ), gli eseguibili del DGN2200 (es. busybox) non funzionano, quelli del DGN3500 si

posto il link dell'immagine modificata... (se riesco a fare funzionare mediafire ...)

cionci
19-01-2011, 09:46
Per php cerca nel thread vecchio su come abbiamo effettuato la configurazione. Mi raccomando usa il comando mips-linux-strip per rendere gli eseguibili meno ciccioni.
I sorgenti li hai presi dal server SVN, giusto ?

E' strano che ti funzionino quelli del DGN3500 e quelli del DGN2200 no, perché quelli del DGN2200 funzionano sul DGN3500 ;)

VICIUS
19-01-2011, 09:52
Sto usando il pacchetto oramai da diversi giorni e lo trovo molto utile: in un colpo solo si ha la visione globale della qualità della linea. C'è giusto da correggere un errore di battitura nell'Help di destra: sicuramente si intende 4.3125 Khz e non Mhz.
Grazie dell'ottimo lavoro che state svolgendo.

Grazie per la segnalazione. Appena ho un secondo libero correggo e finisco le modifiche ai grafici che aveva chiesto cionci.

cionci
19-01-2011, 11:24
Ho appena fatto un'altra prova con OpenVPN e funziona perfettamente. Ecco i file di configurazione...

Supponendo di avere due router con Modfs, uno configurato su 192.168.0.x che fa da server, l'altro su 192.168.1.x che fa da client, ecco i file di configurazione minimali con chiave statica:

server.conf:
proto udp
port 11945
dev tun
secret /path/static.key
ifconfig 10.8.0.1 10.8.0.2
route 192.168.1.0 255.255.255.0


client.conf:
remote ip_del_server 11945
dev tun
proto udp
ifconfig 10.8.0.2 10.8.0.1
route 192.168.0.0 255.255.255.0
secret /path/static.key

In questo modo le tabelle di routing vengono aggiornate e non c'è bisogno nemmeno di effettuare il bridging ;)

Ovviamente se come client abbiamo un PC non importa aggiungere la route nel server, ma tanto non cambia niente.
In sostanza ora ci sarebbe da scrivere l'interfaccia web per:
- impostazione come client o come server, nel primo caso c'è necessita di inserire l'url del server
- cambiare la porta (meglio UDP)
- generare la chiave e scaricarla per poterla mettere sull'altro end-point
- permettere di aggiungere una route alla configurazione
- scaricare la configurazione per il client (nel caso non fosse un altro router con modfs)

Non ho potuto provare la configurazione due router con Modfs, per ovvie ragioni, ma mettendo la scheda di rete di un PC fuori dalla subnet 192.168.0.x e collegandomi al server con la configurazione sopra, riesco a pingare e persino a trasferire file dalla rete 192.168.0.x.

Alpine
19-01-2011, 11:25
Per php cerca nel thread vecchio su come abbiamo effettuato la configurazione. Mi raccomando usa il comando mips-linux-strip per rendere gli eseguibili meno ciccioni.
I sorgenti li hai presi dal server SVN, giusto ?

E' strano che ti funzionino quelli del DGN3500 e quelli del DGN2200 no, perché quelli del DGN2200 funzionano sul DGN3500 ;)

ci sono riuscito ecco l'iso
http://www.megaupload.com/?d=5SA3XNM5
si i bin che ho usato li ho strippati prima.

ps. sembra strano ma il busybox di DGN2200 non trovava alcuni simboli, stasera ricontrollo...

cionci
19-01-2011, 11:26
Questo è il configure di php:
FLAGS="-Os" ./configure --host=mips-unknown-linux-uclibc --prefix=./_install --without-pear --disable-libxml --disable-dom --without-iconv --disable-simplexml --disable-xml --disable-ipv6 --without-mysql

cionci
19-01-2011, 11:35
Mi fai vedere anche le cose che ti avevo chiesto in PVT ?

Alpine
19-01-2011, 11:35
Questo è il configure di php:
FLAGS="-Os" ./configure --host=mips-unknown-linux-uclibc --prefix=./_install --without-pear --disable-libxml --disable-dom --without-iconv --disable-simplexml --disable-xml --disable-ipv6 --without-mysql

esattamente quello che ho usato io con in + --with-sqlite3=/home/andrea/workspace/special-nosync/Linksys-wag320N/extra_bin/sqlite

Stufo76
19-01-2011, 12:07
Alla fine mi era venuta voglia di provare openvpn...e devo dire che funziona :yeah:
Mi sono connesso dalla macchina virtuale con Windows ad openvpn sul router :eek:

ho provato anch'io e funzia alla grande :yeah:
allego un piccolo "pacchetto" di test per verificarne il funzionamento e per accedere non solo al router ma all'intera vostra lan.
tra l'altro non ho usato il bridge ma il routing vero e proprio
prima di cominciare dovete flashare il firmware con quello gentilmente fornito da cionci: http://www.mediafire.com/?cn8lkerdlm4xexk
innanzitutto, una premessa: il pacchetto l'ho preparato avendo questa configurazione, se la vostra non è così modificate i files di configurazione del mio pacchetto così come vi spiego più avanti:
ip del router: 192.168.0.254/24
ip addizionale del router: 192.168.0.253/24
il router fa da dhcp server per 192.168.0.0/24
il router è anche il default gateway della vostra lan
verificato ciò, passiamo alla configurazione.
1) scompattate l'allegato nella dir principale di modfs (/tmp/mod/modfs) vi dovrebbe creare una dir /tmp/mod/modfs/openvpn_DGN2200_test
2) iscrivetevi ad un servizio tipo http://www.dyndns.com/ che vi da un nome statico del tipo "myrouter.dyndns.org"
3) se la vostra lan non è 192.168.0.0/24 cambiate l'ultima riga del file etc/openvpn/client-win.ovpn sostituendo a "route 192.168.0.0 255.255.255.0" l'ip e la netmask della vostra lan
4) cambiate la prima riga del file etc/openvpn/client-win.ovpn sostituendo a "myrouter.dyndns.org" il nome con il quale vi siete registrati in dyndns
5) eseguite lo script openvpn-genkey.sh che vi genererà la chiave condivisa in /etc/openvpn/static.key
6) eseguire lo script openvpn-start.sh che caricherà i moduli necessari e farà partire openvpn, e scriverà due file di log:
log/openvpn/openvpn-status.log che contiene un summary aggiornato ogni minuto
/log/openvpn/openvpn.log che contiene il log di openvpn
7) dall'interfaccia web principale del router andate in "Port Forwarding / Port Triggering" e clikkate su "add custom services" e compilate i campi come segue:
Service Name: OpenVPN
Service Type: UDP
Starting Port: 1194
Ending Port: 1194
Server IP Address: 192.168.0.253 (oppure l'ip aggiuntivo del router se non è questo)
8) sempre dall'interfaccia web principale del router andate in "Dynamic DNS" e riempite i campi appositi con i dati di registrazione a dyndns
9) installate openvpn su un client windows, e copiate i due files etc/openvpn/client-win.ovpn e /etc/openvpn/static.key nell'apposita dir di configurazione
10) startate openvn sul client remoto
11) godetevi la vostra nuova vpn :yeah:
ora potete pingare un qualsiasi pc della vostra lan, semplicemente come se foste attaccati alla vostra lan :sofico:
in pratica ho creato un'interfaccia tun 10.76.0.2 sul client point-to-point alla rispettiva sul server 10.76.0.1 e viceversa, e in più ho aggiunto la rotta per il client sulla lan che sta sotto il router.
per spegnere openvpn basta eseguire openvpn-stop.sh che killerà openvpn e scaricherà i moduli
fatemi sapere se funzia :D
questo è l'allegato:http://www.mediafire.com/?mlfzvqif867ts5b

gnommo
19-01-2011, 12:14
ho provato anch'io e funzia alla grande :yeah:
allego un piccolo "pacchetto" di test per verificarne il funzionamento e per accedere non solo al router ma all'intera vostra lan.
tra l'altro non ho usato il bridge ma il routing vero e proprio
prima di cominciare dovete flashare il firmware con quello gentilmente fornito da cionci: http://www.mediafire.com/?cn8lkerdlm4xexk
innanzitutto, una premessa: il pacchetto l'ho preparato avendo questa configurazione, se la vostra non è così modificate i files di configurazione del mio pacchetto così come vi spiego più avanti:
ip del router: 192.168.0.254/24
ip addizionale del router: 192.168.0.253/24
il router fa da dhcp server per 192.168.0.0/24
il router è anche il default gateway della vostra lan
verificato ciò, passiamo alla configurazione.
1) scompattate l'allegato nella dir principale di modfs (/tmp/mod/modfs) vi dovrebbe creare una dir /tmp/mod/modfs/openvpn_DGN2200_test
2) iscrivetevi ad un servizio tipo http://www.dyndns.com/ che vi da un nome statico del tipo "myrouter.dyndns.org"
3) se la vostra lan non è 192.168.0.0/24 cambiate l'ultima riga del file etc/openvpn/client-win.ovpn sostituendo a "route 192.168.0.0 255.255.255.0" l'ip e la netmask della vostra lan
4) cambiate la prima riga del file etc/openvpn/client-win.ovpn sostituendo a "myrouter.dyndns.org" il nome con il quale vi siete registrati in dyndns
5) eseguite lo script openvpn-genkey.sh che vi genererà la chiave condivisa in /etc/openvpn/static.key
6) eseguire lo script openvpn-start.sh che caricherà i moduli necessari e farà partire openvpn, e scriverà due file di log:
log/openvpn/openvpn-status.log che contiene un summary aggiornato ogni minuto
/log/openvpn/openvpn.log che contiene il log di openvpn
7) dall'interfaccia web principale del router andate in "Port Forwarding / Port Triggering" e clikkate su "add custom services" e compilate i campi come segue:
Service Name: OpenVPN
Service Type: UDP
Starting Port: 1194
Ending Port: 1194
Server IP Address: 192.168.0.253 (oppure l'ip aggiuntivo del router se non è questo)
8) sempre dall'interfaccia web principale del router andate in "Dynamic DNS" e riempite i campi appositi con i dati di registrazione a dyndns
9) installate openvpn su un client windows, e copiate i due files etc/openvpn/client-win.ovpn e /etc/openvpn/static.key nell'apposita dir di configurazione
10) startate openvn sul client remoto
11) godetevi la vostra nuova vpn :yeah:
ora potete pingare un qualsiasi pc della vostra lan, semplicemente come se foste attaccati alla vostra lan :sofico:
in pratica ho creato un'interfaccia tun 10.76.0.2 sul client point-to-point alla rispettiva sul server 10.76.0.1 e viceversa, e in più ho aggiunto la rotta per il client sulla lan che sta sotto il router.
per spegnere openvpn basta eseguire openvpn-stop.sh che killerà openvpn e scaricherà i moduli
fatemi sapere se funzia :D
questo è l'allegato:http://www.mediafire.com/?mlfzvqif867ts5b

Ok, ci do un occhio anche io, faccio il porting per DGN3500, risistemo tutto il pacchetto, e metto sull'svn, così possiamo rilasciarlo.

Stufo76
19-01-2011, 12:40
Ok, ci do un occhio anche io, faccio il porting per DGN3500, risistemo tutto il pacchetto, e metto sull'svn, così possiamo rilasciarlo.

perfect grazie mille :)
dimenticavo: ovviamente gli ip della vpn 10.76.0.1 e 10.76.0.2 li ho scelti a caso, va bene qualsiasi cosa che non vada in conflitto con eventuali ip assegnati ai client remoti quando ti colleghi ad un wifi pubblico, oppure al alvoro, o in aereoporto, ecc.
infatti ho scelto indirizzi "di mezzo" /30 nel mare della 10.0.0.0 così è statisticamente improbabile creare conflitti...
cioè, in pratica bisogna evitare che gli ip del point-to-point vpn appartengano ad una stessa subnet già assegnata altrove, altrimenti il routing non funzionerebbe perché non saprebbe dove ruotare i pacchetti... che ne pensate?

Stufo76
19-01-2011, 13:42
guardavo un po' l'occupazione di cpu e ram, e ho visto che ne ciuccia un bel po' e swappa... ovvio, me lo aspettavo. mi è venuto in mente che si potrebbe dare:
echo 0 > /proc/sys/vm/swappiness
echo 3 > /proc/sys/vm/drop_caches
per cercare di liberare ram e diminuire al massimo l'utilizzo dello swap. ho provato ed effettivamente funziona... che ne pensate?

[EDIT]
come non detto, le prestazioni dopo un po' peggiorano, meglio lasciare i valori di default
echo 60 > /proc/sys/vm/swappiness
echo 0 > /proc/sys/vm/drop_caches

Stufo76
19-01-2011, 13:53
si potrebbe provare anche la compressione lzo per vedere l'effetto che fa, magari il carico della cpu e l'occupazione della ram rimangono entro limiti accettabili...
cionci hai voglia di compilare openvpn con il supporto lzo così lo testo?

cionci
19-01-2011, 14:36
guardavo un po' l'occupazione di cpu e ram, e ho visto che ne ciuccia un bel po' e swappa... ovvio, me lo aspettavo. mi è venuto in mente che si potrebbe dare:
echo 0 > /proc/sys/vm/swappiness
echo 3 > /proc/sys/vm/drop_caches
per cercare di liberare ram e diminuire al massimo l'utilizzo dello swap. ho provato ed effettivamente funziona... che ne pensate?
Però l'utilizzo dello swap non è una cosa poi così negativa. Rendiamoci conto che più utilizza lo swap e più ram contigua riesce a trovare. Avevo intenzione di provare qualche valore, ma non ho mai avuto tempo.
Forse 0 è troppo poco, magari 10 o 30.
Per il secondo valore: quello ha solo effetto istantaneo, dopo qualche minuto andrebbe dato nuovamente.

Ho visto che per OpenVPN ipip.ko e tunnel4.ko non servono (almeno io non li ho installati).
Se ce la faccio possiamo anche provare LZO.

Gnommo: prova anche questo direttamente, chissà mai che ti funzioni subito come minidlna. Il problema è l'interfaccia grafica, è quella la parte più problematica.

Stufo76
19-01-2011, 15:49
Però l'utilizzo dello swap non è una cosa poi così negativa. Rendiamoci conto che più utilizza lo swap e più ram contigua riesce a trovare. Avevo intenzione di provare qualche valore, ma non ho mai avuto tempo.
Forse 0 è troppo poco, magari 10 o 30.
Per il secondo valore: quello ha solo effetto istantaneo, dopo qualche minuto andrebbe dato nuovamente.

Ho visto che per OpenVPN ipip.ko e tunnel4.ko non servono (almeno io non li ho installati).
Se ce la faccio possiamo anche provare LZO.

Gnommo: prova anche questo direttamente, chissà mai che ti funzioni subito come minidlna. Il problema è l'interfaccia grafica, è quella la parte più problematica.

ho fatto qualche test, e sembra che le migliori prestazioni si abbiano con i valori di default, io lascerei quelli
i due moduli ipip.ko e tunnel4.ko confermo che non servono, si libera un po' di preziosa ram
se ce la fai a compilarlo con il supporto lzo passamelo che lo provo
ah sono una capra mi sono dimenticato di aggiungere allo script openvpn-stop.sh la riga "rm /var/run/openvpn.pid" subito dopo il kill... se lo killi poi il pid non ti seve più
per l'interfaccia grafica... chi è che se la cava con php? :D

gnommo
19-01-2011, 16:48
h
per l'interfaccia grafica... chi è che se la cava con php? :D
io no :D , ma mi faccio carico volentieri di occuparmi dell'interfaccia web.

Stufo76
19-01-2011, 17:09
io no :D , ma mi faccio carico volentieri di occuparmi dell'interfaccia web.

ma siamo troooooppo avanti :sofico:
dai che anche openvp comincia a prender forma la famigghia modfs si allarga :)

cionci
19-01-2011, 17:27
gnommo, i file di configurazione vanno bene quelli si stufo76. C'è solo da aggiungere un altro comando "route" sulla configurazione del server per fare client-server fra due router con modfs.

Stufo76
19-01-2011, 17:58
gnommo, i file di configurazione vanno bene quelli si stufo76.
grazie, felice di poter contribuire :)

C'è solo da aggiungere un altro comando "route" sulla configurazione del server per fare client-server fra due router con modfs.

ci avevo pensato, ma in realtà non credo sia una buona idea, per una serie di motivi.
nello scrivere la configurazione, ho immaginato l'utilizzo tipico di openvpn: sono in un internet café o al lavoro con il mio laptop windows, e voglio andare in vpn sulla mia lan.
con la mia configurazione il mio laptop raggiungerebbe l'intera mia lan, e viceversa, punto e basta, il che è proprio lo scopo che voglio ottenere.
se invece ruotassi anche i pacchetti lato server, ci sarebbe un grave problema di sicurezza: in tal caso, infatti, la mia lan sarebbe raggiungibile non solo dal mio client remoto, ma anche dall'interna subnet a cui il mio client remoto appartiene, e viceversa. in pratica si farebbe un vero e proprio bridge tra le due lan, e l'utilità di avere sul router un robusto firewall spi se ne va a quel paese.
certo, qualcuno potrebbe avere la necessità d'interconnetterre due router con le rispettive lan sicure e di cui si fida, ma qui poi ci sarebbe anche un problema di routing: infatti se entrambe le lan sono 192.168.0.0/24, come è di default, e io devo raggiungere un ip appartenente ad una delle due lan, come faccio a dirgli come ruotare i pacchetti? se poi c'è un indirizzo ip duplicato su entrambe le lan è ancora peggio, si creerebbe conflitto... in definitiva, a meno di ricorrere a complesse regole di routing, una delle due lan andrebbe per forza cambiata...
se invece sono connesso con il mio client ad una wifi o una lan pubblica, è statisticamente improbabile che il dhcp mi assegni la subnet 192.168.0.0/24, e il problema di routing non si pone.
in definitiva, secondo me, il gioco non vale la candela... che ne pensate?

cionci
19-01-2011, 18:06
Ma la cosa serve per poter connettere tra loro due router con Modfs. Altrimenti non c'è modo.
E' chiaro che si debba dare la possibilità di farlo. Ovviamente come parametro opzionale.

Stufo76
19-01-2011, 18:17
Ma la cosa serve per poter connettere tra loro due router con Modfs. Altrimenti non c'è modo.
E' chiaro che si debba dare la possibilità di farlo. Ovviamente come parametro opzionale.

certo, ci mancherebbe altro. però secondo me l'utente potrebbe distrattamente abilitare il routing anche sul server quando è in una wifi pubblica... ciao firewall, la tua lan intera su internet... non è bello affatto.
comunque, volendo fare il bridge con due router, uno dei due dovrebbe per forza cambiare la subnet da quella di default 192.168.0.0/24, altrimenti il routing diventa un problema, e ciò può voler dire riprogettare una delle due lan. comunque fatto ciò basta aggiungere la regola di routing come hai detto tu, e il gioco è fatto.

cionci
19-01-2011, 18:30
uno dei due dovrebbe per forza cambiare la subnet da quella di default 192.168.0.0/24,
Chiaro.

cionci
19-01-2011, 18:33
Poi ripensandoci, non è così facile aggiungere la route per errore, perché bisogna specificare network e netmask dell'altro end-point.

Stufo76
19-01-2011, 18:41
Poi ripensandoci, non è così facile aggiungere la route per errore, perché bisogna specificare network e netmask dell'altro end-point.

anche questo è vero...





...e poi così facendo ci si potrebbe fare un bel lan party in vpn :idea: :D

cionci
19-01-2011, 18:45
...e poi così facendo ci si potrebbe fare un bel lan party in vpn :idea: :D
Si potrebbero anche prevedere client multipli, ovviamente bisognerebbe sperimentare un bel po' :D

Stufo76
19-01-2011, 18:56
Si potrebbero anche prevedere client multipli, ovviamente bisognerebbe sperimentare un bel po' :D

siamo qui apposta :D

a proposito, oggi dall'ufficio ho fatto un po' di test di performance.
ho provato prima ad utilizzare openvpn sul mio server linux, facendo solo ruotare al router la porta, e poi ho fatto un tipico upload di un file grosso da windows.
risultato: l'upload viaggiava a circa 16mbit, ovvero saturava a tappo la banda, e l'utilizzo della cpu, nonostante l'hw modesto (cpu geode lx 500mhz con 1000 bogomips) si attestava sotto il 10%.
poi ho messo la stessa configurazione sul router, e ho rifatto la stessa identica prova.
risultato: non più di 5 mbit, con la cpu del router a tappo :(
perciò secondo me ha poco senso provare a configurare più di un end-to-end, già con uno le prestazioni non sono proprio esaltanti :muro:

cionci
19-01-2011, 19:04
Strano, ci deve essere un bottleneck da qualche parte o una somma di ritardi. Perché io da rete interna trasferivo a 5 MB/s da una condivisione samba.

Stufo76
19-01-2011, 19:39
Strano, ci deve essere un bottleneck da qualche parte o una somma di ritardi. Perché io da rete interna trasferivo a 5 MB/s da una condivisione samba.

rifai la stessa prova e controlla l'utilizzo della cpu del router: se durante il trasferimento non sale l'utilizzo di openvpn vuol dire che magari hai qualche regola di routing che ti fa saltare a piè pari la vpn, magari fai anche un traceroute per sicurezza.
quando ho provato io le performance erano quelle :boh:

cionci
20-01-2011, 08:15
rifai la stessa prova e controlla l'utilizzo della cpu del router: se durante il trasferimento non sale l'utilizzo di openvpn vuol dire che magari hai qualche regola di routing che ti fa saltare a piè pari la vpn, magari fai anche un traceroute per sicurezza.
quando ho provato io le performance erano quelle :boh:
Ho verificato, avevo OpenVPN al 60% di CPU. Ora che ci penso magari non vorrei che i pacchetti prendessero un'altra route per tornare indietro, caso mai partissero con l'IP 192.168.7.1 della scheda di rete invece che con 10.8.0.1 della VPN.

cionci
20-01-2011, 11:24
Complice l'influenza...ho ricompilato OpenSSL 0.9.8q in modo shared. Ecco i comandi per fare la build:

./Configure threads linux-generic32 shared no-static zlib-dynamic
cross=mips-linux-
make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib"
make INSTALL_PREFIX=$(pwd)/_install install_sw

Spostare _install/lib nella directory usr/lib del compilatore
Spostare _install/bin nella directory usr/bin del compilatore
Spostare _install/include nella directory usr/include del compilatore
Spostare il resto in una nuova directory usr/ssl del compilatore

Ho ricompilato stunnel e openvpn...
Per il secondo:
./configure --host=mips-linux-uclibc --disable-lzo

Ho fatto nuovamente la prova con openvpn ed effettivamente utilizzava un'altra route per i dati ingresso perché le richieste partivano con l'ip della scheda di rete.
Ora ho messo come default gateway 10.8.0.1 sul PC ed effettivamente è molto più lento. Ho misurato circa 700 KB/s.

Considerate che il PC su cui ho provato è una macchina virtuale, quindi pensate a che giro fanno questi pacchetti :D

Stufo76
20-01-2011, 13:30
Ho misurato circa 700 KB/s.

Sono più o meno i valori che ho misurato io e confermano quello che sospettavo: il collo di bottiglia è la cpu del router che va a tappo e non riesce a gestire la cifratura di un numero di pacchetti maggiore di quel limite.

gnommo
20-01-2011, 15:33
Sono più o meno i valori che ho misurato io e confermano quello che sospettavo: il collo di bottiglia è la cpu del router che va a tappo e non riesce a gestire la cifratura di un numero di pacchetti maggiore di quel limite.

adesso vediamo il dual core del dgn3500 come si comporta :D

Alpine
20-01-2011, 16:30
che versione di openvpn state compilando?

vi da questo errore al configure?
configure: error: C preprocessor "mips-linux-uclibc-g++" fails sanity check

cionci
20-01-2011, 16:54
No, non abbiamo quell'errore. La versione è 0.8.9q. Il gcc che usiamo è il 4.3.3.

Alpine
20-01-2011, 17:08
No, non abbiamo quell'errore. La versione è 0.8.9q. Il gcc che usiamo è il 4.3.3.

non trovo versioni di openvpn più vecchie della 1.2 http://openvpn.net/release/old/

il gcc fornito da linksys è il 3.4.2

cionci
20-01-2011, 17:15
non trovo versioni di openvpn più vecchie della 1.2 http://openvpn.net/release/old/

il gcc fornito da linksys è il 3.4.2
Ho sbagliato, credevo di OpenSSL...la versione di OpenVPN è la 2.1.4. Hai risolto i problemi che avevi ?
Quella versione di GCC è un po' vecchiotta :muro:

Stufo76
21-01-2011, 09:17
Dunque, sto procedendo con il test di openvpn, e già vi segnalo il primo bug :D
Premessa: come già verificato, la cpu del dgn2200 non regge un flusso di pacchetti superiore a circa 5mbit.
Analizzando il troughtput, mi sono accorto che c'era qualcosa di strano.
Infatti notavo "picchi" verso l'alto e il basso, come se venissero persi pacchetti.
Inoltre un paio di volte la vpn è temporaneamente "caduta", per poi ristabilire automaticamente il collegamento poco dopo.
Ho quindi abilitato il log verbose (verb 6) e mi sono accorto di numerosi messaggi del tipo "Replay-window backtrack occurred [x]" con x che saliva progressivamente da 1 in su.
Ho spulciato un po' i documenti, ed ho scoperto l'arcano.
Con la condifurazione standard (compresa quella che ho fatto io), openvpn utilizza la porta 1194 e il protocollo udp.
Nella maggior parte delle configurazioni è un bene utilizzare il protocollo udp, perché è più veloce, leggero ed efficiente e più "compatibile" con i firewall.
Il problema è che, se hai una adsl con una banda superiore ai famosi 5mbit di "limite" della cpu del router (io ad es. ho una 20mbit), ed hai una connessione remota con una banda di upload maggiore, il protocollo udp non funziona bene: infatti è un protocollo connectionless, ovvero lo scambio di dati tra mittente e destinatario non crea prima un circuito fisico o virtuale su cui instradare l'intero flusso di dati in modo predeterminato e sequenziale, e perciò non gestisce il riordinamento dei pacchetti né la ritrasmissione di quelli persi. Tant'è vero che di solito si utilizza per lo streaming di flussi audio/video, sui quali si può tollerare anche perdita oppure overflow di pacchetti.
In pratica il protocollo udp suddivide il flusso di dati in frame instradati singolarmente ed indipendentemente l'uno dall'altro, senza ack di ritorno e senza controllo della corretta sequenza di inoltro: questo non garantisce né l'effettiva consegna del singolo pacchetto né il rispetto della sequenza temporale corretta.
Quindi, avendo il router una capacità di gestire un numero di pacchetti inferiore a quanto gli trasmetto, inizia a ricevere un overflow di pacchetti con sequenza temporale sbagliata.
Openvpn ha un buffer (di default 64 pacchetti, incrementabile) per ovviare a questo problema, ma ovviamente funziona soltanto se l'overflow è temporaneo.
Se uploado un grosso file, qualsiasi dimensione del buffer imposto, prima o poi il buffer si riempie, openvpn comincia droppare pacchetti e il tunnel vpn cade.
Ho pensato quindi di provare con il protocollo tcp, che a differenza dell'udp è connection-oriented, e garantisce la corretta trasmissione (ed eventuale ritrasmissione) dei pacchetti anche in questo particolare caso.
Per il momento sembra funzionare, sperem...
Vi aggiorno quando completo i test, stay tuned ;)

Alpine
21-01-2011, 10:12
Ho sbagliato, credevo di OpenSSL...la versione di OpenVPN è la 2.1.4. Hai risolto i problemi che avevi ?
Quella versione di GCC è un po' vecchiotta :muro:

si risolto, ho compilato anche io openvpn , mi è bastato vedere cosa faceva lo script , avevo definito la variabile export CPP=$CROSS_COMPILE"gcc" modificandola in export CPP="" configure è andato liscio.

oggi mi hanno pure attivato l'adsl "miracolo",

cionci
21-01-2011, 10:22
si risolto, ho compilato anche io openvpn , mi è bastato vedere cosa faceva lo script , avevo definito la variabile export CPP=$CROSS_COMPILE"gcc" modificandola in export CPP="" configure è andato liscio.

oggi mi hanno pure attivato l'adsl "miracolo",
E l'altro problema sull'interfaccia web ?

Stufo76: è vero che l'UDP non gestisce il riordino e le ritrasmissioni, ma solitamente il protocollo superiore sì, proprio tramite quel buffer (o finestra) di 64 pacchetti.
Evidentemente il buffer è troppo piccolo per restare al passo con la CPU che arranca.
Comunque anche qui hanno settato TCP: http://www.networkedmediatank.com/wiki/index.php/Openvpn

Io invece ho cattive notizie: questa notte ho provato in tutti i modi a far partire il router con il kernel compilato per iptables, ma non c'è stato verso. Si accende persino la luce del WPS, ma evidentemente qualcosa di software riavvia il router. Credo che sia un controllo interno al modulo acos (che si occupa proprio di NAT e firewall). E' possibile che trovi attivo il NAT completo e così scazza. Sarà un grosso problema far convivere i due sistemi. Ed in ogni caso mi serve la seriale per poter indagare meglio sull'output.

Stufo76
21-01-2011, 10:22
Ho fatto qualche test in tcp, e come mi aspettavo le prestazioni peggiorano, anche la latenza è aumentata da 24 a 26 msec:

http://img828.imageshack.us/img828/9223/21012011111421.png

Stufo76
21-01-2011, 10:26
Stufo76: è vero che l'UDP non gestisce il riordino, ma solitamente il protocollo superiore sì, proprio tramite quel buffer di 64 pacchetti.
Evidentemente il buffer è troppo piccolo per restare al passo con la CPU che arranca.

la mia conclusione è stata proprio questa: qualsiasi dimensione del buffer non va comunque bene, perché continuando a trasmettere pacchetti con un throughput molto superiore alle capacità di gestione della cpu del router, prima o poi il buffer comunque si riempie. con il tcp sembra funzionare, ma le performance peggiorano.

Stufo76
21-01-2011, 14:08
ok, altro problemino prontamente diagnosticato e risolto.
ho notato che con il protocollo tcp il problema di cui parlavo di perdita dei pacchetti sembrava scomparire, però... dopo un po' ritornava prontamente, bello uguale :cry:
Ma perchè???
Pensa che ti ripensa, ho capito: openvpn usava la cpu a tappo, ma la stessa cpu viene usata, tra le altre cose, anche per... ruotare i pacchetti.
Quindi usare il protocollo tcp non serve ad un razzo, perché così facendo se è vero che openvpn non perde più pacchetti, poi è il kernel che non ci sta più dietro nel ruotarli, e il risultato è più o meno uguale...
Poi... :idea:
C'è già nice... proviamo. Con nice -n 10 il problema è già scomparso, ma io ci ho comunque messo -n 19, tanto a livello di performance non cambia un bip.
In questo modo il protocollo tcp si occupa di accodare, riordinare e ricevere l'ack dei pacchetti, ma comuque la priorità è la più bassa, prima viene la priorità di ruotarli.
Dopo un po' di test, sembra funzionare...
Ora con calma mi studio come sono fatto i pacchetti di modfs, così vedo se almeno riesco a postarvi un pacchetto fatto secondo lo standard.
Pensavo che ci starebbe bene pack_own_iface (interfaccia con sotto categoria propria, come Package Manager), chiamata... OpenVPN.
Che ne pensate?

cionci
21-01-2011, 14:19
Stufo76: ottimo lavoro. All'interfaccia già pensava Gnommo, quindi l'importante è che tu gli dia la configurazione, gli script per l'avvio e per l'arresto. Dopo così vedi un po' come si fa ;)

Gnommo...mi daresti la lista dei moduli caricati sul DGN3500 ?

gnommo
21-01-2011, 14:23
Gnommo...mi daresti la lista dei moduli caricati sul DGN3500 ?

moduli di kernel?

Module Size Used by Tainted: P
ext3 119024 1
jbd 63632 1 ext3
nf_nat_sip 6208 0
nf_conntrack_sip 15472 1 nf_nat_sip
ath_pktlog 14688 0
wlan_scan_ap 14624 0
wlan_acl 6048 0
wlan_wep 6368 0
wlan_tkip 13344 0
wlan_ccmp 9152 3
wlan_xauth 1408 0
ath_pci 180256 1 ath_pktlog
ath_rate_atheros 60784 2 ath_pktlog,ath_pci
wlan 252224 10 ath_pktlog,wlan_scan_ap,wlan_acl,wlan_wep,wlan_tkip,wlan_ccmp,wlan_xauth,ath_pci,ath_rate_atheros
ath_dfs 39392 1 ath_pci
ath_hal 580272 5 ath_pktlog,ath_pci,ath_rate_atheros,ath_dfs
ipt_REJECT 8144 2 ath_hal
ifx_ppe 63840 1
fuse 46480 0
ct_mgr 4176 0
dwc_otg_host 123584 0
ipt_condition 2960 2
ipt_random 1728 0
ipt_psd 43760 1
led_hw 1904 0
led_pb_api 6352 1 led_hw

Stufo76
21-01-2011, 15:49
Stufo76: ottimo lavoro. All'interfaccia già pensava Gnommo, quindi l'importante è che tu gli dia la configurazione, gli script per l'avvio e per l'arresto. Dopo così vedi un po' come si fa ;)

Gnommo...mi daresti la lista dei moduli caricati sul DGN3500 ?

Grazie, questo è il pacchetto testato e funzionante http://www.mediafire.com/?8373a9cpo873csr

DANWHITE
21-01-2011, 20:43
Ho installato modfs sul DGN2200, ed ho notato che la finestra di Port/forwarding non funziona: cioè non permette di aggiungere il forward di porte.
Come workaround ho reinstallato il firmware originale, aggiunto le porte da inoltrare sugli indirizzi interni alla NAT e poi ho reinstallato il firmware modfs. Il forward delle porte funziona è la finestra WEB che ha problemi.

Ho poi testato la velocità del samba di default sul Netgear, le prestazioni non sono esaltanti:

1) Velocità SDHC quando collegata al computer:

write speed: 8.24 MB/s, read speed: 14.6 MB/s

1) Velocità SDHC quando collegata via LAN al Netgear:

write speed: 3.25 MB/s, read speed: 4.86 MB/s

Ciao

DANWHITE
21-01-2011, 20:59
Come accennato oggi ho deciso di installare modfs su una SDHC con due partizioni, la prima come FAT32, la seconda come ext2. Il comando fdisk mi da il seguente output


~ # /sbin/fdisk /dev/sda

Disk /dev/sda: 16.0 GB, 16039018496 bytes
255 heads, 63 sectors/track, 1949 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 1797 14434371 c Win95 FAT32 (LBA)
/dev/sda2 1798 1949 1220940 83 Linux


ma quando provo a montare la partizione:


/tmp # mkdir sdhc
/tmp # mount /dev/sda2 /tmp/sdhc
mount: mounting /dev/sda2 on /tmp/sdhc failed: Invalid argument
/tmp # mount -t ext2 /dev/sda2 /tmp/sdhc
mount: mounting /dev/sda2 on /tmp/sdhc failed: No such device


dove può essere il problema ?

Ciao

Parnas72
22-01-2011, 02:45
Ho installato modfs sul DGN2200, ed ho notato che la finestra di Port/forwarding non funziona: cioè non permette di aggiungere il forward di porte.A me l'aggiunta di nuove porte funziona senza problemi con modfs installato.

Ho poi testato la velocità del samba di default sul Netgear, le prestazioni non sono esaltantiNormale, la CPU del router fa quello che può. Comunque il protocollo SMB non è il massimo, in termini di efficienza. Se provi, ad esempio, via FTP dovresti avere un throughput un po' più elevato (comunque sempre nell'ordine dei 5 MB/s in lettura).

DANWHITE
22-01-2011, 08:01
A me l'aggiunta di nuove porte funziona senza problemi con modfs installato.

Ho provato questa mattina e funziona anche a me, forse occorre aspettare (molto ?) dopo il reboot del router. ;)

cionci
22-01-2011, 10:15
Confermo anche io che non ci sono problemi per il port forwarding.

Per la SD sinceramente non ne ho idea.

Sto sperimentando con iptables, ma ci sono vari problemi.

Gnommo: mi puoi dare l'output di:

iptables -m physdev

gnommo
22-01-2011, 10:21
Gnommo: mi puoi dare l'output di:

iptables -m physdev

iptables v1.2.8: Couldn't find match `physdev'
:D

cionci
22-01-2011, 10:26
iptables v1.2.8: Couldn't find match `physdev'
:D
Su internet si legge che non c'è modo di fare il forward dei pacchetti verso le interfacce bridged senza abilitare

iptables -A FORWARD -m physdev --physdev-is-bridged -j ACCEPT

A questo punto non so più dove andare a parare. Iptables sembra funzionare, ma non funziona il nat.

cionci
22-01-2011, 10:36
Che versione di kernel ha il tuo ?

gnommo
22-01-2011, 11:07
Che versione di kernel ha il tuo ?

2.6.20

Ah dimenticavo, con i nuovi sorgenti del .28 il kernel si compila senza alcun problema.
Quindi posso fare qualsiasi modifica, attualmente sto facendo alcune prove.

DANWHITE
22-01-2011, 11:35
Per la SD sinceramente non ne ho idea.

Anch'io non ho idea, i casi possono essere 2:

1) non è possibile montere più di una partizione per device
2) non è possibile montare partizioni Linux

Per curiosità, qual'è la differenza tra la busybox (installata nella directory di modfs) del DGN2200 e del DGN3500 ?. Ho provato il comando fdisk, quello del DGN2200 mi lista le partizioni ed esce subito, mentre quello del DGN3500 mi presenta il prompt dei comandi (comportamento normale) ?

Ciao,

cionci
22-01-2011, 11:38
Anch'io non ho idea, i casi possono essere 2:

1) non è possibile montere più di una partizione per device
2) non è possibile montare partizioni Linux

Per curiosità, qual'è la differenza tra la busybox (installata nella directory di modfs) del DGN2200 e del DGN3500 ?. Ho provato il comando fdisk, quello del DGN2200 mi lista le partizioni ed esce subito, mentre quello del DGN3500 mi presenta il prompt dei comandi (comportamento normale) ?

Ciao,
Aspetta, non avevo visto che era ext2. Non mi sembra di aver inserito il modulo del kernel per ext2.

Comunque è possibile montare più partizioni. Io ne monto sempre due, ma ne ho montate anche tre.
fdisk è readonly per il DGN2200. Questo per limitare la dimensione dell'eseguibile di busybox.

edit: c'è già il modulo, va caricato:

insmod /lib/modules/mod/ext2.ko

DANWHITE
22-01-2011, 12:52
edit: c'è già il modulo, va caricato:
insmod /lib/modules/mod/ext2.ko

Ok, adesso funziona !! :)

P.S.
sulle flash-key e sulle SD preferisco evitare i jfs come ext3 e ntfs. Le SDHC vanno meglio ma ove posso preferisco limitare i cicli di scrittura.

cionci
22-01-2011, 12:54
Ok, adesso funziona !! :)

P.S.
sulle flash-key e sulle SD preferisco evitare i jfs come ext3 e ntfs. Le SDHC vanno meglio ma ove posso preferisco limitare i cicli di scrittura.
Anche io, ma è stata una necessità. Pensa se non fosse stato journalled... Spengo il router dal pulsante e boom :eek: Se non altro la scrittura è limitata all'area in cui risiede il file mod_image.bin.

cionci
22-01-2011, 14:25
Ho adattato un directory browser... Se qualcuno vuole dargli un'occhiata...
Ho cercato il più semplice e leggere. Ho corretto diversi problemini ed ora sembra essere quasi perfetto.
Al momento ci sono dei problemini:
- se si vuole editare un file di testo, non prende lo stile dell'editor al primo edit, mentre lo prende se si salva il file
- non si possono modificare alcune variabili fondamentali del php.ini come upload_tmp_dir (da cambiare in $modfs/tmp), upload_max_filesize (limitato a 2M), quindi bisognerebbe scrivere un php.ini. A quanto pare basterebbe crearlo nella stessa dir dell'interprete php, visto che è lanciato sotto forma di cgi.

Per accedere al file browser: http://ip:8081/shares

gnommo
22-01-2011, 14:52
Ok, adesso funziona !! :)

P.S.
sulle flash-key e sulle SD preferisco evitare i jfs come ext3 e ntfs. Le SDHC vanno meglio ma ove posso preferisco limitare i cicli di scrittura.

non penso che ext2 sia quello migliore, jffs2 effettua il wear leveling software, quindi sotto questo punto di vista sarebbe quello da scegliere.

cionci
22-01-2011, 14:56
non penso che ext2 sia quello migliore, jffs2 effettua il wear leveling software, quindi sotto questo punto di vista sarebbe quello da scegliere.
Infatti ci stavo proprio pensando. Alla fine jffs2 forse è il migliore.

cionci
22-01-2011, 15:04
Ho adattato un directory browser... Se qualcuno vuole dargli un'occhiata...
Ho cercato il più semplice e leggere. Ho corretto diversi problemini ed ora sembra essere quasi perfetto.
Al momento ci sono dei problemini:
- se si vuole editare un file di testo, non prende lo stile dell'editor al primo edit, mentre lo prende se si salva il file
- non si possono modificare alcune variabili fondamentali del php.ini come upload_tmp_dir (da cambiare in $modfs/tmp), upload_max_filesize (limitato a 2M), quindi bisognerebbe scrivere un php.ini. A quanto pare basterebbe crearlo nella stessa dir dell'interprete php, visto che è lanciato sotto forma di cgi.

Per accedere al file browser: http://ip:8081/shares
Ho fatto il commit ;)

DANWHITE
22-01-2011, 15:26
Non so ...:confused:

Leggendo questo post si desume che è meglio ext2 :

http://www.linux-mtd.infradead.org/faq/jffs2.html

mentre leggendo questi 2 post si desume che le memorie SDHC sono la versione economica delle SSD e quindi sono adatte per operazioni con un numero elevato di cicli di scrittura:

http://www.dd-wrt.com/wiki/index.php/Linux_SWAP

http://robert.penz.name/137/no-swap-partition-journaling-filesystem-on-a-ssd/

anche se, ad essere sinceri, utilizzando delle semplici flash-keys si otterrebbe probabilmente un ciclo di vita che in ogni caso è superiore di quello del router su cui sono installate ...

A propositito, mi è venuta in mente una domanda, perchè non rendete modfs compatibile con open-wrt ? Di recente anche su dd-wrt è possibile installare i packages di open-wrt.

Ciao ;)

Alpine
22-01-2011, 17:55
@cionci: ti allego il phpinfo del router WAG320N con modfs

psl nello specifico gli eseguibili del DGN2200 mi danno questo errore:

./cp: can't resolve symbol '__cxa_atexit'

VICIUS
23-01-2011, 09:09
Ho alzato i grafici di un terzo e corretto l'errore nel help.

cionci
23-01-2011, 09:13
@cionci: ti allego il phpinfo del router WAG320N con modfs

psl nello specifico gli eseguibili del DGN2200 mi danno questo errore:

./cp: can't resolve symbol '__cxa_atexit'
LD_LIBRARY_PATH punta a /tmp/mod/modfs/lib:/tmp/mod/modfs/lib/DGN2200, giusto ?

Alpine
23-01-2011, 10:19
LD_LIBRARY_PATH punta a /tmp/mod/modfs/lib:/tmp/mod/modfs/lib/DGN2200, giusto ?

prima non settavo LD_LIBRARY_PATH , settandolo non cambia molto :
# cd DGN2200/
# ./ls
Segmentation fault
# ls
ls: can't resolve symbol '__uClibc_start_main

in ogni caso ho i miei bin

cionci
23-01-2011, 11:16
Ok

Ho visto phpinfo e sembra tutto ok. A che punto stai del porting ?
Ti dico subito che per modificare il SNR ho usato un sistema che funziona solo modificando il firmware. In pratica ho realizzato uno script che va a sostituire xdslctl ed in caso sia abilitato il tweak, gestisce i parametri passati ad xdslctl prendendoli da nvram.
A propositito, mi è venuta in mente una domanda, perchè non rendete modfs compatibile con open-wrt ? Di recente anche su dd-wrt è possibile installare i packages di open-wrt.
Perché sono un bel po' diversi. Sotto ogni punto di vista. Modfs non è un firmware completo, è solo una estensione del firmware originale.

VICIUS: ottimo ;) Lo aggiungo al repository ?