|
|
|
![]() |
|
Strumenti |
![]() |
#81 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sai, il carico del server è una cosa relativa, visto che c'è solamente quando si vanno ad interpretare le pagine PHP. Si spera che l'utente non stia lì tutto il giorno a ricaricare le pagine come un tonto
![]() Sinceramente pensavo a PHP per togliersi di torno tutti i possibili problemi di compatibilità fra le shell, tra i binari, le librerie etc etc. Se le cose si fanno da PHP si può saltare tutta questa parte e soprattutto il debugging dei cgi (che siano programmi in C o script Bash). Stavo pensando alla struttura dei file da mettere sulla chiavetta. Mettere un file di avvio e tutti gli script subito leggibili espone davvero a grandissimi rischi per la sicurezza, dato che il drive è anche pubblicato sulla rete. Imho si potrebbe pensare ad un loop device. Magari ext3, così si avrebbe il journalling ed anche la capacità di scrittura (che con altri file system come squash non avremmo). Tutto sarebbe incluso in quel file e non servirebbero altri file sulla chiavetta (tranne i moduli del kernel, se non li volessi mettere nell'immagine del firmware). Almeno un minimo di sicurezza in più c'è. Certo non è sicuro al 100%, ma magari potremmo tentare di impedire l'accesso a quel file impedendo l'accesso alla risorsa dalla rete. Ovviamente gli script per montare e smontare tale file system dovrebbero venire inclusi nel firmware del router. Ecco qui come usarlo: http://www.walkernews.net/2007/07/01...-on-disk-file/ |
![]() |
![]() |
#82 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per le pagine web... Io odio fare pagine web. Per ora partirei con un menu javascript preconfezionato, magari a scomparsa e poi andrei di HTML semplice e scarso per fare le pagine. Giusto per fare le cose alla svelta.
Poi si spera che qualcuno si interessi a questa cosa e ci dia una mano dal punto di vista grafico. |
![]() |
![]() |
#83 |
Member
Iscritto dal: Aug 2008
Messaggi: 75
|
quindi questo firmware per impostare l'snr margin e il telnet abilitato e mantenere le modifiche anche dopo il riavvio del router è già pronto cionci?
lo metterai disponibile a tutti? |
![]() |
![]() |
#84 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() |
|
![]() |
![]() |
#85 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 4954
|
Ora mi devi chiarire un pò come pensi di salvare tutte le impostazioni e come riapplicarle all'avvio, io non ne ho idea al momento.
|
![]() |
![]() |
#86 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Me ne vengono in mente tre... Il primo che possiamo chiamare "dbram" (l'analogo del comando nvram o param del router) serve a salvare impostazioni globali del router. Lo farei con le stesse impostazioni di nvram. Abbastanza semplice quindi da accedere tramite shell. Un secondo potrebbe essere un traduttore di comandi, ad esempio: routercmd DGN2200 nome_modulo id_comando (può essere anche una stringa) e in output ritorna il comando o lo script da eseguire per attivare il telnet sul DGN2200. Per settare il comando: routercmd_set DGN2200 nome_modulo id_comando "comando" Per installare un modulo: package -i nome_archivio Per rimuovere un modulo: package -u nome_modulo Per ottenere la lista dei moduli installati: package -l Per settare le impostazioni...basterà chiamare boot.sh nella root del fs ext3. boot.sh chiamerà boot.sh di ogni modulo installato. Per settare le impostazioni più complesse (come settare le regole per un eventuale modulo per il port forwarding) potremmo lanciare uno script php direttamente da linea di comando che accederà ad un proprio db di sqlite. Per spegnere il tutto bisogna lanciare shutdown.sh che chiamerà shutdown.sh per ogni modulo installato. Faccio un esempio di modulo con quello per abilitare il telnet così credo che tu possa capire meglio ![]() |
|
![]() |
![]() |
#87 |
Member
Iscritto dal: Aug 2008
Messaggi: 75
|
ho letto il tuo post di là cionci. quindiil file chk si può flashare dalla pagina di configurazione del router e una volta dato il comando come spieghi nelle istruzioni questo viene mantenuto anche spegnendo e riaccendendo il router giusto?
|
![]() |
![]() |
#88 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
#89 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 4954
|
Quote:
chiave nome modulo # flag abilitato/disabilitato # stringa eseguibile startup # stringa shutdown Il dbram ha comandi set get count. Lo script di boot cicla sulle righe ed esegue gli script con flag abilitato. Ogni pacchetto avrà il suo database dove tenere le sue impostazioni. Problema,facciamo un esempio: la pianificazione wifi e la pianificazione wol dipendono entrambe da crond. Possono appendere le loro stringhe a crontab, però il crontab del dgn3500 ha una riga che reimposta il crontab ogni notte cancellando quindi le impostazioni noi abbiamo aggiunto,se si toglie quella riga comunque se si eseguono delle configurazioni nel pannello originale quelle nostre vengono cancellate. Si dovrebbe utilizzare un altro crond con altro crontab. Sia il pacchetto wol che pianificazione wifi richiederanno il crond custom attivo e dovranno agire sulle proprie righe senza cancellare le altre. Come si fanno a gestire le dipendenze e le condivisioni fra pacchetti? |
|
![]() |
![]() |
#90 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 4954
|
La tua modifica del target snr, mi ha fatto venire la curiosità se sul dgn3500 la questione è chiusa.
Confermi che io in adsl1, comunque non potrei testarla in alcun modo? Perchè ho trovato una discussione dove parlano della modifica snr sul ar7. In pratica con un flag attivano il SRA (seamless adaptive rate) ed impostano un margin threshold a 0.5db Sul dgn3500 nel dsl_cpe_control c'è un comando per sapere/impostare il rate adaptive e ci sono tre possibilità: at init dynamic dynamic SOS pare che dynamic SOS e SRA siano la stessa cosa. A me è impostato su dynamic se cerco di forzarlo a SOS mi da errore. Un altro comando permette di impostare un Delta SNR margin fra -0.5db e 0.5db ma anche questo non me lo fa impostare. Non è che su adsl2+ si può impostare SOS (o è già impostato) e si può impostare questo delta snr margin? |
![]() |
![]() |
#91 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sul Broadcom si può fare anche in ADSL1. Sono in ADSL1 anche io.
Per farti un esempio di come funziona dbram: come si chiama il comando per interagire con la nvram per il DGN3500 ? Quote:
Questa notte ho realizzato dbram e routercmd (che ho chiamato routerdb) con degli script bash che richiamano i client di sqlite. Questo è lo script per installare l'immagine ext3 e far partire il boot.sh: Codice:
#!/bin/sh shares="/tmp/shares" modules="/lib/modules/mod" loopdev="/dev/loop0" mountpath="/tmp/mod_fs" for i in 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 do sleep 2 ls $shares | while read line; do image=`ls $shares/$line/mod_image.bin 2>&1` if [ "$image" = "$shares/$line/mod_image.bin" ]; then insmod $modules/mbcache.ko insmod $modules/jdb.ko insmod $modules/ext3.ko insmod $modules/loop.ko losetup $loopdev $image mkdir $mountpath mount -t ext3 $loopdev $mountpath exec "$mountpath/boot.sh $mountpath" fi done done Ultima modifica di cionci : 30-09-2010 alle 08:53. |
|
![]() |
![]() |
#92 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 4954
|
Se vabbene io procederei così seguendo un layout simile
![]() abbiamo Codice HTML:
<div id="content"> <div id="header"></div> <div id="menu"> <ul id="menuMainList"> <li class="current"> <div id="menuSub"> <ul id="menuSubList"></ul> </div> <div id="main"> <div id="contents"></div> </div> <div id="footer"></div> </div> data la struttura a pacchetti, di popolare il menulist tramite una chiamata ajax ad uno script cgi o php che costruisca dinamicamente (al volo o solo all'installazione di un nuovo pacchetto) menu e sotto menu ed un altra chiamata che costruisca il main. Utilizzando jquery, il tutto è abbastanza semplice. Quindi un particolare pacchetto dovrà indicare l'appartenenza ad un particolare categoria in cui avrà una voce dedicata. Per esempio il pacchetto ssh dovrà informare che appartiene alla categoria Services e dovrà informare se vuole un sottomenu dedicato o solo un div dedicato nella sezione Services nel sotto menu Services di default. Così come in esempio: http://www.dd-wrt.com/demo/Services.asp Troppo complicato? ![]() Ultima modifica di gnommo : 30-09-2010 alle 19:51. |
![]() |
![]() |
#93 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Io te l'ho detto...odio fare le pagine web
![]() Comunque è chiaro, la generazione del menu deve essere fatta dinamicamente. Tramite Ajax + PHP o tramite PHP generando codice JavaScript cambia poco (generando le voci del menu). Io per ora starei sul semplice, magari con un semplice menu javascript a scomparsa. Se ti prendi tu la briga di tirare su la pagina a me va anche bene quello complicato ![]() Senti la proposta... Per i vari servizi (o anche per tutti i pacchetti) sarebbe carino permettere di scegliere: - avvio al boot - start - stop - uninstall Basterebbe una cosa semplice: Nome pacchetto | Version | Stato | Check per l'avvio al boot | Tasto Start/Stop a seconda dello stato | Uninstall Riguardo all'ordine di avvio, ho già pensato ad un sistema a priorità (se un servizio deve essere avviato dopo un altro, allora deve avere il valore di priorità più alto). Riguardo a dove mettere le varie possibilità di configurazione. Sì, potremmo fare come hai detto. Una voce globale od un sottomenu. Aggiungo tutto nel database ![]() Sto lavorando sullo script "package"... Sono a buon punto ma devo fare ancora molti test. Ti do un'anteprima: Codice:
!/bin/sh sqlite="sqlite3" systemdb="system" modfs=/tmp/mod_fs usage() { echo "List packages: $0 -l" echo "List packages (human readable): $0 -ll" echo "Boot priority listing: $0 -bp" echo "Reverse boot priority listing: $0 -rbp" echo "Install package (full path): $0 -i /path/package.tar.gz" echo "Check for an installed package: $0 -c packagename" echo "Uninstall package: $0 -u packagename" } wrong=1 if [ "$1" = "-c" ]; then if [ "$2" != "" ]; then wrong=0 res=`$sqlite $systemdb "SELECT * FROM packages WHERE Name='$2';"` if [ "$res" = "" ]; then echo "not installed" else echo "installed" fi fi fi if [ "$1" = "-l" ]; then $sqlite $systemdb "SELECT * FROM packages;" wrong=0 fi if [ "$1" = "-ll" ]; then $sqlite -column -header $systemdb "SELECT * FROM packages;" wrong=0 fi if [ "$1" = "-bp" ]; then $sqlite $systemdb "SELECT Name FROM packages WHERE Boot=1 ORDER BY Priority ASC;" wrong=0 fi if [ "$1" = "-rbp" ]; then $sqlite $systemdb "SELECT Name FROM packages WHERE Boot=1 ORDER BY Priority DESC;" wrong=0 fi if [ "$1" = "-i" ]; then $sqlite $systemdb "SELECT * FROM packages;" if [ "$2" != "" ]; then wrong=0 mkdir $modfs/tmp/_install cd $modfs/tmp/_install tar zxf $2 cat scripts/package.descriptor | while read $line; do echo $line done #check if package is installed res=`package -c $PKG_NAME` if [ "$res" = "installed" ]; then echo "Unable to install: '$PKG_NAME' already installed" rm -rf $PKG_NAME/_install exit 1 fi #check for dependencies for dep in $PKG_DEPENDENCIES; do res=`package -c $dep` if [ "$res" = "not installed" ]; then echo "Unable to install: missing dependence '$dep'" rm -rf $modfs/tmp/_install exit 1 fi done mkdir $modfs/packs/$PKG_NAME mv * $modfs/packs/$PKG_NAME/ $modfs/packs/$PKG_NAME/scripts/install.sh fi fi if [ "$wrong" = "1" ]; then usage exit 1 fi exit 0 Codice:
PKG_NAME=telnet PKG_VERSION=0.1 PKG_DEPENDENCIES=pippo pluto PKG_STARTATBOOT=1 PKG_PRIORITY=1 PKG_GROUP=Services PKG_SUBGROUP=Telnet |
![]() |
![]() |
#94 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Codice:
total used free shared buffers Mem: 29368 28808 560 0 2840 Swap: 0 0 0 Total: 29368 28808 560 ![]() Mi sembra impossibile ![]() Magari finisce tutto nel tmpfs o nel ramfs ? Come faccio a modificarne la dimensione ? Codice:
Filesystem 1k-blocks Used Available Use% Mounted on /dev/mtdblock0 4480 4480 0 100% / tmpfs 16 0 16 0% /mnt /dev/sda1 2092348 110320 1982028 5% /tmp/mnt/usb0/part1 /dev/sda5 2642660 101868 2540792 4% /tmp/mnt/usb0/part5 Ultima modifica di cionci : 01-10-2010 alle 11:13. |
![]() |
![]() |
#95 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Codice:
# mount /dev/mtdblock0 on / type squashfs (ro) /proc on /proc type proc (rw) ramfs on /tmp type ramfs (rw) tmpfs on /mnt type tmpfs (rw) none on /proc/bus/usb type usbfs (rw) |
![]() |
![]() |
#96 |
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Interessante il progetto... Sebbene non abbia un router netgear voglio seguire per vedere fin dove arrivate...
Vorrei poter dare la mia disponibilità per un'interfaccia html + css ma non so se avrei tempo di farla... Lo avessi saputo prima mi sarei proposto! ![]()
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
![]() |
![]() |
#97 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
#98 |
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Ma giusto per sapere...
Si tratta semplicemente di fare un'interfaccia grafica partendo dalla html scarno ( visto che immagino di non poter usare dei miei tag, credo siano collegati a qualche funzione php magari? ) e impaginarlo col css?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
![]() |
![]() |
#99 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() Basta metterci d'accordo. In pratica quello che dobbiamo fare sono delle pagine php. Quindi in teoria tu potresti occuparti di grafica (non importa fare cose immense, anzi, meglio una cosa leggera) + CSS + HTML e della generazione tramite PHP dei menu. Il tutto a tua completa fantasia, magari prendendo spunto da quanto abbiamo postato qualche post fa ed utilizzando i classici colori Netgear, giusto per richiamare un po' l'interfaccia del router. Per la generazione dei menu si tratta semplicemente di accedere ad alcune tabelle sqlite tramite php. Poi per la parte di "azione" ci potremmo pensare noi. Basta che tu ci dia delle direttive per l'impaginazione delle form ![]() Se anche non riuscissi a scrivere la parte PHP per impostare il nostro lavoro, ci basterebbe anche una impostazione generale dal punto di vista HTML. |
|
![]() |
![]() |
#100 | |
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Quote:
Entro quanto sperate/volete concludere? O è a tempo perso la cosa?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:06.