View Full Version : [Modfs] Sviluppo pacchetti e porting su altri router
Se non sbaglio io avevo modificato qualcosa nel sorgente. Ci sono dei define per i file di lock e pid. Verifica che i percorsi esistano.
si era esattamente come dicevi tu , il programma cercava di creare un file in /var/locks/p910%cd ma nel firmware esiste solo la dir /var/lock
che ne pensate di creare una dir in svn per salvare della documentazione utile al progetto? (es. script e le varie impostazioni usate per compilare i vari bin)
Gnommo...ho questo script:
function hide_button(what)
{
if(what == false)
$('#apply').hide();
else
$('#apply').show();
}
Voglio applicarla al caricamento della pagina, ovviamente in un pacchetto modfs. Come faccio ?
Ho provato con:
$(document).ready(function () { hide_button(true); });
ma non funziona. Se ci metto un alert lì dentro però funziona. hide_button va senza problemi se la chiamo da un evento di un evento onclick. Forse manca il riferimento alla form ?
Gnommo...ho questo script:
function hide_button(what)
{
if(what == false)
$('#apply').hide();
else
$('#apply').show();
}
Voglio applicarla al caricamento della pagina, ovviamente in un pacchetto modfs. Come faccio ?
Ho provato con:
$(document).ready(function () { hide_button(true); });
ma non funziona. Se ci metto un alert lì dentro però funziona. hide_button va senza problemi se la chiamo da un evento di un evento onclick. Forse manca il riferimento alla form ?
Dovrebbe funzionare mettendo in un tag script ad inizio pagina questo:
$(function() {hide_button(true); });
#apply chi è?
E' un button in fondo alla pagina.
E' un button in fondo alla pagina.
testato, funziona.
Basta che metti
$(function() {hide_button(true); });
in un tag script nella pagina.
testato, funziona.
Basta che metti
$(function() {hide_button(true); });
in un tag script nella pagina.
Ok, funziona ;)
Buon giorno a tutti.
Ho comprato pochi giorni fu il DGN2200 proprio dopo aver letto della possibilità di "giocare" col Modfs.
Ho, pertanto, iniziato con una cosa semplice (sono molto arrugginito sia di linux sia di php :p ) a scrivere un piccolo task manager che ora vi posto.
Aspetto Critiche :confused: e suggerimenti:help:
Buon giorno a tutti.
Ho comprato pochi giorni fu il DGN2200 proprio dopo aver letto della possibilità di "giocare" col Modfs.
Ho, pertanto, iniziato con una cosa semplice (sono molto arrugginito sia di linux sia di php :p ) a scrivere un piccolo task manager che ora vi posto.
Aspetto Critiche :confused: e suggerimenti:help:
Ottimo.
E' una cosa che dovevamo fare.
Che altre info si potrebbero aggiungere?
Info sulla cpu, il clock etc, sulla rete.
edit: Perchè non provi a sostituire
all'interno dei tag tr i tag th invece che td, vedi se l'effetto ti piace.
Hai suggerimenti per vedere uso CPU e rete.
Ho provato a lanciare un TOP (che sul mio ubuntu mi da come seconda linea la % di utilizzo della cpu) ma sul router da solo l'elenco dei processi. non saprei che comanti unix lanciare :mc:
Hai suggerimenti per vedere uso CPU e rete.
Ho provato a lanciare un TOP (che sul mio ubuntu mi da come seconda linea la % di utilizzo della cpu) ma sul router da solo l'elenco dei processi. non saprei che comanti unix lanciare :mc:
ci sono file in proc come cpuinfo,loadavg, più altri specifici come amazon_s_cgu per il dgn3500 per sapere il clock.
Come informazioni di rete la maggior parte già le ha raccolte cionci in pacchetti, mancherebbe mi pare il numero delle connessioni massime e di quelle attive, tipo come puoi vedere qui:
http://www.dd-wrt.com/demo/Status_Router.asp
cliccandoci su si possono anche vedere le connessioni.
ci sono file in proc come cpuinfo,loadavg, più altri specifici come amazon_s_cgu per il dgn3500 per sapere il clock.
Come informazioni di rete la maggior parte già le ha raccolte cionci in pacchetti, mancherebbe mi pare il numero delle connessioni massime e di quelle attive, tipo come puoi vedere qui:
http://www.dd-wrt.com/demo/Status_Router.asp
cliccandoci su si possono anche vedere le connessioni.
Ho fatto alcune modifiche minori e ho aggiunto modello CPU e Load average;
Per il numero connessioni ho provato a fare un netstat ma il router non ne vuole sapere.:muro:
PS: per fare questa paginetta io ho usato solo PHP e qualche richiamo a funzioni unix e quindi non ho dovuto compilare nulla.
Se mi volessi mettere a creare una funzione per il reboot programmato (partendo dall'WIFI scheduler) come mi posso muovere?
Ho fatto alcune modifiche minori e ho aggiunto modello CPU e Load average;
Per il numero connessioni ho provato a fare un netstat ma il router non ne vuole sapere.:muro:
PS: per fare questa paginetta io ho usato solo PHP e qualche richiamo a funzioni unix e quindi non ho dovuto compilare nulla.
Se mi volessi mettere a creare una funzione per il reboot programmato (partendo dall'WIFI scheduler) come mi posso muovere?
Non mi ricordo più come è la situazione sul dgn2200, sul dgn3500 basta lanciare il comando reboot.
Sul dgn2200 mi pare non funzionasse, ma non ricordo cionci cosa ha fatto in merito.
Non mi ricordo più come è la situazione sul dgn2200, sul dgn3500 basta lanciare il comando reboot.
Sul dgn2200 mi pare non funzionasse, ma non ricordo cionci cosa ha fatto in merito.
Sì, ora funziona ;)
Il comando reboot era chiaro ma per schedularlo devo interfacciarmi con modf per il db e ricompilare il modulino ma io non ho idea di come fare.
Il comando reboot era chiaro ma per schedularlo devo interfacciarmi con modf per il db e ricompilare il modulino ma io non ho idea di come fare.
Non devi ricompilare niente ;)
C'è il comando per aggiungere uno schedule a crond: devi chiamare cron_entry e update del pacchetto cron.
Una entry è così formata: http://it.wikipedia.org/wiki/Crontab
Grazie, appena ho un attimo ci guardo
Grazie, appena ho un attimo ci guardo
Guarda il pacchetto wifi_sched come fa a fare lo scheduling chiamando cron_entry
Ciao Alpine, ho visto che in firma hai il Blobbox Hybrid della Telesystem. Siccome lo vorrei acquistare a breve, potresti gentilmente dirmi come ti ci sei trovato? Funziona bene oppure hai avuto problemi? Cosa puoi dirmi al suo riguardo? Ogni ulteriore notizia è gradita!
Grazie
Non è meglio se glielo chiedi tramite messaggio privato ? ;)
Ciao Alpine, ho visto che in firma hai il Blobbox Hybrid della Telesystem. Siccome lo vorrei acquistare a breve, potresti gentilmente dirmi come ti ci sei trovato? Funziona bene oppure hai avuto problemi? Cosa puoi dirmi al suo riguardo? Ogni ulteriore notizia è gradita!
Grazie
Ti ho inviato un messaggio privato. qui siamo in o.t.
Ci sono news ?
Ho finito di sviluppare OpenVPN. Ora c'è sia la modalità client che quella server. In sostanza ora due router Modfs si possono connettere fra loro con una connessione cifrata con chiave a 2048 bit ed agire come se fossero in rete locale. Il tutto configurabile tramite l'interfaccia di Modfs.
Andrebbe testata...
Ci sono news ?
Ho finito di sviluppare OpenVPN. Ora c'è sia la modalità client che quella server. In sostanza ora due router Modfs si possono connettere fra loro con una connessione cifrata con chiave a 2048 bit ed agire come se fossero in rete locale. Il tutto configurabile tramite l'interfaccia di Modfs.
Andrebbe testata...
Mi propongo volontario, però prima devo fare il merge delle modifice sul branch linksys
Ho trovato un altro server UPnP DLNA che viene usato anche sui nas con poca potenza di calcolo, ushare: http://ushare.geexbox.org/
Sembra che scandisca i media in diretta e sia nettamente più veloce nella scansione, lo provo.
random566
04-04-2011, 09:11
Ci sono news ?
Ho finito di sviluppare OpenVPN. Ora c'è sia la modalità client che quella server. In sostanza ora due router Modfs si possono connettere fra loro con una connessione cifrata con chiave a 2048 bit ed agire come se fossero in rete locale. Il tutto configurabile tramite l'interfaccia di Modfs.
Andrebbe testata...
anch'io proverei volentieri openvpn fra 2 dgn2200.
adesso, fra le 2 utenze adsl fra le quali mi serve la vpn sto utilizzando 2 dg834gt con il firmware dgteam, poichè purtroppo la vpn ipsec del dgn2200 prevista dal firmware originale netgear ha il bug della mancata riconnessione a seguito di cambio di indirizzo ip di una delle 2 adsl.
magari prefereirei farlo con l'ultimo firmware, poichè la v. 1.0.0.20 mi ha dato notevoli problemi a causa dei reset alle impostazioni di fabbrica dopo un riavvio
Grazie a random566, il servizio OpenVPN è stato testato su lan collegate con due DGN2200. Tutto funziona come previsto ed è resistente anche al cambio IP delle due reti. Ovviamente il tutto utilizzando un servizio DDNS.
Alpine: purtroppo ho dovuto aggiornare diverse cose, dà uno sguardo e fai il merge. Dal punto di vista del firmware come sei messo ?
Cionci con il nuovo firmware del dgn3500 ho un problema con modfs,
praticamente il comando
mount -t ext3 $loopdev $mountpath
si blocca.
Tutti i comandi precedenti non mi danno errori, andando in dmesg non trovo alcuna indicazione, o losetup non fa quello che deve fare oppure devo ricompilare il modulo ext3, anche se il kernel non è cambiato e non ho i sorgenti.
Hai provato con
mount -t ext3 $immagine $mountpath -o loop
Magari il modulo per il loopback device è già nel kernel.
Trovato mi dice:
EXT3-fs: invalid journal inode.
Si fosse corrotta l'immagine? ora vedo.
Trovato mi dice:
EXT3-fs: invalid journal inode.
Si fosse corrotta l'immagine? ora vedo.
ho rianimato modfs, solo ext3 che doveva essere ricompilato, mi pare che ci sia il supporto a inotify, meno male che i sorgenti del firmware .28 molto probabilmente sono quelli del .30, infatti questo firmware .30 doveva essere il .28, poi probabilmente hanno avuto qualche problema e hanno rilasciato un .28 uguale al .25
Sto testando ushare, un server UPnP DLNA alternativo. Per funzionare funziona, il problema è che non fa alcuna scansione dei media, condivide tutto a diritto, qualsiasi contenuto.
Inoltre non permette di andare avanti o indietro all'interno dello stesso file.
La scansione dei file però è praticamente istantanea (perché non verifica la tipologia del media).
Sto testando ushare, un server UPnP DLNA alternativo. Per funzionare funziona, il problema è che non fa alcuna scansione dei media, condivide tutto a diritto, qualsiasi contenuto.
Inoltre non permette di andare avanti o indietro all'interno dello stesso file.
La scansione dei file però è praticamente istantanea (perché non verifica la tipologia del media).
Beh non vedo alternative :D o non si indicizza ed è velocissimo o se indicizza ci vuole tempo, anche sul pc ci vuole.
Mi pare di aver visto che sul nuovo firmware per dgn3500 dovrebbe essere attivo inotify , bisognerebbe vedere attivandolo su minidlna come si comporta.
Beh non vedo alternative :D o non si indicizza ed è velocissimo o se indicizza ci vuole tempo, anche sul pc ci vuole.
Mi pare di aver visto che sul nuovo firmware per dgn3500 dovrebbe essere attivo inotify , bisognerebbe vedere attivandolo su minidlna come si comporta.
Il problema è che inotify monitorando molte cartelle occupa una sfacelo di CPU.
La cosa migliore sarebbe che minidlna implementasse uno smart rescan...
Cionci qualche consiglio per il firmware del dgn3500 ?
Mi trovo in questa nuova situazione con il firmware .30:
firmware con partizione principale squashfs ed una partizione jffs2 da 512KB per la lingua.
Ora visto che i comandi per settare i parametri dell'adsl non sono così ben definiti come il dgn2200, ma si dovrebbero fare tramite una console
per cui sono costretto a scrivere roba del genere
echo -e "acs 2 \n quit \n " | dsl_cpe_control -c
per eseguirli automaticamente, che è pure abbastanza lento perchè il quit dalla console impiega un pò di tempo.
L'alternativa è scrivere un programma che apre /dev/dsl_driver e inviare i comandi al driver, che è quello che fa la console dsl_cpe_control quindi posso vedere dai sorgenti come si mandano i comandi.
Comunque insomma c'è molta sperimentazione da fare per trovare la soluzione ottimale, sia per i comandi adsl e sia su come inviarli.
Avevo pensato di procedere così:
fare delle modifiche minimali nel firmware, aggiungendo i moduli di kernel per ext3 ed il comando losetup e modificare etc/rcS inserendo in due punti (verso l'inizio e verso la fine) due chiamate a script run1.sh e run2.sh da mettere nella partizione jffs2
Così posso continuare a modificare gli script senza riflashare ed un semplice reset alle impostazioni di fabbrica dovrebbe ripulire anche la partizione jffs2 e poi non è un problema a rimettere gli script dentro.
Avere un partizione scrivibile come quella è molto comodo, ci dovrebbe essere anche sul 2200, ma non ho capito bene come viene gestita, è tutto closed. Come si chiama la partizione ?
Mi sembra la cosa migliore da fare.
Avere un partizione scrivibile come quella è molto comodo, ci dovrebbe essere anche sul 2200, ma non ho capito bene come viene gestita, è tutto closed. Come si chiama la partizione ?
Mi sembra la cosa migliore da fare.
la partizione si chiama UILANG e viene montata rw in /www.eng/langs
la partizione si chiama UILANG e viene montata rw in /www.eng/langs
Potresti addirittura prevedere l'aggiornamento degli script da internet tramite Modfs... Sarebbe una figata ;)
Magari la parte di avvio di Modfs la metterei statica, tanto una volta scritta non è che devi farci tante modifiche.
Potresti addirittura prevedere l'aggiornamento degli script da internet tramite Modfs... Sarebbe una figata ;)
Magari la parte di avvio di Modfs la metterei statica, tanto una volta scritta non è che devi farci tante modifiche.
Sai che non so se questo firmware è la versione finale...
all'inizio riscontro un comportamento anomalo, forse hanno fatto qualche casotto: in pratica durante il boot il router inizia ad agganciare la portante, poi si blocca all'improvviso, dopo un pò ci riprova e alla terza volta inizia il lampeggiamento vero e proprio per agganciare la portante, come se nel boot lo start dell'adsl venisse richiamato tre volte in diverse parti
Sai che non so se questo firmware è la versione finale...
all'inizio riscontro un comportamento anomalo, forse hanno fatto qualche casotto: in pratica durante il boot il router inizia ad agganciare la portante, poi si blocca all'improvviso, dopo un pò ci riprova e alla terza volta inizia il lampeggiamento vero e proprio per agganciare la portante, come se nel boot lo start dell'adsl venisse richiamato tre volte in diverse parti
Questo ovviamente porta a qualche problemino... Devi aggiustare bene i tempi.
Questo ovviamente porta a qualche problemino... Devi aggiustare bene i tempi.
Con un script scritto così è facile confondersi:
#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/sbin/scripts:/usr/local/sbin
UTC=yes
mount -n -t proc proc /proc
mount -n -t ramfs ramfs /home
mount -n -t ramfs ramfs /tmp
mount -n -t ramfs ramfs /mnt
mount -n -t ramfs ramfs /dev
mount -n -t tmpfs tmpfs /image -o size=9m
mount -t devpts devpts /dev/pts
# build var directories
/bin/mkdir -m 0777 /tmp/var
/bin/mkdir -m 0777 /var/lock
/bin/mkdir -m 0777 /var/log
/bin/mkdir -m 0777 /var/run
/bin/mkdir -m 0777 /var/tmp
/bin/mkdir -m 0777 /tmp/etc
/bin/mkdir -m 0755 /etc/dnrd
/bin/mkdir -m 0777 /mnt/shares
/bin/mkdir -m 0777 /var/run/bftpd
/bin/cp -a /usr/etc/* /etc
/bin/cp -a /usr/dev/* /dev/
/bin/mknod /dev/sc_led c 225 0
/bin/mknod /dev/dk0 c 63 0
#For string table language files
/bin/mknod /dev/mtdblock9 b 31 9
/bin/mount -n -t jffs2 /dev/mtdblock9 /www.eng/langs
# 2004.03.04 add by Joel for VPN logging buffer
/usr/sbin/mybuf /var/run/mybuf.in /var/log/vpn &
# 2004.06.04 add by Joel for VPN traffic trigger
/usr/sbin/vpn_trigger &
# insert modules
#/sbin/insmod /lib/modules/bcm_enet.ko
#/sbin/insmod /lib/modules/vnet.ko
#/sbin/insmod /lib/modules/atmapi.ko
#/sbin/insmod /lib/modules/blaa_dd.ko
#/sbin/insmod /lib/modules/adsldd.ko
#/sbin/insmod /lib/modules/fast_br.ko
/sbin/insmod /lib/modules/led_pb_api.ko
/sbin/insmod /lib/modules/led_hw.ko
/sbin/insmod /lib/modules/ipt_string.ko
/sbin/insmod /lib/modules/ipt_psd.ko
/sbin/insmod /lib/modules/ipt_random.ko
/sbin/insmod /lib/modules/ipt_REJECT.ko
/sbin/insmod /lib/modules/ipt_condition.ko
#echo "------------------------------"
/sbin/insmod /lib/modules/dwc_otg_host.ko
/sbin/insmod /lib/modules/ct_mgr.ko
/sbin/insmod /lib/modules/ipt_PNAT.ko
/sbin/insmod /lib/modules/fuse.ko
# Marc add to insert KLIPS ipsec stack module.
/sbin/insmod /lib/modules/ipsec.ko
/usr/sbin/led_app on 70
sleep 1
/sbin/mkdir /tmp/adsl
# start services
/usr/sbin/brctl addbr br0
/usr/sbin/brctl stp br0 no
/sbin/ifconfig eth0 0.0.0.0 up
/usr/sbin/brctl addif br0 eth0
/sbin/insmod /lib/modules/ifx_ppe.ko
sleep 2
/usr/sbin/adslmod
#/usr/sbin/adslmod &
#/usr/sbin/rc wlan stop
# stamp lan start time
/bin/cp /proc/uptime /tmp/lan_uptime
ifconfig lo 127.0.0.1
route add -net 127.0.0.0 netmask 255.0.0.0 lo
#/usr/sbin/atmctl stop
#/usr/sbin/adslctl start --mod dlp2tem --bitswap on --sra on --lpair i
#/usr/sbin/adslctl connection --up
#/usr/sbin/atmctl start --pqs 125
#JIM force to use IGMP v2
#echo "2" > /proc/sys/net/ipv4/conf/all/force_igmp_version
# debug staff
#/usr/sbin/micro_inetd 23 /usr/sbin/utelnetd&
/sbin/klogd&
sleep 1
# set mac adress to /tmp/mac_address (currently, this is used for udhcp)
getenv ethaddr > /tmp/mac_addresee
/usr/sbin/oamd &
/usr/sbin/rc init
/usr/sbin/scfgmgr
/usr/sbin/cmd_agent_ap
/usr/sbin/rc start
#killall syslogd
#/sbin/syslogd -f /etc/syslog.conf
#/usr/sbin/dproxy -c /etc/resolv.conf&
/usr/sbin/crond &
#/usr/sbin/atm_monitor init
/usr/sbin/multi_pb_app 90 91 92 10 40&
#/usr/sbin/utelnetd &
#Ron add for upnpd
route add -net 239.0.0.0 netmask 255.0.0.0 br0
/sbin/cat /proc/amazon_s_mei/fw_version > /tmp/adsl/version
#echo "0 0" > /proc/sys/vm/pagetable_cache
# router
#echo 1 > /proc/sys/net/ipv4/ip_forward
# pppox
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
# add more conntrack
# echo 2048 > /proc/sys/net/ipv4/ip_conntrack_max
# ignore_all not yet used: this should be satisfactory
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# drop spoofed addr: turn this off when rip is on ?
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
# do not honor source route flags
echo 0 > /proc/sys/net/ipv4/conf/default/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# this needs proper sampling on av_blog to determine optimal value
# for now just observe softnet_stats to see # time was throttled
# historical value was 300
echo 100 > /proc/sys/net/core/netdev_max_backlog
# echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout
# Blanch WIFI RX/TX throughput
echo 1000 > /proc/sys/net/core/netdev_max_backlog
### Argon add for OSGI requied commands
# /bin/mkdir -m 0777 /tmp/bundles
# /bin/mount -t jffs2 /dev/mtdblock7 /tmp/bundles
# sleep 10
# /bin/mkdir -m 0777 /tmp/bundles/configuration
# /bin/rm -f /tmp/bundles/README
#
# sleep 1
# echo "/usr/sbin/osgi/bin/cvm -jar /usr/sbin/osgi/org.eclipse.osgi_3.4.2.R34x_v 20080826-1230.jar -console" > /tmp/osgi_cmd
###
/usr/sbin/fake_utelnetd -l /bin/sh &
Sospetto che venga chiamato adslmod che è il comando per lanciare l'adsl e poi anche rc start che all'interno richiami adslmod
Alla fine permane questa riga
/usr/sbin/fake_utelnetd -l /bin/sh &
che nel dgn3500 non ha alcun effetto perchè fake_utelnetd non esiste :D
C'è un po' di casino :D Alcuni sono i moduli dei chipset Broadcom...
Ok firmware modificato fatto,flashato e perfettamente funzionante.
Ciò che non ho verificato è se con il reset viene ripulita la partizione jffs2, se così non fosse sarebbe un problema perchè si potrebbe brickare il router se c'è uno script in /www.eng/langs che blocca il boot.
Dopo il flash la partizione jffs2 rimane intatta.
Ok si ripulisce dopo il reset .
Quindi se si impalla al boot per qualche script sbagliato, accendendo il router con il tastino di reset premuto si dovrebbe ripristinare il funzionamento.
L'unica cosa rispetto al dgn2200 è che l'installazione di modfs richiederà un passo in più:
-flash del firmware modificato
-copia ed esecuzione su usb di uno script di installazione che copia i file di avvio in /www.eng/langs/modfs
-copia di modfs su usb
Spero che non sia troppo complicata per gli utenti questa procedura :D
Ah cionci al contrario tuo io della nvram me ne sbatto, con la partizione jffs2 ad esempio per modificare l'snr all'avvio basta che sovrascrivo uno script di avvio adsl con i valori che voglio(tanto /etc è in ram) e questo script lo mantengo nella partizione jffs2 :D
Ah cionci al contrario tuo io della nvram me ne sbatto, con la partizione jffs2 ad esempio per modificare l'snr all'avvio basta che sovrascrivo uno script di avvio adsl con i valori che voglio(tanto /etc è in ram) e questo script lo mantengo nella partizione jffs2 :D
Eh ci credo :muro: :muro:
Potresti fare in modo che alla prima accensione del router dopo il flash o dopo il reset, ci vada a copiare gli script di avvio di Modfs automaticamente. Se lo script di avvio non esiste, allora ci copi la versione presente nel firmware del router.
Giusto per evitare di dover fare quel passaggio in più.
Allora cionci, vogliamo mettere in cantiere un'altra release di modfs?
Con la tua santa pazienza :D mi riaggiorni su quello che deve essere sistemato in generale ed i pacchetti che devono essere testati sul dgn3500 ?
Io per il dgn3500 devo fare il pacchetto per l'adsl e il pacchetto che gestisce gli script di avvio.
Il grafico dell'snr lo devo riscrivere perchè i file in /proc da cui prendevo i dati non esistono più, ora devo per forza accedere alla console dsl_cpe_control per recuperare i dati.
Invece per le impostazioni adsl non ho bisogno di richiamare dsl_cpe_control ma c'è un comodo script che viene eseguito durante la fase di avvio dell'adsl, dove posso fare tutte le modifiche.
In tema di adsl,
Sul dgn2200 di quanto è l'escursione rispetto al target snr normale?
Vorrei capire la differenza su come funziona sul dgn2200 e come sul dgn3500 che non è mi è chiaro.
C'è da qualche parte una tabella con i profili adsl con i rispettivi target.
A me pare che prima con l'adsl2+ di alice il profilo fosse 8128 a 12db ora con libero in adsl1 mi pare che sia 8128 a 17-18db.
Ora posso agire diminuendo l'snr di 5db
come risultato mi da che aggancia circa 7600 e come snr misurato mi da circa 12db, mentre normalmente mi da 8128 con snr misurato di circa 16-17db
Purtroppo tu non puoi fare alcun test sulla tua linea, visto che agganci la portante massima. Se abbassando il SNR Margin ti si abbassa la portante (in teoria dovrebbe essere il contrario) allora è probabile che il DSLAM tratti questo valore come scarsa qualità della linea e abbassi automaticamente la portante.
In sostanza per fare i test servirebbe una 20 o 7 mega che non aggancia il massimo della portante.
I target SNR Margin dei provider purtroppo sono variabili. Ci sono vari profili sul DSLAM con vari target, a seconda del contratto, a seconda della distanza dalla centrale, a seconda della qualità della linea.
I target più diffusi sono 12 dB (tutte le 7 Mega di Telecom e wholesale, le 20 Mega di Telecom e wholesale lontane dalla centrale) e 6 dB (20 Mega Telecom e e wholesale vicine alla centrale).
Tiscali invece, su linee ULL, regola la portante massima da agganciare in base alla qualità della linea e al margine di rumore (quindi se si abbassa c'è il rischio che abbassino la portante). In sostanza sarebbe bene non toccare niente con questo provider.
Il pacchetto da testare sul DGN3500 è principalmente quello OpenVPN (devo ancora fare l'help per la modalità client). Guarda se devi fare o meno una ricompilazione. Serve il device /dev/net/tun.
C'era da riguardare il perché nel pacchetto file_browser, l'editor non acquisisce lo stile la prima volta che si apre un file per la modifica, ma lo prende dopo un salvataggio.
E poi il problema più grosso: Modfs si vede particolarmente male su IE :fiufiu:
Poi se hai voglia, ci sarebbe da testare Transmission...
Ho fatto il merge del trunk sul mio branch, ora però se vi va vorrei provare a riportare tutto sul trunk, se per voi va bene, se preferite proviamo prima a fare una net to net di prova o altro...
per poter condividere la LAN di casa che "Remote Netmask" devo inserire es 255.255.255.0 e in Remote Network ID cosa metto ??
Ho fatto il merge del trunk sul mio branch, ora però se vi va vorrei provare a riportare tutto sul trunk, se per voi va bene, se preferite proviamo prima a fare una net to net di prova o altro...
per poter condividere la LAN di casa che "Remote Netmask" devo inserire es 255.255.255.0 e in Remote Network ID cosa metto ??
Il Network ID è l'AND fra l'ip privato del router remoto e il Netmask. In sostanza per 192.168.1.1 è 192.168.1.0.
Ovviamente deve essere diverso rispetto a quello locale.
Per il merge, se vuoi ci penso io. Dammi solo il via.
@Alpine a che punto sei con il porting? Cosa ti manca?
@Alpine a che punto sei con il porting? Cosa ti manca?
di quello che ho fatto il porting funziona tutto bene solo dopo l'ultimo merge la parte openvn non rileva la connessione del client
mi rimane da creare un firmware per fare l'auto mount del mod.
sto facendo uno stress test sulla vpn (sto scaricando un file di 3gb dalla box di casa la velocità è sui 40/44 KB/s ), per ora ho tirato 100mb senza problemi anche se non penso che completerò il download...
ho fatto il porting di:
cron
printer
wifi_sched
openvpn
stunnel
https
file_browser
wol
ora che ci penso manca sshd (vorrei usare authorized_keys) come configurato dal mio script su chiavetta
se serve altro fatemi sapere.
In teoria dovresti fare il porting di tutti quelli comuni...
Magari minidlna non è interessante per il tuo router e lo puoi saltare ;)
In teoria dovresti fare il porting di tutti quelli comuni...
Magari minidlna non è interessante per il tuo router e lo puoi saltare ;)
Ho caricato il porting di tones_graphs per il dgn3500.
Ho cambiato un pò la struttura dei file, controllate se continua a funzionare correttamente anche sul dgn2200.
Ho caricato il porting di tones_graphs per il dgn3500.
Ho cambiato un pò la struttura dei file, controllate se continua a funzionare correttamente anche sul dgn2200.
Attualmente non si funziona niente :sofico:
Edit: non ho notato che devo aggiornare anche index.js e index.php ;)
Tutto ok ;)
Ho dovuto fare così, perchè a me per fare il grafico impiega dai 5 ai 6 secondi,
e pareva brutto che premendo sul menu tones_graphs rimanesse bloccato sulla schermata corrente, qualcuno poteva pensare di non aver premuto bene e continuare a premere aumentando l'attesa.
Come al solito su firefox funziona a pennello, cioè esce la pagina tones_graphs bianca con il popup processing in primo piano finchè non appare il grafico, su ie9 invece a volte si e a volte ha lo stesso brutto comportamento di prima :muro:
Sto provvedendo ad uniformare l'aspetto di ie9 a quello di firefox, per ora ho aggiunto i bordi tondi e alcune ombreggiature del testo, il problema che ie accetta le ombreggiature solo su oggetti block e non su quelli inline :muro:
Il problema principale su IE sono le tabelle, ad esempio quella dei servizi, che non vengono fuori bene.
Certo che è assurdo che su HTML 4 siano deprecati i table e non ci sia verso di fare facilmente l'equivalente di un table.
Già che ci sei mettici anche un link per la donazione in Euro ;)
Parnas72
16-04-2011, 18:15
Ciao,
so che oggi c'è grande concitazione per il rilascio dell'aggiornamento di modfs con il nuovo firmware, comunque anche io, nel mio piccolo, oggi rilascio qualcosa: ho implementato un pacchetto per il DGN2200, che si pone come obiettivo quello di rimediare alla limitazione di acos nel forwarding delle porte; come noto, infatti, il NAT del DGN2200 non permette di pubblicare su WAN un servizio con porta diversa da quella usata su LAN. Il che è un problema se, ad esempio, usiamo degli apparati che espongono un'interfaccia web sulla porta 80, che volessimo rendere accessibile da Internet usando però una porta meno "vistosa". L'idea mi è venuta quando ho scritto questo post, qualche giorno fa:
http://www.hwupgrade.it/showpost.php?p=34912910&postcount=7637 (http://www.hwupgrade.it/forum/showpost.php?p=34912910&postcount=7637)
Il mio pacchetto non implementa quindi un NAT vero e proprio, ma si affianca ad acos, sfruttando un servizio in userspace (socat) per gestire la redirezione del traffico; funziona sia con porte TCP che UDP.
Il meccanismo da usare, che spero di avere ben dettagliato nella pagina di help, si appoggia sul pacchetto "extraip", che permette di definire mediante IP aliasing un indirizzo IP aggiuntivo da assegnare al router. Nella pagina di port forwarding del router si dovrà quindi implementare una regola che redireziona la porta desiderata verso l'IP aggiuntivo del router, esattamente come già facciamo per esportare su Internet l'interfaccia web di modfs.
Poi si dovrà andare nella pagina di configurazione del mio pacchetto, e definire il "mapping" da quella porta verso un IP e una porta (anche diversa) di un host sulla LAN.
Si avvia quindi il servizio di "port mapping" dall'apposita pagina, e il tutto dovrebbe funzionare.
E' doveroso precisare che per implementare questo package sono partito dal pacchetto "iptables" di Gnommo per il DGN3500, di cui ho riutilizzato quasi totalmente la pagina web di interfaccia utente per la configurazione delle regole e lo script port_entry per implementare la persistenza su database. Quindi i credits per buona parte del lavoro vanno a lui. ;)
Se qualcuno è interessato alla funzionalità e vuole provarla, questo è il link:
http://www.mediafire.com/?oandrj3yi84v3ye
Il pacchetto l'ho testato solo con il vecchio firmware mod, non ho ancora installato quello rilasciato da Cionci stamattina.
Non credo comunque che ci saranno problemi con la nuova release.
Saluti, Parnas
Grande Parnas !!!
Vediamo se ho capito, supponendo 192.168.0.254 l'ip aggiuntivo.
Permette di definire una tripletta, mettendo porte a caso, da
ip_pubblico:1110 <-> 192.168.0.254:1110 <-> 192.168.0.2:2110
ip_pubblico:1111 <-> 192.168.0.254:1111 <-> 192.168.0.3:2110
ip_pubblico:1112 <-> 192.168.0.254:1112 <-> 192.168.0.4:2110
In sostanza diventa molto utile per servizi in cui non si può configurare la porta del server, in modo di avere più host sulla rete con lo stesso servizio.
Ottimo ;)
Ciao,
so che oggi c'è grande concitazione per il rilascio dell'aggiornamento di modfs con il nuovo firmware, comunque anche io, nel mio piccolo, oggi rilascio qualcosa: ho implementato un pacchetto per il DGN2200, che si pone come obiettivo quello di rimediare alla limitazione di acos nel forwarding delle porte; come noto, infatti, il NAT del DGN2200 non permette di pubblicare su WAN un servizio con porta diversa da quella usata su LAN. Il che è un problema se, ad esempio, usiamo degli apparati che espongono un'interfaccia web sulla porta 80, che volessimo rendere accessibile da Internet usando però una porta meno "vistosa". L'idea mi è venuta quando ho scritto questo post, qualche giorno fa:
http://www.hwupgrade.it/showpost.php?p=34912910&postcount=7637 (http://www.hwupgrade.it/forum/showpost.php?p=34912910&postcount=7637)
Il mio pacchetto non implementa quindi un NAT vero e proprio, ma si affianca ad acos, sfruttando un servizio in userspace (socat) per gestire la redirezione del traffico; funziona sia con porte TCP che UDP.
Il meccanismo da usare, che spero di avere ben dettagliato nella pagina di help, si appoggia sul pacchetto "extraip", che permette di definire mediante IP aliasing un indirizzo IP aggiuntivo da assegnare al router. Nella pagina di port forwarding del router si dovrà quindi implementare una regola che redireziona la porta desiderata verso l'IP aggiuntivo del router, esattamente come già facciamo per esportare su Internet l'interfaccia web di modfs.
Poi si dovrà andare nella pagina di configurazione del mio pacchetto, e definire il "mapping" da quella porta verso un IP e una porta (anche diversa) di un host sulla LAN.
Si avvia quindi il servizio di "port mapping" dall'apposita pagina, e il tutto dovrebbe funzionare.
E' doveroso precisare che per implementare questo package sono partito dal pacchetto "iptables" di Gnommo per il DGN3500, di cui ho riutilizzato quasi totalmente la pagina web di interfaccia utente per la configurazione delle regole e lo script port_entry per implementare la persistenza su database. Quindi i credits per buona parte del lavoro vanno a lui. ;)
Se qualcuno è interessato alla funzionalità e vuole provarla, questo è il link:
http://www.mediafire.com/?102gm3hmgmb2dc7
Il pacchetto l'ho testato solo con il vecchio firmware mod, non ho ancora installato quello rilasciato da Cionci stamattina.
Non credo comunque che ci saranno problemi con la nuova release.
Saluti, Parnas
Bene, quindi la soluzione userspace funziona bene?
Ovviamente non c'è bisogno di precisare i credits, il pacchetto è sotto GPL
quindi è previsto che venga preso come base per altro o esteso :D
Ormai più o meno siamo arrivati al punto che tutte le funzionalità di modfs vanno per entrambi i router.
Parnas72
16-04-2011, 19:11
Permette di definire una tripletta, mettendo porte a caso, da
ip_pubblico:1110 <-> 192.168.0.254:1110 <-> 192.168.0.2:2110
ip_pubblico:1111 <-> 192.168.0.254:1111 <-> 192.168.0.3:2110
ip_pubblico:1112 <-> 192.168.0.254:1112 <-> 192.168.0.4:2110
In sostanza diventa molto utile per servizi in cui non si può configurare la porta del server, in modo di avere più host sulla rete con lo stesso servizio.
Sì, esattamente. :) La prima redirezione da te indicata viene fatta dal NAT di acos, la seconda da socat.
Il binario di socat ho cercato di ridurlo ai minimi termini disabilitando in compilazione tutte le feature non necessarie, alla fine sono arrivato a circa 250 KB "stripped".
Ah, una cosa: in caso di errori io faccio produrre un file di log sotto /var/log. Va bene, o è meglio metterlo da qualche altra parte ?
Metterlo in $modfs/tmp/log sarebbe la cosa migliore, ma alla fine cambia poco ;)
Parnas72
17-04-2011, 14:05
Cionci, il kernel nel firmware che hai rilasciato ieri supporta l'interfaccia tun0 per le VPN ? Ho visto che la VPN built-in usa ipsec0.
Chiedo perchè uno di questi giorni volevo provare a compilare vpnc, anche se ho già visto che mi mancano un po' di librerie necessarie (es. libgcrypt).
Sì, il modulo per il kernel è nel pacchetto openvpn.
Parnas72
17-04-2011, 19:54
Sì, il modulo per il kernel è nel pacchetto openvpn.Ottimo, l'ho installato. Grazie.
Ho dato un sistematina al codice e creato uno zip con tutto quello che avevo scritto tempo fa per dnsmasq. E' praticamente finito ma mancano alcune cose come l'aggiornamento ogni volta che il server dhcp concede un nuovo ip e del file hosts con i server pubblicitari.
Per il primo mi avevi detto come fare ma mi sono scordato. Se vuoi guardarci te non devi far altro che lanciare gli script update_dhcp_hosts.sh e poi start.sh. Per il secondo avevo pensato di mettere una chiamata a curl direttamente al link ogni settimana su crond.
http://www.mediafire.com/?smm3bd7umvdb412
Vicius...mi dici una lista di siti da bloccare da scaricare ?
Vicius...mi dici una lista di siti da bloccare da scaricare ?
Quella che uso per ora è questa http://someonewhocares.org/hosts/hosts è già nel formato giusto. Basterebbe scaricarla con curl o wget dicendogli di scrivere il file sopra al vecchio hosts.adblock. Credo che il massimo sia rilanciare dnsmasq solo se ci sono cambiamenti dall'ultima versione visto che ci mette qualche secondo a ricaricare tutta la lista.
Quella che uso per ora è questa http://someonewhocares.org/hosts/hosts è già nel formato giusto. Basterebbe scaricarla con curl o wget dicendogli di scrivere il file sopra al vecchio hosts.adblock. Credo che il massimo sia rilanciare dnsmasq solo se ci sono cambiamenti dall'ultima versione visto che ci mette qualche secondo a ricaricare tutta la lista.
Dovrebbe essere possibile ricaricare la lista la volo inviando SIGHUP, ora verifico ;)
Quindi senza interrompere il servizio, si spera.
Dovrebbe essere possibile ricaricare la lista la volo inviando SIGHUP, ora verifico ;)
Quindi senza interrompere il servizio, si spera.
Sarebbe perfetto per dirgli di rileggere il file. Si potrebbero togliere un po' di killall.
gnommo e Alpine: partendo dall'ottimo lavoro di VICIUS, ho terminato il pacchetto per sfruttare dnsmasq per poter risolvere automaticamente il nome dei PC aggiunti dal server DHCP. E' possibile specificare manualmente altri nomi host e scaricare un file hosts da un url specificato tramite interfaccia grafica (per proteggere la LAN intera da spam, ads e da siti malevoli).
gnommo e Alpine: partendo dall'ottimo lavoro di VICIUS, ho terminato il pacchetto per sfruttare dnsmasq per poter risolvere automaticamente il nome dei PC aggiunti dal server DHCP. E' possibile specificare manualmente altri nomi host e scaricare un file hosts da un url specificato tramite interfaccia grafica (per proteggere la LAN intera da spam, ads e da siti malevoli).
ok testo.
Cionci perchè adsl info dipende da basic info?
Posso eliminare la dipendenza?
Non toccate adsl info e basic info che sto per scassare tutto per poterci infilare il dgn3500 :D
Cionci perchè adsl info dipende da basic info?
Posso eliminare la dipendenza?
Non toccate adsl info e basic info che sto per scassare tutto per poterci infilare il dgn3500 :D
Per l'ordine ;)
In questo modo bisogna installare prima Basic Info e poi Adsl Info in modo che l'ordine nel menu sia sempre lo stesso, visto che Basic Info è il pacchetto che viene caricato di default all'accesso al router.
Mettimi uno screen dopo, sono curioso di vedere ;)
Per l'ordine ;)
In questo modo bisogna installare prima Basic Info e poi Adsl Info in modo che l'ordine nel menu sia sempre lo stesso, visto che Basic Info è il pacchetto che viene caricato di default all'accesso al router.
Mettimi uno screen dopo, sono curioso di vedere ;)
Ah ecco, ora ricordo.
Continuami a rinfrescare la memoria, perchè adsl info ha il flag start at boot?
Parnas72
21-04-2011, 21:49
Buona serata a tutti! Pongo una domanda:
ho compilato, installato e configurato sul DGN2200 il client VPN Cisco che utilizzo normalmente, da casa e dall'ufficio, quando devo collegarmi sui server del cliente per attività di installazione o supporto. Funziona, nel senso che *dal router* riesco ad avere connettività verso la LAN del cliente. Ho quindi sfruttato il mio pacchetto di port mapping per rendere fruibili dalla LAN alcune porte di mio interesse verso gli host del cliente (essenzialmente mi serve la porta 3389 del desktop remoto).
Questo personalmente mi è sufficiente, però sarebbe utile (nell'ottica di fare un package per un utilizzo più generale) che si potesse nattare il traffico di rete verso l'interfaccia tun0 della VPN, in modo che la connettività della VPN sia estesa interamente anche ai PC della rete locale. Fare questo con iptables è semplicissimo, e infatti in ufficio abbiamo un serverino Linux che lo fa. :D
Sul DGN2200, con acos, immagino non sia possibile nattare la LAN verso un'interfaccia di rete che non sia il PPP, vero ?
Ti basta fare routing. Ti serve un regola di routing, è quello che facciamo con il client OpenVPN. Individua la network ID della LAN remota (IP interno del server VPN AND netmask) ed instrada il traffico verso l'ip dell'interfaccia tun0 o verto l'interfaccia tun0 stessa.
Il client VPN della Cisco è possibile che abbia già implementata qualche opzione per inserire la route automaticamente ?
Parnas72
22-04-2011, 15:28
Ti basta fare routing.
Il traffico viene già instradato correttamente, tant'è che dal router la LAN del cliente (indirizzi 10.x.x.x) si raggiunge.
Ma questo non è sufficiente, perchè la LAN remota non sa instradare il traffico verso gli IP della mia LAN (192.168.0.x), e io ovviamente non posso modificare le rotte sui sistemi del cliente. Serve necessariamente il NAT.
Il client VPN della Cisco è possibile che abbia già implementata qualche opzione per inserire la route automaticamente ?Il client Cisco di per sè non imposta nessuna rotta, ma viene data la possibilità di richiamare uno script esterno (scritto ad-hoc) che lo faccia (cosa che ho già fatto).
Mi sembra di capire che non è come OpenVPN. Con OpenVPN i due peer ricevono una coppia fissa di IP al di fuori delle subnet di entrambe le LAN.
In pratica a te assegnano un IP della LAN del cliente, in questo modo dal router riesci a raggiungere i PC della LAN remota, mentre dai PC della tua LAN no ed ovviamente anche il viceversa.
Potresti dare uno sguardo a questo: http://www.linux-support.com/cms/en/component/content/article/12-man-pages/31132-minewt-userspace-nat-mat-gateway-man1
Sperando che funzioni.
Parnas72
22-04-2011, 16:31
In pratica a te assegnano un IP della LAN del cliente, in questo modo dal router riesci a raggiungere i PC della LAN remota, mentre dai PC della tua LAN noEsatto. Anche perchè il cliente ha decine di fornitori che si collegano sulla sua VPN, e non potrebbe fare instradamenti specifici per ciascuno di essi.
Potresti dare uno sguardo a questo: http://www.linux-support.com/cms/en/component/content/article/12-man-pages/31132-minewt-userspace-nat-mat-gateway-man1
Sperando che funzioni.Guarderò, ti ringrazio.
Babar on the rocks
23-04-2011, 19:38
Ciao, volevo fare i complimenti a tutti perché avete fatto davvero uno splendido lavoro.
Volevo chiedere se è possibile aggiungere un modo per settare un orario diverso nel week-end rispetto alla settimana nel "wfi schedule".
(Inoltre esiste la possibilità di ottenere un nuovo ip senza passare per il Riavvio del firmware originale? Perché con il modfs si blocca sempre)
Grazie!
Grazie ;)
Router Status -> Connection Status -> Disconnetti -> Connetti
Babar on the rocks
24-04-2011, 12:20
Cavolo, era l'unico bottone che non avevo mai premuto :doh:
Grazie ;)
Router Status -> Connection Status -> Disconnetti -> Connetti
Per quel che riguarda la mia proposta? è fattibile?
Ciao, volevo fare i complimenti a tutti perché avete fatto davvero uno splendido lavoro.
Volevo chiedere se è possibile aggiungere un modo per settare un orario diverso nel week-end rispetto alla settimana nel "wfi schedule".
(Inoltre esiste la possibilità di ottenere un nuovo ip senza passare per il Riavvio del firmware originale? Perché con il modfs si blocca sempre)
Grazie!
Cavolo, era l'unico bottone che non avevo mai premuto :doh:
Per quel che riguarda la mia proposta? è fattibile?
Fra un pò dovrò revisionare il wifi schedule, vedrò di fare qualcosa in merito.
Parnas72
24-04-2011, 15:05
Volevo chiedere se è possibile aggiungere un modo per settare un orario diverso nel week-end rispetto alla settimana nel "wfi schedule".Attualmente non si può fare da interfaccia web, ma è comunque possibile inserire la pianificazione direttamente in crontab.
Ad esempio, supponendo che il sabato e la domenica vuoi spegnere il wi-fi alle 7:15 e riaccenderlo alle 19:30, da interfaccia telnet esegui questi comandi:
$modfs/packages/$device/cron/scripts/cron_entry -s wifioff-WE "15 07 * * 0,6 wl radio off"
$modfs/packages/$device/cron/scripts/cron_entry -s wifion-WE "30 19 * * 0,6 wl radio on"
$modfs/packages/$device/cron/scripts/update
0,6 sono i giorni della settimana a cui si applica la regola (rispettivamente domenica e sabato).
Babar on the rocks
24-04-2011, 17:17
Funziona perfettamente! :D
Attualmente non si può fare da interfaccia web, ma è comunque possibile inserire la pianificazione direttamente in crontab.
Ad esempio, supponendo che il sabato e la domenica vuoi spegnere il wi-fi alle 7:15 e riaccenderlo alle 19:30, da interfaccia telnet esegui questi comandi:
$modfs/packages/$device/cron/scripts/cron_entry -s wifioff-WE "15 07 * * 0,6 wl radio off"
$modfs/packages/$device/cron/scripts/cron_entry -s wifion-WE "30 19 * * 0,6 wl radio on"
$modfs/packages/$device/cron/scripts/update
0,6 sono i giorni della settimana a cui si applica la regola (rispettivamente domenica e sabato).
Però per fare una prova ho dato questo comando:
$modfs/packages/$device/cron/scripts/cron_entry -s wifion-WE "10 18 * * 0,6 wl radio on"
per cancellarlo è giusto fare questo?
$modfs/packages/$device/cron/scripts/cron_entry -u wifion-WE "10 18 * * 0,6 wl radio on"
Parnas72
24-04-2011, 17:33
per cancellarlo è giusto fare questo?
$modfs/packages/$device/cron/scripts/cron_entry -u wifion-WE "10 18 * * 0,6 wl radio on"Per cancellarlo basta il nome della regola:
$modfs/packages/$device/cron/scripts/cron_entry -u wifion-WE
$modfs/packages/$device/cron/scripts/update
Ricordati che quando fai qualche modifica con "cron_entry" poi devi sempre chiamare "update" per rigenerare il crontab.
Babar on the rocks
24-04-2011, 17:44
Grazie mille Parnas! :)
Per cancellarlo basta il nome della regola:
$modfs/packages/$device/cron/scripts/cron_entry -u wifion-WE
$modfs/packages/$device/cron/scripts/update
Ricordati che quando fai qualche modifica con "cron_entry" poi devi sempre chiamare "update" per rigenerare il crontab.
scusate la lunga assenza,
cmq adesso il branch è ad un buon punto, quindi sarebbe il caso di passare al merge con il trunk , (ho già fatto un refresh del trunk sul branch e testato il tutto)
i moduli portati con successo sono :
additional_WAG320N="common/cron \
common/sshd \
common/printer \
common/wifi_sched \
common/openvpn \
common/stunnel \
common/https \
common/file_browser \
common/wol \
common/tones_graphs \
"
scusate la lunga assenza,
cmq adesso il branch è ad un buon punto, quindi sarebbe il caso di passare al merge con il trunk , (ho già fatto un refresh del trunk sul branch e testato il tutto)
i moduli portati con successo sono :
additional_WAG320N="common/cron \
common/sshd \
common/printer \
common/wifi_sched \
common/openvpn \
common/stunnel \
common/https \
common/file_browser \
common/wol \
common/tones_graphs \
"
A cionci l'onere di valutare :D
Per il grafico tones_graphs non sarebbe anche il caso di mostrare l'snr medio sui toni, così come la media dei bit allocati per tono e la somma totale dei bit
?
Non sono degli elementi utili per stimare il rapporto fra snr, portante e margine di rumore?
Chi penso fra oggi e domani, spero. Ho cambiato lavoro e sono davvero incasinato, il tempo da dedicare al progetto è veramente poco.
Gnommo: hai fatto quelle modifiche di cui parlavi tempo fa?
Chi penso fra oggi e domani, spero. Ho cambiato lavoro e sono davvero incasinato, il tempo da dedicare al progetto è veramente poco.
Gnommo: hai fatto quelle modifiche di cui parlavi tempo fa?
Io sono disoccupato, ma il tempo è poco lo stesso :D
Pian piano sto procedendo, in particolare la questione di IE è :muro:
per fare le cose bene necessita di un css tutto per sè
Io sono disoccupato, ma il tempo è poco lo stesso :D
Pian piano sto procedendo, in particolare la questione di IE è :muro:
per fare le cose bene necessita di un css tutto per sè
Odio queste cose. IE9 funziona meglio ?
Io sono disoccupato, ma il tempo è poco lo stesso :D
Pian piano sto procedendo, in particolare la questione di IE è :muro:
per fare le cose bene necessita di un css tutto per sè
Te lo chiedevo per sapere se era il caso o meno di fare il merge. Alla fine forse è meglio fare il merge senza modifiche. Alla fine se fai il merge con Eclipse e SubEclipse puoi tranquillamente vedere i conflitti fra la tua versione e la nuova.
Alla fine se fai il merge con Eclipse e SubEclipse puoi tranquillamente vedere i conflitti fra la tua versione e la nuova.
si non c'è problema.
Ho fatto il merge, testate e sappiatemi dire ;)
@alpine
Sul forum di modfs
http://sourceforge.net/projects/modfs/forums/forum/1290231/topic/4521252
c'è uno con il wag320n e la jtag che si è offerto come tester.
Se non hai la jtag io ne approfitterei :D
Non conviene ricompilare il sorgente, meglio spacchettare il firmware originale e impacchettarlo con le modifiche.
Alpine, se hai tempo ti consiglierei di fare il porting di adslinfo e basicinfo.
Ti dovrebbero venire praticamente a gratis rispetto alla versione del DGN2200 ;)
Alpine, se hai tempo ti consiglierei di fare il porting di adslinfo e basicinfo.
Ti dovrebbero venire praticamente a gratis rispetto alla versione del DGN2200 ;)
ok ci provo in questi giorni...
@gnommo ho ricevuto una sua email oggi
Controllate la nuova versione di adslinfo se funziona correttamente sui vostri.
Ciò che non sono riuscito a far funzionare è il refresh, fate sapere se funziona.
In ogni caso lo devo cambiare perchè così a me non funziona.
Boh non setta la variabile di sessione.
Aggiornato basicinfo
qui ho fatto un casino :D
sia graficamente che come pulizia del codice lo devo sistemare.
quindi non badate a questo,
per ora controllate se funziona e possibilmente postate uno screen,
per rendermi conto visivamente cosa devo sistemare
Questo è il mio screen:
http://img402.imageshack.us/img402/7255/basicinfo.th.png (http://imageshack.us/photo/my-images/402/basicinfo.png/)
Su Adslinfo non mi funziona il pulsante Show con le informazioni addizionali.
Interessante quel TaskManager :sofico:
Più tardi provo BasicInfo
Finalmente ho comprato un altro hub USB e sto testando minidlna con il mio hard disk dei film. Devo dire che per ora la scansione va molto bene.
Oggi lavoro un po' sul USB Manager per il DGN2200. Il DGN2200 ha il kernel patchato per mettere il PID di un processo in un file speciale in modo da mandare un segnale a questo processo ogni volta che c'è stata una variazione di configurazione sulla porta USB....
Ed ovviamente mi riguardo anche tutte le ultime modifiche di gnommo.
PS: 110 file in 9 minuti e mezzo
Parnas72
04-06-2011, 13:40
Oggi piove e hai dovuto lasciare la moto nel box ? :D
Oggi piove e hai dovuto lasciare la moto nel box ? :D
Metteva pioggia, ma non sta piovendo :muro: :muro:
Non ce la faccio a compilare ntfsprogs, in particolare mi interessava ntfslabel per recuperare l'etichetta. Qualcuno conosce un metodo alternativo per recuperare l'etichetta delle partizioni NTFS ?
Non ce la faccio a compilare ntfsprogs, in particolare mi interessava ntfslabel per recuperare l'etichetta. Qualcuno conosce un metodo alternativo per recuperare l'etichetta delle partizioni NTFS ?
nel firmware del dgn3500 già c'è ntfslabel :stordita:
prova, anche se è probabile che non vada per via di uclibc, e se provi a compilare quello dei sorgenti del dgn3500 ?
nel firmware del dgn3500 già c'è ntfslabel :stordita:
prova, anche se è probabile che non vada per via di uclibc, e se provi a compilare quello dei sorgenti del dgn3500 ?
Indago. Sto andando avanti sul progetto dell'usb monitor e va molto bene. Ho trovato anche un modo semplice per identificare le partizioni direttamente in raw, usando il comando 'file'.
Ho risolto ancora più facilmente, ho copiato un po' di librerie e l'eseguibile dal DGND3300.
Oggi volevo provare il minidlna del dgnd3700 per vedere se era l'ultima release di minidlna e risparmiarmi così il tempo e gli sbattimenti per la ricompilazione.
Avviato è partito e funzionava, quando ho premuto il tasto rescan ha avuto l'effetto di rm -rf / :D
Cancellato tutto il contenuto della penna compreso il file modfs_image.bin, dell'hd, e del firmware , se avevo un firmware su jffs2 mi brickava anche il router :D
Risultato: perse parecchie modifiche che non avevo sottoposto a commit perchè da finire o in dubbio :D
DeerHunter
17-06-2011, 18:45
@alpine
Sul forum di modfs
http://sourceforge.net/projects/modfs/forums/forum/1290231/topic/4521252
c'è uno con il wag320n e la jtag che si è offerto come tester.
Se non hai la jtag io ne approfitterei :D
Aqui tienes las fotos del jtag y serial .. y un dump del flash .. todo hecho por Mr. Eko ;)
Como te dije en el anterior mensje, pues el JTAG está bien para desbrickear el CFE ..para lo demas, pues tirar de sercomm y cable ethernet..
http://www.fileserve.com/file/nzM6BWC ...
Oggi volevo provare il minidlna del dgnd3700 per vedere se era l'ultima release di minidlna e risparmiarmi così il tempo e gli sbattimenti per la ricompilazione.
Avviato è partito e funzionava, quando ho premuto il tasto rescan ha avuto l'effetto di rm -rf / :D
Cancellato tutto il contenuto della penna compreso il file modfs_image.bin, dell'hd, e del firmware , se avevo un firmware su jffs2 mi brickava anche il router :D
Risultato: perse parecchie modifiche che non avevo sottoposto a commit perchè da finire o in dubbio :D
Lo sai che ho avuto lo stesso problema mentre facevo programmavo l'automounter ?
Ho perso tutto quello che avevo sull'hard disk che collego al WDTV e sulla penna di Modfs.
Oggi mi è saltata l'uscita in moto. Spero di finirlo.
Sembra che mi sia venuta fuori una cosa abbastanza interessante. Vado a scrivere un file su ogni media che contiene le informazioni di configurazione:
- l'etichetta da dare in Modfs
- se si vuole o meno condividere via Samba
- se si vuole o meno condividere via FTP
- se si vuole o meno condividere via web
Ovviamente la gestione di questi parametri di configurazione è ancora assente.
Recupero l'etichetta del file system per FAT32, NTFS e ext2/3. Gestisco anche il mounting di file system con l'etichetta uguale.
Parnas72
16-07-2011, 16:12
Ciao gente,
una domanda: oggi stavo dando un'occhiata al firmware del DGN2200M, così per curiosità, e ho notato che nella directory dei moduli c'è tutta una sezione netfilter che nel DGN2200 manca:
/tmp/rootfs2200M/lib/modules/2.6.21.5/kernel/net # find . -name *ko
./ipv4/netfilter/nf_conntrack_ipv4.ko
./ipv4/opendns/openDNS_hijack.ko
./netfilter/nf_conntrack.ko
./netfilter/nf_conntrack_ftp.ko
./netfilter/nf_conntrack_h323.ko
./netfilter/nf_conntrack_irc.ko
./netfilter/nf_conntrack_pptp.ko
./netfilter/nf_conntrack_proto_gre.ko
./netfilter/nf_conntrack_sip.ko
./netfilter/nf_conntrack_tftp.ko
./netfilter/nfnetlink.ko
./netfilter/x_tables.ko
./netfilter/xt_MARK.ko
./netfilter/xt_SKIPLOG.ko
./netfilter/xt_TCPMSS.ko
./netfilter/xt_dscp.ko
./netfilter/xt_limit.ko
./netfilter/xt_mark.ko
./netfilter/xt_multiport.ko
./netfilter/xt_state.ko
./netfilter/xt_tcpudp.ko
./xfrm/xfrm_user.ko
/lib/modules/2.6.21.5/kernel/net # find . -name *ko
./ipv4/opendns/openDNS_hijack.ko
./xfrm/xfrm_user.ko
Questo significa che probabilmente il kernel fornito con il DGN2200M supporta iptables ? Se fosse così, potrebbe essere un'ottima base per portare la funzionalità sul DGN2200 liscio, visto che i firmware sono compatibili.
marko93b
16-07-2011, 21:40
qualcuno ha provato a fare qualcosa sull'AGA?
^[H3ad-Tr1p]^
18-07-2011, 15:34
uppo
bel post
sarebbe interessante capire se si riesce a far qualcosa anche sul mio belkin F5D8235-4 v.1
qualcuno ha provato a fare qualcosa sull'AGA?
^;35591839']uppo
bel post
sarebbe interessante capire se si riesce a far qualcosa anche sul mio belkin F5D8235-4 v.1
La fattibilità è legata al possesso dei suddetti, non avendoli non vi so dire.
Quindi ci vorrebbe qualcuno che lo possegga e abbia voglia e capacità di fare il porting.
Il requisito base è la presenza della porta usb poi il resto dipende dal firmware, a me con il dgn3500 è andato tutto in discesa, ho messo mano al firmware solo dopo aver ultimato modfs, già cionci con il dgn2200 invece ha dovuto modificare il firmware come passo preliminare.
Parnas72
18-07-2011, 22:10
Quindi ci vorrebbe qualcuno che lo possegga e abbia voglia e capacità di fare il porting.E il tempo, non dimentichiamolo. Un progetto del genere porta via moltissime ore di lavoro.
Diciamo che per arrivare in fondo ci vuole passione. :D
mi segno qui che devo correggere file_browser
durante l'installazione viene creato shares con un link non corretto
Lorenz188
18-08-2011, 11:39
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:
Ciao Gnommo, scusa la domanda:
per vedere quella lista hai dato un semplice iptables -L da root?
Oppure (più probabile) è la lista delle regole che applica quando si carica iptables?
Se fosse quest'ultima, da dove hai beccato quella lista? da dentro i files di conf (o meglio dal compilato) di iptables?
grazie
Ciao Gnommo, scusa la domanda:
per vedere quella lista hai dato un semplice iptables -L da root?
Oppure (più probabile) è la lista delle regole che applica quando si carica iptables?
Se fosse quest'ultima, da dove hai beccato quella lista? da dentro i files di conf (o meglio dal compilato) di iptables?
grazie
No, l'eseguibile proprietario della netgear rc in base alle impostazioni scelte nei menu genera dinamicamente un file con tutte le regole che da applicare ad iptables.
Il file è /tmp/rules
Ciao, provo a fare la domanda qui... ma non sono sicurissimo che sia il posto corretto...
Un po' me ne vergogno...:muro:
Ho fatto partire MODFS sul mio DGN2200... per prima cosa ho impostato la password con un valore 'strong' autogenerato con Keepass...
Tutto perfetto.... tranne il fatto che ho scordato di salvare il database di Keepass...
Quindi addio password...
C'è un modo per resettare la password?
E' scritta da qualche parte?
In alternativa...se ricopio il file bin parto da zero?
Grazie in anticipo per l'aiuto!
Ciao
Carlo
Parnas72
01-10-2011, 21:11
In alternativa...se ricopio il file bin parto da zero?
Se monti l'immagine di modfs (il file .bin) su un sistema Linux è possibile recuperarla, ma fai prima a riscaricare dal sito l'immagine con la password di default.
webmaster1
04-10-2011, 14:18
dite che si potrebbe ottenere una compatibilità col netgear dgnd3700?
Parnas72
04-10-2011, 17:04
dite che si potrebbe ottenere una compatibilità col netgear dgnd3700?E' certamente possibile, ma serve qualcuno che possieda quel modello e che abbia la competenza tecnica, il tempo e la passione per farlo.
Io fossi in te non ci conterei troppo. ;)
ciao, dopo un aggiornamento lampeggia la luce verde sul simbolo del cavo di rete.niente comunicazionw neanche dopo il reset...Ho visto Cionci che un hanno fa ha avuto un caso simile ed e dovuto passare da jtag...paura! c'e un modo piu semplice? grazie ciao Carlo
Parnas72
05-10-2011, 20:56
ciao, dopo un aggiornamento lampeggia la luce verde sul simbolo del cavo di rete.niente comunicazionw neanche dopo il resetPuoi provare a recuperarlo mediante tftp:
http://www.hwupgrade.it/forum/showpost.php?p=34125582&postcount=75
Ha funzionato!
Unico problema avevo rinominato il file del firmare in dng.chk, ma non funzionava.
Lasciando il nome lungo è andato tutto bene.
Grazie
Parnas72
05-10-2011, 23:41
Ha funzionato!
GrazieYou're welcome. :)
I ringraziamenti però vanno a Cionci, non a me. ;)
Ciao,
vorrei estrarre i dati del traffico del router (dgn2200).
Mi basterebbe anche qualcosa da estrarre via telnet.
Ho visto che su linux c'è questa libreria che sembra interessante...
www.ntop.org
Qualcuno ci ha già dato uno sguardo?
Ciao
CArlo
webmaster1
06-10-2011, 12:28
E' certamente possibile, ma serve qualcuno che possieda quel modello e che abbia la competenza tecnica, il tempo e la passione per farlo.
Io fossi in te non ci conterei troppo. ;)
mi potresti dire cosa occorre, e linkarmi possibilmente una "guida" per eseguire il ciò?
Parnas72
06-10-2011, 12:54
Ho visto che su linux c'è questa libreria che sembra interessante...
www.ntop.orgNon lo conosco, ma dubito che possa girare su una macchina con 32 MB di RAM. Comunque puoi provare a installarlo su un PC e vedere che occupazione di memoria ha.
Mi basterebbe anche qualcosa da estrarre via telnet.Per quello può bastare tcpdump, allora. Se non sbaglio la libpcap è già installata, non dovrebbe essere un gran problema mettercelo (però sto andando a memoria, magari mi confondo).
Parnas72
06-10-2011, 18:25
mi potresti dire cosa occorre, e linkarmi possibilmente una "guida" per eseguire il ciò?Il primo passo è scaricarsi il pacchetto con i sorgenti del firmware:
http://www.downloads.netgear.com/files/GPL/DGND3700_V1.0.0.12WW_src_full.zip
Nello zip trovi la toolchain, necessaria per cross-compilare file binari compatibili con la CPU del router, e tutto il necessario per ricompilare l'immagine .chk del firmware Netgear (che sostanzialmente è un archivio contenente due file: un'immagine squashfs del firmware e il kernel Linux).
Una volta che sei riuscito a fare questo, puoi cominciare ad applicarci le tue modifiche (ad esempio, sostituire il comando adslctl originale con un tuo script che mantenga le impostazioni di SNR tweaking).
Non credo che troverai da nessuna parte una guida esaustiva, però se leggi il thread originale di Cionci da cui è nato Modfs:
http://www.hwupgrade.it/forum/showthread.php?t=2241930
sicuramente puoi trovare molti spunti interessanti.
webmaster1
06-10-2011, 18:46
Il primo passo è scaricarsi il pacchetto con i sorgenti del firmware:
http://www.downloads.netgear.com/files/GPL/DGND3700_V1.0.0.12WW_src_full.zip
Nello zip trovi la toolchain, necessaria per cross-compilare file binari compatibili con la CPU del router, e tutto il necessario per ricompilare l'immagine .chk del firmware Netgear (che sostanzialmente è un archivio contenente due file: un'immagine squashfs del firmware e il kernel Linux).
Una volta che sei riuscito a fare questo, puoi cominciare ad applicarci le tue modifiche (ad esempio, sostituire il comando adslctl originale con un tuo script che mantenga le impostazioni di SNR tweaking).
Non credo che troverai da nessuna parte una guida esaustiva, però se leggi il thread originale di Cionci da cui è nato Modfs:
http://www.hwupgrade.it/forum/showthread.php?t=2241930
sicuramente puoi trovare molti spunti interessanti.
Ok, mi son aggiornato sui termini e stò scaricando i files, alla fine la modifica dovrebbe esser piuttosto semplice, penso mi basterebbe rimuovere la riga che blocca il telnet, e "sbloccare" l'utente in modo da farlo risultare ROOT a tutti gli effetti, e render scrivibile la NVRAM, tutto il resto poi, dite che potrebbe esser un buon inizio... ma prima di tutto proviamo la compilazione dell'immagine così com'è, poi il resto :D
webmaster1
06-10-2011, 19:58
Ho scaricato il tutto, scompattato, provato un paio di modifiche sulla configurazione (settato path iniziale dell'FTP sulla root) e ho ricompattato il tutto, purtroppo non trovo la toolchair, nel file di supporto mi dice di scaricare il file che si chiama "uclibc-crosstools-gcc-4.2.3-3_LFS.tar.bz2", solo che con questa stringa su google non mi da risultati convincenti, e premetto che oltrettutto mi trovo su un sistema WINDOWS, dove trovo questo pacchetto dunque? lo posso usare sotto windows?
ma prima di tutto proviamo la compilazione dell'immagine così com'è, poi il resto :D
Disse webmaster1 prima di brikkare il router :D
Io ti consiglio di seguire la strada più sicura di estrarre la root della release originale ed inserire lì le modifiche, nei sorgenti manca sempre qualcosa.
webmaster1
06-10-2011, 20:51
Io ti consiglio di seguire la strada più sicura di estrarre la root della release originale ed inserire lì le modifiche, nei sorgenti manca sempre qualcosa.
che tradotto per un povero comune mortale sarebbe a dire? :D
che tradotto per un povero comune mortale sarebbe a dire? :D
Che dal binario del firmware estrai la partizione di root squashfs la metti in una penna e la monti dal router con un device loop fai il tar e poi su quello apporti le modifiche.
Insomma i passaggi per modificare il firmware/ fare il porting di modfs sono:
-compilare il kernel nei sorgenti
-compilare il modulo loop
-mettere nel router il modulo loop ed il programma losetup
-estrarre dal firmware la partizione squash in un file binario, questo si fa tramite il programma dd, per sapere da che punto a che punto è la partizione squashfs nel firmware ci si può aiutare andando a spulciare lo script che crea il binario del firmware nei sorgenti oppure con un editor binario si vede ad occhio da dove c'è la scritta sqsh fino a che non si capisce che è finito
-posizionare il binario della partizione squashfs su una penna
-creare il file /dev/loop0
-caricare il modulo loop
-tramite losetup far puntare il file con la partizione a loop0
-montare la device loop0 su un percorso
-fare il tar della dir
-portare il tar nei sorgenti, apportare le modifiche per poi riassemblare il firmware, così si è sicuri che nel firmware custom ci siano realmente tutti i file necessari.
Per modfs ti servirà compilare i moduli per ext3 ed eseguire questi passi:
insmod jbd.ko
insmod mbcache.ko
insmod ext3.ko
mknod /dev/loop0 b 7 0
losetup /dev/loop0 mod_image.bin
mkdir -p /tmp/modfs
mount -t ext3 /dev/loop0 /tmp/modfs
da qui protrai entrare nella root di modfs ed iniziare il porting adattando gli script e compilando i binari che servono o riutilizzando quelli che ci sono.
Non lo conosco, ma dubito che possa girare su una macchina con 32 MB di RAM. Comunque puoi provare a installarlo su un PC e vedere che occupazione di memoria ha.
Se il ritorno di fiamma di geekismo attecchisce, magari ci provo!!!
Per quello può bastare tcpdump, allora. Se non sbaglio la libpcap è già installata, non dovrebbe essere un gran problema mettercelo (però sto andando a memoria, magari mi confondo).
Mi dice che non trova tcpdump... libpcap è una libreria che trovo in giro e posso caricare tramite interfaccia di MODFS?
Grazie!
Carlo
Parnas72
06-10-2011, 22:29
Ho scaricato il tutto, scompattato, provato un paio di modifiche sulla configurazione (settato path iniziale dell'FTP sulla root) e ho ricompattato il tutto, purtroppo non trovo la toolchairLe toolchain si trovano qui (http://uclibc.org/toolchains.html) da compilare, oppure qui (ftp://ftp.dd-wrt.com/others/sourcecode/toolchains/current-toolchains.tar.bz2) già compilate.
Per il DGND3700 (Broadcom 6368) penso vada benissimo anche quella compilata da Cionci (http://www.mediafire.com/?yfp4z6w2kjq4yp5) per il DGN2200 (Broadcom 6358).
mi trovo su un sistema WINDOWS, dove trovo questo pacchetto dunque? lo posso usare sotto windows?No, è indispensabile avere un ambiente Linux; va bene anche in VM se ti è più comodo.
Parnas72
06-10-2011, 22:38
Mi dice che non trova tcpdumptcpdump (http://www.tcpdump.org/)è un applicazione che poggia su una libreria chiamata libpcap. Pensavo che libpcap fosse già presente in uno dei pacchetti di modfs, ma mi confondevo con un altro apparecchio che ho in casa :D .
libpcap è una libreria che trovo in giro e posso caricare tramite interfaccia di MODFS?E' una libreria che andrebbe compilata con la toolchain per le CPU MIPS.
Capito... quindi mi devo decidere a rispolverare qualche distro linux e capire quanto basta per compilare il tutto (mi rileggo i post precedenti).
C'è un linux migliore? Ubuntu ultima versione è ok?
Una volta compilate (o dovrei dire "se" :help: ) posso usare l'interfaccia di MODFS o devo copiare i files e installarli da TELNET?
In telnet giro come root? Un po' di giorni fa stavo cercando di fare qualcosa e mi diceva che dovevo essere root...
Grazie ancora!
Ricercando un po' di info per la compilazione delle librerie per il MIPS ho trovato che per altri progetti di firmware ci sono già tali librerie compilate.
Il dd-wrt non supporta il dgn2200, ma suppongo che alcuni dei router supportati siano basati su processori MIPS.
Visto che il mio dgn2200 è basato su BROADCOM BCM6358
il
Netgear WG602 v4 Chipset Broadcom5354
Initial flashing with TFTP
RAM 8 MB
FLASH 2 MB
dovrebbe essere abbastanza simile... giusto?
Se così fosse mi scarico il file .bin (http://www.dd-wrt.com/routerdb/de/download/Netgear/WG602/v4/dd-wrt.v24_micro_generic.bin/3746) e dovrei riuscire a estrarre le librerie che mi interessano...
Esiste un modo per aprire questi file e vedere il filesystem in essi?
Lo posso far fare al DGN con l'istruzione (http://www.hwupgrade.it/forum/showpost.php?p=34059383&postcount=23) di Cionci?
webmaster1
07-10-2011, 15:12
Che dal binario del firmware estrai la partizione di root squashfs la metti in una penna e la monti dal router con un device loop fai il tar e poi su quello apporti le modifiche.
Insomma i passaggi per modificare il firmware/ fare il porting di modfs sono:
-compilare il kernel nei sorgenti
-compilare il modulo loop
-mettere nel router il modulo loop ed il programma losetup
-estrarre dal firmware la partizione squash in un file binario, questo si fa tramite il programma dd, per sapere da che punto a che punto è la partizione squashfs nel firmware ci si può aiutare andando a spulciare lo script che crea il binario del firmware nei sorgenti oppure con un editor binario si vede ad occhio da dove c'è la scritta sqsh fino a che non si capisce che è finito
-posizionare il binario della partizione squashfs su una penna
-creare il file /dev/loop0
-caricare il modulo loop
-tramite losetup far puntare il file con la partizione a loop0
-montare la device loop0 su un percorso
-fare il tar della dir
-portare il tar nei sorgenti, apportare le modifiche per poi riassemblare il firmware, così si è sicuri che nel firmware custom ci siano realmente tutti i file necessari.
Per modfs ti servirà compilare i moduli per ext3 ed eseguire questi passi:
insmod jbd.ko
insmod mbcache.ko
insmod ext3.ko
mknod /dev/loop0 b 7 0
losetup /dev/loop0 mod_image.bin
mkdir -p /tmp/modfs
mount -t ext3 /dev/loop0 /tmp/modfs
da qui protrai entrare nella root di modfs ed iniziare il porting adattando gli script e compilando i binari che servono o riutilizzando quelli che ci sono.
mi sembra una procedura inutilmente lunga, una volta abilitato il telnet e un'altro paio di cose ricompilo il tutto e lo carico come un normalissimo firmware, no?
mi sembra una procedura inutilmente lunga, una volta abilitato il telnet e un'altro paio di cose ricompilo il tutto e lo carico come un normalissimo firmware, no?
prova a compilare tutto, poi ne riparliamo :D
La procedura che ti ho detto si fa in 10-15 minuti, a ricompilare tutto impieghi non meno di 5 ore, a voler essere ottimisti.
Poi devi stare molto attento e sapere quello che fai, quasi mai le procedure di compilazione automatizzata vanno a buon fine e come detto nei sorgenti potrebbero mancare dei pezzi,
problema in cui si trovò cionci che infatti brikkò il router e che dovette recuperare con la jtag.
Io in passato ho ricompilato diverse volte dd-wrt o altri firmware per altri tipi di dispositivi ed è stato sempre un procedimento lungo da seguire passo passo per correggere man mano gli errori che si presentavano durante la compilazione, quindi mi sento di sconsigliare se non sai esattamente quello che stai facendo.
Se vuoi procedere più spedito segui la mia procedura e poi con calma ricompili ciò che realmente ti serve ricompilare, perchè ad esempio lo hai modificato o aggiornato di versione.
Parnas72
07-10-2011, 21:27
Ricercando un po' di info per la compilazione delle librerie per il MIPS ho trovato che per altri progetti di firmware ci sono già tali librerie compilate.Ciao,
sicuramente in rete puoi trovare vari archivi di pacchetti binari per le CPU MIPS, però il fatto di avere compilato per la stessa architettura hardware non è sufficiente, bisogna anche vedere se la uClibc utilizzata per compilare quei pacchetti è la stessa (o almeno una versione compatibile) usata da Cionci per il DGN2200.
Quindi puoi provare, ma non è affatto detto che i binari funzionino.
PS: è molto bello vedere che questo thread, dopo mesi di quiescenza dovuti all'assenza di Cionci, è di nuovo tornato attivo grazie all'entusiasmo di alcuni nuovi utenti. :)
Capito... quindi devo proprio far lavorare i pochi neuroni e compilarmi il tutto... :muro:
PS: vedremo se gli apprezzamenti rimarrano quando capirai l'innata flessibilità di un programmatore di casa M$... a proposito... ma l'F5 dov'é??!?!?!? :doh:
Ciao,
visto che mi serve per iniziare a lavorare con MODFS mi sono appuntato i passi che faccio per creare l'ambiente.
Ora devo capire cosa farmene della toolchain...
Alla fine penso che potrò metterla in giro per chi vuole smanettare con il firmware senza menarsela troppo con la preparazione...
http://folini.wordpress.com/2011/10/08/compilare-una-libreria-per-modfs/
Ciao
Parnas72
08-10-2011, 17:44
Dal momento che hai preso una toolchain precompilata, devi semplicemente scompattarla e ti troverai la toolchain nel path "/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3".
Per configurare l'ambiente di cross-compilazione io uso questo breve script, che va posizionato nello stesso path indicato sopra:
#!/bin/bash
BASEDIR=$(readlink -f $0)
BASEDIR=$(dirname $BASEDIR)
export PATH="$BASEDIR/usr/bin:$PATH"
export CC="mips-linux-gcc"
export CXX="mips-linux-g++"
cd
bash
Lo script come deve essere utilizzato?
Devo dargli un nome particolare in modo che venga eseguito in automatico o devo lanciarlo io? Solo una volta o ogni volta che uso una sessione terminal?
Parnas72
08-10-2011, 20:53
Lo lanci tu da terminale, e ti apre una nuova shell che avrà configurate alcune variabili di ambiente che puntano al cross-compilatore invece che al normale compilatore gcc installato sul sistema.
Dopo di che, essendo la maggior parte dei pacchetti open-source basata su GNU autoconf, la procedura da seguire è più o meno la stessa che si usa per compilare nativamente un qualsiasi pacchetto su Linux (configure && make). Cambiano i parametri che devi passare a configure, perchè gli devi dire che vuoi cross-compilare per una piattaforma target diversa, ma su questo non posso essere più preciso perchè ogni pacchetto può richiedere parametri differenti.
Penso di aver fatto tutto.
Ora seguendo le istruzioni trovate qui (http://www.embeddedlinuxforum.com/viewtopic.php?f=25&t=10) eseguo il comando:
CC=/gcc-3.4.4-2.16.1/build_mips/bin/mips-linux-gcc ac_cv_linux_vers=2 ./configure --host=mips-linux --with-pcap=linux
Ho provato a modificarlo mettendo la versione del gcc nella toolchain ovvero
CC=/gcc-4.2.3-3/build_mips/bin/mips-linux-gcc ac_cv_linux_vers=2 ./configure --host=mips-linux --with-pcap=linux
ma mi becco un errore... probabilmente perchè specifico il nome del gcc errato...
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
checking build system type... x86_64-unknown-linux-gnu
checking host system type... mips-unknown-linux-gnu
checking target system type... mips-unknown-linux-gnu
checking for mips-linux-gcc... /gcc-4.2.3/build_mips/bin/mips-linux-gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
Qualche idea?
Parnas72
09-10-2011, 22:16
Il valore di CC è già stato correttamente impostato nel mio script, se l'hai usato.
Se lo vuoi impostare manualmente, il valore corretto è il path del compilatore sul tuo sistema (/opt/toolchains/...), non un path di un altro sistema trovato su un forum. ;)
:doh:
non avevo capito che la riga aveva sia istruzioni per settare le variabili che per 'configurare' (./configure)
QUindi una volta lanciato il tuo script faccio
./configure --host=mips-linux --with-pcap=linux
ac_cv_linux_vers=2 devo metterlo?
Grazie 1k
Provato a compilare... Sembra che non trovi il compilatore
configure:2312: mips-linux-gcc --version >&5
./configure: line 2313: /opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/mips-linux-gcc: No such file or directory
configure:2315: $? = 127
Nella cartella un file mips-linux-gcc esiste con gli attributi di esecuzione... bohh!!!!
Ne cerca uno con versione maggiore di 5?
Parnas72
10-10-2011, 21:21
Provato a compilare... Sembra che non trovi il compilatoreSe hai dei dubbi che la toolchain possa non funzionare prova a compilare il classico "Hello, World" e a farlo girare sul router. ;)
Ne cerca uno con versione maggiore di 5?Ma LOL...
va bene che vieni dal mondo M$, ma gli operatori di redirezione dell'output esistono anche in ambiente DOS. :read: :Prrr:
PS: prima di indagare sui problemi di cross-compilazione, assicurati di riuscire a compilare il pacchetto in modalità standard, ovvero con il compilatore nativo della distro su PC. Se arrivi in fondo al processo almeno hai la certezza di quali passaggi fare e quali opzioni usare.
Per un utente esperto potrebbe essere un passaggio superfluo, ma visto che per te è un mondo nuovo...
cazzarola non infierire... sto robo che per far qualsiasi cosa devi scartabellare quintali di info mi stà... (laming mode off)
dicevamo...
>&5 pensavo fosse qualche emoticon particolare...
&5 che è? il parametro 5 o più semplicemente l'indirizzo dell'area di memoria puntato dal 5 byte del mac address della macchina fisica dove gira lo script? :confused:
ops... cambiato mode ancora... ufff
Per fare un semplice "hello world" basta creare un file .c?
#include <stdio.h>
int main ()
{
printf ("Hello World!\n");
}
La storia del "configure" devo farla anche con questo?
Basta lanciare il compilatore?
Parnas72
10-10-2011, 22:30
>&5 pensavo fosse qualche emoticon particolare... LOL... in effetti non ti posso dare tutti i torti. :ciapet:
&5 che è? E' un file descriptor. Leggi qui (http://tldp.org/LDP/abs/html/ioredirintro.html) e qui (http://tldp.org/LDP/abs/html/io-redirection.html#FDREF) se vuoi approfondire.
Basta lanciare il compilatore?Yep.
$CC -o hello hello.c
sembra proprio che non trovi il compilatore...
carlo@carlo-VirtualBox:~/Public/MODFS/libpcap$ $CC home.c
bash: /opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/mips-linux-gcc: No such file or directory
il file sembra che ci sia
carlo@carlo-VirtualBox:/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin$ ls -l mips-linux-gcc
lrwxrwxrwx 1 root root 21 2010-09-18 11:02 mips-linux-gcc -> mips-linux-uclibc-gcc
manca magari il path al percorso?
Vediamola positiva...per lo meno se dovessi tornare al tempo della pietra avrei già provato la sensazione!!!
L'errore "No such file or directory" era dovuto alla mancanza delle librerie i386 sul mio sistema a 64bit... ovvio!!!
http://www.noah.org/wiki/64bit_Linux_issues
fatto un "apt-get install ia32-libs" e sembra funzionare.
Ora cerco di caricare HelloWorld.out sul DGN... sperem!!!
Bingo!!!:Prrr:
~ # ./tmp/mod/modfs/bin/DGN2200/HelloWorld.out
Hello World!
Adesso viene la parte difficile... ahahaha
jtandrea
20-10-2011, 14:41
Salve a tutti,
oltre ai complimenti per l'ottimo lavoro sul fw custom, una domanda:
secondo voi, dentro il codice per la condivisione stampante del custom firmware, c'è la possibilità di implementare le specifiche Airprint?
questo per stampare sulla stampante condivisa via wifi anche da iPod, iPhone o iPad senza dover accendere necessariamente un PC o un Mac...
grazie per le eventuali risposte
andrea
ps da inesperto non so davvero se è immaginabile una roba simile
Ad un primo sguardo in teoria è fattibile, ma comporta l'introduzione
di cups e quindi di un procedimento più macchinoso per la configurazione della stampante.
jtandrea
21-10-2011, 09:41
Ad un primo sguardo in teoria è fattibile, ma comporta l'introduzione
di cups e quindi di un procedimento più macchinoso per la configurazione della stampante.
Grazie mille per la risposta velocissima!
ma si potrebbe avere un aiutino su cosa utilizzate (piattaforma e tools) per implementare codice su MODFS? o forse esiste un forum apposito per imparare a lavorarci sopra?
Niente, bisogna saper usare linux e saper compilare principalmente.
Per fare quello bisogna compilare e configurare cups, poi per airprint
bisogna trovare dei sorgenti, ho trovato qualcosa in python, per non mettere l'interprete python sul router è più conveniente riscriverlo in C, oppure trovare dei sorgenti direttamente in C
Per il compilatore il dgn2200 ha bisogno di un compilatore C con con uclibc 0.9.29 il dgn3500 con uclibc 0.9.28,
se cerchi in questo thread ci dovrebbero essere i link per entrambi.
Parnas72
21-10-2011, 23:09
ma si potrebbe avere un aiutino su cosa utilizzate (piattaforma e tools) per implementare codice su MODFS?Se leggi il "botta e risposta" tra me e Folini nelle ultime due/tre pagine del thread trovi tutte le informazioni che ti servono per mettere in piedi un ambiente di compilazione sotto Linux.
Se leggi il "botta e risposta" tra me e Folini nelle ultime due/tre pagine del thread trovi tutte le informazioni che ti servono per mettere in piedi un ambiente di compilazione sotto Linux.
Ottimo... andrò a rileggermele...:read: perchè io sono ancora un po' lontanuccio dall'obiettivo...:muro:
x jtandrea: dai un occhio al mio post... penso che con quello arrivi ad avere una macchina pronta (http://folini.wordpress.com/2011/10/08/compilare-una-libreria-per-modfs/) per la cross compilazione
Già che ci sono... qualche aiutino sulla compilazione di libpcap che mi dà l'errore in fase di make....
1.root@carlo-VirtualBox:~/sorgenti/MODFS/libpcap# make
2.mips-linux-gcc -O2 -fpic -I. -DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -g -O2 -c ./pcap-linux.c
3.In file included from ./pcap-linux.c:170:
4./opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/include/linux/ethtool.h:22: error: expected specifier-qualifier-list before 'u32'
Parnas72
22-10-2011, 16:43
Ottimo... andrò a rileggermele...:read: perchè io sono ancora un po' lontanuccio dall'obiettivo...:muro: Va bè, dai, considerato che partivi da zero sei già arrivato lontano. :cincin:
Per premiare il tuo impegno ti do un aiutino: ti ho compilato io tcpdump e libpcap (http://www.mediafire.com/?53g3lcky8m0068z).
Fanne buon uso. ;)
Hei Parnas... mi sembri un funzionario della FAO... ;-)
Se mi dai un pasto, domani avrò ancora fame!!!! :D :D :D
Insegnami a coltivare il mio orto!!!
Per compilare come hai fatto? Usi la mia stessa toolchain?
Mi manca qualche include?
intanto grazie ancora!
Ciao
Carlo
Fanne buon uso. ;)
ehm... neanche così c'arrivo... speriamo che questa volta hai sbagliato tu jajajajj
tcpdump: can't load library 'libpcap.so.1
nel tar vedo che libpcap.so e libpcap.so.1 sono a 0 bytes, mentre libpcap.so.1.1.1 è 200 e rotti k...
Il ho copiato i files nelle rispettive directory (lib e bin)... :help:
Parnas72
22-10-2011, 17:45
La libreria va messa in una directory presente in LD_LIBRARY_PATH, altrimenti il loader non la trova. Io l'ho messa in /tmp/mod/modfs/lib/DGN2200.
I file sono 3 perchè una è la libreria vera e propria, gli altri due sono i link simbolici che la puntano.
Dovrei essere compliant...
~ # tcpdump
tcpdump: '/tmp/mod/modfs/lib/DGN2200/libpcap.so.1' is not an ELF file
tcpdump: can't load library 'libpcap.so.1'
~ # echo $LD_LIBRARY_PATH
/tmp/mod/modfs/lib:/tmp/mod/modfs/lib/DGN2200:/lib:/lib/private:/lib/public
~ # ls /tmp/mod/modfs/lib/DGN2200
ld-uClibc.so.0 libmudflapth.so.0.0.0 libsqlite3.so.0
libc.so.0 libncurses.so.5.6 libsqlite3.so.0.8.6
libcrypt.so.0 libnsl.so.0 libssp.so.0
libdl.so.0 libpanel.so.5.6 libssp.so.0.0.0
libform.so.5.6 libpcap.so libstdc++.so.6
libgcc_s.so.1 libpcap.so.1 libstdc++.so.6.0.8
libgomp.so.1.0.0 libpcap.so.1.1.1 libstdc++.so.6.0.9
libm.so.0 libpthread.so.0 libutil.so.0
libmenu.so.5.6 libresolv.so.0 libz.so.1
libmudflap.so.0.0.0 librt.so.0 libz.so.1.2.5
Io i files li ho copiati da windows dal tar alla share di MODFS... i link simbolici me li sono sicuramente fumati... come faccio a rifarli?
Ho provato a crearli con
/tmp/mod/modfs/lib/DGN2200 # ln -s libpcap.so.1.1 libpcap.so
/tmp/mod/modfs/lib/DGN2200 # ln -s libpcap.so.1.1 libpcap.so.1
/tmp/mod/modfs/lib/DGN2200 # tcpdump
tcpdump: can't load library 'libpcap.so.1'
/tmp/mod/modfs/lib/DGN2200 # ls -l libpcap.so*
lrwxrwxrwx 1 nobody root 14 Oct 22 18:35 libpcap.so -> libpcap.so.1.1
lrwxrwxrwx 1 nobody root 14 Oct 22 18:35 libpcap.so.1 -> libpcap.so.1.1
-rwxr--r-- 1 nobody root 231576 Oct 22 12:44 libpcap.so.1.1.1
ma non ho risolto!
ma non ho risolto!
Hai dimenticato un .1 nel nome del file!!!
/tmp/mod/modfs/lib/DGN2200 # ln -s libpcap.so.1.1.1 libpcap.so
/tmp/mod/modfs/lib/DGN2200 # ln -s libpcap.so.1.1.1 libpcap.so.1
Ora funzia!!!
jtandrea
23-10-2011, 12:09
Se leggi il "botta e risposta" tra me e Folini nelle ultime due/tre pagine del thread trovi tutte le informazioni che ti servono per mettere in piedi un ambiente di compilazione sotto Linux.
Ottimo... andrò a rileggermele...:read: perchè io sono ancora un po' lontanuccio dall'obiettivo...:muro:
x jtandrea: dai un occhio al mio post... penso che con quello arrivi ad avere una macchina pronta (http://folini.wordpress.com/2011/10/08/compilare-una-libreria-per-modfs/) per la cross compilazione
Già che ci sono... qualche aiutino sulla compilazione di libpcap che mi dà l'errore in fase di make....
Grandi!!! non ho parole... :) grazie mille davvero.
con un po' di pazienza provo anch'io...
buona domenica!
andrea
Parnas72
23-10-2011, 12:31
Hai dimenticato un .1 nel nome del file!!!Io non ho dimenticato nulla, il link nel mio .tar.gz era corretto.:Prrr:
Anche perchè quel link lo crea automaticamente il make, non l'ho fatto io a mano.
Io non ho dimenticato nulla, il link nel mio .tar.gz era corretto.:Prrr:
Anche perchè quel link lo crea automaticamente il make, non l'ho fatto io a mano.
No, no...:doh: stavo dicendo a Folini... aveva dimenticato un .1 nel creare il link...
Dai Parnas...sgancia la conoscenza... come hai fatto a compilare libpcap e TCPDUMP?:help:
Grazie
Carlo
Parnas72
23-10-2011, 22:42
La compilazione di libpcap è andata via liscia: configure e make, e ha compilato al primo colpo. Il configure che ho invocato è questo:
ac_cv_linux_vers=2 ./configure --build=i386-pc-linux-gnu --host=mips-linux-uclibc \
--with-pcap=linux \
--without-dag --without-septel --without-snf
Su tcpdump in effetti qualche rognetta l'ho trovata... la compilazione ottimizzata non funzionava (la toolchain generava istruzioni assembler sbagliate), e inoltre il makefile prodotto da configure andava a leggere dalle directory di sistema invece che dai path della toolchain; per risolvere rapidamente ho modificato a mano il makefile.
Comunque man mano che fai esperienza vedrai che imparerai anche tu a muoverti tra makefile e opzioni di configure con disinvoltura. Se hai appena iniziato a conoscere il mondo Linux direi che hai già fatto passi da gigante. ;)
Ho intenzione di provare a compilare download daemon (http://downloaddaemon.sourceforge.net/) sul DGN3500.
Volevo sapere se la toolchain di Fedora Core 6 postata qui (http://www.hwupgrade.it/forum/showpost.php?p=34212438&postcount=152) va bene anche per il DGN3500.
Grazie.
qualsiasi toolchain va bene basta che abbia uclibc 0.9.28 e non 0.9.29
ovviamente scordati di cavartela con un semplice configure e make :D
Prima bisogna compilare libboost , poi va riadatta la compilazione magari usando come base lo script del wdtvlive e poi c'è il nodo dell'interfaccia web, su modfs c'è php4 bisogna controllare se questo tool usa php5 o gira anche su php4
Parnas72
27-10-2011, 11:31
poi c'è il nodo dell'interfaccia web, su modfs c'è php4 bisogna controllare se questo tool usa php5 o gira anche su php4
Su quello IMHO non vale neanche la pena perderci tempo, c'è il front-end grafico (ddclient-gui) che si installa su PC ed è anche più funzionale dell'interfaccia web.
Comunque secondo me è un lavoraccio, specie se si vuole includere anche le librerie ocr per la decodifica dei captcha.
jtandrea
27-10-2011, 12:46
x jtandrea: dai un occhio al mio post... penso che con quello arrivi ad avere una macchina pronta (http://folini.wordpress.com/2011/10/08/compilare-una-libreria-per-modfs/) per la cross compilazione
ragazzi perdonate, ma sono ancora parecchio indietro. :muro:
Folini sul tuo link (che ho seguito per creare una VM Ubuntu 11.10 eng sotto VirtualBox) dici (cito):
>>La scompatto in “opt/toolchains/uclibc-crosstools-gcc-4.2.3-3” con
sudo file-roller toolchain_fedora6.tar.gz
Quindi uso lo script di Parnas72 per configurare la cross compilazione, mettendolo nella stessa directory dove è stato scompattata la toolchain.<<
lo script di Parnas72 (scoccio te Folini o chiedo direttamente a Parnas72?) lo cerco qui nel forum o c'è sul tuo post?
grazie!
ovviamente scordati di cavartela con un semplice configure e make :D
Prima bisogna compilare libboost , poi va riadatta la compilazione magari usando come base lo script del wdtvlive e poi c'è il nodo dell'interfaccia web, su modfs c'è php4 bisogna controllare se questo tool usa php5 o gira anche su php4
Grazie per la risposta.
Il fatto che è un procedimento complesso l'ho già preventivato.
Il mio è più che altro un tentativo per vedere se riesco a compilare solamente la parte server.
...
Comunque secondo me è un lavoraccio, specie se si vuole includere anche le librerie ocr per la decodifica dei captcha.
Grazie per la risposta e per il ... conforto! :)
Comunque per adesso provo a vedere se riesco a compilare il server, senza programmi aggiuntivi quali captcha o la decompressione.
Parnas72
27-10-2011, 16:05
lo script di Parnas72 (scoccio te Folini o chiedo direttamente a Parnas72?) lo cerco qui nel forum o c'è sul tuo post?
http://www.hwupgrade.it/forum/showpost.php?p=36100934&postcount=653
Parnas72
27-10-2011, 16:20
Grazie per la risposta e per il ... conforto! :)Non è certo mia intenzione demotivarti. ;) L'importante è che chi inizia a fare un lavoro del genere abbia chiaro che dovrà dedicarci un po' di ore; poi ovviamente il tempo per arrivare in fondo dipende dalla tua esperienza nel risolvere i vari problemi di compilazione che si presenteranno.
jtandrea
28-10-2011, 09:18
http://www.hwupgrade.it/forum/showpost.php?p=36100934&postcount=653
grazie mille Parnas72! :)
ps ragazzi che pazienza avete a rispondere a tutti
exagon78
09-11-2011, 11:02
sto tentando di compilare ss5.sourceforge.net per implementare un socks5 sul nostro DGN2200...ma ho un problemino con le libpam, qualcuno sa aiutarmi ?
forse i problemi sono più che il libpam..gia risolto...
ora sono qui :
root@DGNSVIL:~/MODFS/ss5-3.8.9# make
make[1]: Entering directory `/root/MODFS/ss5-3.8.9/common'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/root/MODFS/ss5-3.8.9/common'
make[1]: Entering directory `/root/MODFS/ss5-3.8.9/modules'
make[2]: Entering directory `/root/MODFS/ss5-3.8.9/modules/mod_socks4'
mips-linux-gcc -g -O2 -DLINUX -D_FILE_OFFSET_BITS=64 -I . -I ../../include -shared -fPIC -o mod_socks4.so SS5Mod_socks4.o ../../common/SS5OpenLdap.o -lpthread
/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/../lib/gcc/mips-linux-uclibc/4.2.3/../../../../mips-linux-uclibc/bin/ld: ../../common/SS5OpenLdap.o: Relocations in generic ELF (EM: 3)
/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/../lib/gcc/mips-linux-uclibc/4.2.3/../../../../mips-linux-uclibc/bin/ld: ../../common/SS5OpenLdap.o: Relocations in generic ELF (EM: 3)
/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/../lib/gcc/mips-linux-uclibc/4.2.3/../../../../mips-linux-uclibc/bin/ld: ../../common/SS5OpenLdap.o: Relocations in generic ELF (EM: 3)
/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/../lib/gcc/mips-linux-uclibc/4.2.3/../../../../mips-linux-uclibc/bin/ld: ../../common/SS5OpenLdap.o: Relocations in generic ELF (EM: 3)
/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/../lib/gcc/mips-linux-uclibc/4.2.3/../../../../mips-linux-uclibc/bin/ld: ../../common/SS5OpenLdap.o: Relocations in generic ELF (EM: 3)
/opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/../lib/gcc/mips-linux-uclibc/4.2.3/../../../../mips-linux-uclibc/bin/ld: ../../common/SS5OpenLdap.o: Relocations in generic ELF (EM: 3)
../../common/SS5OpenLdap.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[2]: *** [mod_socks4.so] Error 1
make[2]: Leaving directory `/root/MODFS/ss5-3.8.9/modules/mod_socks4'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/root/MODFS/ss5-3.8.9/modules'
make: *** [modules] Error 2
qualche aiuto ?
exagon78
09-11-2011, 15:19
abbandonato l'idea di prima, ma come per openwrt ho compilato l'srelay.
Per chi lo vuole provare subito :
http://www.mediafire.com/?l00d319c0bhknnu
io lo testerò questa sera.
Feedback please
exagon78
10-11-2011, 01:17
ok, il programma funziona sul 2200...non sono ancora riuscito a testarne la funzionalità...ma funge...
alipus85
16-11-2011, 22:15
Se vi interessa ho scoperto come accedere al nat acos via telnet:
eseguite il comando cli
username: ambit
password: ambitdebug
buon divertimento ;)
preso spunto da qui: http://wiki.openwrt.org/doku.php?id=oldwiki:openwrtdocs:hardware:netgear:wgt624v4
che versione di kernel gira sul 2200?
edit.. visto adesso 2.6.21 ..forse troppo vecchio per implementare zram o compcache.. sarebbe stata un idea per avere uno swap efficiente e compresso
la pennetta esterna viene montata con il flag sync?
così facendo si potrebbe rendere più sicuro il filesystem a scapito di ridotte performances
rospogrigio
16-12-2011, 16:04
Ciao, innanzitutto mi unisco ai complimenti.
Una domanda: io utilizzo no-ip.org invece di dyndns.org come DNS dinamico (per il piccolo vantaggio che è gratis)...avete per caso già previsto un pacchetto che permetta di utilizzare dyndns alternativi?
Altrimenti volevo compilare il client di no-ip per il 3500, trattandosi di un solo file .c dovrebbe essere abbastanza immediato, posso chiedervi di compilarmelo per cortesia? Così mi risparmiate il casino di scaricare e configurare la toolchain... vi sarei molto grato, e poi potrebbe tornar utile anche ad altri. :help:
Vi ringrazio fin d'ora, e complimenti ancora!
rospogrigio
Edit: alla fine mi sono messo un paio d'ore e il client (scaricato da no-ip.com) l'ho compilato da solo, e funziona.... lo linko qui:
noip2 (http://www.mediafire.com/?96ca5hcx73i1h4d)
magari può essere utile a qualcuno, o magari potete pacchettizzarlo. Ciao! :)
Ciao a tutti, ho installato modfs sul mio dgn2200 e son rimasto impressionato dalle funzionalità e dalla versatilità del progetto, ho messo mano ai css e ho utilizzato quelli di bootstrap-twitter
http://s10.postimage.org/cyfcdgnp5/Schermata_12_2455914_alle_23_02_35.png
se vi piace posso postarvi i css e le piccole modifiche che ho fatto per adattarli, 2 o 3 in tutto
invece vorrei sapere se qualcuno di voi ha pensato o ha già compilato il firmware modificato partendo dal firmware dgn2200m.
Da quanto so è identico a quello del 2200 ma con supporto ai modem umts.
Se qualcuno l'ha provato, è utilizzabile come backup per l'adsl?
(ho una linea 8mega che potrebbe arrivare a 10-11 ma che indifferentemente dalla velocità si disallinea ogni 11 minuti e volevo usare una chiavetta umts come backup per i 5-10 secondi in cui è disallineato, ma non so quanto sia rapido e indolore lo switch)
Bello, posta i css. :D
E' ora che metta mano al pacchetto theme manager, in modo di dare la possibilità di installare i temi, già avevo predisposto modfs, se vedete nella dir www ci sono alcuni link simbolici, proprio per cambiare dinamicamente i file dei css e delle immagini.
Per quanto riguarda le questione del 2200, essendo cionci latitante fatevi avanti.
PS. L'unica cosa, dovreste sempre fare le modifiche a partire dall'ultima versione presente nell'svn per avere il css di riferimento, perchè per esempio il file css potrebbe essere stato modificato introducendo qualcosa.
Ad esempio ho fatto vari aggiustamenti per internet explorer.
Creiamo un formato per i temi
Un file tar.gz rinominato in .theme
che all'interno contiente una directory che come nome ha il nome del tema scelto
e all'interno ha:
un file con nome index.css
un file con nome header.php
ed una dir con nome img che contiene eventuali immagini.
Ad esempio un ipotetico tema di kesy85
sarà bootstrap-twitter.theme
con struttura
bootstrap-twitter
-img
-process.gif
-index.css
-header.php
81613
Purtroppo nn credo di essere in grado ne di compilare il firmware da solo (a meno che non mi forniate una guida mooooolto dettagliata) ne di pacchettizzare questi css.
Potete trovare la documentazione (anche per eventuali altri pacchetti) qui http://twitter.github.com/bootstrap/ , io non ho fatto altro che modificare i css in modo da farli funzionare anche con la vostra struttura ma ho mantenuto tutti quelli di default del progetto.
Per la questione compatibilità cross browser so che questo progetto ha come punto di forza anche questo aspetto poi se c'è qualcosa da correggere posso sempre metterci mano :)
l'header, il file index.js modificato e bootstrapmodal.js servono per cambiare il popup di salvataggio e pur essendo un po' "grezzi" non creano nessun problema
infine nel modulo status>adslinfo>main.php c'è da cambiare l'id del tasto stop in id="stop" per visualizzarlo rosso invece che verde
fatemi sapere come va
Ho cercato di leggermi tutto il thread dall'inizio alla fine con attenzione. Come prima cosa complimenti per il vostro impegno e la vostra competenza.
Inizialmente volevo cimentarmi anch'io nella compilazione del firmware, pur con una modestissima esperienza di linux, e per questo avevo preso nota del tool da scaricare (i primi link sono vuoti, l'ultimo valido mi sembra segnalato qui (http://www.hwupgrade.it/forum/showpost.php?p=36088490&postcount=602)).
Poi però mi pare di avere letto che per la mia esigenza non sia necessario ricompilare. A me occorrerebbe semplicemente sostituire un file del firmware (cambiargli alcuni byte). Questo (http://www.hwupgrade.it/forum/showpost.php?p=36088369&postcount=642) messaggio e quest'altro (http://www.hwupgrade.it/forum/showpost.php?p=35108672&postcount=602) suggeriscono di scompattare il firmware e ricompattarlo dopo avere apportato le modifiche.
Il file del firmware, se non sbaglio, dovrebbe chiamarsi DGN2200-V1.0.0.36_7.0.36.chk. Mi dite per cortesia, dato che non l'ho mai fatto, quale tool posso usare per scompattarlo e ricompattarlo dopo avere sostituito il file che mi interessa? Grazie mille.
Hack3rAttack
28-12-2011, 08:29
Sarà possibile utilizzare un firmware mod sul Netgear DGND 3700 ?
E un'altra domanda: è possibile installare Java?
Parnas72
28-12-2011, 22:27
E un'altra domanda: è possibile installare Java?Dubito che funzioni, comunque se vuoi fare una prova la Java VM per sistemi embedded si scarica da qui:
http://www.oracle.com/technetwork/java/embedded/downloads/javame/index.html
Non è presente tar.
Posso scaricarlo da qualche parte già funzionante con wget?
Grazie.
Mistero.
In una cartella condivisa sulla pendrive usb collegata al DGN 2200 (al momento sul firmware originale) devo lanciare uno script di installazione:
./install.sh
ma ottengo:
/bin/sh: ./install.sh not found
Eppure il file c'è, riesco a visualizzarne il contenuto con CAT. Allora perché non me lo trova?
Mistero.
In una cartella condivisa sulla pendrive usb collegata al DGN 2200 (al momento sul firmware originale) devo lanciare uno script di installazione:
./install.sh
ma ottengo:
/bin/sh: ./install.sh not found
Eppure il file c'è, riesco a visualizzarne il contenuto con CAT. Allora perché non me lo trova?
usa direttamente sh e nome file ... qui funziona :)
chenshin
30-12-2011, 16:09
Salve a tutti,
seguo questa discussione da qualche settimana e spero che almeno qui posso trovare un aiuto , adesso vi spiego :
Ho un ap linksys wrt54gl v1.1 con CPU modello Broadcom 5352EKPB con frequenza di clock 200 MHz. Il dispositivo ha inoltre una memoria flash non volatile di 4 MB, dove risiede il firmware, e una memoria RAM di 16 MB. L’interfaccia wireless integrata è una Broadcom BCM2050KML.
Nel linksys ho come sistema operativo OpenWRT Whiterussian 0.9.
Ho scaricato il toolchain dal sito della linksys :
http://www.linksysbycisco.com/IT/it/supportgplcode?gplsku=#WRT54GL
e mi sono trovato un file :
WRT54G_v4.20.6.tgz (quasi 190MB)
L'ho scompattato e all'interno ho trovato , tra le varie cartelle , la cartella :
tools/brcm
leggo il file readme , ve lo incollo:
"To install the tools:
- copy the brcm/ directory to /opt
- add /opt/brcm/hndtools-mipsel-linux/bin to your path
- add /opt/brcm/hndtools-mipsel-uclibc/bin to your path "
ovviamente copio brcm in /opt (p.s Ho Ubuntu 10.04 sul mio pc)
setto il PATH:
#cd /opt/brcm/hndtools-mipsel-linux/bin
#sudo export PATH="$PATH:$PWD"
#cd /opt/brcm/hndtools-mipsel-uclibc/bin
#sudo export PATH="$PATH:$PWD"
faccio la prova con hello.c :
#mipsel-uclibc-gcc hello.c -o hello
La compilazione va a buon fine e copio il file creato "hello" sul linksys tramite ssh e funziona bene.
Arriviamo al Problema:
Io devo far girare sul linksys un programma scritto in C che faccia uso delle librerie libpcap e libpthread però:
CASO 1)
se compilo con solo le libpthread me lo compila ,esempio:
#mipsel-uclibc-gcc provathread.c -o provathread -lpthread
va tutto bene e funziona!
CASO 2)
se compilo sia con libpcap e libpthread , o solo con libpcap , non riesco a compilare :
#mipsel-uclibc-gcc provthread_pcap.c -o prova -lpthread -lpcap
Andando a vedere su /opt/brcm/hndtools-mipsel-linux/lib
effettivamente li trovo tra i vari file :
- libpthread-0.9.19.so
- libpthread.a
ma non c'è traccia di libpcap.
Domanda : si deve "installare" manualmente la libreria libpcap sul toolchain per poter compilare correttamente il mio programma?
Se si , come si fa? Qualcuno avrebbe qualche suggerimento o qualche link da cui possa prendere degli spunti ?
Purtroppo è la prima volta che accingo al mondo embedded e non avevo quasi mai sentito parlare di cross-compilazione (o per lo meno non mi era mai capitato di metterci le mani ) e non so a che santo votarmi per risolvere questo problema.
Questo programmino non deve far altro che accedere all' interfaccia wifi del linksys e monitorare il traffico dati per pilotare un handoff di una data Stazione mobile da un AP ad un altro AP.
Se riuscissi a compilare potrei iniziare finalmente a fare i test e a completare la mia tesi , please help me .
Parnas72
30-12-2011, 16:28
libpcap è un libreria applicativa, o ti scarichi i sorgenti e te la compili (esattamente come faresti con qualsiasi altro pacchetto), oppure la prendi già compilata dal repository dei package openwrt relativo al tuo hardware e alla versione che hai installato (ad esempio qui (http://downloads.openwrt.org/kamikaze/8.09.2/brcm47xx/packages/) la trovi).
Sicuramente openwrt (che io non conosco) ha un package manager che ti permette di scaricare e installare il pacchetto in automatico.
chenshin
30-12-2011, 16:48
Ciao ,
grazie x la tempestiva risposta.
Io non capisco se devo scaricare le libpcap , ad esempio da qui :
http://www.linuxfromscratch.org/blfs/view/6.3/basicnet/libpcap.html
l'ho scaricato , poi ho dato i comandi :
./configure --prefix=/usr && make
da root :
make install &&
install -v -m755 -d /usr/share/doc/libpcap-0.9.6 &&
install -v -m644 doc/* /usr/share/doc/libpcap-0.9.6
però non mi compila ugualmente con le libpcap.
Quello che mi indicavi tu si va ad installare su linksys , ma io cross-compilo sul mio pc dove c'è il toolchain.
Credo che queste librerie vadano inserite direttamente tra le cartelle del toolchain , però facendo anche manualmente non mi compila.
P.S.
le libpcap sono già installate sul sitema operativo del linksys , è solo sul mio cross-compilatore che credo non lo siano.
Parnas72
31-12-2011, 00:34
l'ho scaricato , poi ho dato i comandi :
./configure --prefix=/usr && makeCosì stai compilando su PC nativamente; per cross-compilare devi configurare opportunamente l'ambiente. Se vedi qualche pagina indietro, io ho compilato libpcap per il DGN2200, invocando configure in questo modo:
http://www.hwupgrade.it/forum/showpost.php?p=36205190&postcount=681
le libpcap sono già installate sul sitema operativo del linksys , è solo sul mio cross-compilatore che credo non lo siano.OK, partiamo dall'inizio ;) ; per compilare un applicativo C o C++ che usa una libreria di terze parti ti servono due cose: gli header file (.h) nella directory include e il binario della libreria (.so oppure .a) nella directory lib. Il binario ce l'hai già sul router, quindi te lo puoi copiare dal router nella dir del PC dove ci sono le altre librerie della toolchain.
Se ci sono anche gli header sul router sotto /usr/include è meglio, perchè così sei sicuro che sono allineati con il binario della libreria. In caso contrario io ricompilerei dai sorgenti; quando fai il "make install" vengono esportati sotto /usr sia i binari che gli header.
Sbombolino
23-01-2012, 16:11
Ciao, innanzitutto mi unisco ai complimenti.
Una domanda: io utilizzo no-ip.org invece di dyndns.org come DNS dinamico (per il piccolo vantaggio che è gratis)...avete per caso già previsto un pacchetto che permetta di utilizzare dyndns alternativi?
Altrimenti volevo compilare il client di no-ip per il 3500, trattandosi di un solo file .c dovrebbe essere abbastanza immediato, posso chiedervi di compilarmelo per cortesia? Così mi risparmiate il casino di scaricare e configurare la toolchain... vi sarei molto grato, e poi potrebbe tornar utile anche ad altri. :help:
Vi ringrazio fin d'ora, e complimenti ancora!
rospogrigio
Edit: alla fine mi sono messo un paio d'ore e il client (scaricato da no-ip.com) l'ho compilato da solo, e funziona.... lo linko qui:
noip2 (http://www.mediafire.com/?96ca5hcx73i1h4d)
magari può essere utile a qualcuno, o magari potete pacchettizzarlo. Ciao! :)
Rospogrigio ha creato esattamente ciò che stavo cercando disperatamente! Il problema è che non ho idea di come far funzionare il file che hai allegato :muro:
Qualcuno sarebbe così gentile da creare un pacchetto in modo da farlo caricare a modfs che tengo su una chiave usb nel mio dgn3500?
Giuro che ho letto il più possibile sull'argomento, ma non riescvo a venirne a capo da solo :doh:
Grazie mille!
Simoghira
24-01-2012, 16:26
Ciao, mi devo informare bene sui pacchetti, di noip ho solo un pacchetto che starta/stoppa no-ip dalla pagina servizi di modfs, non so se si possano integrare nel pacchetto anche i file di no-ip e anche in questo caso bisognerebbe estendere l'interfaccia del pacchetto in modo che compili i campi per la configurazione di no-ip.
Per installarlo velocemente puoi fare così:
1) Estrai il file noip2 in una cartella di modfs (es /packages/DGN2200/noip);
2) Crea un file noip2.conf vuoto;
3) Avvia noip con uno script come questo adattato alle tue directory:
#!/tmp/soft_links/sh
/tmp/mod/modfs/packages/DGN2200/noip/noip2 -c /tmp/mod/modfs/packages/DGN2200/noip/no-ip2.conf
4) A questo punto ti verranno chieste email password host gruppi ecc, finito il setup avrai noip funzionante, fino al riavvio del router, per renderlo permanente puoi inserire lo script in quelli eseguiti in automatico all'avvio.
Il file tar.gz lo puoi aprire con 7zip, per creare/copiare i file puoi usare l'unità di rete READYSHARE (abilitando da modfs la direcory modfs) come se fossi in una qualsiasi cartella.
Al punto 3 hai bisogno di accedere al router tramite un terminale (abita telnet da modfs poi usa un client telnet [es putty])
Dopo avere creato lo script es startNOIP.sh (va bene anche blocco note come editor) da terminale avvia lo script appena creato con il comando sh (es se sei sulla cartella dello script: sh startNOIP.sh)
Sbombolino
25-01-2012, 18:55
Ciao, mi devo informare bene sui pacchetti, di noip ho solo un pacchetto che starta/stoppa no-ip dalla pagina servizi di modfs, non so se si possano integrare nel pacchetto anche i file di no-ip e anche in questo caso bisognerebbe estendere l'interfaccia del pacchetto in modo che compili i campi per la configurazione di no-ip.
Per installarlo velocemente puoi fare così:
1) Estrai il file noip2 in una cartella di modfs (es /packages/DGN2200/noip);
2) Crea un file noip2.conf vuoto;
3) Avvia noip con uno script come questo adattato alle tue directory:
#!/tmp/soft_links/sh
/tmp/mod/modfs/packages/DGN2200/noip/noip2 -c /tmp/mod/modfs/packages/DGN2200/noip/no-ip2.conf
4) A questo punto ti verranno chieste email password host gruppi ecc, finito il setup avrai noip funzionante, fino al riavvio del router, per renderlo permanente puoi inserire lo script in quelli eseguiti in automatico all'avvio.
Il file tar.gz lo puoi aprire con 7zip, per creare/copiare i file puoi usare l'unità di rete READYSHARE (abilitando da modfs la direcory modfs) come se fossi in una qualsiasi cartella.
Al punto 3 hai bisogno di accedere al router tramite un terminale (abita telnet da modfs poi usa un client telnet [es putty])
Dopo avere creato lo script es startNOIP.sh (va bene anche blocco note come editor) da terminale avvia lo script appena creato con il comando sh (es se sei sulla cartella dello script: sh startNOIP.sh)
Ti ringrazio Simoghira per la risposta e le ulteriori delucidazioni :fagiano:
Domani proverò ad applicare le tue indicazioni speriamo bene :)
[Discussione spostata da http://www.hwupgrade.it/forum/showpost.php?p=36816617&postcount=3754]
Parnas72 ti chiederei una cortesia se sei nelle condizioni di poterlo fare ovviamente.
Ho dato un'occhiata ad una discussione su OpenWrt sulla questione del modulo adsldd.ko. Sembra sia specifico all'hardware.
Ora mi chiedevo, se potevi ricompilare reinserendo il modulo originale e se chiaramente hai l'ambiente di sviluppo a posto in grado di ottenere build sane e integre.
Faccio io da cavia, i rischi me li prendo io. Non ti preoccupare per questo. :)
Scusa se ti distrurbo e ti rompo le balle!
p.s.: chiaramente quando ne hai tempo, s'intende..
Ho provato a fare una dir diff fra le partizioni squashfs estratte dai firmware (original|modded) versione 1.0.0.20.
Effettivamente i moduli kernel adsldd.ko qui sono perfettamente allineati... sono identici, e questo avvalora ancora di più l'ipotesi per la quale, potrebbe essere veramente questo la causa nella 0.36, giacché con la 0.20 in PPPoE i problemi ADSL non ci sono.
Perciò, perlomeno, varrebbe la pena di tentare ad assemblare un firmware con il modulo originale e vedere che accade.
Poi se qualcuno che ne sa qualcosa sulla faccenda del modulo adsldd.ko avrebbe voglia di intromettersi e spiegare il motivo per cui s'è dovuto cambiare nel firmware moddato del DGN2200, lo puo' fare tranquillamente. :D
Parnas72
29-01-2012, 15:52
Ora mi chiedevo, se potevi ricompilare reinserendo il modulo originale e se chiaramente hai l'ambiente di sviluppo a posto in grado di ottenere build sane e integre.Ciao,
non ho mai avuto necessità di ricompilare il firmware, quindi non ho un ambiente di compilazione pronto all'uso. Probabilmente prima o poi lo dovrò fare, visto che se dovesse uscire una nuova versione del fw ufficiale bisognerà adattarlo a modfs e Cionci non è più disponibile.
Però nell'immediato non ho il tempo di farlo, mi dispiace.
Ciao,
non ho mai avuto necessità di ricompilare il firmware, quindi non ho un ambiente di compilazione pronto all'uso. Probabilmente prima o poi lo dovrò fare, visto che se dovesse uscire una nuova versione del fw ufficiale bisognerà adattarlo a modfs e Cionci non è più disponibile.
Però nell'immediato non ho il tempo di farlo, mi dispiace.
ovviamente non vi azzardate a ricompilare, si tratta piuttosto di ricompattare
cioè di estrarre la squash dal firmware, apportare le modifiche e di ricostruire il firmware.
Parnas72
30-01-2012, 02:13
Estrarre la squash l'ho già fatto, e riapplicare le modifiche sui vari script non è un problema. Però poi la procedura che rigenera il chunk mi pare vada anche a ricompilare il kernel... per chi non l'ha mai fatto penso che qualche ora di lavoro ci vada spesa, dal momento che è sconsigliabile procedere per tentativi. :D
Ciao,
non ho mai avuto necessità di ricompilare il firmware, quindi non ho un ambiente di compilazione pronto all'uso. Probabilmente prima o poi lo dovrò fare, visto che se dovesse uscire una nuova versione del fw ufficiale bisognerà adattarlo a modfs e Cionci non è più disponibile.
Però nell'immediato non ho il tempo di farlo, mi dispiace.
Fa nulla, grazie lo stesso, vedrò di arrangiarmi. :)
ovviamente non vi azzardate a ricompilare, si tratta piuttosto di ricompattare
cioè di estrarre la squash dal firmware, apportare le modifiche e di ricostruire il firmware.
Effettivamente e a pensarci bene non avrei bisogno di ricompilare nulla, ma soltanto di riassemblare il kernel linux con la partizione squash contenente un nuovo modulo kernel già compilato.
Per cui, se è stato possibile con dd dividerli, per forza di cose è possibile di nuovo riassemblarli con i tools del sorgente.
Io ci avevo pensato a questo, il punto è ora di capire da parte mia come saltare direttamente alla ricostruzione finale del chunk, evitando la fase più delicata della ricompilazione che a conti fatti non mi interessa più di tanto adesso. Devo studiarmi il sorgente.
Hihihi! :D
Guardate cosa ho trovato qui: http://www.hwupgrade.it/forum/showpost.php?p=35498262&postcount=2315
Lo script automatizzato di Cionci... :)
Ecco appunto, riportiamoli anche qui:
Sì, sono cose fattibili
Vedo ora che è stato aggiornato il firmware del vostro router. Purtroppo non ho quella versione estratta.
Purtroppo per decomprimere il root file system è un bel casino senza un kernel compatibile. Io lo estraggo dalla shell del router, sulla chiavetta USB. Lo monto e lo comprimo in un tar che mi porto sulla mia macchina. Guardo se ce la faccio.
Questo è lo script per ottenere i file immagine (kernel e rootfs) dal binario del firmware:
#!/bin/bash
echo "Extract root file system image from firmware image..."
image="DGN2200-V1.0.0.36_7.0.36.chk"
suffix="DGN2200_1.0.0.36"
rootfs_start=314
rootfs_length=4837376
dd bs=1 if=$image of=rootfs-$suffix.sqsh skip=$rootfs_start count=$rootfs_length
dd bs=1 if=$image of=vmlinux-$suffix.lz skip=`expr $rootfs_length + $rootfs_start`
echo "...done"
http://www.mediafire.com/?bcjvrugcj9oyxco
Quei due numeri sono la posizione di inizio del root file system nell'immagine (dove c'è la lettera q di "qshs" o la s di "sqsh") e la lunghezza del rootfs che ho evidenziato nello screen.
Lo script per il build dell'immagine (il file del kernel si deve chiamare vmlinuz.lz, il rootfs deve essere nella dir target) :
#!/bin/bash
BASE_DIR=`dirname $0`
TOOLS_DIR="$BASE_DIR/tools"
TARGET_DIR="$BASE_DIR/target"
DATA_DIR="$BASE_DIR/data"
IMAGES_DIR="$BASE_DIR/images"
ANNEX="A"
NAME="WW"
test ! -d $TOOLS_DIR && echo "Run setup.sh before running build.sh" && exit 1
if [ $# -ne 0 ]; then
if [ "$1" != "NA" ] && [ "$1" != "B" ]; then
echo "Usage: build.sh [NA|B]"
echo " No parameters: build World Wide Annex A firmware"
echo " NA: build North America Annex A firmware"
echo " B: build World Wide Annex B firmware"
exit 1
fi
if [ "$1" = "NA" ]; then
NAME="NA"
else
ANNEX="B"
fi
fi
FULL_PATH=`readlink -f $DATA_DIR/acos`
ln -fs $FULL_PATH/ambitCfg_"$NAME"_"$ANNEX".h $FULL_PATH/ambitCfg.h
$TOOLS_DIR/mksquashfs $TARGET_DIR $DATA_DIR/rootfs.img -be -noappend -all-root -b 65536 && \
$TOOLS_DIR/bcmImageBuilder --output $DATA_DIR/bcm96358GW_fs_kernel --chip 6358 --board "96358VW" --blocksize 64 --cfefile $DATA_DIR/cfe6358.bin --rootfsfile $DATA_DIR/rootfs.img --kernelfile $DATA_DIR/vmlinux.lz && \
$TOOLS_DIR/bcmImageBuilder --output $DATA_DIR/bcm96358GW_cfe_fs_kernel --chip 6358 --board "96358VW" --blocksize 64 --cfefile $DATA_DIR/cfe6358.bin --rootfsfile $DATA_DIR/rootfs.img --kernelfile $DATA_DIR/vmlinux.lz --include-cfe && \
$TOOLS_DIR/createimg --boardid="96358VW" --numbermac=11 --macaddr="02:10:18:01:00:01" --tp=0 --psisize=24 --gponsn= --gponpw= --inputfile=$DATA_DIR/bcm96358GW_cfe_fs_kernel --outputfile=$DATA_DIR/bcm96358GW_flash_image_96358VW && \
$TOOLS_DIR/addvtoken $DATA_DIR/bcm96358GW_flash_image_96358VW $DATA_DIR/bcm96358GW_flash_image_96358VW.w
RES=$?
if [ $RES -ne 0 ]; then
echo
echo "Error: build failed !!!"
exit $RES
fi
FILENAME=$IMAGES_DIR/DGN2200_`date +%m%d%H%M`_"$NAME"_$ANNEX.chk
touch $DATA_DIR/rootfs && \
$TOOLS_DIR/packet -k $DATA_DIR/bcm96358GW_fs_kernel -f $DATA_DIR/rootfs -b $DATA_DIR/compatible_$ANNEX.txt -oall $DATA_DIR/kernel_rootfs_image -i $DATA_DIR/acos/ambitCfg.h && \
rm -f $DATA_DIR/rootfs _*.chk && \
cp $DATA_DIR/kernel_rootfs_image.chk $FILENAME
RES=$?
if [ $RES -ne 0 ]; then
echo
echo "Error: build failed !!!"
exit $RES
fi
echo
echo
echo "Done! Firmware image $FILENAME has been built successfully."
echo
In pratica così è simile ai vecchi metodi di build dei DG834...
Scusate, sono stato un po' impegnato.
Nel tempo libero ho fatto alcune prove di assemblamento fra linux kernel e partizioni squash... provando anche interessanti incroci. :D
Comunque, ho beccato il problema.
Non centra un fico secco l'adsl.
Il problema risiede in 2 file di script bash nella partizione squash che fanno da appoggio ai sostituti originali.
A quanto pare il modo con cui viene "passata la shell" agli eseguibili originali non è corretto.... o perlomeno non in tutti i casi.
Spiego meglio....
Directory bin:
- pppd chiama con "exec file args" il file pppd.original (originariamente pppd)
- xdslctl chiama alla stessa maniera l'eseguibile xdslctl.original (originariamente xdslctl)
Il giro è chiaramente stato fatto per necessità agli scopi: nei file nuovi c'è roba che serve a modfs.
Però così non va bene... c'è da capire se gli eseguibili originali ritornano parametri e possano essere chiamati come identificatori.
La soluzione più semplice e veloce sarebbe rinominare i file nuovi bash in altro e riportare i nomi degli originali al loro posto (e in cascata risolvere i collegamenti simbolici che puntano ai bash).
Altrimenti capire se gli orginali possano essere chiamati in altro modo $().
Tipo se a Parnas72 o Gnommo andrebbe di intervenire sulla questione e dare qualche suggerimento per il miglior fix, risolviamo un bel po' di freeze qui e ci lasciamo alle spalle una volta e per tutte il problema. :)
Magari vi convincete una buona volta che la diceria della nvram fallata o mal gestita del DGN2200 è pura leggenda. :D
E sia chiaro il problema è di tutti i possessori del DGN2200.
Non ci sono cavoli. Come disse Cionci il riavvio dell'interfaccia grafica funziona male (anzi non funziona proprio). Questo è vero solo in PPPoE.
Da telnet è un'altra storia, poiché le situazioni no sono riconducibili e da http vengono eseguiti sequenze di comandi.
Aveva torto però per il fatto che il problema risiedesse anche nel fw originale. Questo non è vero infatti. :)
Mancano due premesse per poter approntare una soluzione:
-chi chiama pppd e xdslctl
-perchè cionci ha usato exec
Parnas72
16-02-2012, 22:21
Uhm... non ho capito perchè la exec non va bene. :confused:
Onestamente anche io avrei fatto nello stesso modo: la exec carica nel processo corrente il binario originale, che è quanto si voleva fare per rendere la cosa trasparente ai processi del firmware Netgear.
Per altro, il modfs basato su 1.0.0.20 è fatto nello stesso modo e ti funziona, o sbaglio ?
Mancano due premesse per poter approntare una soluzione:
-chi chiama pppd e xdslctl
-perchè cionci ha usato exec
Non saprei se è davvero utile tentare di capire chi e quante volte vengono chiamati questi eseguibili. Si rischia di perdersi se sono ridondanti.
Per quanto riguarda gli algoritmi negli bash, c'è roba tipo Adsl retrain e pppoe relay.....
In pratica Cionci ogni volta che interecetta queste chiamate, esegue questi procedure di modfs e poi ripassa il controllo agli eseguibili originali. E' una deviazione e un giro necessario per assicurarsi di applicare ogni volta le impostazioni di modfs... cioè è una cosa logicamente che si riesce a capire.
Quello che importa, a mio modesto parere, è che la chiamata, chiunque la faccia, avvenga nella maniera corretta. E' possibile ci sia un problema col passaggio degli argomenti. Poi segnalo che i nuovi file bash di appoggio sono degli .sh, mentre quelli originali sono degli eseguibili. Exec però non dovrebbe avere problemi a chiamare sia gli uni e gli altri.
Ho smadonnato abbastanza prima di capire fosse qui il problema. Piano piano andavo ripristinando roba originale nello squash, fino a trovare la causa nella cosa più insospettabile.
Uhm... non ho capito perchè la exec non va bene. :confused:
Onestamente anche io avrei fatto nello stesso modo: la exec carica nel processo corrente il binario originale, che è quanto si voleva fare per rendere la cosa trasparente ai processi del firmware Netgear.
Per altro, il modfs basato su 1.0.0.20 è fatto nello stesso modo e ti funziona, o sbaglio ?
Ehhh hmm. Quando ho visto che avevo catturato il problema, la prima cosa su cui mi sono scagliato sono stati gli algoritmi di modfs dentro questi file.
Chi avrebbe pensato che ci fosse un problema nell'exec e al momento di passare la shell? :D
E invece, per tagliare la testa al toro, ho tolto tutto!!!
Ho lasciato solo la chiamata exec file $*, trasformando il file in un vero redirecting secco.
Niente da fare, 2 di picche. Freeza.
Appena ripristino i nomi dei file originali, e tolgo di mezzo i bash (o li rinomino in altra roba per metterli fuori gioco) funziona tutto benone.
Cos'è si incarta nel passaggio degli argomenti?
Con la 0.20 in realtà si trattavano di crash camuffati da un reboot. Me ne sono accorto poi perché perdevo tutte le modifiche applicate.
L'exec fa cilecca per qualche motivo e provoca instabilità con effetti più disparati. PPPoA per forza.
Il PPPoE in Modfs non ha MAI funzionato, per quello che mi riguarda.
Qui c'è gente che ha problemi con la chiavetta inserita.
Ma quale chiavetta!!! LoL
la exec carica nel processo corrente il binario originale
Non saprei se è davvero utile tentare di capire chi e quante volte vengono chiamati questi eseguibili.
...
Ho lasciato solo la chiamata exec file $*, trasformando il file in un vero redirecting secco.
E' utile sapere chi chiama pppd per cercare di capire come lo chiama e cosa si aspetta dopo averlo chiamato e cosa fa dopo la chiamata.
Senza capire queste cose non si può pensare ad una soluzione, almeno che non si cambi proprio approccio e si faccia tutto in maniera diversa
Appunto provate a fargli creare un nuovo processo sostituendo
exec ad una chiamata pura
pppd.original $* &
La sostituzione di pppd con una shell serve solo per implementare il pppoe relay e la configurazione del router in modalità solo modem.
Sono cose facilmente implementabili in maniera diversa facendo almeno del redirect.
Provate anche a salvare in un file $*
per vedere la riga di comando come è e confrontarla con quella originale.
Parnas72
17-02-2012, 11:32
Provate anche a salvare in un file $*
per vedere la riga di comando come è e confrontarla con quella originale.
Formalmente la sintassi "exec file $*" in effetti è sbagliata, perchè il modo corretto di passare i parametri senza modificarli è:
exec file "$@"
Ma la differenza nei due casi è significativa solo se ci sono dei parametri che contengono uno spazio (in quel caso la prima chiamata spezzerebbe il parametro in due, mentre la seconda lo manterrebbe integro).
Penso non c'entrano i parametri, il problema sembra essere proprio il nome del demone ppp.
Non lo puoi cambiare, a meno che non vai a scovare le librerie dove in maniera esplicita chiudono il demone dai processi attivi chiamandolo per nome e quindi ricompilarli appositamente.
In pratica prima di eseguire un riavvio, in PPPoE, viene eseguita la chiusura della connessione ppp0. Il punto è che invece di chiuderla come si dovrebbe, cioè andandola a scovare tramite l'ID del processo, a quanto pare da qualche parte viene controllato proprio il nome del file.
Va cercando invano il processo pppd fra quelli attivi.. e non lo troverà mai.
Se tipo ti metti a cambiare protocollo di incapsulamento, non riesce nemmeno a killare la connessioni precedenti....
.... giacché se provi a cambiare diverse volte ti ritrovi nei processi attivi 'n' pppd.original quanti sono i cambiamenti che hai fatto. LoL
Dovrai killare a manina... o devi riavviare (da telnet obbligatoriamente).
Al riavvio ovvio, viene fatta pulizia e ti reinizializza correttamente con 1 connessione... però poi al momento di chiudere le connessioni sei ex-novo punto e a capo. L'interfaccia originale diventa un campo di mine in cui devi stare a attento a cosa cambi e a prevedere le chiusure automatiche delle connessioni, altrimenti ti si freeza. Ergo il fw moddato in PPPoE è inusabile.
Tutto sto macello per un pppoe relay che manco funziona.
#!/bin/sh
DOD=0
if [ "$2" = "ppp0" ]; then
DOD=`param get pppoe_dod`
/usr/sbin/enable_pppoe_relay.sh
fi
if [ $DOD -eq 2 ] && [ "`param get modfs_pppoe_modem`" = "1" ]; then
exit 0
fi
exec pppd-original $*
Parnas72
21-02-2012, 15:21
Penso non c'entrano i parametri, il problema sembra essere proprio il nome del demone ppp.
Non lo puoi cambiare, a meno che non vai a scovare le librerie dove in maniera esplicita chiudono il demone dai processi attivi chiamandolo per nome e quindi ricompilarli appositamente.Se è solo quello il problema basta che invece di pppd-original lo chiami pppd e lo tieni in una directory separata. Però non mi torna, io il pppoe-relay a suo tempo l'ho testato e funzionava (sia con il fw vecchio che con quello attuale).
Poi se ci fosse un problema così macroscopico il PPPoE non dovrebbe funzionare a nessuno.
Se è solo quello il problema basta che invece di pppd-original lo chiami pppd e lo tieni in una directory separata. Però non mi torna, io il pppoe-relay a suo tempo l'ho testato e funzionava (sia con il fw vecchio che con quello attuale).
Poi se ci fosse un problema così macroscopico il PPPoE non dovrebbe funzionare a nessuno.
Quindi tu dici di spostare il demone in un'altra cartella?
Come faccio a informare il router del riferimento cambiato?
Si puo' fare? Lo facciamo subito se è possibile.
Il PPPoE relay di per sè funziona ma a questo punto io non so più che significa il concetto per il quale si puo' affermare "che una cosa funziona oppure no".
Se per fare funzionare una cosa dobbiamo sputtanarne altre allora non ci siamo proprio.
Il problema ce l'hanno tutti i DGN2200 indistintamente.
Ce l'ha tipo ssstrada, quando confessò che inspiegabilmente si trovava tipo 3 connessioni PPPoE attive in memoria, poi ce l'ho io, dunque dunque.... ah sì.... e poi ce l'hai pure tu nonostante tu possa ignorarlo. :)
Come non avete notato il malfunzionamento, queste sono domande a cui solo voi potete rispondere.
In un progetto come questo si puo' affermare di aver dato vita a sessioni di collaudo serie?
In PPPoE, il router con il fw moddato non è in grado di chiudere autonomamente le connessioni se non killarle da telnet in maniera esplicita.
Quando cambi alcune impostazioni, il router va per chiuderle e riaprirle con i parametri aggiornati.
Se fallisce la procedura o freeza o crasha.
Tu commuta in PPPoE e smanetta un pochetto e poi vedi :)
Io per accorgemene che in PPPoE Modfs non era cosa, ci ho messo tipo 1 minuto e non ho fatto nemmeno test specifici o sforzi particolari.
Ho fatto tipo queste semplici cose:
Flashing fw moddato, impostazione PPPoE, reboot.
Freeze.
Pensi sia una procedura normale quella o una cosa piuttosto elaborata?
Cionci stesso disse che da interfaccia grafica se si esige il riavvio sono azzi amari!
Cosa vuoi che ti dica di più, se te lo dice lui? :)
In PPPoA evientemente ci sono trattamenti differenti, l'interfaccia se ne fotte di chiudere le connessioni e spiaccica un bel reboot da busybox.
Questo è!!!
Va bene!
Appurato che bisogna assolutamente ripristinare il nome originale del demone, perché è evidente che così non puo' andare....
... come rimaneggiamo di conseguenza lo script della connessione manuale a mò di modem in PPPoE?
Allora nel DGN2200 la situazione è questa ed è nota; abbiamo un baco per il quale il "manually connect" è un pacco :D .... cioè a dire, il router continua comunque ad eseguire connessioni automatiche nonostante è attiva quell'impostazione della connessione manuale.
Per cui se adesso non possiamo più interecettare e stoppare il demone, per i motivi conosciuti, con questa condizione qui:
if (pppoe_dod == 2) && (ppoe_mofs == 1) { // 2 = manually connect
exit // esci dal demone per evitare di instaturare la connessione
}
come si fa a simulare il relay a dovere?
L'unica idea che mi viene, su due piedi, è fargliela aprire una volta (al riavvio del router), visto che non la si puo' evitare, e fargliela chiudere dopo attraverso sostanzialmente uno script tempistico del tutto simile a quello preesistente.
Sarebbe favoloso trovare una sorta di listener da applicare al demone.
Tipo se è possibile applicare la soluzione di Parnas72 con estrema semplicità ci possiamo risparmiare tutta sta roba.... altrimenti o quello o boh (niente).
Parnas72
21-02-2012, 16:28
Quindi tu dici di spostare il demone in un'altra cartella?
Come faccio a informare il router del riferimento cambiato?
Si puo' fare? Lo facciamo subito se è possibile.Non devi informare il router: il router chiamo lo script pppd, questo fa la exec del demone originale. Quindi lo script invece di chiamare pppd-original dovrà chiamare original/pppd, dove "original" è un subdir creata ad hoc.
Il PPPoE relay di per sè funziona ma a questo punto io non so più che significa il concetto per il quale si puo' affermare "che una cosa funziona oppure no".Ho provato ad aprire e chiudere più volte la connessione PPPoE da PC senza riscontare alcun problema, questo intendo per "funziona". :D
Ce l'ha tipo ssstrada, quando confessò che inspiegabilmente si trovava tipo 3 connessioni PPPoE attive in memoriaSì, lui ha detto che una volta gli è capitato... però io mi aspetterei che succedesse in maniera sistematica, non una volta ogni tanto.
Io per accorgemene che in PPPoE Modfs non era cosa, ci ho messo tipo 1 minuto e non ho fatto nemmeno test specifici o sforzi particolari.
Ho fatto tipo queste semplici cose:
Flashing fw moddato, impostazione PPPoE, reboot.
Freeze.Ecco, ti assicuro che a me invece facendo le stesse cose non freeza. Ho provato.
Trovate una soluzione che tale script l'ho
passato anche a quelli del wag320n :D , voglio vedere a loro come si comporta e se lamentano gli stessi malfunzionamenti.
Non devi informare il router: il router chiamo lo script pppd, questo fa la exec del demone originale. Quindi lo script invece di chiamare pppd-original dovrà chiamare original/pppd, dove "original" è un subdir creata ad hoc.
Proviamo! Faccio un tentativo.
Sì, lui ha detto che una volta gli è capitato... però io mi aspetterei che succedesse in maniera sistematica, non una volta ogni tanto.
Avviene in maniera sitematica. Sempre!!!
Ma anche se non avvenisse in maniera sistematica, si soprassiede al fatto che avviene casualmente?
Abbiamo appurato invece se nel fw originale accade mai?
Facendo le stesse cose e identiche col fw originale cosa succede?
Ecco, ti assicuro che a me invece facendo le stesse cose non freeza. Ho provato.
Da dove batti il reboot da telnet? Non vale da lì.
Senti qua. Che ti devo dire c'hai il DGN2200 che ti riesce a chiudere le connessioni.... è un modello SMART :D
In ogni caso se vuoi gli utenti che si sono lamentati del reboot che fallisce e dei freeze i post esistono. Basta che ti fai una ricerca nel thread di modfs.
Quanti sono? uno solo? 2?
Ma scusa ma con il seguito che ha modfs, cosa si pretendeva?
Manco alla netgear hanno notifiche sui alcuni problemi noti che si sa che esistono da anni.
Ringrazia dio che quell'anima l'abbia fatto presente.
Ignorarlo o non curarsene a dovere è stato il problema.
Non che io abbia più bisogno di ulteriori conferme al punto in cui sono arrivato.... ma questo per dire che non sono l'unico.
Sono l'unico che ne ha parlato, questo sì.... ma che vuol dire??
Perché se io devo passar per la mosca bianca mi secca tanto.
Io sono partito per dare la colpa alla DSLAM per assecondarvi.
Ricordatelo questo.... ed è facile tu abbia la stessa DSLAM mia per no parlare forse del profilo caricato in cabina.
Allora c'è da mettersi a ridere. Ecco.
Ma guarda che se si tratta solo del pppoe relay potete tagliare la testa al toro eliminando del tutto lo script pppd e ripristinando l'eseguibile originale.
Per il pppoe relay si può usare, come nel dgn3500, un demone a parte dedicato a quella funzione.
Ma guarda che se si tratta solo del pppoe relay potete tagliare la testa al toro eliminando del tutto lo script pppd e ripristinando l'eseguibile originale.
Per il pppoe relay si può usare, come nel dgn3500, un demone a parte dedicato a quella funzione.
Vabbè ormai ne sto assemblando uno come ha suggerito Parnas72.
Eventualmente possiamo fare ciò che ci piace. L'ambiente di lavoro qui è sempre pronto. Non c'è problema. :D
Sono a disposizione. :)
Anche nel DGN3500 c'è il bug del manually connect?
Perché la soluzione adottata da Cionci ha il suo perché. Aveva bisogno di stoppare il demone altrimenti questo faceva di testa sua e si connetteva da solo ogni volta.
Anche nel DGN3500 c'è il bug del manually connect?
no sul 3500 è tutto diverso, non ho avuto bisogno di fare niente di tutto ciò.
Allora!
Sembra che la soluzione suggerita da Parnas72 sia buona.
Anche se il percorso è cambiato non gli frega una cippa, importante che non gli tocchi il nome del file, lui (il demone) è felice ovunque si trovi.
Bene! Un applauso al demone ppp che ha rotto il caxxo per 1 mese :D
Una voglia matta di eliminare il demone con "rm pppd" :D.
Il router in PPPoE è tornato solido come nel fw originale.
Niente crash al cambio di protocollo, niente freeze quando si eseguono riavvii da ui, i wizard vanno tutti a buon fine, niente connessioni doppioni.
Al cambio del tipo di incapsulamento riesce finalmente a chiudere le connessioni precedenti non più necessarie.... la causa di tutti i problemi.
Ora fatemi scialare.
Stasera risistemo la squash per benino e assemblo un fw come si deve.
Adesso la directory è "mutilata" nelle sue parti poiché non è stato semplice andare a capire il problema e poco per volta eliminavo gli script aggiuntivi.
Importante che abbiamo trovato il bandolo della matassa.
Io comunque assemblo l'ultima versione quella passata sottobanco con i 3 driver adsl.
Avete preferenze?
Parnas72
21-02-2012, 18:14
Ma guarda che se si tratta solo del pppoe relay potete tagliare la testa al toro eliminando del tutto lo script pppd e ripristinando l'eseguibile originale.
Per il pppoe relay si può usare, come nel dgn3500, un demone a parte dedicato a quella funzione.Lo script penso servisse più che altro per sopperire al "bug" del manually connect che non funziona in ADSL 1 (così almeno mi pare di ricordare). Se si vuole usare il PPPoE da PC in aggiunta al PPPoE sul router, in effetti sostituire il pppd non serve.
Parnas72
21-02-2012, 20:41
Da dove batti il reboot da telnet? Non vale da lì.No, il router reboota da solo quando modifico le impostazioni DSL da VC a LLC.
Senti qua. Che ti devo dire c'hai il DGN2200 che ti riesce a chiudere le connessioni.... è un modello SMART :DAllora, ho appena fatto la seguente prova...
- messo il router in PPPoE/LLC
- rebootato
- atteso che agganciasse portante e prendesse IP
- disconnesso
- attesso che da interfaccia si vedesse indirizzo IP = 0.0.0.0
- riconnesso
- connesso in telnet e monitorato i processi, e di pppd.original ce ne era in esecuzione solo uno, non due.
Con questo non voglio dire che non ci sia il problema che tu dici, ma la cosa non è affatto sistematica... io mi sono riconnesso e navigo.
Io sono partito per dare la colpa alla DSLAM per assecondarvi.Hai dato la colpa al dslam per assecondare me ? :confused:
Ricordatelo questo.... ed è facile tu abbia la stessa DSLAM miaNon credo proprio, visto che tu hai DSLAM Broadcom mentre io Infineon. :D
strassada
21-02-2012, 21:30
c'è spazio per aggiungere un altro dsp broadcom? sarebbe la versione A2pB033g.
comunque nemmeno io mi spego perchè a lui crasha così tante volte e in brevissimo tempo, e a noi no (ora sono a 28 giorni filati sempre in pppoe e nessun problema, precedentemente ero arrivato ad oltre 50 giorni, sempre stesso ip e portante).
sarebbe da verificare anche la vulnerabilità WPS e magari pensare a come bypassarla, levando il wps o se basta killare alcuni processi da telnet/modf come molti di noi fanno.
No, il router reboota da solo quando modifico le impostazioni DSL da VC a LLC.
Allora, ho appena fatto la seguente prova...
- messo il router in PPPoE/LLC
- rebootato
- atteso che agganciasse portante e prendesse IP
- disconnesso
- attesso che da interfaccia si vedesse indirizzo IP = 0.0.0.0
- riconnesso
- connesso in telnet e monitorato i processi, e di pppd.original ce ne era in esecuzione solo uno, non due.
Con questo non voglio dire che non ci sia il problema che tu dici, ma la cosa non è affatto sistematica... io mi sono riconnesso e navigo.
Hai dato la colpa al dslam per assecondare me ? :confused:
Non credo proprio, visto che tu hai DSLAM Broadcom mentre io Infineon. :D
Io so solo che qui il filrmware moddato in PPPoE non me l'ha mai fatta passare liscia. Non so perché ma è incapace di chiudere le connessioni aperte in PPPoE. In PPPoA è tutta un'altra storia.
Domanda:
Perché il firmware originale ce la fa SEMPRE, e quello moddato non ce la fa MAI?
Non ho nemmeno bisogno di fare statistiche perché gli esiti non hanno mai dato risultati differenti.
Perché ho dovuto riportare il nome del demone ppp come quello originale per riavere le cose nella norma?
Io posso dire che il riavvio da interfaccia ora funziona ogni volta che lo chiedi, compreso il reset di fabbrica, e anche se fai un wizard non crasha più.
Tutto perché adesso è capace di chiudere le connessioni PPPoE che prima non poteva. Provando a passare da un protocollo ad un altro (per inciso una cosa che prima potevo fare solo nei sogni e solo col fw originale senza incorrere in un crash), le connessioni vengono chiuse correttamente.... vado a controllare da telnet e infatti ne ho sempre solo 1 di connessione fra i processi.
Com'è possibile sta storia che cambia solo con una stupida rinomina?
Domanda? Siamo sicuri che i tuoi riavvi non siano dei crash?
Perché il crash sfocia sempre in un riavvio dell'apparechio poi.
Cioè se io non sapessi, ad esempio, che il wizard non prevede a priori un normale riavvio, non saprei distinguere un normale reboot da un crash. Cioè visibilmente non puoi capirlo... a meno che non c'è un log che ne tiene traccia... e a meno che tu non sappia da prima che quella procedura non deve crashare perché sai che è così.
Ve lo farei vedere volentieri di persona che qui in PPPoE com'era prima era una piaga se intendevi cambiare qualcosa. Io che posso dirvi!!
Potete anche non credermi.
Sarò sfigato vabbè e con me qualche altro povero cristo, che altro posso dire!!!
c'è spazio per aggiungere un altro dsp broadcom? sarebbe la versione A2pB033g.
comunque nemmeno io mi spego perchè a lui crasha così tante volte e in brevissimo tempo, e a noi no (ora sono a 28 giorni filati sempre in pppoe e nessun problema, precedentemente ero arrivato ad oltre 50 giorni, sempre stesso ip e portante).
sarebbe da verificare anche la vulnerabilità WPS e magari pensare a come bypassarla, levando il wps o se basta killare alcuni processi da telnet/modf come molti di noi fanno.
ssstrada se il router non lo tocco non crasha e non freeza manco a me.
I problemi nascono se devo configurare qualcosa.
Anche a me in PPPoE è durato tipo 4 giorni di operatività e tutto era in ottimo stato. il problema non è questo.
Il problema era che se andavi e modificare cose e parametri per il quale il router richiedeva in maniera legittima di buttare giù la connessione ppp0 preesistente e reinizializzarne una aggiornata con in nuovi parametri, ebbene non ce la faceva... perché non riusciva a chiuderla a meno che non andavi tu da telnet a killarla brutalmente. A questo punto anche se l'avevi killata ti ritrovavi l'interfaccia grafica che si era ormai bloccata... per cui non potevi fare altro che battere un bel reboot da telnet e arrivederci. E dipende cosa facevi, ti puniva direttamente co un bel crash e buonanotte....
Cioè, ma sto coso così deve funzionare? Ad minchiam?
Abbiate pazienza!!! Ma col fw originale la situazione è sensibilmente differente per chi lo conosce.
Poi sarà che Modfs con me non vuole avere niente a che fare.
Vedrai!!!
-------------------------------------------------------------------
Con la squash adesso siamo a:
rootfs offset : 0xbfc10100 -- Length: 5480448
Se la trovi, la inseriamo e si prova.
Si vede come va e se soprattutto migliorano ancora le capacità di aggancio delle portante... Comunque per quanto ne ho potuto capire per la DSLAM è importante anche il modulo adsldd.ko e non solo il driver.
A proposito di driver ADSL.
Se qualcuno fosse interessato alla cosa, potrebbe inserire un riquadro, un box, in modfs per permettere la selezione da interfaccia e con effetto immediato, e senza il reboot, del driver adsl.
Penso non dovrebbe essere per niente difficile realizzarlo.
Serivirebbe tipo una combobox, oppure 'n' radio buttons (che forse è meglio) quanti sono i driver disponibili.... e poi eventualmente richiamare tramite ajax il web server in php per delegare la faccenda ad uno script bash abbastanza elementare, per la rigenerazione di soli due link simbolici, l'impostazione di una variabile globale per mantenere le impostazioni ed infine un retrain con 'adslctl start' per riqualificare la linea a dovere con il nuovo driver.
Magari qualcuno che ha già confidenza con l'SVN.
strassada
22-02-2012, 20:25
stando a quelli di bitswitcher, il firmware col driver aggiornato è di uno Zhone 1511-A1. avevano messo online sia il file .bin adsl estratto, che il firmware .img, ma i link ad Hotfile sono spariti. http://sourceforge.net/projects/bitswitcher/forums/forum/799260/topic/3940797/index/page/4
prova a prendere il firmware (3 MByte) da qui:
http://www.mediafire.com/?2tgy6759jzxq91h
stando a quelli di bitswitcher, il firmware col driver aggiornato è di uno Zhone 1511-A1. avevano messo online sia il file .bin adsl estratto, che il firmware .img, ma i link ad Hotfile sono spariti. http://sourceforge.net/projects/bitswitcher/forums/forum/799260/topic/3940797/index/page/4
prova a prendere il firmware (3 MByte) da qui:
http://www.mediafire.com/?2tgy6759jzxq91h
http://www.mediafire.com/?z3pp8qmgncpcml5 (link non più disponibile - file rimosso dall'autore)
Il driver si allinea, il punto è che io ho una 7 mega per cui no ho nulla da chiedere al modem già con il drv di default, poiché aggancio sempre il massimo possibile.
Testatene voi la solidità e le capacità se avete un abbonamento a 20 mega.
Io non posso essere attendibile per questo genere di test.
Per cambiare i fw adsl:
da telnet battere /usr/sbin/adsldrv.sh 025c1|026|030s|033g (a seconda della scelta)
poi digitare reboot ( temporaneo ...... devo sistemare lo script e se qualcuno mi aiuta facciamo prima
------------------------------------------------------------
.........) a tal proposito.... Domandaa!!!???
Nel caso avessi bisogno di reinizializzare il driver adsl senza riavviare, la semplice riqualificazione della linea non è sufficiente.
E' necessario stoppare prima il driver:
adslctl stop
e poi reinizializzarlo e tirare su la connessione
adslctl start --up
E fin qui ci siamo.... il driver si allinea correttamente e si collega senza problemi. Il punto è che ora bisogna smuovere la porta Internet poiché il router non acquisisce un IP... una volta fatto adsl stop... cioè manca qualcosa da digitare...
Qualcuno lo sa?
Forse qualcosa in pppd? Ma cosa.
La connessione pppd vedo è ancora fra i processi attivi però non c'è IP e la spia del web è rossa mentre la portante è agganciata correttamente.
quindi basta solo chiamare
/usr/sbin/adsldrv.sh 025c1|026|030s|033g
per cambiare il driver?
Posso aggiungere al pacchetto adsl io la modifica, visto che l'ho aggiornato per aggiungere il supporto per il wag320n, poi se parnas vuole procedere lui :D
Per quanto riguarda il comando sul 3500 c'è un comando per stoppare o lanciare la connessione
rc wan start|stop
questo si incarica di installare/disinstallare la periferica ethernet nas1 (in caso di pppoe),di killare/avviare pppd, settare le regole iptables etc...
Il vostro corrispondente di rc non è wl ?
Per quanto riguarda il comando sul 3500 c'è un comando per stoppare o lanciare la connessione
rc wan start|stop
questo si incarica di installare/disinstallare la periferica ethernet nas1 (in caso di pppoe),di killare/avviare pppd, settare le regole iptables etc...
Il vostro corrispondente di rc non è wl ?
wl è per la periferica wireless. Quello non ci serve, è a posto.
lo stop del driver adsl qui provoca un down del servizio legato alla porta WAN.
Tirarlo su per me non è semplice. Ci vuole troppo tempo a cercare di capire come si fa dal sorgente. Non so se ne valga la pena. O lo si sa oppure è un casino.
In /usr/sbin esiste un eseguibile chiamato "wandetect" che avvia una procedura che killa tutti i processi relativi alla WAN.
Per riattivare la WAN basta che vai nella pagina del protocollo e fai applica e ripristina la WAN.
Al limte potevo adottare una soluzione di ripiego attraverso l'uso delle curl, anche se mi fanno schifo. Invece neanche quello.
Il punto è che "adsl stop" proprio mette ko un qualcosa che nemmeno da interfaccia c'è modo di ripristinare (tipo se vai in wan setup o nella pagina del protocollo). Persino wandetect va in tilt, cioè entra in loop infinito perché non trova più il servizio associato.
Ifconfig mi dice che il device ppp0 è up ed ha addirittura un IP verso l'esterno, ma questo è assolutamente falso.. :D
Per cui nello script che sto rifacendo eseguirò un reboot...
Peccato perché il driver adsl veniva reiniziallizzato correttamente e riagganciava senza problemi... ma senza connettività internet ce ne facciamo poco.
Comuque tipo per modificare 2 parametri (vci vpi o mux) dell'adsl nemmeno dall'interfaccia tentano di tirare su la nuova connessione e tutto quello che c'è dopo senza eseguire un reboot... modificano le variabili reboot e ciao :D
quindi basta solo chiamare
/usr/sbin/adsldrv.sh 025c1|026|030s|033g
per cambiare il driver?
Posso aggiungere al pacchetto adsl io la modifica, visto che l'ho aggiornato per aggiungere il supporto per il wag320n, poi se parnas vuole procedere lui :D
In /etc/adsl esiste un file di testo chiamato "adsldrv" che contiene la lista dei driver disponibili e la riga di comando opportuna da passare qualora qualcuno volesse costruirne il componente in modfs.
Il pattern di codesto file è questo:
driver_label=param1 param2 param(n)
file che tra l'altro utilizzo io nella generazione dinamica della lista dell'help nello script adsldrv.sh.
Per cui in PHP lato server dovreste accedere a questo file e costruire, con un loop, il numero di radio buttons o selezioni se si opta per una combobox con le key associate.
Se il file è inesistente o vuoto potreste ritornare una cosa tipo "componnte o plug-in non disponibile bla bla", diversamente costruire l'interfaccia con i controlli e un bottone applica.
Vi avverto però quando si fa click su applica e il server web cede il controllo allo script a fine procedura parte il reboot automatico :D.
Non chiedo all'utente di riavviare.
--------------------------------------------------------------------------
DGN2200
La gestione delle risorse condivise in samba con modfs funziona male.
Se inserisco un'altra chiavetta usb nell'hub salta sitematicamente l'interfaccia web di modfs e viene creata una seconda unità duplicata della partizione di modfs tra le risorse condivise.
In nvram vengono create col tempo troppe unità incrementali.
Forse sarebbe il caso di avvertire il router di ignorare la partizione di modfs e non tentare di condividerla e possibilmente evitare di montarla una seconda volta:
/dev/sda1 on /tmp/mnt/usb0/part1 type vfat (rw,fmask=0000,dmask=0000,codepage=cp437,iocharset=iso8859-1)
/dev/sda2 on /tmp/mnt/usb0/part2 type vfat (rw,fmask=0000,dmask=0000,codepage=cp437,iocharset=iso8859-1)
/dev/sda2 on /tmp/mod/dev type vfat (rw,fmask=0000,dmask=0000,codepage=cp437,iocharset=iso8859-1)
/dev/loop0 on /tmp/mod/modfs type ext3 (rw,data=ordered)
Qualcuno ha già indagato sulla faccenda?
si cionci indagò a suo tempo, non so le conclusioni, ma l'ultima volta che si è sentito stava lavorando ad una rinnovata gestione dei dispositivi usb.
Certo che questo 2200 vi costringe ad un lavoraccio, che quasi quasi verrebbe voglia fare tutto daccapo,
io invece con il 3500 non solo ho la vita facile... ma di più :D
si cionci indagò a suo tempo, non so le conclusioni, ma l'ultima volta che si è sentito stava lavorando ad una rinnovata gestione dei dispositivi usb.
Certo che questo 2200 vi costringe ad un lavoraccio, che quasi quasi verrebbe voglia fare tutto daccapo,
io invece con il 3500 non solo ho la vita facile... ma di più :D
nono, è completamente fuori discussione che io metta mano al sorgente per
ridisegnare il modo in cui il router gestisce le periferiche usb.
Io posso indagare sulla questione e vedere di correggere al massimo tramite un demone che tira su una shell asincrona che con un impatto ragionevole sull'uso della CPU va ed eseguire il fix necessario e in background e quasi in tempo reale.
Una pezza, e nemmeno la migliore, più che una soluzione vera e propria... proprio perché per quella ho paura si debba ricompilare qualche libreria ed io sono in un periodo che mi scoccio un casino andare sul C/C++.
Mettici pure che non saprei dove andare a guardare, opto per il demone.
Non conosco queste architetture hw.
Per il discorso dell'interfaccia che si rende non disponibile sembra che sia stato fatto fuori soltanto il demone http di modfs, tutto il resto è up e la stessa immagine di modfs rimane montata correttamente.
Per cui basterà risollevare il pacco.. ehm il pachake httpd :D ghghgh.
Ho notato che l'httpd è molto soggetto a questi crash.
Era Parnas72, se non sbaglio, che si era adoperato a buttare giù 2 righe di codice e metterlo nello scheduler.
Più che un pezzo di codice opzionale, a questo punto sarebbe meglio che divenisse parte integrante di modfs. Tanto l'httpd crasha (o forse viene ucciso)... se ti metti a configurare il router... non c'è via di scampo.
Eventualmente se trovo il modo di correggere l'odioso problema delle periferiche usb con samba, potrei pensare di inserirlo nel demone stesso... che forse sarebbe la cosa migliore.
Boh!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.