Open WRT Fork kompilieren

AliManali

cpt sunday flyer
Thread Starter
Mitglied seit
07.03.2012
Beiträge
4.534
Ort
Ostschweiz
Hi

Ich würde gerne einen VPN Gateway mit Ubuntu (LTS 18.04) kompillieren. Es geht um folgende Software:

GitHub - enigmagroup/enigmabox-openwrt: OpenWrt package feed for the Enigmabox software suite

Muss ich da von der Konsole aus dem home Verzeichnis arbeiten? Ich habe es aus dem Home und dem root Verzeichnis versucht. Klappt aber leider nicht ab dem Befehl

Code:
./scripts/feeds update -a

Siehe Anhang:

EnigmaboxKompilieren.PNG

Nach "unsupportet version of make found: make" habe ich natürlich schon gegooglet, aber nix schlaues dazu gefunden im Zusammenhang mit Ubuntu und openwrt.

Komme da echt grad nicht weiter. Sicher weiss einer grad, was da zu tun ist.

Gruss und Danke!
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
- Als normaler User und nicht als Admin / "root" user kompilieren.
- Dir fehlen vermutlich einige Pakete zum kompilieren. Eine Übersicht ist für verschiedene Systeme ist hier

Du willst eine ältere OpenWrt Version kompilieren : der Befehl
Code:
git log
zeigt an , das die Version von 2015 ist - mit einmaligen Anpassungen an Debian - allerding ist dein Screenshot von Ubuntu.


Ältere Versionen von OpenWrt sollten besser so wie "gedacht" also entweder Debian oder via älteren Ubuntu Versionen von damals kompiliert werden. Eventuell passt Ubuntu 16 LTS noch.
Die grundlegende Firmware hat eventuell einige Schwachstellen gegenüber dem aktuellen Stand von OpenWrt - keine Änderungen seit 2015 im Kernbereich (openwrt repo).
Nicht einmal die feeds.conf.default wurde verändert - der Nutzer muss das selbst erledigen :rolleyes: - sich an die Readme Anweisung halten usw...

Als unerfahrener Nutzer machst du dir nur Stress.

Der Banana-Pi oder das APU Target funktionieren auch noch im aktuellen OpenWrt. Außerdem kann du den Fork-Feed auch eventuell "einfach" einbinden und hast dann aber ein aktualisierteres System. Weil die Software etwas älter ist, muss aber sicherlich diese auch erst noch an die moderere Umgebung angepasst werden.

Ein großer Wechsel der LIBC ist zb der von uclibc was dein Fork nutzt auf musl, was OpenWrt nun nutzt.

normalerweise geht OpenWrt nach Installation der notwendigen Kompilierungstools:
Code:
git clone https://github.com/openwrt/openwrt
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make
 
Zuletzt bearbeitet:
Hi

tyvm. Da bin ich schon mal sehr viel weiter gekommen. Mit Ubuntu bin ich nicht mal bis menuconfig gekommen.

Ich musste da definitiv Debian Jessie nehmen, und habe folgende Pakete installiert:

Code:
open-vm-tools
open-vm-tools-desktop
build-essential
gettext

Ich will das nicht für bananapi oder die APU kompilieren, sondern als x86_64 virtuelle Festplatte für vmware (vmdk) und virtualbox (vdi).

Macht beim kompilieren (nach 1h) noch Fehler, da einige Pakete nicht mehr erreichbar sind (Error 404).

SHELL= /home/martin/openwrt/staging_dir/host/bin/flock /home/martin/openwrt/tmp/.root-copy.flock -c 'cp -fpR /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/tmp-python-light/. /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/'
rm -rf /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/tmp-python-light
touch /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/stamp/.python-light_installed
rm -rf /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/tmp-python
mkdir -p /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/stamp /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/tmp-python
find /home/martin/openwrt/build_dir/target-x86_64_uClibc-0.9.33.2/Python-2.7.10/ipkg-install -name "*\.pyc" -o -name "*\.pyo" | xargs rm -f
removing: '/usr/lib/python2.7/site-packages'
SHELL= /home/martin/openwrt/staging_dir/host/bin/flock /home/martin/openwrt/tmp/.root-copy.flock -c 'cp -fpR /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/tmp-python/. /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/'
rm -rf /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/tmp-python
touch /home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/root-x86/stamp/.python_installed
make[3]: Leaving directory '/home/martin/openwrt/feeds/packages/lang/python'
make[3]: Entering directory '/home/martin/openwrt/feeds/enigmabox/django-south'
mkdir -p /home/martin/openwrt/dl
/home/martin/openwrt/scripts/download.pl "/home/martin/openwrt/dl" "south-0.8.4.tar.gz" "ccd6ebadd3e2c8c6ef16d771632f7840" "http://www.aeracode.org/releases/south/"
converted 'http://www.aeracode.org/releases/south/south-0.8.4.tar.gz' (ANSI_X3.4-1968) -> 'http://www.aeracode.org/releases/south/south-0.8.4.tar.gz' (UTF-8)
--2018-09-26 02:59:07-- http://www.aeracode.org/releases/south/south-0.8.4.tar.gz
Resolving Aeracode (Aeracode)... 212.110.165.228
Connecting to Aeracode (www.aeracode.org)|212.110.165.228|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-09-26 02:59:07 ERROR 404: Not Found.

Download failed.
converted 'http://mirror2.openwrt.org/sources/south-0.8.4.tar.gz' (ANSI_X3.4-1968) -> 'http://mirror2.openwrt.org/sources/south-0.8.4.tar.gz' (UTF-8)
--2018-09-26 02:59:07-- http://mirror2.openwrt.org/sources/south-0.8.4.tar.gz
Resolving mirror2.openwrt.org (mirror2.openwrt.org)... 46.4.11.11, 2a01:4f8:221:3d45::2
Connecting to mirror2.openwrt.org (mirror2.openwrt.org)|46.4.11.11|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-09-26 02:59:07 ERROR 404: Not Found.

Download failed.
converted 'http://downloads.openwrt.org/sources/south-0.8.4.tar.gz' (ANSI_X3.4-1968) -> 'http://downloads.openwrt.org/sources/south-0.8.4.tar.gz' (UTF-8)
--2018-09-26 02:59:07-- http://downloads.openwrt.org/sources/south-0.8.4.tar.gz
Resolving downloads.openwrt.org (downloads.openwrt.org)... 148.251.78.235, 2a01:4f8:202:43ea::2
Connecting to downloads.openwrt.org (downloads.openwrt.org)|148.251.78.235|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://sources.openwrt.org/south-0.8.4.tar.gz [following]
converted 'http://sources.openwrt.org/south-0.8.4.tar.gz' (ANSI_X3.4-1968) -> 'http://sources.openwrt.org/south-0.8.4.tar.gz' (UTF-8)
--2018-09-26 02:59:07-- http://sources.openwrt.org/south-0.8.4.tar.gz
Resolving sources.openwrt.org (sources.openwrt.org)... 148.251.78.235, 2a01:4f8:202:43ea::3
Reusing existing connection to downloads.openwrt.org:80.
HTTP request sent, awaiting response... 404 Not Found
2018-09-26 02:59:07 ERROR 404: Not Found.

Download failed.
No more mirrors to try - giving up.
Makefile:44: recipe for target '/home/martin/openwrt/dl/south-0.8.4.tar.gz' failed
make[3]: *** [/home/martin/openwrt/dl/south-0.8.4.tar.gz] Error 2
make[3]: Leaving directory '/home/martin/openwrt/feeds/enigmabox/django-south'
package/Makefile:191: recipe for target 'package/feeds/enigmabox/django-south/compile' failed
make[2]: *** [package/feeds/enigmabox/django-south/compile] Error 2
make[2]: Leaving directory '/home/martin/openwrt'
package/Makefile:188: recipe for target '/home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/stamp/.package_compile' failed
make[1]: *** [/home/martin/openwrt/staging_dir/target-x86_64_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/martin/openwrt'
/home/martin/openwrt/include/toplevel.mk:181: recipe for target 'world' failed
make: *** [world] Error 2

Aber die fehlenden Sachen (404) bekomme ich wohl noch vom Entwickler.
 
Zuletzt bearbeitet:
Im feeds Ordner unter
package/feeds/enigmabox/django-south/Makefile

editieren.
Die Downloadadresse - die kannst du auch einfach ersetzen - Links for South hat zB das paket mit der richtigen Prüfsumme
oder du kopierst das in den Ordner mit den Quellcodepaketen. Den kannst du lokal behalten unter "Advanced configuration options (for developers)" -> Local Mirror und Download Folder
local mirror mit file:/// link , 3x/// wegen URL // und root /

Mit lokalem Quellcodepaketen kann auch alles offline erstellt werden und benötigt keine Internetverbindung mehr.
 
Ok, danke.

Bei

Code:
./scripts/feeds install -a
bekomme ich noch diverse Warnungen, z.B. diese hier:

Code:
WARNING: No feed for package 'python-mini' found, maybe it's already part of the standard packages?
WARNING: No feed for package 'python-expat' found, maybe it's already part of the standard packages?
WARNING: No feed for package 'python-expat' found, maybe it's already part of the standard packages?
WARNING: No feed for package 'libgstreamer' found, maybe it's already part of the standard packages?
WARNING: No feed for package 'gst-mod-alsa' found, maybe it's already part of the standard packages?
WARNING: No feed for package 'libgstaudio' found, maybe it's already part of the standard packages?

(Auszug, etc., pp.)

Kompillieren kann ich aber trotzdem, die .vmdk und die .vid werden erzeugt. Allerdings funktionierts noch nicht ganz richtig. Aber das Webinterface läuft, IP's werden bezogen, die Schreibrechte im Gast scheinen auch zu passen. Da muss ich noch basteln dran, bis das läuft. Geht halt jedes mal 1-2h, bis das durchgelaufen ist in der VM. Habe 4 Cores und 10GB RAM zugewiesen, bei einem Intel Sechskerner. Der Host hat aber nur eine Auslastung von ein paar Prozent. Die VM liegt auf einer separaten SSD.

Die fehlenden Pakete waren folgende:

Code:
south-0.8.4.tar.gz
Cython-0.20.2.tar.gz
LVM2.2.02.126.tgz
exim-4.85.tar.gz
sftpserver-r228.tar.gz



- Als normaler User und nicht als Admin / "root" user kompilieren.

Was macht das denn für einen Unterschied, ob ich mit root oder normalem Benutzer kompiliere? Meinen Benutzer "martin" habe ich auch in die sudoer Datei genommen, brauch aber kein Passwort um das alles auszuführen.

...oder du kopierst das in den Ordner mit den Quellcodepaketen. Den kannst du lokal behalten unter "Advanced configuration options (for developers)" -> Local Mirror und Download Folder
local mirror mit file:/// link , 3x/// wegen URL // und root /

Das mit dem Link in den Developer Einstellungen:

Code:
file:///home/martin/openwrt/dl/

... hat leider nicht funktioniert. Fehlermeldung habe ich jetzt gerade nicht parat. Aber reicht mir online im Moment.

Dann habe ich auch das Problem, dass nicht alle menuconfig Einstellungen gespeichert werden (z.B. die Enigmabox und Library Einstellungen). Die meisten Einstellungen werden gespeichert. Ausserdem kann ich make nur einmal ausführen, dann gibts auch einen Fehler. Muss ich da jedes Mal das komplette openwrt Verzeichnis löschen, und von neu beginnen?

Gruss und Danke!
 
Zuletzt bearbeitet:
Code:
WARNING: No feed for package 'python-mini' found, maybe it's already part of the standard packages?
WARNING: No feed for package 'libgstreamer' found, maybe it's already part of the standard packages?
(Auszug, etc., pp.)

Es muss ein Paket libgstreamer definiert sein. Also meist via feed, der in feeds.conf.default eingetragen ist. Dann wird bei ./scripts/feeds update bzw. install die externen Paketdefinitionen in die OpenWrt Verzeichnisstruktur des Builders eingefügt und diese Pakete tauchen auch in der make menuconfig dann auf.


Dann habe ich auch das Problem, dass nicht alle menuconfig Einstellungen gespeichert werden (z.B. die Enigmabox und Library Einstellungen). Die meisten Einstellungen werden gespeichert. Ausserdem kann ich make nur einmal ausführen, dann gibts auch einen Fehler. Muss ich da jedes Mal das komplette openwrt Verzeichnis löschen, und von neu beginnen?

Gruss und Danke!

Das openwrt Verzeichnis muss nicht jedesmal gelöscht werden.
Wenn make bei wiederholten ausführen Fehler meldet, dann liegt das eben an den Bugs der verwendeten alten OpenWrt Quellen. Veraltete und fremdgeforkte Versionen haben keinen Support.
Bei OpenWrt wird eigentlich nur das nötigste neu kompiliert.
Die Entwicklungs und Stable-Versionen von OpenWrt mit allen Feeds-Paketen laufen weitgehend problemlos

Die einfachste Variante ist wie schon geschrieben die alten Pakete einfach versuchen mit der neuen Version zu kompilieren und wenn etwas nicht geht das zu beheben.
für x86_64 - VMDK und VDI images können immer erstellt werden: CONFIG_VDI_IMAGES=y und CONFIG_VMDK_IMAGES=y siehe auch im menu

./scripts/diffconfig.sh gibt eine minimale .config Datei auf stdout aus, die als Vorlage für .config verwendet werden kann.
Code:
./scripts/diffconfig.sh > ~/openwrt_profiles/profil1.conf

libgstaudio ist aus dem oldpackages repo - das ist veraltete Software bei der meist neuere Versionen draußen sind.
libgstaudio zB ist von gstreamer 0.10 und wird seit ~2016 von verschiedenen Distris als veraltet angesehen.
Der Feed liefert inzwischen für die meisten Nutzer keine sinnvollen Ergebnisse mehr, da die meiste Software darin bereits mit den GCC 5 compiler überfordert sein könnte. Aktuell wird in manchen Distris schon GCC 8 verwendet.

- - - Updated - - -

Anbei eine per diffconfig gespeicherte basisconf für default-router arch (ar71xx):

Code:
CONFIG_DEVEL=y
CONFIG_BUILD_LOG=y
CONFIG_DOWNLOAD_FOLDER="/mnt/external/programming/openwrt.sources"
CONFIG_LOCALMIRROR="file:///mnt/external/programming/openwrt.sources"

lädt eigentlich alles in /mnt/external/programming/openwrt.sources herunter und schaut nach, ob die Datei schon dort ist. Das historische Verzeichnis hat ~27G (inklusive sources für viele feeds-Pakete)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh