Causa forza maggiore (cambio di router) abbandono la compilazione e lo sviluppo di firmware personalizzati per il modello Linksys WAG354G V2. Prima, però, ho intenzione di raccogliere in questo post le mie esperienze in proposito in modo che chiunque sia in grado di procedere in modo autonomo alla modifica e compilazione di firmware per questo glorioso modello.
Cercherò nel contempo di essere il più breve e conciso possibile con l'avvertenza che si tratta di un'attività che non può essere compiuta da chi non ha conoscenze informatiche avanzate e tanta pazienza e, quindi, solo da chi conosce bene la programmazione in ambito linux e non necessita di essere condotto per mano passo a passo.

Nel redigere il firmware mi sono basato negli ultimi mesi sul progetto
Neptune354 curato da un valido programmatore italiano (masterb) che ha messo assieme una serie di modifiche realizzate per router Linksys e non, e le ha armonizzate in un unico sorgente per il WAG354G V1.
Il consiglio che posso dare, onde evitare molti problemi, è quello di importare le features che saranno rese disponibili dal Progetto Neptune354 e reperibili
in questo svn, nel sorgente base del firmware originale 1.01.58 per il WAG354G V2 che è possibile scaricare dal link più sotto. Questa operazione può essere compiuta mediante un programma grafico di merging & diff di files e cartelle come l'ottimo meld, la cui installazione in Ubuntu verrà eseguita in seguito.
Nella mia esperienza la compilazione diretta dei sorgenti Neptune354 che sono stati creati e testati per il modello WAG354G V1 non ha condotto a risultati ottimali in quanto le due macchine, pur avendo nomi simili contengono componenti sostanzialmente diversi (diversa revision del processore TI AR7 e del chip wireless che richiede driver differenti). Questo non esclude che in futuro si possa giungere all'armonizzazione dei sorgenti per i due modelli.
Per cominciare occorre disporre di un sistema operativo linux funzionante e ad es. Ubuntu Gutsy va benissimo.
Accertarsi di avere installati i seguenti pacchetti:
shell> sudo apt-get install build-essential linux-headers-`uname -r` tftp rcs shellutils fileutils automake1.4 autoconf bison libstdc++2.10-dbg libstdc++2.10-glibc2.2 libc6-dev meld
A questo punto è necessario installare il TI-toolchains-2_1_0-cy07-Redhat7_1 necessario per compilare e reperibile sul sito ftp Linksys, oppure in separata sede scaricandolo da qui:
LINKshell> sudo tar zxvf TI-toolchains-2_1_0-cyxx-xxx.tgz -C /opt/
shell> cd /opt
shell> sudo ln -s TI-toolchains-2_1_0-cyxx cy
Ora è possibile scaricare e compilare i sorgenti reperibili qui nelle due versioni AnnexA (Adsl su linea analogica) e AnnexB (Adsl su ISDN):
LINK Ipotizzando di aver scompattato l'archivio nella cartella firmware sul desktop i comandi da dare sono:
shell> cd /home/......../Desktop/
shell> chmod -R 755 firmware/
shell> cd /home/......../Desktop/firmware/src
shell> export PATH=$PATH:/opt/cy/mipsfple/bin:/opt/cy/mipsfple-uclibc/bin
shell> ./make.sh
Se si desidera ottenere un file di log contenente eventuali errori nella compilazione sostituire ./make.sh con:
shell> ./make.sh > compile.log 2>&1
Il processo di compilazione durerà un tempo variabile tra i 3 e i 20 minuti a seconda del PC utilizzato e produrrà il file del firmware
upgrade_code.bin reperibile nella cartella .../firmware/image/ con cui aggiornare il router mediante la sua interfaccia web.
RECOVERY del router in caso di fallimento dell'aggiornamento e spia di status lampeggiante (Linux):
Istruzioni in Italiano e English.
RECOVERY del router in caso di fallimento dell'aggiornamento e spia di status lampeggiante (Windows):
1. Scaricare tftp.exe dal sito ftp Linksys o usare quello incluso in questo pacchetto su esnips.
2. Scaricare un firmware funzionante per il vostro modello.
3. Rinominare il file contenuto nell'archivio in upgrade_code.bin
4. Impostare l'IP statico sulla scheda di rete ethernet del pc collegata al router IP 192.168.1.5 e subnet mask 255.255.255.0; se la scheda madre dispone di più di una scheda di rete disabilitare tutte quelle non usate; disabilitare eventuali firewall o antivirus sul pc; se non va al primo tentativo, eventualmente inserire un hub tra router e pc.
5. Connettere il pc con il router ma non dare corrente al router, per ora.
6. Lanciare il tftp.exe client
7. Nella riga "Server" mettere: 192.168.1.1
8. In quella password: admin (o la password personalizzata che avevate precedentemente impostato sul router)
9. Nella riga file immettere l'intero percorso del file del firmware precedentemente rinominato (ad es.: c:\documents and settings\user\desktop\upgrade_code.bin).
10. Nella riga When Upgrade Fails the program will retry: 90
11. Lanciare l'applicazione premendo Upgrade Button
12. Inserire il cavo dell'alimentazione nel router
13. Attendere.... finchè viene mostrato erasing flash. Se non compare nulla per 30-40 sec togliere il cavo della corrente, aspettare 10 sec e reinserirlo (50 tentativi...).
14. Attendere.... e dopo che viene mostrato erasing flash, comincerà la procedura di aggiornamento che durerà 2-4 minuti. Anche dopo che il programma darà la conferma di upgrade riuscito, NON togliere la corrente al router per 4 o 5 minuti durante i quali la spia di status verde continuerà a lampeggiare diventando poi rossa e infine restando verde fissa.
Può essere necessario provare più volte l'intera procedura.