Come anticipato nel topic principale
https://www.ilpuntotecnico.com/forum/index.php/topic,77325.0.htmlabbiamo ricostruito un tree compilabile di OpenWrt Chaos Calmer 15.05.1 per AGTEF e AGTHP.
Si tratta di un mix di sorgenti diversi basato sul git di OpenWrt e su una serie di driver (sia open che closed) di Broadcom/Technicolor/TIM.
L'obiettivo, almeno dal mio punto di vista, non è quello di creare un file immagine da caricare sul router, come in passato si faceva per altri modelli perché non abbiamo la possibilità di firmare il file con le chiavi giuste richieste dal bootloader.
Oltretutto, proprio per il fatto che si tratta di un fw Frankestein, non credo possa esser affidabile come l'originale.
Cosa ci consente allora di fare questo svluppo? Di compilare driver kernel aggiuntivi (magari quelle parti che non coinvolgono l'hw direttamente) e di compilare tutti i programmi in userspace.
A questo scopo sto procedendo con la compilazione di pacchetti e avrei bisogno di volontari che li possano testare.
Nell'altro topic molti utenti chiedevano aria con supporto torrent per esempio...
Oppure openvpn...
Pensavo di trovare uno spazio per appoggiare i pacchetti man mano che li compilo, senza modificare il repo attuale che rimane quello stabile.08/11/2017 - UPDATEHo terminato una prima compilata dei pacchetti e li ho appoggiati sul repository.
Quindi modificando il file /etc/opkg/customfeeds.conf come segue potrete usare opkg per installare i pacchetti per AGETF con firmware < 1.1.0.
src/gz chaos_calmer_base https://repository.ilpuntotecnico.com/files/roleo/public/agtef/brcm63xx-tch/packages/base
src/gz chaos_calmer_packages https://repository.ilpuntotecnico.com/files/roleo/public/agtef/brcm63xx-tch/packages/packages
src/gz chaos_calmer_luci https://repository.ilpuntotecnico.com/files/roleo/public/agtef/brcm63xx-tch/packages/luci
src/gz chaos_calmer_routing https://repository.ilpuntotecnico.com/files/roleo/public/agtef/brcm63xx-tch/packages/routing
src/gz chaos_calmer_telephony https://repository.ilpuntotecnico.com/files/roleo/public/agtef/brcm63xx-tch/packages/telephony
src/gz chaos_calmer_management https://repository.ilpuntotecnico.com/files/roleo/public/agtef/brcm63xx-tch/packages/management
E per AGTHP con firmware < 1.1.0.
src/gz chaos_calmer_base https://repository.ilpuntotecnico.com/files/roleo/public/agthp/brcm63xx-tch/packages/base
src/gz chaos_calmer_packages https://repository.ilpuntotecnico.com/files/roleo/public/agthp/brcm63xx-tch/packages/packages
src/gz chaos_calmer_luci https://repository.ilpuntotecnico.com/files/roleo/public/agthp/brcm63xx-tch/packages/luci
src/gz chaos_calmer_routing https://repository.ilpuntotecnico.com/files/roleo/public/agthp/brcm63xx-tch/packages/routing
src/gz chaos_calmer_telephony https://repository.ilpuntotecnico.com/files/roleo/public/agthp/brcm63xx-tch/packages/telephony
src/gz chaos_calmer_management https://repository.ilpuntotecnico.com/files/roleo/public/agthp/brcm63xx-tch/packages/management
E per AGTEF e AGTHP con firmware >= 1.1.0.
src/gz chaos_calmer_base https://repository.ilpuntotecnico.com/files/roleo/public/agtef/1.1.0/brcm63xx-tch/packages/base
src/gz chaos_calmer_packages https://repository.ilpuntotecnico.com/files/roleo/public/agtef/1.1.0/brcm63xx-tch/packages/packages
src/gz chaos_calmer_luci https://repository.ilpuntotecnico.com/files/roleo/public/agtef/1.1.0/brcm63xx-tch/packages/luci
src/gz chaos_calmer_routing https://repository.ilpuntotecnico.com/files/roleo/public/agtef/1.1.0/brcm63xx-tch/packages/routing
src/gz chaos_calmer_telephony https://repository.ilpuntotecnico.com/files/roleo/public/agtef/1.1.0/brcm63xx-tch/packages/telephony
src/gz chaos_calmer_management https://repository.ilpuntotecnico.com/files/roleo/public/agtef/1.1.0/brcm63xx-tch/packages/management
Ricordatevi un
opkg update
per aggiornare gli indici.
Questo repository è comunque da considerare Work In Progress quindi non definitivo e soggetto a frequenti modifiche.
Come indicato sopra, l'origine dei sorgenti è il git di Chaos Calmer 15.05.1 aggiornato al 18/02/2018.
Il grosso del lavoro svolto è stato quello di sistemare il config.
Per riuscire a compilare moduli kernel esternamente, è necessario che il config del kernel utilizzato sia estremamente simile a quello originale.
Quindi ho estratto il config dalla /proc del router e ho modificato il config generale di OpenWrt finché non ho ottenuto un config del kernel quasi coincidente.
Questo significa che non tutti i pacchetti di OpenWrt sono stati compilati, infatti alcuni di essi hanno dipendenze che vanno a modificare pesantemente il config del kernel (es. airplay richiede un supporto sound del kernel).
Non vuol dire che non si possa fare ma bisogna provare a compilare e fare un bel po' di test.
Il kernel è quello dei sorgenti Broadcom, cioè il 3.4.11 con le opportune patch. Anche riuscire a far andare questo kernel vecchio su Chaos Calmer (che ha un 4.4) non è stato banale.
Nonostante ci sia tanto lavoro dietro, i pacchetti sono migliaia e non conosciamo le eventuali personalizzazioni fatte dal fornitore.
Evitate quindi di sovrascrivere pacchetti già installati se non specificatamente indicato in qualche procedura.
Per esempio non sostituite base-files.
Note:
- I pacchetti sono stati compilati con ottimizzazione -O3.
- Ho forzato il vermagic del kernel in modo da far tornare la dipendenza dei moduli ko.- Ho eliminato la dipendenza dei moduli kernel dal vermagic per poter utilizzare lo stesso repo per tutte le versioni fw di agtef e agthp.
Attenzione: la probabilità di brickare il router è sempre presente, a vostro rischio e pericolo.
13/11/2017 - UPDATEHo copiato sul repo i sorgenti dell'albero di compilazione di Chaos Calmer come alcuni avevano chiesto: openwrt_agtef_gpl.tgz (sono gli stessi anche per agthp).
Purtroppo non sono riuscito a creare un albero compilabile utilizzando i sorgenti di ASUS e altri. Pertanto, considerando la licenza closed imposta da Technicolor, i sorgenti non sono completi.
Però, per chi possiede il tar.gz originale di Technicolor, ho predisposto uno script che ricrea l'albero completo. Quindi basta procurarsi il file dei sorgenti in qualche modo (non chiedetelo a me).
Per creare l'albero completo è sufficiente entrare nella cartella openwrt_agtef_gpl e lanciare lo script ./prepare_sources.sh
Per compilare invece lanciate il comando ./go
Durante la compilazione verranno sicuramente fuori degli errori dovuti al fatto che alcuni siti dove reperire i pacchetti non sono più online.
Per risolvere il problema basta guardare il nome del file che non viene trovato, cercarlo su google, scaricarlo e copiarlo nella cartella /dl
Testato su una debian 8.6 64bit.
25/01/2018 - UPDATEInserita compatibilità AGTHP.
22/02/2018 - UPDATEPiccoli aggiornamenti.