L'angolo di Ansuel: ricerca e sviluppo su DGA4130 (AGTEF) & DGA4132 (AGTHP)

  • 2281 Risposte
  • 1131717 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Marvel

  • Membro Anziano
  • ***
  • 200
    • Macoers
@larsen64it , grazie per la risposta, mi confermi quindi che gli step che ho effettuato per prepararmi l'ambiente di compilazione sono tutti corretti? Non ho sbagliato/mancato qualcosa? Sto compilando in crosscompile per un DGA4132 con fw AGTHP_2.2.0.

Se compilo con:
make V=s /package/feeds/packages/haproxy/

questo è l'errore:
Codice: [Seleziona]
make[1]: Entering directory '/home/marvel/DGA4132/chaos_calmer'
make[1]: *** No rule to make target '/package/feeds/packages/haproxy/'.  Stop.
make[1]: Leaving directory '/home/marvel/DGA4132/chaos_calmer'
/home/marvel/DGA4132/chaos_calmer/include/toplevel.mk:181: set di istruzioni per l'obiettivo "/package/feeds/packages/haproxy/" non riuscito
make: *** [/package/feeds/packages/haproxy/] Errore 2

Ho comunque provato a compilare con successo un semplice .c:
Codice: [Seleziona]
cat << EOF > hello-world.c
#include <stdio.h>

int main (int argc, char** argv)
{
printf("Hello World\n");
return 0;
}
EOF
$ arm-openwrt-linux-gnueabi-gcc hello-world.c -o hello-world
$ file hello-world
hello-world: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
ma se invece compilo i pacchetti falliscono tutti.

Non voglio ovviamente la soluzione, proverò a sbatterci la testa da solo, vorrei solo sapere se ho preparato correttamente l'ambiente per la compilazione.
Ho visto che non è disponibile un SDK per noi, quindi la via della buildroot con la toolchain è corretta, giusto?

Devo per caso preparare il .config in qualche modo particolare?


#POSTEDIT GRANDE QUANTO UNA CASA
Sono un cogl*one, lanciavo make /package/feeds/packages/haproxy/ con lo slash avanti, devo smetterla di fare ste cose di notte.

#POSTEDIT2
Ora riesco ad andare avanti ma poi ho un errore sulla compilazione nella toolchain di Ansuel, credo di aver sbagliato a preparare qualcosa.
./scripts/feeds install haproxy
make package/feeds/packages/haproxy/prepare
Codice: [Seleziona]
make[1] package/feeds/packages/haproxy/prepare
 make[2] -C feeds/packages/net/haproxy prepare
make package/feeds/packages/haproxy/compile
Codice: [Seleziona]
make[1] package/feeds/packages/haproxy/compile
 make[2] -C package/libs/toolchain compile
make -r package/feeds/packages/haproxy/compile: build failed. Please re-run make with -j1 V=s to see what's going on
/home/marvel/DGA4132/chaos_calmer/include/toplevel.mk:181: set di istruzioni per l'obiettivo "package/feeds/packages/haproxy/compile" non riuscito
make: *** [package/feeds/packages/haproxy/compile] Errore 1
make V=s package/feeds/packages/haproxy/compile
Codice: [Seleziona]
make[1]: Entering directory '/home/marvel/DGA4132/chaos_calmer'
make[2]: Entering directory '/home/marvel/DGA4132/chaos_calmer/package/libs/toolchain'
cp -fpR /home/marvel/DGA4132/chaos_calmer/staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libuClibc-*.so /home/marvel/DGA4132/chaos_calmer/staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libcrypt-*.so /home/marvel/DGA4132/chaos_calmer/staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libm-*.so /home/marvel/DGA4132/chaos_calmer/staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libpthread-*.so /home/marvel/DGA4132/chaos_calmer/build_dir/target-mips_mips32_uClibc-0.9.33.2/toolchain/
cp: cannot stat '/home/marvel/DGA4132/chaos_calmer/staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libuClibc-*.so': No such file or directory
cp: cannot stat '/home/marvel/DGA4132/chaos_calmer/staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libcrypt-*.so': No such file or directory
cp: cannot stat '/home/marvel/DGA4132/chaos_calmer/staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libm-*.so': No such file or directory
cp: cannot stat '/home/marvel/DGA4132/chaos_calmer/staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libpthread-*.so': No such file or directory
Makefile:636: recipe for target '/home/marvel/DGA4132/chaos_calmer/build_dir/target-mips_mips32_uClibc-0.9.33.2/toolchain/.built' failed
make[2]: *** [/home/marvel/DGA4132/chaos_calmer/build_dir/target-mips_mips32_uClibc-0.9.33.2/toolchain/.built] Error 1
make[2]: Leaving directory '/home/marvel/DGA4132/chaos_calmer/package/libs/toolchain'
package/Makefile:191: recipe for target 'package/libs/toolchain/compile' failed
make[1]: *** [package/libs/toolchain/compile] Error 2
make[1]: Leaving directory '/home/marvel/DGA4132/chaos_calmer'
/home/marvel/DGA4132/chaos_calmer/include/toplevel.mk:181: set di istruzioni per l'obiettivo "package/feeds/packages/haproxy/compile" non riuscito
make: *** [package/feeds/packages/haproxy/compile] Errore 2

Qualche piccolo suggerimento?
« Ultima modifica: 17 Febbraio 2020, 15:37 da Marvel »

Offline larsen64it

  • VIP
  • *****
  • 2697
Credo che quello che hai fatto tu sia un cross compile
https://openwrt.org/docs/guide-developer/crosscompile
che è differente dall'usare toolchain esterno
https://oldwiki.archive.openwrt.org/doc/howto/external_toolchain


Codice: [Seleziona]
CONFIG_EXTERNAL_TOOLCHAIN=y
# CONFIG_NATIVE_TOOLCHAIN is not set
CONFIG_TARGET_NAME="arm-linux"
CONFIG_TOOLCHAIN_PREFIX="arm-linux-"
CONFIG_TOOLCHAIN_ROOT="/opt/toolchains/new"
CONFIG_TOOLCHAIN_BIN_PATH="./usr/bin ./bin"
CONFIG_TOOLCHAIN_INC_PATH="./usr/include ./include ./usr/arm-linux/sysroot/usr/include"
CONFIG_TOOLCHAIN_LIB_PATH="./usr/lib ./lib ./usr/arm-linux/sysroot/lib"

Codice: [Seleziona]
# Configuration
#
CONFIG_LIBC_ROOT_DIR="/opt/toolchains/new"
CONFIG_LIBC_FILE_SPEC="./lib/ld{-*.so,-*.so.*,-linux*.so.*} ./lib/lib{uClibc,anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*}"
CONFIG_PACKAGE_libgcc=y

#
# Configuration
#
CONFIG_LIBGCC_ROOT_DIR="/opt/toolchains/new"
CONFIG_LIBGCC_FILE_SPEC="./lib/libgcc_s.so.*"
CONFIG_PACKAGE_libpthread=y

#
# Configuration
#
CONFIG_LIBPTHREAD_ROOT_DIR="/opt/toolchains/new"
CONFIG_LIBPTHREAD_FILE_SPEC="./lib/libpthread{-*.so,.so.*}"
CONFIG_PACKAGE_librt=y

#
# Configuration
#
CONFIG_LIBRT_ROOT_DIR="/opt/toolchains/new"
CONFIG_LIBRT_FILE_SPEC="./lib/librt{-*.so,.so.*}"
CONFIG_PACKAGE_libstdcpp=y

#
# Configuration
#
CONFIG_LIBSTDCPP_ROOT_DIR="/opt/toolchains/new"

Offline Marvel

  • Membro Anziano
  • ***
  • 200
    • Macoers
Si, infatti sto tentando di fare un cross compile tramite la toolchain messa a disposizione da Ansuel, non si può?
Ho infatti seguito la documentazione ufficiale:
https://openwrt.org/docs/guide-developer/crosscompile
https://oldwiki.archive.openwrt.org/doc/howto/build.a.package
E poi come riferimenti ho anche seguito questa pagina:
https://telecnatron.com/articles/Cross-Compiling-For-OpenWRT-On-Linux/index.html

Sui soc ARM e sui telefoni android sono solito procedere in questo modo, qui non posso farlo?
Questa è la prima volta che "gioco" con OpenWrt.

Vedo di capire come utilizzare correttamente la toolchain di Ansuel.
Grazie per gli input.

Offline larsen64it

  • VIP
  • *****
  • 2697
Forse è meglio chiedere direttamente a Ansuel come ha impostato il tutto.
Ma come lo hai impostato tu con tutti gli EXPORT ha preso poco o nulla visto che cerca  le librerie di mips.

Offline Marvel

  • Membro Anziano
  • ***
  • 200
    • Macoers
Diciamo che sono riuscito ad arginare il problema con una procedura differente, cerca le librerie giuste, ma comunque va in errore. Finisco di fare una prova e posto tutto.

Ma se volessi utilizzare la toolchain esterna senza cross compile come devo fare? Dove utilizzo le due configurazioni che mi hai indicato? Con i make menuconfig non riesco mai ad ottenere quello che mi hai mostrato tu con le due immagini.

Offline larsen64it

  • VIP
  • *****
  • 2697
Certo che ti sei trovato un bel professorone in materia. Per la toolchain esterna la devi impostare entrando menuconfig
Come da esempio che ti avevo postato
Codice: [Seleziona]
    [*] Advanced configuration options (for developers)
        [*] Use external toolchain
            Target name: arm-openwrt-linux-uclibcgnueabi (in my case, yours may vary)
            Toolchain prefix: arm-openwrt-linux-uclibcgnueabi- (mind the dash at the end)
            Toolchain root: /path/to/toolchain/staging_dir/toolchain-arm_v5te_gcc-linaro_uClibc-0.9.32_eabi
Entrando poi base system ha controllare che libc & CO  abbiano preso il giusto percorso che puoi anche modificare editando .config

Offline Marvel

  • Membro Anziano
  • ***
  • 200
    • Macoers
Certo che ti sei trovato un bel professorone in materia.

Io da tutti voi posso solo che imparare e vi ringrazio perché avete la pazienza di sopportarmi.

Per la toolchain esterna la devi impostare entrando menuconfig

Domanda molto ma molto molto stupida, devo mica eseguirla sul router? Cosa che temo. E se si, come si fa dato che è oltre 500mb? Dimmi che non ho capito assolutamente un cavolo sulla toolchain esterna. Lo spero, perché altrimenti sul DGA quanto ci mette a compilare?
« Ultima modifica: 17 Febbraio 2020, 20:37 da MisterFTTH »

Offline larsen64it

  • VIP
  • *****
  • 2697
Citazione
Domanda molto ma molto molto stupida
Concordo, questa non me l'aspettavo e secondo te dove li trova il tutto:
Codice: [Seleziona]
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler

Offline Marvel

  • Membro Anziano
  • ***
  • 200
    • Macoers
Ok, quindi stiamo comunque facendo cross compiling. Prima di dire altre fesserie cerco di capirne di più, mi sto confondendo le idee.

Offline larsen64it

  • VIP
  • *****
  • 2697
Forse sono anche io che te le confondo. Comunque fai prima a chiedere ad Ansuel.

Offline Marvel

  • Membro Anziano
  • ***
  • 200
    • Macoers
Credo di aver capito che utilizzando la tollchain esterna non c'è bisogno di impostare alcuna variabile d'ambiente.
Ho fatto dei passi avanti ma ho ancora errori in fase di compilazione, credo per le diverse librerie utilizzate. Se ho ben capito la toolchain utilizza glibc mentre i pacchetti che tento di compilare utilizzano uclibc, ma forse ho detto una fesseria.

Ora la compilazione mi si ferma così:
make V=s package/feeds/packages/haproxy/compile
Codice: [Seleziona]
make[1]: Entering directory '/home/marvel/DGA4132/chaos_calmer'
make[2]: Entering directory '/home/marvel/DGA4132/chaos_calmer/package/libs/toolchain'
rm -rf /home/marvel/DGA4132/chaos_calmer/staging_dir/target-toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/root-ar71xx/tmp-libc
mkdir -p /home/marvel/DGA4132/chaos_calmer/staging_dir/target-toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/root-ar71xx/stamp /home/marvel/DGA4132/chaos_calmer/staging_dir/target-toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/root-ar71xx/tmp-libc
for file in ./lib/ld{-*.so,-linux*.so.*} ./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*}; do dir=`dirname $file` ; install -d -m0755 /home/marvel/DGA4132/chaos_calmer/staging_dir/target-toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/root-ar71xx/tmp-libc/$dir ; cp -fpR /home/marvel/DGA4132/toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/$file /home/marvel/DGA4132/chaos_calmer/staging_dir/target-toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/root-ar71xx/tmp-libc/$dir/ ; done ; exit 0
SHELL= /home/marvel/DGA4132/chaos_calmer/staging_dir/host/bin/flock /home/marvel/DGA4132/chaos_calmer/tmp/.root-copy.flock -c 'cp -fpR /home/marvel/DGA4132/chaos_calmer/staging_dir/target-toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/root-ar71xx/tmp-libc/. /home/marvel/DGA4132/chaos_calmer/staging_dir/target-toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/root-ar71xx/'
bash: /home/marvel/DGA4132/chaos_calmer/staging_dir/host/bin/flock: No such file or directory
Makefile:636: recipe for target '/home/marvel/DGA4132/chaos_calmer/staging_dir/target-toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/root-ar71xx/stamp/.libc_installed' failed
make[2]: *** [/home/marvel/DGA4132/chaos_calmer/staging_dir/target-toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/root-ar71xx/stamp/.libc_installed] Error 127
make[2]: Leaving directory '/home/marvel/DGA4132/chaos_calmer/package/libs/toolchain'
package/Makefile:191: recipe for target 'package/libs/toolchain/compile' failed
make[1]: *** [package/libs/toolchain/compile] Error 2
make[1]: Leaving directory '/home/marvel/DGA4132/chaos_calmer'
/home/marvel/DGA4132/chaos_calmer/include/toplevel.mk:181: set di istruzioni per l'obiettivo "package/feeds/packages/haproxy/compile" non riuscito
make: *** [package/feeds/packages/haproxy/compile] Errore 2


Procedo correttamente clonando questo repo: https://github.com/openwrt/chaos_calmer.git ?

#POSTEDIT
Ci sono quasi, riesco ad eseguire con successo:
./scripts/feeds install haproxy
make package/feeds/packages/haproxy/prepare
make package/feeds/packages/haproxy/compile
ma ho un errore su quello che dovrebbe essere l'ultimo step:

make package/feeds/packages/haproxy/install V=s
Codice: [Seleziona]
time: target/linux/prereq#0.17#0.06#0.38
make[1]: Entering directory '/home/marvel/DGA4132/openwrt'
make[1]: *** No rule to make target 'package/feeds/packages/haproxy/install'.  Stop.
make[1]: Leaving directory '/home/marvel/DGA4132/openwrt'
/home/marvel/DGA4132/openwrt/include/toplevel.mk:225: set di istruzioni per l'obiettivo "package/feeds/packages/haproxy/install" non riuscito
make: *** [package/feeds/packages/haproxy/install] Errore 2

#POSTEDIT2
Allora, ho capito come compilare i pacchetti, non mi è possibile compilarli uno alla volta come tentavo prima, devo selezionarli nel menuconfig e lacio il make, in questo modo tutto fila liscio senza errori.
Questo però riesco a farlo senza la toolchain di Ansuel, se utilizzo la toolchain di Ansuel la compilazione fallisce.

Ma non c'è nessuno che ha provato a compilarsi dei pacchetti con questa toolchain e che può darmi qualche indicazione? Ho ovviamente impostato il target corretto, la libreria corretta ed i percorsi corretti, ma niente da fare.

Intanto proprio mentre vi scrivo ho lanciato una nuova compilazione da una buildroot pulita, speriamo bene.

#POSTEDIT3
Niente da fare, è fallita anche questa volta col seguente errore:
make -V=sc
Codice: [Seleziona]
cc1: some warnings being treated as errors
Kbuild:21: recipe for target 'kernel/bounds.s' failed
make[6]: *** [kernel/bounds.s] Error 1
Makefile:1096: recipe for target 'prepare0' failed
make[5]: *** [prepare0] Error 2
make[5]: Leaving directory '/home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux-gnueabi_glibc/linux-bcm53xx_generic/linux-4.14.169'
Makefile:33: recipe for target '/home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux-gnueabi_glibc/linux-bcm53xx_generic/linux-4.14.169/.modules' failed
make[4]: *** [/home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux-gnueabi_glibc/linux-bcm53xx_generic/linux-4.14.169/.modules] Error 2
make[4]: Leaving directory '/home/marvel/DGA4132/openwrt/target/linux/bcm53xx'
Makefile:13: recipe for target 'compile' failed
make[3]: *** [compile] Error 2
make[3]: Leaving directory '/home/marvel/DGA4132/openwrt/target/linux'
time: target/linux/compile#1.04#0.36#1.89
target/Makefile:23: recipe for target 'target/linux/compile' failed
make[2]: *** [target/linux/compile] Error 2
make[2]: Leaving directory '/home/marvel/DGA4132/openwrt'
target/Makefile:18: recipe for target '/home/marvel/DGA4132/openwrt/staging_dir/target-arm-openwrt-linux-gnueabi_glibc/stamp/.target_compile' failed
make[1]: *** [/home/marvel/DGA4132/openwrt/staging_dir/target-arm-openwrt-linux-gnueabi_glibc/stamp/.target_compile] Error 2
make[1]: Leaving directory '/home/marvel/DGA4132/openwrt'
Build failed - please re-run with -j1 to see the real error message
/home/marvel/DGA4132/openwrt/include/toplevel.mk:225: set di istruzioni per l'obiettivo "world" non riuscito

Il .config che sto utilizzando è il seguente: https://pastebin.com/WAkWXLcn

@LuKePicci o @Ansuel , riuscite a darmi qualche indicazione per favore?

#POSTEDIT4
Me la canto e me la suono da solo, sembra che ora stia andando cambiando nel .config da:
Codice: [Seleziona]
CONFIG_TARGET_NAME="arm-openwrt-linux-gnueabi"
CONFIG_TOOLCHAIN_PREFIX="arm-openwrt-linux-gnueabi-"

a:

Codice: [Seleziona]
CONFIG_TARGET_NAME="arm-openwrt-linux"
CONFIG_TOOLCHAIN_PREFIX="arm-openwrt-linux-"

Dita incrociate.

#POSTEDIT5
Niente da fare, spero in un vostro aiuto.

#POSTEDIT6
Ora sto compilando con un nuovo .config dove ho disabilitato tutto ciò che non è userspace. Speriamo bene.

#POSTEDIT7
Ok ragazzi, come direbbe Tony Stark: "Posso compilare."
Si, riesco a compilare la maggior parte dei pacchetti, anche se non tutti e con la mia solita fortuna non riesco a compilare l'unico pacchetto che mi serviva, ossia haproxy, la cui compilazione fallisce col seguente errore:
Codice: [Seleziona]
make[3]: Entering directory '/home/marvel/DGA4132/openwrt/feeds/packages/net/haproxy'
rm -f /home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux_glibc/haproxy-ssl/haproxy-2.1.3/.built
touch /home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux_glibc/haproxy-ssl/haproxy-2.1.3/.built_check
make TARGET=linux-glibc -C /home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux_glibc/haproxy-ssl/haproxy-2.1.3 DESTDIR="/home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux_glibc/haproxy-ssl/haproxy-2.1.3/ipkg-install" CC="arm-openwrt-linux-gcc" PCREDIR="/home/marvel/DGA4132/openwrt/staging_dir/target-arm-openwrt-linux_glibc/usr/" USE_LUA=1 LUA_LIB_NAME="lua5.3" LUA_INC="/home/marvel/DGA4132/openwrt/staging_dir/target-arm-openwrt-linux_glibc/usr/include/lua5.3" LUA_LIB="/home/marvel/DGA4132/openwrt/staging_dir/target-arm-openwrt-linux_glibc/usr/lib" SMALL_OPTS="-DBUFSIZE=16384 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530" USE_LINUX_TPROXY=1 USE_LINUX_SPLICE=1 USE_TFO=1 USE_NS=1 USE_ZLIB=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_GETADDRINFO=1 USE_THREAD=1 USE_PTHREAD_PSHARED=1 VERSION="2.1.3" SUBVERS="-1" VERDATE="2020/02/18" IGNOREGIT=1 USE_OPENSSL=1 ADDLIB="-lcrypto -lm " CFLAGS="-Os -pipe -fno-caller-saves -fno-plt -mfloat-abi=soft  -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-format-truncation -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-stringop-overflow -Wno-cast-function-type -Wtype-limits -Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference" LD="arm-openwrt-linux-gcc" LDFLAGS="-L/home/marvel/DGA4132/openwrt/staging_dir/target-arm-openwrt-linux_glibc/usr/lib -L/home/marvel/DGA4132/openwrt/staging_dir/target-arm-openwrt-linux_glibc/lib -L/home/marvel/DGA4132/toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/usr/lib -L/home/marvel/DGA4132/toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_glibc_eabi/lib -znow -zrelro -latomic" EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o"
make[4]: Entering directory '/home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux_glibc/haproxy-ssl/haproxy-2.1.3'
  CC      src/ev_poll.o
arm-openwrt-linux-gcc: error: unrecognized command line option '-Wshift-negative-value'
arm-openwrt-linux-gcc: error: unrecognized command line option '-Wshift-overflow=2'
arm-openwrt-linux-gcc: error: unrecognized command line option '-Wduplicated-cond'
arm-openwrt-linux-gcc: error: unrecognized command line option '-Wnull-dereference'
Makefile:875: recipe for target 'src/ev_poll.o' failed
make[4]: *** [src/ev_poll.o] Error 1
make[4]: Leaving directory '/home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux_glibc/haproxy-ssl/haproxy-2.1.3'
Makefile:163: recipe for target '/home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux_glibc/haproxy-ssl/haproxy-2.1.3/.built' failed
make[3]: *** [/home/marvel/DGA4132/openwrt/build_dir/target-arm-openwrt-linux_glibc/haproxy-ssl/haproxy-2.1.3/.built] Error 2
make[3]: Leaving directory '/home/marvel/DGA4132/openwrt/feeds/packages/net/haproxy'
time: package/feeds/packages/haproxy/ssl/compile#0.13#0.04#0.56
package/Makefile:111: recipe for target 'package/feeds/packages/haproxy/compile' failed
make[2]: *** [package/feeds/packages/haproxy/compile] Error 2
make[2]: Leaving directory '/home/marvel/DGA4132/openwrt'
package/Makefile:107: recipe for target '/home/marvel/DGA4132/openwrt/staging_dir/target-arm-openwrt-linux_glibc/stamp/.package_compile' failed
make[1]: *** [/home/marvel/DGA4132/openwrt/staging_dir/target-arm-openwrt-linux_glibc/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/marvel/DGA4132/openwrt'
/home/marvel/DGA4132/openwrt/include/toplevel.mk:225: set di istruzioni per l'obiettivo "world" non riuscito
make: *** [world] Errore 2

Comunque se vi serve qualcosa battete un colpo, vedo se riesco a compilarvelo.

#POSTEDIT8
Ragazzi, ce l'ho fatta, mi sono compilato anche haproxy, dopo aver trovato questo problema:
https://github.com/haproxy/haproxy/issues/83

ho capito che usavo il repo più recente di openwrt e non andava bene, usando il branch 18.06 sono riuscito a compilare tutto.

Intanto chiedo scusa a tutti coloro che ho disturbato con questo mio "diario" e la soddisfazione di aver fatto tutto da solo è grande.
Un grazie a @larsen64it per avermi messo sulla giusta strada facendomi capire di dover usare la toolchain come toolchain esterna e non come ero solito fare ed un grazie enorme ad @Ansuel per aver messo a disposizione di tutti noi la sua toolchain.

Se a qualcuno dovesse servire qualche pacchetto non esitate a chiedere, sono a disposizione.
« Ultima modifica: 20 Febbraio 2020, 17:50 da Marvel »

Offline Marvel

  • Membro Anziano
  • ***
  • 200
    • Macoers
Prova a individuare tutte le differenze tra le due zone in termini di chain, per avere qualcosa di tangibile devo provare in prima persona.
@LuKePicci , ho ripreso il problema del port forwarding, ho controllato tutte le chain e non vi sono differenze, è stata una mia svista quella dell'altra volta. Se può servire mi sono compilato anche mwan3 e ora posso provare anche con lui, in modo da poter anche chiedere supporto ai ragazzi di mwan3.

#POSTEDIT
@LuKePicci , ti aggiorno su una cosa, se wan2 parte per ultima il port forwarding verso wan2 funziona e va in malora quello verso wan.

#POSTEDIT2
Ed ho risolto anche questa, sono troppo forte!!!!
Ora funziona senza problemi il port forwarding sia su wan che su wan2.
Se può servire a qualcuno basta aggiungere questa regola:
Codice: [Seleziona]
config rule
        option in 'lan2'
        option priority '2'
        option lookup 'xxx'

dove xxx è ovviamente l'id numerico della routing table.

L'unica cosa che non funziona ancora come vorrei è mmpbxd, devo sempre utilizzare il workaround, ma conto di lavorarci nei prossimi giorni.

Quasi quasi ora provo asterisk, @nclmrc , puoi darmi qualche consiglio prima di fare casini? Seguo semplicemente quella guida che mi hai linkato in qualche post fa?
« Ultima modifica: 09 Marzo 2020, 18:05 da Marvel »

Offline nclmrc

  • Membro Anziano
  • ***
  • 246
si @Marvel puoi iniziare ad usare quella per fare andare almeno su il trunk

Offline Marvel

  • Membro Anziano
  • ***
  • 200
    • Macoers
Perfetto, questo sarà ciò che farò in questo fine settimana.

@LuKePicci , intanto ci sono novità con la doppia wan ed mmpbxd, faccio un veloce  riepilogo.
Con wan e wan2, se wan2 parte per ultima ed mmpbxd utilizza l'interfaccia wan, allora ho il seguente errore:
logread
Codice: [Seleziona]
Tue Mar  3 09:32:08 2020 user.debug mmpbxd[11289]: [MMRVSIPIMPL::REGTERMOBJ]:E: regTermObjFirewallRuleUpdate:4158 - Unable to retrieve currentDestination from SIP network ..
Tue Mar  3 09:32:08 2020 user.debug mmpbxd[11289]: [MMRVSIPIMPL::REGTERMOBJ]:E: registerStateChanged:1422 - statusCode 403

Per avere maggiori informazioni ho quindi fatto un tcpdump sia su wan che su wan2 ed il risultato è stato abbastanza chiarificatore.
Su wan2 non ho nulla, il traffico passa correttamente tramite wan ed ho questo errore:
tcpdump -pnvvi pppoe-wan port 5060
Codice: [Seleziona]
SIP/2.0 403 No Roaming Agreement From Current Network 110200201005004
che mi ha fatto molto pensare.
Sembra quasi che sia la TIM a respingere la richiesta di registrazione del mio voip e non un problema del router e con la mia configurazione potrebbe anche starci. Dal mio router si attivano due inidirizzi IP pubblici, prima wan e poi wan2 ed mmpbxd tenta di registrarsi tramite wan. La tim però vede che l'ultimo indirizzo IP pubblico del mio router è quello associato a wan2 e quindi per una questione di sicurezza non permette la registrazione del voip sull'indirizzo ip associato a wan ritenendo che sia l'ip di wan2 quello ormai associato alla mia utenza.

Facendo una ricerca su ho infatti trovato diversa roba che avvalora la mia tesi, compresa la documentazione ufficiale tim:
https://www.telecomitalia.com/content/dam/telecomitalia/documents/TIM-Gm-Interface-specification.pdf
https://www.adslzone.net/foro/fibra-optica.94/manual-configuracion-voip-ftth-movistar.312263/page-6

Ed anche un post del nostro @FrancYescO:
https://www.hwupgrade.it/forum/showpost.php?p=45474367&postcount=929

Probabilmente cambiando correttamente il mac address delle due wan potrei riuscire a risolvere il problema ma sembra sia impossibile.  Ho ovviamente provato a cambiare quelle in wan e wan2 ma non cambia nulla.
Secondo voi c'è un modo corretto per cambiare il mac address alle due wan?
« Ultima modifica: 03 Marzo 2020, 09:58 da Marvel »

Offline LuKePicci

  • Global Moderator
  • VIP
  • *****
  • 2789
Questo comportamento che descrivi c'è uguale anche su Vodafone (su proxy pubblico), ma lì i realtà non arriva proprio nessun messaggio di errore. Il modo corretto per cambiare il mac è quello spiegato sul thread riguardo la config voip su Vodafone.

edit: ci ho riflettuto un attimo, l'esempio di Vodafone sui mac address non è calzante, lì hai due device 8021q sulla stessa porta, ognuno fa una pppoe. Per questo motivo lì avevamo fatto cambiare anche il mac del device 8021q in modo che coincidesse alla pppoe soprastante, tu non devi farlo, devi cambiare il mac solo all'interfaccia soprastante, dato che il device 8021q che usi per entrambe è il medesimo, quello su vlan 836.
« Ultima modifica: 03 Marzo 2020, 12:03 da LuKePicci »