Aggiunto il supporto ufficiale ad OpenWrt per TG582n, AGTWI, AGPWI e A4101N

  • 25 Risposte
  • 1421 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Daniele Castro

  • Nuovo Iscritto
  • *
  • 25
Ciao a tutti, ho aggiunto il supporto ufficiale ad OpenWrt per:

Modem Telecom Italia ADSL2+ Wi-Fi N AGPWI (ADB P.DG A4001N A-000-1A1-AX)
pull request: https://github.com/openwrt/openwrt/pull/2598#event-3365959694
snapshot: https://downloads.openwrt.org/snapshots/targets/bcm63xx/generic/openwrt-bcm63xx-generic-adb_pdg-a4001n-a-000-1a1-ax-squashfs-cfe.bin

Modem Telecom Italia ADSL2+ Wi-Fi N AGTWI (Technicolor TG582n con i LED customizzati da Telecom sul PCB)
pull request: https://github.com/openwrt/openwrt/pull/3393#event-4076872258
snapshot: https://downloads.openwrt.org/snapshots/targets/bcm63xx/generic/openwrt-bcm63xx-generic-technicolor_tg582n-telecom-italia-squashfs-cfe.bin

Router VoIP TeleTu P.RG A4101N (ADB P.DG A4101N A-000-1A1-AE)
pull request: https://github.com/openwrt/openwrt/pull/3397#event-4076720655
snapshot: https://downloads.openwrt.org/snapshots/targets/bcm63xx/generic/openwrt-bcm63xx-generic-adb_pdg-a4101n-a-000-1a1-ae-squashfs-cfe.bin

Router modem Technicolor TG582n non brandizzato (Dovrebbe funzionare anche con le versioni brandizzate del router a cui non è stata cambiata la configurazione dei LED sul PCB tipo la versione distribuita da Infostrada)
pull request: https://github.com/openwrt/openwrt/pull/3400#event-4076872452
snapshot: https://downloads.openwrt.org/snapshots/targets/bcm63xx/generic/openwrt-bcm63xx-generic-technicolor_tg582n-squashfs-cfe.bin

Nota: Non posseggo un Technicolor TG582n non brandizzato. Ho testato l'immagine su un Technicolor TG582n brandizzato Telecom Italia.
Ho costruito l'immagine basandomi sulle informazioni che ho trovato su questo wiki: https://openwrt.org/toh/thomson/tg582n.
Se qualcuno di voi dispone di questo ruter e ha voglia di provare l'immagine mi faccia gentilmente sapere se tutti i LED funzionano e sono correttamente mappati :)

Tutte le immagini di cui il link sopra aggiungono all'immagine A4001N1 di OpenWrt:
   -La mappatura corretta dei LED per ciascuno dei router elencati
   -La rimozione della partizione PSI alla fine della Flash, quindi avrete 65,536 Kbyte di spazio di archiviazione in più
   -L'associazione corretta dei LED alla rispettiva funzione (LAN activity, USB activity, etc)

LED layout del Technicolor TG582n:
Codice: [Seleziona]
PCB:   |GPIO:   |TG582n no brand: |AGTWI:

LED2R  |488(08) |red    Power     |red   Power
LED2G  |484(04) |green  Power     |green Power

LED10R |486(06) |                 |missing R85 end LED
LED13G |485(05) |green  Ethernet  |green ADSL

LED11R |494(14) |                 |red   Internet
LED14G |491(11) |green  Broadband |green Internet

LED5R  |487(07) |red    Internet  |red   Wi-Fi
LED5G  |481(01) |green  Internet  |green Wi-Fi

LED12R |498(18) |                 |red   Service
LED12G |499(19) |                 |green Service

LED6R  |482(02) |red    Wi-Fi     |missing R108 end LED
LED6G  |483(03) |green  Wi-Fi     |missing R107 end LED

LED7R  |490(10) |red    WPS       |missing R91 end LED
LED7G  |489(09) |green  WPS       |missing R92 end LED

LED4   |508(28) |ethernet port 4  |ethernet port 4
LED3   |507(27) |ethernet port 3  |ethernet port 3

LED9   |506(26) |ethernet port 2  |ethernet port 2
LED8   |505(25) |ethernet port 1  |ethernet port 1

SW3    |503(23) |key Reset        |key Reset

SW5    |504(24) |key WPS          |key Wi-Fi/LED

SW4    |495(15) |key Wi-Fi        |missing R127 end key

SW6    |493(13) |                 |missing R171 end key

SW1    |492(12) |                 |missing R1 end key

LED layout dell'A4101N:
Codice: [Seleziona]
Power            always on
DSL              GPIO483(03)
Internet         GPIO491(11)
ETH1             GPIO505(25)
ETH2             GPIO506(26)
ETH3             GPIO507(27)
ETH4             GPIO508(28)
USB              GPIO490(10)
WLAN             controlled by BCM43225
WPS              GPIO489(09)
TEL              GPIO511(31)

Key RESET        GPIO503(23)
Key WPS          GPIO504(24)
Key unnamed      GPIO492(12)

Noterete che sia l'AGTWI che il Technicolor TG582n unbranded dispongono di molti GPIO inutilizzati sul PCB. La cosa si presta a tantissimi hardware mods senza rinunciare ai LED tra cui:
   -Aggiungere un lettore SD card al router (https://openwrt.org/docs/guide-user/hardware/mmc_over_gpio)
   -Aggiungere un display LCD al router (https://forum.openwrt.org/t/how-to-add-20x4-lcd-hd44780-to-a-openwrt-router-via-i2c/28722)
   -Creare un robot (https://www.jbprojects.net/projects/wifirobot/)
   -Aggiungere uno o più relè al router per controllare il frigorifero, la lavatrice, il microonde, le persiane o la saracinesca del garage! (chi non ha mai desiderato di controllare il frigorifero?!)
   -e tantissimi altri mods, potete sbizzarrirvi ed usare il router come un Raspberry pi o un arduino.

Nel caso abbiate deciso di controllare fino a 8 frigoriferi con l'AGTWI, ecco qui uno script bash che dimostra come controllare i GPIO inutilizzati:

Codice: [Seleziona]
#!/bin/sh

gpio_set() {
gpio=$1
val=$2

echo $gpio > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio$gpio/direction

echo "[GPIO$gpio] Trying value "$val
echo $val > /sys/class/gpio/gpio$gpio/value

echo $gpio > /sys/class/gpio/unexport
}

#all GPIOs on
gpio_set 486 0
gpio_set 482 0
gpio_set 483 0
gpio_set 490 0
gpio_set 489 0
gpio_set 495 0
gpio_set 493 0
gpio_set 492 0

read -p "Press enter"

#all GPIOs off
gpio_set 486 1
gpio_set 482 1
gpio_set 483 1
gpio_set 490 1
gpio_set 489 1
gpio_set 495 1
gpio_set 493 1
gpio_set 492 1

Se non volete perdere troppo tempo col saldatore potete comprare dei relè già pronti all'uso come questi:
https://it.aliexpress.com/wholesale?catId=0&initiative_id=SB_20201207075609&SearchText=relay+module+3v

Se volete controllare ancora più frigoriferi potete attaccare ai GPIO uno o più shift register in cascata, un I/O expander o dissaldare qualche LED:
https://it.aliexpress.com/wholesale?catId=0&initiative_id=SB_20201207075654&SearchText=shift+register+3v

Qui, invece, uno script per accendere tutti i LED sul Technicolor TG582n no brand:

Codice: [Seleziona]
#!/bin/sh

# Technicolor TG582n all LEDs test

echo 1 > /sys/class/leds/red\:power/brightness
read -p "Press enter /red\:power"
echo 0 > /sys/class/leds/red\:power/brightness
read -p "Press enter /red\:power"
echo 1 > /sys/class/leds/green\:power/brightness
read -p "Press enter green\:power"
echo 0 > /sys/class/leds/green\:power/brightness
read -p "Press enter green\:power"

echo 1 > /sys/class/leds/red\:internet/brightness
read -p "Press enter /red\:internet"
echo 0 > /sys/class/leds/red\:internet/brightness
read -p "Press enter /red\:internet"
echo 1 > /sys/class/leds/green\:internet/brightness
read -p "Press enter green\:internet"
echo 0 > /sys/class/leds/green\:internet/brightness
read -p "Press enter green\:internet"

echo 1 > /sys/class/leds/red\:wifi/brightness
read -p "Press enter red\:wifi"
echo 0 > /sys/class/leds/red\:wifi/brightness
read -p "Press enter red\:wifi"
echo 1 > /sys/class/leds/green\:wifi/brightness
read -p "Press enter green\:wifi"
echo 0 > /sys/class/leds/green\:wifi/brightness
read -p "Press enter green\:wifi"

echo 1 > /sys/class/leds/red\:wps/brightness
read -p "Press enter red\:wps"
echo 0 > /sys/class/leds/red\:wps/brightness
read -p "Press enter red\:wps"
echo 1 > /sys/class/leds/green\:wps/brightness
read -p "Press enter green\:wps"
echo 0 > /sys/class/leds/green\:wps/brightness
read -p "Press enter green\:wps"

echo 1 > /sys/class/leds/green\:broadband/brightness
read -p "Press enter green\:broadband"
echo 0 > /sys/class/leds/green\:broadband/brightness
read -p "Press enter green\:broadband"

echo 1 > /sys/class/leds/green\:ethernet/brightness
read -p "Press enter green\:ethernet"
echo 0 > /sys/class/leds/green\:ethernet/brightness
read -p "Press enter green\:ethernet"
« Ultima modifica: 08 Dicembre 2020, 16:27 da Daniele Castro »

Offline larsen64it

  • VIP
  • *****
  • 2022
Ottimo lavoro complimenti.
Per il Router VoIP TeleTu P.RG A4101N, ci sarebbe da provare se si riesce a far funzionare il voip:
https://github.com/pgid69/bcm63xx-phone

Offline Daniele Castro

  • Nuovo Iscritto
  • *
  • 25
Molto interessante! Purtroppo qui a Londra non dispongo di un telefono per provare il pacchetto. Posso solo compilare un'immagine con quel pacchetto integrato se può servire...

Se qualcuno ha modo di testare nell'immediato che il pacchetto funziona, posso fare una PR ed integrarlo nell'immagine stock di OpenWrt, altrimenti se ne parla verso Natale...

P.S. Non appena qualcuno trova il modo di flashare OpenWrt su AGTOT faccio l'immagine  ;)
« Ultima modifica: 07 Dicembre 2020, 20:40 da MisterFTTH »

Offline larsen64it

  • VIP
  • *****
  • 2022
Se non se li sono mangiati qualche roditore ne dovrei avere qualcuno da qualche parte. Ma vista la mia ignoranza con il voip ed affini, posso solo verificare che non dia noia con alla spi. Comunque senza impegno, non ci corre dietro nessuno.

Offline Daniele Castro

  • Nuovo Iscritto
  • *
  • 25
Sono ignorante anche io sul VoIP, figurati... Comunque volevo fare "il prima possibile" in modo da far rilasciare OpenWrt 20 con tutto già integrato... ma tranquillo, fai senza impegno  :)
« Ultima modifica: 07 Dicembre 2020, 20:40 da MisterFTTH »

Offline larsen64it

  • VIP
  • *****
  • 2022
Per l'agtot visto i tuoi possibili agganci spagnoli in openwrt e suoi studi sul bcm63168 credo che dovresti chiedere a lui.
« Ultima modifica: 07 Dicembre 2020, 20:35 da larsen64it »

Offline Daniele Castro

  • Nuovo Iscritto
  • *
  • 25
effettivamente non ci avevo pensato...
« Ultima modifica: 07 Dicembre 2020, 20:41 da MisterFTTH »

Offline Pietrotti97

  • Nuovo Iscritto
  • *
  • 32
  • Sesso: Maschio
    • My Webpage
@Daniele Castro Si sa qualcosa su quando uscira' la versione ufficiale?
Oppure... c'e' un modo per compilarsi manualmente la 19.07.7 con il nuovo target che ha i led fixati ? Chiedo sia per tg582n/agtwi che per a4001n

Offline Daniele Castro

  • Nuovo Iscritto
  • *
  • 25
Ciao, non sono così informato su come/quando OpenWrt rilascia i suoi firmware stabili...
al più posso guardare come hanno fatto per la 18.06.x considerando che ora siamo arrivati alla 19.07.7:
18.06.8
18.06.9
19.07.0
19.07.0-rc1
19.07.0-rc2
19.07.1
A giudicare da quanto sopra sembra ci sia ancora parecchio da aspettare ed, inoltre, per l'AGPWI non è nemmeno detto che rilasceranno le immagini precompilate perche è un 4/32 device (https://openwrt.org/supported_devices/432_warning). Quindi potresti essere costretto a compilarti i sorgenti a mano anche dopo l'uscita della 21.02.x. Fortunatamente questo vale solo per l'AGPWI.

Se hai fretta di provare le nuove immagini puoi istallarti un'immagine trunk/snapshot (https://downloads.openwrt.org/snapshots/targets/bcm63xx/generic/). Il prezzo da pagare è che sono meno stabili perchè in fase di sviluppo, qualcosa potrebbe non funzionare o non funzionare bene tipo il WiFi ed allo scadere della mezza notte del giorno in cui hai scaricato l'immagine non potrai più installare nuovi moduli del kernel con opkg. Se ti stai chiedendo il perchè, la risposta la trovi qua (https://hamy.io/post/0015/how-to-compile-openwrt-and-still-use-the-official-repository/). Per tutti gli altri pacchetti no-problems.

Se vuoi provare a compilarti a mano la 19.07.x, ad esempio per l'AGTWI, devi modificare questo file (https://github.com/openwrt/openwrt/blob/openwrt-19.07/target/linux/brcm63xx/dts/a4001n1.dts) perchè ''assomigli" a questo (https://github.com/openwrt/openwrt/blob/master/target/linux/bcm63xx/dts/bcm6328-technicolor-tg582n-telecom-italia.dts), compilare un'immagine per A4001N1 e flashare l'immagine.
Per ''assomigli" intendo che devi copiare i nodi che mancano in uno nell'altro e rimuoverne altri tipo il nodo "nvram". Se queste modifiche che ho spiegato non ti sono ben chiare potresti doverti studiare un po come funziona Linux ed il kernel device tree prima di procedere.

Avrei voluto aggiungere il supporto per la 19.07.x ma quelli di OpenWrt accettano le Pull Requests solo su Trunk e quando ho cominciato lo sviluppo si lavorava già per OpenWrt 21.02
« Ultima modifica: 20 Febbraio 2021, 13:15 da Daniele Castro »

Offline Pietrotti97

  • Nuovo Iscritto
  • *
  • 32
  • Sesso: Maschio
    • My Webpage
@Daniele Castro
Ho modificato il dtb come hai detto ( https://mega.nz/file/SMU2lRTQ#3Dxu9UR5NOWYMcVlkEQqrz0bAYxd9JfpwzPyhAmVsIs ) e dopo aver compilato una img basata su wrt 19.07 sembra funzionare tutto correttamente.

Offline Daniele Castro

  • Nuovo Iscritto
  • *
  • 25
Grande, ora puoi fare la stessa cosa anche con gli altri router che hai nominato usando i rispettivi dts che ho fatto per aggiungere il supporto ufficiale ;)

La modifica che ti ho fatto fare ti da quasi tutti gli stessi vantaggi della futura immagine ufficiale con l'unica eccezione che l'immagine ed il kernel crede di stare lavorando su una macchina con nome e board ID differente da quella in cui è effettivamente eseguita.
Suppongo, comunque, che la cosa, al di la di un fattore puramente estetico, non ti dia fastidio.

Un'altra soluzione sarebbe potuta essere quella di flashare l'immagine pre-compilata dal repository ufficiale, compilare il dts modificato con il relativo bcm6328.dtsi incluso nel dts usando dtc, editare la partizione del kernel sul router, rimuovere il vecchio dtb alla fine del kernel e fare l'append del nuovo dtb modificato. Il risultato finale sarebbe stato lo stesso ma con molti più passaggi.

Questi sono gli unici modi che consentono di non modificare il kernel facendo rimanere il magic number intatto e consentendoti, quindi, di installare i moduli del kernel da opkg.
Per aggiungere il supporto ufficiale io ho dovuto cambiare un po di cosine in più, tra cui il kernel, ma col rilascio ufficiale la cosa, chiaramente, non sarà un problema.

Comunque ho notato che hai cambiato i nomi dei led tipo
label = "A4001N1:green:power"; con label = "green:power"; ed hai cambiato model = "ADB P.DG A4001N1"; con model = "TelecomItalia ADB P.DG A4001N";
Cambiare questi nomi dovrebbe non far funzionare più lo script che ti fa lampeggiare il led power in fase di boot e non dovrebbe far più funzionare le assegnazioni di default dei led in Luci. Se la cosa non ti da fastidio puoi lasciare tutto com'è. In caso contrario ti consiglio di usare i nomi originali dell'A4001N1
« Ultima modifica: 21 Febbraio 2021, 02:41 da Daniele Castro »

Offline Pietrotti97

  • Nuovo Iscritto
  • *
  • 32
  • Sesso: Maschio
    • My Webpage
E ora ho scoperto perché il led non lampeggia in fase di avvio, ottimo   :facepalm:

Risistemo i nomi, e in tempo utile provo a compilare qualcosa di funzionante perché l'immagine che ho compilato mi sta dando non pochi problemi ( tranne i led, quelli sono giusti ), e visto quello che mi hai detto, inizio a pensare che siano dovuti alle modifiche al dtb.

Poi la carico qui la IMG se qualcuno è interessato, visto che a quanto ho capito su openwrt non le vogliono.

EDIT: Questo e' il file di configurazione sistemato https://mega.nz/file/HBcHTApL#_tI7pOAfJlzhLgIEZodCX7cDKe-P-oVQ8sv1gOJvyeE
Il problema che continuo ad avere, e ho ricompilato una img partendo dai sorgenti standard della 19.07.7, sostituendo solo il .dts e usando il .config ufficiale e' che semplicemente il router non fa da router. DHCP non assegna un ip, luci non va, il modem non risponde al ping etc etc etc.

EDIT2: probabilmente ho io qualche problema col modem perche' non va neanche con il .bin ufficiale  :tumbleweed:
« Ultima modifica: 21 Febbraio 2021, 11:13 da Pietrotti97 »

Offline larsen64it

  • VIP
  • *****
  • 2022
Avevo provato la versione snap e aveva problemi con con la lan
https://github.com/openwrt/openwrt/commit/31a06f8fcc575d228be73d66e0ae6619855de2c1
Occhio alle configurazioni della lan cambia la configurazione dello switch tra versione e versione.

Offline Pietrotti97

  • Nuovo Iscritto
  • *
  • 32
  • Sesso: Maschio
    • My Webpage
Ho provato a flashare il .bin originale per A4001N1 e funziona tutto ( lan compresa ). A sto punto inizio a pensare che il target corretto per sto modem sia A4001N1 e non A4001N
« Ultima modifica: 21 Febbraio 2021, 15:05 da MisterFTTH »

Offline larsen64it

  • VIP
  • *****
  • 2022
Quando non esistevano tds specifici usavo sempre le immagini del A4001N1 sia per il tg582(AGTWI) che per il TeleTu P.RG A4101N, ma solo per qualche led in più. Anche mettendo le immagini per il A4001N funzionava tranquillamente. Questo fino a chaos calmer, poi li avevo abbandonati.