schonal danke sagenwerd ich gleich testen wenn ich Zeit habe
Anleitung zum Cross-Compilieren von IPK Paketen
Einführung:
Hallo zusammen,
ich hatte schon längere Zeit vor mir das anzuschauen, da ich selber ein altes Paket vom rtorrent neu compilieren wollte.
Hier nun meine Vorgehensweise wie ich zum Ziel gekommen bin.
1.) Linux Distribution
Ich habe dafür Debian 4.0_r3 in der Stable Version benutzt. Der große Vorteil bei Debian ist der Paket Manager
apt-get mit dem man sehr einfach Software mit den entsprechenden Abhängigkeiten installieren kann.
Die installation gestaltet sich auch sehr einfach. Von der CD booten und den anweisungen in Textgeführten Installer folgen.Code:Download: http://cdimage.debian.org/debian-cd/4.0_r3/i386/iso-cd/debian-40r3-i386-CD-1.iso
Ich habe Desktop und Standartumgebung ausgewählt da dies einfach komfortabler für weitere Aktionen ist.
Wichtig, hierbei muss eine Internet verbindung bestehen, damit er entsprechende Pakete nachholen kann.
2.) Installation Benötigter Tools
Zum Cross kompilieren benötigen wir unterschiedliche Developer Tools. Mit folgendem Befehl werden alle benötigten Pakete installiert:
3.) SVN checkout der Optware UmgebungCode:apt-get install gcc cvs subversion flex bison make pkg-config rsync gettext libglib2.0-dev autoconf libtool automake1.9 sudo patch bzip2 gzip wget sed
Dieser Befehl erstellt im /opt ein Unterverzeichniss optware in dem die Cross-Compilier Umgebung hin ausgecheckt wird.Code:cd /opt svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware cd optware
4.) Erstellen der Oleg Arbeitsumgebung im optware Verzeichniss
5.) IPK Paket compilierenCode:make oleg-target cd oleg make directories ipkg-utils
Zum Verständnis, unter /opt/optware/oleg/make liegen alle *.mk Buildscripte um die verschiedenen Packete zu erstellen.
Wenn Ihr nun einfach ein aktuelles IPK Packet neu compilieren wollt, dann einfach folgenden Befehl eingeben.
Ich empfehle am Anfang es mit einem kleinen Packet zu testen wie "which".Code:cd /opt/optware/oleg make Paketname
Das dauert im Normalfall nicht sehr lange zum compilieren.
Wenn er hier durchgelaufen ist müssen wir noch die eigentliche *.ipk Datei erstellen.
Das geht mit folgenden beiden Befehlen.
6.) Ältere Versionen comillierenCode:make Paketname-ipk (Dies erstellt das Packet und die IPK Datei) make Paketname-check (Dies überprüft nochmal die soeben erstellte IPK Datei)
Wenn Ihr wie ich, eine ältere Version compilieren wollt, geht Ihr wie folgt vor.
Auf der Webseite http://trac.nslu2-linux.org/optware/browser/trunk/make
Sind alle *.mk Buildscripte gelistet. Sucht euer Entsprechendes Paket aus und klickt es an. Rechts oben auf Revision Log klicken um auch die älteren Stände zu sehen.
Dort könnt Ihr dann anhand der Log-Message auswählen welchen alte Buildscript Ihr wollt. Entsprechen das @xxxx anklicken und am Ende der Seite auf Original Format klicken.
Dadurch könnt Ihr das alte Buildscript runterladen.
Die gedownloadete Datei nach /opt/optware/oleg/make kopieren. Am besten die aktuelle *.mk Datei vorher wegsichern.
Viel Spaß beim erstellen eigener IPK Pakete.
Gruß FastJack
P.S.: Bei Fragen einfach hier in dem Beitrag Posten.
Last edited by akbor; 29-04-2010 at 12:40. Reason: Typos (Pakete ohne "c")
wl500gp mit 1.9.2.7-10 und 120G Platte
--
[How-To] Crosscompilieren eigener IPK Packete
[How-To] Torrentflux-b4rt - Lighttpd
[How-To] pyload installieren
schonal danke sagenwerd ich gleich testen wenn ich Zeit habe
ihr müssts auch sticky machen bevors verschwindet
Hi,
da sage ich auch nur danke und sofortiges testen ist jetzt angesagt!
Gruß.
wie kann man denn seinen Beitrag zum sticky machen einreichen?![]()
wl500gp mit 1.9.2.7-10 und 120G Platte
--
[How-To] Crosscompilieren eigener IPK Packete
[How-To] Torrentflux-b4rt - Lighttpd
[How-To] pyload installieren
wl500gp mit 1.9.2.7-10 und 120G Platte
--
[How-To] Crosscompilieren eigener IPK Packete
[How-To] Torrentflux-b4rt - Lighttpd
[How-To] pyload installieren
Danke für das Howto, ich habs mal sticky gemacht!
WL-500gP => 1.9.2.7-7g (2007-04-06)
Running: thttpd, php 5.1, vsftp, rrdtool
http://onlinefussballmanager.de/userbar/0/53647.png
Was muss ich machen wenn ich die sachen auf dem neuesten Stand halten will?
Gibt es da ein kommando das due Updates runterläd oder so?
Ansonsten funktioniert das mit dem neuen Ubuntu 8.04 superNur das paket svn nennt sich hier subversion!
Hi,
falls Du den svn kram meinst solltest Du im entsprechenden Verzeichnis mal "svn up" eingeben.
Dann wird das svn aktualisiert.
Falls Du die installierten Pakete meinst sollte das Dein paketmanager machen. Also apt-get update | upgrade | dist-upgrade.
Und svn heißt bei den meisten systemen subversion.
wengi
Übersicht aller HowTos --- HowTo Overview (mostly german)
WL-HDD mit diesem Setup. --- WL-HDD with this setup.
Kein Support per PM - Frage im jeweiligen Thread! --- No support via pm - ask in the according thread!
Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vorne herein ausgeschlossen erscheint. (Albert Einstein)
Hallo Zusammen
bin hier neu und nicht ganz sicher ob dies der richtige Thread ist:
Ich will ein eigenes kleines C-Programm für den ASUS WL-500gP compilieren und dort permanent installieren. Aus diesem Grund hatte ich mir schon die ASUS-Toolchain mit der "OLEG-Erweiterung" nach der Anleitung http://wiki.wl500g.info/index.php/co...customfirmware zusammengestellt. Allerdings bekomme ich dort beim kompilieren des Kernel (make kernel) nach einiger Zeit einen Fehler, dass ein Patch nicht gefunden wurde.
Nun habe ich diesen Thread entdeckt und nach der hier beschriebenen Anleitung alles installiert.
Könnt Ihr mir sagen wie
...ich,mit welchen Parametern, Pfaden, etc, mein C-Programm aufrufen muss, dass es für den ASUS-Router kompiliert wird. Das Programm benötigt einige Libraries, wie -lm, welche ich statisch dazubinden möchte.
...ich diese kompilierte Programm nun permanent auf dem Router installieren kann. Nach meinem Verständnis muss dieses Programm mit ins Packet hineingebracht werden...(?)
Vielen Dank schon mal.
Hallo FastJack,
ich habe die vorgeschlagenen Schritte/Installationen durchgeführt und bekomme bei
folgende Fehlermeldung:Code:make which
Der anschließendeCode:WARNING: `makeinfo' is missing on your system. You should only need it if you modified a `.texi' or `.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy `make' (AIX, DU, IRIX). You might want to install the `Texinfo' package or the `GNU make' package. Grab either from any GNU archive site. make[5]: *** [/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.info] Error 1 make[5]: Leaving directory `/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd/doc' Making info in po make[5]: Entering directory `/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd/po' make[5]: Nothing to be done for `info'. make[5]: Leaving directory `/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd/po' make[5]: Entering directory `/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd' make[5]: Nothing to be done for `info-am'. make[5]: Leaving directory `/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd' make[4]: *** [info-recursive] Error 1 make[4]: Leaving directory `/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd' make[3]: *** [all-bfd] Error 2 make[3]: Leaving directory `/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build' make[2]: *** [all] Error 2 make[2]: Leaving directory `/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build' make[1]: *** [/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/binutils/objdump] Error 2 make[1]: Leaving directory `/opt/optware/oleg/toolchain/buildroot' make: *** [/opt/optware/oleg/toolchain/buildroot/.built] Error 2bringt die gleiche Meldung. Wenn ich dann versuche denCode:make which-ipklaufen zu lassen kommt folgende Meldung:Code:make which-check
Kannst Du mir hier weiterhelfen? Fehlt mir gcc?Code:checking for C compiler default output file name... configure: error: C compiler cannot create executables See `config.log' for more details. make: *** [/opt/optware/oleg/builds/which/.configured] Error 77
In der config.log Datei finde ich z. B. folgenden Eintrag:
.Code:./configure: line 2548: /opt/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-uclibc-gcc: No such file or directory
Ich habe unter gcc-4.1.1-uclibc-0.9.28 kein "bin"-Verzeichnis.
Hi ASUSNewbie,
nun am Anfang ist es normal das kein bin Verzeichniss da ist. Der Toolchain wird beim allerersten compilieren von einem Program, mit-comiliert.
Dort fällt er bei Dir auf die Nase beim erstellen des Toolchain. Was hast Du denn für ein Linux installiert? Hast Du auch entsprechend alle Packete installiert wie oben angegeben?
Irgendwas scheint ja auf Deinem System zu Fehlen, sonst würde er ja die erste Fehlermeldung mit "WARNING: `makeinfo' is missing on your system." nicht ausspucken.
Bist du auch ales root unterwegs?
Gruß FastJack
wl500gp mit 1.9.2.7-10 und 120G Platte
--
[How-To] Crosscompilieren eigener IPK Packete
[How-To] Torrentflux-b4rt - Lighttpd
[How-To] pyload installieren
hi leute,
ich kann den toolchain nicht kompilieren. hier meine bisherigen versuche
bei ausführen des letzten schritts bekommen ich die folgende fehlermeldungCode:cd /opt mkdir slug cd slug svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware cd optware make oleg-target cd oleg make directories make ipkg-utils make toolchain > bei den folgenden auswahlen immer ENTER gedrückt
der fehler ist logisch denn auf http://www.uclibc.org/downloads/toolchain/ besteht keine datei linux-libc-headers-oleg.tar.bz2.Code:find /opt/slug/optware/oleg/toolchain/buildroot/build_mipsel/root -type d -name .svn | xargs rm -rf Checking build system dependencies: CC clean: Ok CXX clean: Ok CPP clean: Ok CFLAGS clean: Ok CXXFLAGS clean: Ok sed works: Ok which installed: Ok GNU make version '3.81': Ok C compiler '/usr/bin/gcc' C compiler version '4.1.1': Ok bison installed: Ok flex installed: Ok gettext installed: Ok Build system dependencies: Ok wget --passive-ftp -nd -P /opt/slug/optware/oleg/toolchain/buildroot/dl http://www.uclibc.org/downloads/toolchain/linux-libc-headers-oleg.tar.bz2 --2008-05-27 18:44:04-- http://www.uclibc.org/downloads/toolchain/linux-libc-headers-oleg.tar.bz2 Resolving www.uclibc.org... 140.211.166.42 Connecting to www.uclibc.org|140.211.166.42|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2008-05-27 18:44:05 ERROR 404: Not Found. make[1]: *** [/opt/slug/optware/oleg/toolchain/buildroot/dl/linux-libc-headers-oleg.tar.bz2] Error 1
die datei steht eigentlich auf http://www.wlan-sat.com/boleo/optware
in buildroot.mk hab ich folgendes gefunden
in zeile 86 wird LINUX_HEADERS_SOURCE mit der oleg datei version überschrieben, allerdings wird nirgends der link zur downloadseite angepasst (LINUX_HEADERS_SITE).Code:/opt/slug/optware/oleg/make/buildroot.mk ... 82 # Oleg firmware for Asus Wireless routers 83 HEADERS_OLEG_SITE=http://www.wlan-sat.com/boleo/optware 84 HEADERS_OLEG_SOURCE=linux-libc-headers-oleg.tar.bz2 85 HEADERS_OLEG_UNPACK_DIR=linux 86 HEADERS_OLEG=LINUX_HEADERS_SOURCE=$(HEADERS_OLEG_SOURCE) \ 87 LINUX_HEADERS_UNPACK_DIR=$(BUILDROOT_HEADERS_DIR)/$(HEADERS_OLEG_UNPACK_DIR) 88 $(DL_DIR)/$(HEADERS_OLEG_SOURCE): 89 $(WGET) -P $(DL_DIR) $(HEADERS_OLEG_SITE)/$(HEADERS_OLEG_SOURCE) ...
als test hab ich zeile 86 folgendermassen geändert
der download funktioniert dann, allerdings sind das nicht olegs header...Code:86 HEADERS_OLEG=$(HEADERS_OLEG_SOURCE) \
... und das spätere patchen geht schief ...Code:wget --passive-ftp -nd -P /opt/slug/optware/oleg/toolchain/buildroot/dl http://www.uclibc.org/downloads/toolchain/linux-libc-headers-2.4.31.tar.bz2 --2008-05-27 19:10:45-- http://www.uclibc.org/downloads/toolchain/linux-libc-headers-2.4.31.tar.bz2 Resolving www.uclibc.org... 140.211.166.42 Connecting to www.uclibc.org|140.211.166.42|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 4194659 (4.0M) [application/x-tar] Saving to: `/opt/slug/optware/oleg/toolchain/buildroot/dl/linux-libc-headers-2.4.31.tar.bz2' 100%[========================================================================================================================================================================>] 4,194,659 95.3K/s in 51s 2008-05-27 19:11:37 (80.4 KB/s) - `/opt/slug/optware/oleg/toolchain/buildroot/dl/linux-libc-headers-2.4.31.tar.bz2' saved [4194659/4194659]
als letzten versuch hab ich kernel-headers-old.makefile angepasst. dieses file wird in kernel-headers.mk inkludiert und dort steht auch der wget befehl zum downloaden der headerCode:wget --passive-ftp -nd -P /opt/slug/optware/oleg/toolchain/buildroot/dl http://www.uclibc.org/downloads/snapshots/uClibc-snapshot.tar.bz2 --2008-05-27 19:11:42-- http://www.uclibc.org/downloads/snapshots/uClibc-snapshot.tar.bz2 Resolving www.uclibc.org... 140.211.166.42 Connecting to www.uclibc.org|140.211.166.42|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3533646 (3.4M) [application/x-tar] Saving to: `/opt/slug/optware/oleg/toolchain/buildroot/dl/uClibc-snapshot.tar.bz2' 100%[========================================================================================================================================================================>] 3,533,646 73.7K/s in 51s 2008-05-27 19:12:34 (67.4 KB/s) - `/opt/slug/optware/oleg/toolchain/buildroot/dl/uClibc-snapshot.tar.bz2' saved [3533646/3533646] mkdir -p /opt/slug/optware/oleg/toolchain/buildroot/toolchain_build_mipsel bzcat /opt/slug/optware/oleg/toolchain/buildroot/dl/uClibc-snapshot.tar.bz2 | tar -C /opt/slug/optware/oleg/toolchain/buildroot/toolchain_build_mipsel -xf - toolchain/patch-kernel.sh /opt/slug/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/uClibc toolchain/uClibc/ uClibc-0.9.29\*.patch cat ../../sources/buildroot/uClibc-patches/*.patch | patch -d /opt/slug/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/uClibc -p1 patching file Makefile Hunk #1 FAILED at 163. 1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej patching file libc/sysdeps/linux/mips/sigaction.c Hunk #1 FAILED at 49. 1 out of 1 hunk FAILED -- saving rejects to file libc/sysdeps/linux/mips/sigaction.c.rej patching file libc/sysdeps/linux/mips/pipe.S Hunk #1 FAILED at 10. 1 out of 1 hunk FAILED -- saving rejects to file libc/sysdeps/linux/mips/pipe.S.rej patching file libm/Makefile Hunk #1 FAILED at 81. 1 out of 1 hunk FAILED -- saving rejects to file libm/Makefile.rej patching file ldso/include/dl-string.h Reversed (or previously applied) patch detected! Assume -R? [n] Apply anyway? [n] Skipping patch. 3 out of 3 hunks ignored -- saving rejects to file ldso/include/dl-string.h.rej patching file ldso/ldso/arm/dl-sysdep.h Reversed (or previously applied) patch detected! Assume -R? [n] Apply anyway? [n] Skipping patch. 1 out of 1 hunk ignored -- saving rejects to file ldso/ldso/arm/dl-sysdep.h.rej patching file ldso/include/dl-defs.h Hunk #1 succeeded at 36 (offset 23 lines). patching file ldso/ldso/dl-elf.c Hunk #1 succeeded at 306 (offset -61 lines). patching file extra/Configs/Config.in Hunk #1 succeeded at 1158 (offset 171 lines). patching file libm/s_lrint.c patching file libm/float_wrappers.c Reversed (or previously applied) patch detected! Assume -R? [n] Apply anyway? [n] Skipping patch. 2 out of 2 hunks ignored -- saving rejects to file libm/float_wrappers.c.rej patching file libm/Makefile Hunk #1 FAILED at 59. 1 out of 1 hunk FAILED -- saving rejects to file libm/Makefile.rej patching file utils/ldconfig.c Hunk #1 FAILED at 956. Hunk #2 FAILED at 971. 2 out of 2 hunks FAILED -- saving rejects to file utils/ldconfig.c.rej patching file include/paths.h Hunk #2 FAILED at 48. Hunk #3 FAILED at 72. 2 out of 3 hunks FAILED -- saving rejects to file include/paths.h.rej patching file utils/ldd.c Hunk #1 FAILED at 437. Hunk #2 FAILED at 671. 2 out of 2 hunks FAILED -- saving rejects to file utils/ldd.c.rej patching file libc/sysdeps/linux/common/bits/in.h Hunk #1 FAILED at 115. 1 out of 1 hunk FAILED -- saving rejects to file libc/sysdeps/linux/common/bits/in.h.rej patching file libc/misc/internals/__uClibc_main.c Hunk #1 FAILED at 28. 1 out of 1 hunk FAILED -- saving rejects to file libc/misc/internals/__uClibc_main.c.rej make[1]: *** [/opt/slug/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/uClibc/.unpacked] Error 1 ...
die files stehen im folgenden verzeichnissCode:/opt/slug/optware/oleg/toolchain/buildroot/toolchain/kernel-headers/kernel-headers.mk ... 28 $(DL_DIR)/$(LINUX_HEADERS_SOURCE): 29 $(WGET) -P $(DL_DIR) $(LINUX_HEADERS_SITE)/$(LINUX_HEADERS_SOURCE) ...
* /opt/slug/optware/oleg/toolchain/buildroot/toolchain/kernel-headers/
in kernel-headers-old.makefile die folgende zeile hinzuggefügt...
...und die oleg header werden runtergeladen...Code:... 105 LINUX_HEADERS_SITE:=http://www.wlan-sat.com/boleo/optware 106 107 # the old sanitized kernel-headers ...
... aber das patchen geht immer noch schief, mit den gleichen fehlermeldungen wie oben.Code:wget --passive-ftp -nd -P /opt/slug/optware/oleg/toolchain/buildroot/dl http://www.wlan-sat.com/boleo/optware/linux-libc-headers-oleg.tar.bz2 --2008-05-27 20:09:22-- http://www.wlan-sat.com/boleo/optware/linux-libc-headers-oleg.tar.bz2 Resolving www.wlan-sat.com... 212.18.63.81 Connecting to www.wlan-sat.com|212.18.63.81|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3331707 (3.2M) [application/x-tar] Saving to: `/opt/slug/optware/oleg/toolchain/buildroot/dl/linux-libc-headers-oleg.tar.bz2' 100%[========================================================================================================================================================================>] 3,331,707 17.6K/s in 3m 16s 2008-05-27 20:12:39 (16.6 KB/s) - `/opt/slug/optware/oleg/toolchain/buildroot/dl/linux-libc-headers-oleg.tar.bz2' saved [3331707/3331707]
kann mir da jeman weiter helfen? vielleicht ein uclibc problem? und sorry das der eintrag sooooo lang geworden ist, hehe. übrigens scheint jemand im russischen forum das gleiche problem zu haben
beste gruesse, olo
Hallo,
Muss man auch der 'Asus cross compilation toolchain' installieren?
Ich habe auch probleme mit compilieren wie ASUSNewbie beschreibt.
Habe Ubuntu Hardy Linux.
Pim.