A quanto pare non c'e' più molta gente che si diverte con questo bel modemino ....
Sperando di incuriosire qualcuno provo a riferire dei miei smanettamenti:
punto 1: la toolchain
Ho trovato i sorgenti della toolchain e l'ho aggiornata un pochino, contiene un paio di patches non ufficiali specifiche per processori broadcom, e le ho lasciate anche se non so bene se servano proprio, in realtà con crosstool-ng ho creato una toolchain basata su gcc-4.6 che ha prodotto codice che gira sul modemino.
gcc aggiornato alla versione 3.4.6+patches da openwrt e uclibc aggiornata alla 0.9.28.3 (con compatibilità binaria per 0.9.27)+patches da openwrt e gentoo. La uclibc usata dalla toolchain ufficiale è una via di mezzo tra la 0.9.27 e la 0.9.28.
uclibc-crosstools_gcc-3.4.6_uclibc-0.9.28.3
ho ricompilato il firmware utilizzando la nuova toolchain, installato le nuove librarie flashato e funziona ancora tutto (credo :-)
A questo punto mi sono dedicato al kernel, ho notato che il firmware originale pirelli aveva una versione più recende dei driver delle memorie flash. Ho fatto un merge dei driver, in pratica quelli pirelli hanno qualche tipo di chip in più definito e calcolano la dimensione in modo diverso.
ricompilato, flashato incrociando le dita, e invece parte tutto al boot il modello corretto e la dimensione del chip flash installato sul modem viene riconosciuto:
Linux version 2.6.8.1 (
[email protected]) (gcc version 3.4.6) #1 Fri Aug 31 12:41:32 CEST 2012
cfi_flash_get_device_id
Parallel flash device: name MX29LV640BT, id 0x22c9, size 8192KB
Total Flash size: 8192K with 135 sectors
***Board is not initialized****: Using the default PSI size: 24
AliceAGW2+ prom init
Ci sono differenze pure per quanto riguarda la gestione dei led tra i driver originali e quelli aga-usr
alcuni led definiti non vengono gestiti dal driver USR, mi sa che ethfix è un workaround per questo.
Provo a vedere se riesco a fare pure un merge di quella parte dei driver.