PremessaSiccome non ho fin ora trovato una guida completa e funzionante riguardo l'abilitazione di SQM per il DGA4132, avendo trovato soluzione, ho deciso di condividerla.
Personalmente ho deciso di abilitare SQM per fixare il bufferbloat che mi causa problemi durante le sessioni di gioco e direi che funziona:
Prima di attivare SQM ottenevo
D nei test, ora invece ottengo
A+, questo è il test dopo il setup di SQM:
https://www.waveform.com/tools/bufferbloat?test-id=0e9e9a50-9771-48a2-8d63-6cf56ac05260Stessi risultati li ho ottenuti testando su
http://www.dslreports.com/speedtestPrerequisiti- Il dispositivo deve essere rooted
- deve essere possibile accendere in ssh e con WinSCP.
- nella mia configurazione ho installato il firmware 2.3.3, non so dire se funziona con altre versioni
Step 1 - installare driver e dipendenzeVia ssh lancia il comando:
opkg update
Nel mio caso il comando ha fallito (temo che il repository non sia più raggiungibile). Ho quindi installato i feeds manualmente (seguendo questa guida:
https://www.macoers.com/blog/antonio-macolino/feeds_openwrt_homeware_19_brcm6xxx_tch)
Ma riassumerò qui la procedura...
Usando WinSCP copia le righe seguenti nel file
/etc/opkg.conf:
arch all 1
arch noarch 1
arch arm_cortex-a9 10
arch arm_cortex-a9_neon 20
Installa quindi i feeds lanciando i comandi:
curl -k https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/base/libopenssl1.1_1.1.1k-1_arm_cortex-a9_neon.ipk --output /tmp/libopenssl1.1_1.1.1k-1_arm_cortex-a9_neon.ipk
curl -k https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/base/libopenssl-conf_1.1.1k-1_arm_cortex-a9_neon.ipk --output /tmp/libopenssl-conf_1.1.1k-1_arm_cortex-a9_neon.ipk
curl -k https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/base/openssl-util_1.1.1k-1_arm_cortex-a9_neon.ipk --output /tmp/openssl-util_1.1.1k-1_arm_cortex-a9_neon.ipk
curl -k https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/base/libustream-openssl20150806_2020-03-13-40b563b1-1_arm_cortex-a9_neon.ipk --output /tmp/libustream-openssl20150806_2020-03-13-40b563b1-1_arm_cortex-a9_neon.ipk
opkg install --nodeps /tmp/*.ipk
Ora basta inserire in
/etc/opkg/customfeeds.conf i seguenti feeds per homeware 19 dando in ssh i comandi:
echo "src/gz openwrt_base_macoers https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/base
src/gz openwrt_freifunk_macoers https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/freifunk
src/gz openwrt_packages_macoers https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/packages
src/gz openwrt_luci_macoers https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/luci
src/gz openwrt_routing_macoers https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/routing
src/gz openwrt_telephony_macoers https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/telephony
src/gz openwrt_core_macoers https://repository.macoers.com/homeware/19/brcm6xxx-tch/VANTW/target/packages" >> /etc/opkg/customfeeds.conf
e anche i comandi:
echo "src/gz chaos_calmer_base_macoers https://repository.macoers.com/homeware/18/brcm63xx-tch/VANTW/base
src/gz chaos_calmer_packages_macoers https://repository.macoers.com/homeware/18/brcm63xx-tch/VANTW/packages
src/gz chaos_calmer_luci_macoers https://repository.macoers.com/homeware/18/brcm63xx-tch/VANTW/luci
src/gz chaos_calmer_routing_macoers https://repository.macoers.com/homeware/18/brcm63xx-tch/VANTW/routing
src/gz chaos_calmer_telephony_macoers https://repository.macoers.com/homeware/18/brcm63xx-tch/VANTW/telephony
src/gz chaos_calmer_core_macoers https://repository.macoers.com/homeware/18/brcm63xx-tch/VANTW/target/packages" >> /etc/opkg/customfeeds.conf
Step 2 - Installare sqm-scriptsLancia ora il comando per installare gli script:
opkg install sqm-scripts
ATTENZIONE: a questo punto in console mi è apparso un errore per la mancanza del driver 'kmod-sched-cake'. Dopo aver cercato in lungo e in largo ho trovato e installato un pacchetto compatibile con l'architettura del mio hardware (Cortex-A9). Se il problema si verifica anche a te lancia questo comando per scaricare e installare il driver mancante:
curl -k https://downloads.openwrt.org/snapshots/targets/bcm53xx/generic/packages/kmod-sched-cake_5.10.92-1_arm_cortex-a9.ipk --output /tmp/kmod-sched-cake_5.10.92-1_arm_cortex-a9.ipk
opkg install --nodeps /tmp/kmod-sched-cake_5.10.92-1_arm_cortex-a9.ipk
A questo punto lancia nuovamente l'installazione, ora dovrebbe andare a buon fine:
opkg install sqm-scripts
Step 3 - Configurare SQMOra abbiamo tutto il necessario per abilitare SQM, lanciamo quindi:
/etc/init.d/sqm enable
/etc/init.d/sqm start
Per abilitare e avviare il servizio. Teoricamente questo dovrebbe bastare per avviare avere SQM funzionante ad ogni riavvio del router, nella pratica non basta (lo vediamo nello step 4).
Scriviamo la configurazione di SQM, apri il file
/etc/config/sqm con WinSCP (se preferisci fa un backup del file prima di modificarlo) e sostituisci il contenuto con la configurazione che preferisci, nel mio caso ho scritto:
config queue 'wan'
option enabled '1'
option interface 'wanptm0'
option download '51840'
option upload '18240'
option qdisc 'fq_codel'
option script 'simple.qos'
option qdisc_advanced '0'
option ingress_ecn 'ECN'
option egress_ecn 'ECN'
option qdisc_really_really_advanced '0'
option itarget 'auto'
option etarget 'auto'
option linklayer 'none'
In questa specifica configurazione sto applicando l'algoritmo all'interfaccia Wan.
a fianco di "option interface" scrivi il valore dell'interfaccia su cui vuoi applicare l'algoritmo. Se non conosci il nome esatto della tua Wan lancia questo comando via ssh:
uci get network.wan.ifname
Per impostare correttamente i valori di download e upload, prima esegui uno speedtest (
https://www.speedtest.net), i miei risultati sono:
download = 54 megabits/s
upload = 19 megabits/s
calcola quindi download e upload massimi da impostare nella configurazione (usa ora i tuoi valori ottenuti dallo speedtest):
download = 54 * 96 * 10
upload = 19 * 96 * 10
In pratica stiamo dicendo ad SQM di usare il 96% della banda massima, il restante 4% servirà all'algoritmo per evitare bufferbloat.
Una volta terminata la guida puoi fare alcune prove aumentando e diminuendo la percentuale, da me il valore ottimale per azzerare bufferbloat si è rivelato essere 96%.
Nella configurazione quindi copia i tuoi risultati:
option download '51840'
option upload '18240'
Salva il file e per applicare la modifica riavvia SQM con il comando:
/etc/init.d/sqm restart
Step 4 - Avvio SQM al rebootAl riavvio del router SQM non riuscirà più a caricare la configurazione perché probabilmente viene avviato troppo presto, quindi ora dobbiamo fare in modo che il servizio si riavvii quando il sistema ha finito il processo di boot.
Con WinSCP apri il file
/etc/rc.local, in fondo, subito prima di 'exit 0', aggiungi:
sleep 10 && /etc/init.d/sqm restart
FineArrivato a questo punto dovresti avere SQM funzionante. Ovviamente avrai perso una piccola percentuale di velocità di download e upload, ma direi che ne vale la pena.
Ora puoi rifare i test del bufferbloat ed eventualmente aggiornare i valori dello step 3.
Spero di essere stato utile
Fonti e link utili:
https://www.ilpuntotecnico.com/forum/index.php/topic,80598.msg275625.html#msg275625https://gist.githubusercontent.com/braian87b/571116c4e8be29f168204569905c87ed/raw/d887aa0634a8f353fd5dbc2fbb481d87b56fbb12/sqm-openwrt-lede.sh