Probleme Kompilieren Gluon unter Arch Linux

Hallo Zusammen,

ich probiere mich gerade daran Gluon unter Arch Linux zu kompilieren:
Villeicht hat jemand einen Tipp wo es hakt?

Vorgehen:

  1. git clone GitHub - freifunk-gluon/gluon: a modular framework for creating OpenWrt-based firmwares for wireless mesh nodes gluon -b v2016.2.4
    1a. cd gluon

  2. git clone GitHub - FFEssen/site-ffe: Freifun Essen specific Gluon configuration to build Firmware. site

  3. make update

  4. make -j4 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental GLUON_RELEASE=0.7~$(date +"%Y-%m-%d_%H-%M") V=s

    make[6]: *** [scripts/Makefile.host:134: tools/lib/rsa/rsa-sign.o] Error 1
    make[5]: *** [Makefile:1195: tools-only] Error 2
    make[5]: Leaving directory ‚/home/stephan/gluon/openwrt/build_dir/host/u-boot-2014.10‘
    make[4]: *** [Makefile:48: /home/stephan/gluon/build/ar71xx-generic/openwrt/build_dir/host/u-boot-2014.10/.built] Error 2
    make[4]: Leaving directory ‚/home/stephan/gluon/openwrt/tools/mkimage‘
    make[3]: *** [tools/Makefile:135: tools/mkimage/compile] Error 2
    make[3]: *** Waiting for unfinished jobs…
    : && /usr/bin/mkdir -p doc && { PATH=’/home/stephan/gluon/build/ar71xx-generic/openwrt/build_dir/host/automake-1.15/t/wrap:’$PATH && export PATH; } && /usr/bin/env
    rm -f t/ax/test-defs.sh t/ax/test-defs.sh-t
    /usr/bin/mkdir -p t/ax
    in=t/ax/test-defs.in
    && ( sed -e „s,[@]configure_input[@],Generated from $in; do not edit by hand.,g“ -e ‚s,[@]datadir[@],/home/stephan/gluon/build/ar71xx-generic/openwrt/staging_dir/omake-1.15/am,g‘ -e ‚s,[@]bindir[@],/home/stephan/gluon/build/ar71xx-generic/openwrt/staging_dir/host/bin,g‘ -e ‚s,[@]docdir[@],/home/stephan/gluon/build/ar71xx-genx-generic/openwrt/staging_dir/host/share/automake-1.15,g‘ -e ‚s,[@]scriptdir[@],/home/stephan/gluon/build/ar71xx-generic/openwrt/staging_dir/host/share/automake-1.1ocal-1.15,g‘ -e ‚s,[@]system_acdir[@],/home/stephan/gluon/build/ar71xx-generic/openwrt/staging_dir/host/share/aclocal,g‘ -e ‚s,[@]am__isrc[@],!!@!!am__isrc!!@!!,g‘ test-defs.sh-t
    if LC_ALL=C grep ‚@[a-zA-Z0-9_][a-zA-Z0-9_]*@‘ t/ax/test-defs.sh-t; then echo „t/ax/test-defs.sh contains unexpanded substitution (see lines above)“; exit 1; fi; ch
    make[5]: Leaving directory ‚/home/stephan/gluon/openwrt/build_dir/host/automake-1.15‘
    touch /home/stephan/gluon/build/ar71xx-generic/openwrt/build_dir/host/automake-1.15/.built
    make[4]: Leaving directory ‚/home/stephan/gluon/openwrt/tools/automake‘
    make[3]: Leaving directory ‚/home/stephan/gluon/build/ar71xx-generic/openwrt‘
    make[2]: *** [/home/stephan/gluon/Makefile:278: config] Error 2
    make[2]: Leaving directory ‚/home/stephan/gluon/build/ar71xx-generic/openwrt‘
    make[1]: *** [/home/stephan/gluon/Makefile:296: prepare-target] Error 2
    make[1]: Leaving directory ‚/home/stephan/gluon/openwrt‘
    make: *** [Makefile:68: prepare-target] Fehler 2

Scheint für mich so, als würde er beim rsa-sign.o irgendwas vermissen.

Sind denn die Abhängigkeiten alle installiert?
Siehe hier: http://gluon.readthedocs.io/en/v2016.2.4/user/getting_started.html#dependencies

Libssl-dev könnte etwas mit rsa zu tun haben.

Und: ist das das ganze Log? scheint etwas kurz :smiley: ?

Oh, und nochwas:
Die site schaut mir so aus, als sei sie seit Oktober nicht mehr geupdated worden, es könnte sein, dass noch Anpassungen nötig sind - das sieht man dann aber, wenn er mal die firmware baut, und nicht nur die toolchain.

1 Like

Ich bin mir nicht ganz sicher mit den Abhängigkeiten, ich finde nur openssl und lib32-openssl. Zur not setz ich gleich noch nen Debian in ner VM auf.

EDIT: http://pastebin.com/6geB7Kt5

Also einmal diese Liste installieren:

pacman -S --needed subversion asciidoc bash bc binutils bzip2 fastjar flex git gcc util-linux gawk intltool zlib make cdrkit ncurses openssl patch perl-extutils-makemaker rsync sdcc unzip wget gettext libxslt boost libusb bin86 sharutils b43-fwcutter findutils

Findet man hier

Und aus dem AUR wenn benötigt:

ecdsautils

hab die genannten Pakete installiert, er bricht wieder ab…
Ich lade gleich noch mal ein log hoch.

EDIT, log: http://pastebin.com/NGicSFgV (Die ersten 36 Zeilen sind Mühll hab ich zu spät gesehen)

1 Like

Mach mal bitte einen Build ohne -j 4. Dann sieht man den Fehler besser!

gluon_compile.zip (118,3 KB)

Hier bitte, ist für pastbin leider zu groß :wink:

Das schaut sehr verdächtig nach einer Inkompatibilität aus, die ganzen depreceated warnings sind da eher unschön.

Vll ist das Openssl zu neu?

Siehe hier: Dereferencing pointer to incomplete type RSA {aka struct rsa_st} · Issue #1491 · openssl/openssl · GitHub

hatten wir glaube ich schon mal…(edit: found it! lede/openwrt does not compile with OpenSSL 1.1 · Issue #973 · freifunk-gluon/gluon · GitHub)
Geht da ein downgrade der dev-version?

Hier müsste das Problem sein:

In file included from /usr/include/openssl/x509_vfy.h:20:0,
                from /usr/include/openssl/x509.h:309,
                from /usr/include/openssl/pem.h:17,
                from /home/stephan/gluon/openwrt/build_dir/host/u-boot-2014.10/lib/rsa/rsa-sign.c:13,
                from tools/lib/rsa/rsa-sign.c:1:
/usr/include/openssl/err.h:246:1: note: declared here
DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *))

Arch nutzt wohl OpenSSL 1.1 und dort ist die von der Bibliothek genutzte Funktion nicht mehr verfügbar, das wird über ein Makro gecheckt und der Build failed.

Die Frage ist jetzt warum der das OpenSSL vom Hostsystem nutzt und nicht das von LEDE/OpenWRT

Der Fehler ist auch in U-Boot, unklar warum da RSA Überprüfung mit eingebaut wird?

Edit: Hier ist der Patch in LEDE, der das Problem fixt: git.openwrt.org Git - openwrt/openwrt.git/commitdiff

Könntest vermutlich 1:1 hinzufügen

Hast du nach dem Installieren mal ein

make distclean

gemacht?

Kann sein, dass er sonst die Header nicht findet.

Auf meinem Arch Buildserver:

[thepaffy@build ~]$ openssl version
OpenSSL 1.0.2k  26 Jan 2017

Habe gerade auf die OpenSSL 1.0.2k downgegradet (ich hab wohl testing in meiner config vergessen aus zu machen).

make distclean scheint er nicht zu kennen, soll ich das im Gluon Ordner machen?

Mit patches hab ich noch nie gearbeitet.
Ich probiere erst mal einen Build mit der OpenSSL 1.0.2k.
EDIT: Meine CPU fängt an warm zu werden ^^.

1 Like

Ist ziemlich weit gekommen, er scheint almond.js nicht zu finden?

2017-03-26 22:38:28 (1.11 MB/s) - written to stdout [95915]

mkdir -p /home/stephan/gluon/build/ar71xx-generic/openwrt/dl
SHELL= flock /home/stephan/gluon/build/ar71xx-generic/openwrt/tmp/.almond.js.flock -c ' /home/stephan/gluon/build/ar71xx-generic/openwrt/scripts/download.pl "/home/stephan/gluon/build/ar71xx-generic/openwrt/dl" "almond.js" "aa66c0c0cb55a4627bb706df73f3aff5" "" "https://raw.githubusercontent.com/jrburke/almond/0.3.1"'
--2017-03-26 22:38:28--  https://raw.githubusercontent.com/jrburke/almond/0.3.1/almond.js
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving raw.githubusercontent.com... failed: Name or service not known.
wget: unable to resolve host address 'raw.githubusercontent.com'
Download failed.
--2017-03-26 22:38:28--  http://mirror2.openwrt.org/sources/almond.js
Resolving mirror2.openwrt.org... 46.4.11.11
Connecting to mirror2.openwrt.org|46.4.11.11|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-03-26 22:38:28 ERROR 404: Not Found.

Download failed.
--2017-03-26 22:38:28--  http://downloads.openwrt.org/sources/almond.js
Resolving downloads.openwrt.org... 78.24.191.177
Connecting to downloads.openwrt.org|78.24.191.177|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-03-26 22:38:28 ERROR 404: Not Found.

Download failed.
No more mirrors to try - giving up.
make[4]: *** [Makefile:34: /home/stephan/gluon/build/ar71xx-generic/openwrt/dl/almond.js] Error 2
make[4]: Leaving directory '/home/stephan/gluon/package/gluon-status-page'
make[3]: *** [package/Makefile:192: package/feeds/gluon/gluon-status-page/compile] Error 2
make[3]: Leaving directory '/home/stephan/gluon/build/ar71xx-generic/openwrt'
make[2]: *** [package/Makefile:188: /home/stephan/gluon/build/ar71xx-generic/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2_gluon-ar71xx-generic/stamp/.package_compile] Error 2
make[2]: Leaving directory '/home/stephan/gluon/build/ar71xx-generic/openwrt'
make[1]: *** [/home/stephan/gluon/Makefile:351: prepare] Error 2
make[1]: Leaving directory '/home/stephan/gluon/build/ar71xx-generic/openwrt'
make: *** [Makefile:72: all] Fehler 2
[stephan@desktop gluon]$

Schau mal in unser git. Ich habe da was angelegt um diesen nervigen offline Problemen aus dem Weg zu gehen.

Ja ich weiß git und bins…

@anon68922371, schau ich mir morgen an, ich bin durch für heute ^^

Nach einem make update.
und make
GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental GLUON_RELEASE=0.7~$(date +"%Y-%m-%d_%H-%M") BROKEN=1 V=s

hänge ich jetzt hier:

Collected errors:
 * opkg_install_cmd: Cannot install package gluon-announced.
make[4]: *** [/home/stephan/gluon/Makefile:414: package_install] Error 255
make[4]: Leaving directory '/home/stephan/gluon/build/ar71xx-generic/openwrt'
make[3]: *** [/home/stephan/gluon/Makefile:438: image] Error 2
make[3]: Leaving directory '/home/stephan/gluon/build/ar71xx-generic/openwrt'
make[2]: *** [/home/stephan/gluon/Makefile:479: image/CPE510] Error 2
make[2]: Leaving directory '/home/stephan/gluon/build/ar71xx-generic/openwrt'
make[1]: *** [/home/stephan/gluon/Makefile:482: call_image/CPE510] Error 2
make[1]: Leaving directory '/home/stephan/gluon/build/ar71xx-generic/openwrt'
make: *** [Makefile:73: all] Fehler 2

Damit verschwinde ich mal für heute es wartet ein langer Arbeitstag ^^

Hallo,

  1. ) Die schritte von hier: GitHub - Freifunk-Nord/gluon-build-dependencies
    2.) git clone GitHub - FFEssen/site-ffe: Freifun Essen specific Gluon configuration to build Firmware. site
    3.) cd gluon
    4.) make update
    5.) make GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental GLUON_RELEASE=0.7~$(date +"%Y-%m-%d_%H-%M") V=s

Jetzt bekomme ich diese Ausgabe:

[stephan@desktop gluon]$ make GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental GLUON_RELEASE=0.7~$(date +"%Y-%m-%d_%H-%M") V=s
make[1]: Entering directory '/home/stephan/git-repo/gluon/lede'
make[2]: Entering directory '/home/stephan/git-repo/gluon/lede'
make[2]: Leaving directory '/home/stephan/git-repo/gluon/lede'
Collecting package info: doneing...
touch .config
scripts/config/conf --defconfig=.config Config.in
#
# configuration written to .config
#
make[1]: Leaving directory '/home/stephan/git-repo/gluon/lede'
Configuration failed: unable to enable package 'gluon-luci-admin'
make: *** [Makefile:94: config] Fehler 1

Entferne mal in der site.conf den kompletten opkg-Abschnitt… bei uns lag dieser Fehler genau daran.

opkg = {
            openwrt = 'http://openwrt.draic.info/%n/%v/%S/packages',
            extra = {
                    modules = 'http://firmware.freifunk-essen.de/modules/gluon-%GS-%GR/%S',
            },
    },

Ist ja eh nur optional - und für einen normalen Build sollte der Standard genügen. Im Zweifel muss man hinterher nochmals in die site.mk schauen, und dort problematische zusätzliche Pakete vorläufig deaktivieren. Einfach mal diese site.mk mit dem Beispiel in der Doku vergleichen :wink:

EDIT: Du möchtest ja nicht aus dem Master (also LEDE) bauen, sondern die Stable… Dann hilft Dir das Entfernen nicht weiter…
Allerdings stellt sich mir dann die Frage, wieso er eben doch lede bauen möchte. Dann ist das aber keine v2016.2.4, sondern der Master…

Mir ist ziemlich egal was ich baue, solange es nur auf meinem Router läuft ^^

Bau doch erstmal die stabile Version:

git checkout v2016.2.4

Und dann nochmal alles von vorne. LEDE ist vielleicht ein bisschen heftig für den Einstieg.

Ich hoffe das ist richtig?

  1. git clone GitHub - freifunk-gluon/gluon: a modular framework for creating OpenWrt-based firmwares for wireless mesh nodes gluon -b v2016.2.4
  2. git checkout v2016.2.4
  3. cd gluon
  4. git clone GitHub - FFEssen/site-ffe: Freifun Essen specific Gluon configuration to build Firmware. site
  5. make update
  6. make GLUON_TARGET=ar71xx-generic GLUON_BRANCH=STABLE GLUON_RELEASE=0.7~$(date +"%Y-%m-%d_%H-%M") V=s

EDIT: Build läuft mal sehen wie weit er kommt.

Wenn du frisch clonst, wird es an fehlenden OpenWRT-Downloads scheitern.

Die fehlenden Dateien musst du ggfs. manuell nachladen.