Oggi mi sono cimentato nella compilazione del firmware originale della vodafone station ed ecco come si sono svolti i fatti:
Prelievo dei sorgenti:
QUI sono 9 parti .RAR
Scompattare i sorgenti e scompattare il toolchain, questi sono in formato .tar.gz
Dopodich? se si utilizza una distribuzione linux che funziona con pacchetti RPM eseguire:
# rpm -i uclibc-crosstools-common.i386.rpm
# rpm -i uclibc-crosstools-mips.i386.rpm
Altrimenti se si utilizza una distribuzione Debian o altre possiamo estrarre il contenuto del RPM, ma ? consigliabile installarli tramite Alien:
# apt-get install alien
# alien -i --scripts uclibc-crosstools-common.i386.rpm
# alien -i uclibc-crosstools-mips.i386.rpm
Se, come nel mio caso, questo non dovesse funzionare allora:
# alien -g --scripts uclibc-crosstools-common.i386.rpm
# alien -g uclibc-crosstools-mips.i386.rpm
che semplicemente li estrae e li prepara per l'utilizzo, dopodich? bisogna copiarne il contenuto (la cartalla opt) nella cartella /opt/
# cp -r uclibc-crosstools-common-3.4.2/opt/ /opt/
# cp -r uclibc-crosstools-mips-3.4.2/opt /opt/
Dopodich? (non ne ho capito il motivo) il Makefile richiede la stessa cartella ma con nome diverso, percui lo accontentiamo:
# cp -r /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502 /opt/toolchains/uclibc-crosstools
adesso ? tutto pronto, rechiamoci nella cartella in cui abbiamo scompattato i sorgenti e configuriamo il kernel:
$ cd hg553/kernel/linux/
$ make defconfig
$ make menuconfig
adesso ? tutto pronto per la compilazione, ma chi ha preparato il pacchetto motion-3.2.9 ha commesso un piccolo errore con le dipendenze, per ovviare aprire il file
.depend presente nella directory
hg553/userapps/opensource/motion-3.2.9 e sostituire tutti i campi:
/home/liude/work/ACS_HG553/HG553V100R001B055SP01/userapps/opensource/motion-3.2.9/
con:
../
- Nel caso non dovrebbe funzionare, causa errori di dichiarazione delle variabili, si pu? escludere dalla compilazione semplicemente aprendo il Makefile generale (quello presente in hg553) e commentando la riga relativa a motion-3.2.9 (riga 476 - 477) semplicemente aggiungo un # ad inizio riga.
Adesso si pu? finalmente compilare con:
$ cd hg553
$ make PROFILE=96358GWV
ad un certo punto ci chieder? l'autenticazione come root, e creer? l'immagine in hg553/images/bcm96358GWV_fs_kernel_Echolife_HG553V100R001C02B05x.-[la data]
Detto questo non ho ancora provato ad installare il suo CFE percui non vi so dire di pi?, appena posso provarla vi dir? di pi?.
IMPORTANTE:La compilazione del kernel risulta dare problemi se si utilizza un compilare GCC 4.x, si consiglia di utilizzare un compilatore GCC 3.3.6
*reperibile qui.
* NOTA PER SISTEMI A 64BIT:
Nei sistemi amd64 GCC pu? riscontrare problemi nell'installazione, per ovviare a questo aggiungere il parametro
--disable-multilib durante la configurazione