uclibc patch

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
Zaphot
Einsteiger
Einsteiger
Beiträge: 311
Registriert: Freitag 26. Juli 2002, 22:25

Re: uclibc patch

Beitrag von Zaphot »

sieht so aus als ob in der uclibc config UCLIBC_HAS_CTYPE_TABLES bzw. UCLIBC_HAS_LOCALE aktiviert werden müsste.


ich kann den uclibc patch leider nicht auf den neusten Stand halten. das letzte mal als ich mich mit dem tuxbox CVS auseinandergesetzt habe war vor einem halben Jahr. ich komme leider nicht öfter dazu... meine dbox ist auch schon ganz eingestaubt :)
mohousch
Einsteiger
Einsteiger
Beiträge: 362
Registriert: Mittwoch 14. Dezember 2005, 03:25

Re: uclibc patch

Beitrag von mohousch »

Danke für deine Antwort;
ich kann den uclibc patch leider nicht auf den neusten Stand halten.
das ist sehr schade :(
sieht so aus als ob in der uclibc config UCLIBC_HAS_CTYPE_TABLES bzw. UCLIBC_HAS_LOCALE aktiviert werden müsste.
die sind schon eingeschaltet <verwende die CVS config habe dran gar nichts geaendert>
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

Zaphot hat geschrieben:leider lassen sich die uclibc libs nicht mit mklibs verkleinern, da sie dadurch aus bisher noch unbekanten Gründen kaputt gehen.
Vielleicht hilft das: http://buildroot.uclibc.org/cgi-bin/vie ... &view=auto
Add support for mklibs (strips unused syms from shared libs such as uClibc)
based on a patch from akvadrako, and using a version of mklibs.py that was
massively hacked up by andersee and mjn3 for uClibc support.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

Kleines Problem beim Bauen von yadd-neutrino:
cdk/Patches/busybox.config.m4

Code: Alles auswählen

option(`CONFIG_FEATURE_SHADOWPASSWDS', `y', `n')
CONFIG_FEATURE_SHADOWPASSWDS ist für yadd enabled, obwohl
cdk/Patches/uclibc-0.9.28.3.config

Code: Alles auswählen

# HAS_SHADOW is not set
Das passt nicht und führt zu
CC applets/applets.o
In file included from include/libbb.h:59,
from include/busybox.h:10,
from applets/applets.c:16:
include/shadow_.h:24:20: shadow.h: No such file or directory
beim Kompilieren von busybox.

Sind shadow-Passwörter für yadd erforderlich?
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

Zaphot hat geschrieben:ist gefixt: uclibc-newmake-04.10.diff.gz
Basierend auf o.g. Patch hier die für das aktuelle CVS angepasste Version: uclibc.diff

Veränderungen:
- binutils-2.18.50.0.9, cdk/Patches/binutils-uclibc.diff ist nicht mehr nötig und kann gelöscht werden
- cdk/Patches/gcc-g++.diff ist nötig, ld --version sieht in der neuen binutils-Version anders aus
- Busybox CONFIG_FEATURE_SHADOWPASSWDS für yadd deaktiviert, s.o.
- console_tools (nicht kompilierbar) durch kbd ersetzt, loadkeys funktioniert ohne Fehlermeldungen, bitte testen

"make flash-neutrino-squashfs-all" und "make yadd-neutrino" kompilieren und sind
auf der Dbox2 start- und nutzbar bis auf den erwähnten segfault in timerd.
Zuletzt geändert von rhabarber1848 am Mittwoch 24. September 2008, 16:25, insgesamt 4-mal geändert.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

Ich habe hier einen SEGFAULT im timerd, kann das jemand bestätigen:

Code: Alles auswählen

[pid   190] open("/var/tuxbox/config/timerd.conf", O_RDONLY|O_LARGEFILE) = 5
[pid   190] ioctl(5, TCGETS, {0xc8 /* B??? */ -opost isig icanon -echo ...}) = 268599296
[pid   190] brk(0x10028000)             = 0x10029000
[pid   190] brk(0x10029000)             = 0x5
[pid   189] exit(0)                     = ?
Process 189 detached
read(5, Process 189 attached (waiting for parent)
"EXTRA"..., 4095)               = 5
[pid   190] read(5, "0'\272t0"..., 4095) = 5
[pid   190] close(5)                    = 2147482624
[pid   190] pipe([5, 6])                = 3840
[pid   190] clone(Process 6 attached
child_stack=0x10028a90, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND) = 6
[pid   190] write(6, "\0\0\0\0000!\304\230\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5Y\0"..., 148pt: assertion failed in manager.c) = 2
[pid   190] rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 6
[pid   190] write(6, "0\nc\0\0\0\0\0\0\0\0\0\20\0\376\260\20\2jp\200\0\0\0\0\0\0\0\0\0\0\0\20"..., 148) = 2
[pid   190] rt_sigprocmask(SIG_SETMASK, NULL, [], 8) = 2147482528
:154.
[pid   190] --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid   190] rt_sigsuspend([])           = 5
[pid   190] accept(4,  <unfinished ...>
[pid   190] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
resume: ptrace(PTRACE_SYSCALL, ...): No such process
Process 190 detached
Process 189 detached
Process 6 detached
#
"assertion failed in manager.c" -> manager.c ist Teil von uClibc,
uClibc-0.9.28.3/libpthread/linuxthreads/manager.c

Code: Alles auswählen

# cat /var/tuxbox/config/timerd.conf
EXTRA_TIME_END=0
EXTRA_TIME_START=0
#
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

To-Do:

- testen, ob binutils-2.18.50.0.9 Probleme machen (EDIT 25.09.2008: bisher keine Probleme festgestellt)
- testen des Patches mit glibc (EDIT 25.09.2008: bisher keine Probleme festgestellt)
- mklibs soll auch uClibc.so* verkleinern
- segfault in timerd wenn mit uClibc kompiliert
- testen, ob loadkeys aus kbd ein vollwertiger Ersatz für console_tools ist
- uClibc 0.9.30rc1 (23.09.08 veröffentlicht)
- Enigma (posix_fadvise64 fehlt)
Zuletzt geändert von rhabarber1848 am Donnerstag 25. September 2008, 10:23, insgesamt 1-mal geändert.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

Ein paar Daten:

make flash-neutrino-squashfs-all erzeugt folgende root-neutrino.squashfs:

- ungepachtes CVS: 4349952 Byte

- CVS + uclibc.diff + glibc: 4337664 Byte
Die etwas geringere Größe resultiert vermutl. aus der gcc-Option --disable-__cxa_atexit
Ein hiermit hergestelltes Image funktioniert einwandfrei, daher spricht IMHO nichts
dagegen, uclibc.diff ins CVS aufzunehmen. Es wäre schön, wenn einige andere dieses
Szenario noch testen könnten.

- CVS + uclibc.diff + uclibc: 4214784 Byte
Die uClibc selbst wurde nicht mit mklibs bearbeitet, da sie dadurch zerstört werden würde.
Ansonsten würde die root-Partition 4149248 Byte groß sein, 64KB kleiner.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: uclibc patch

Beitrag von seife »

ist das binutils-update wirklich notwendig? Ich habe da imemr Bauchschmerzen, da das oft subtile Nebenwirkungen hat (nach dem letzten core-update ging z.B. in Enigma die Lokalisierung nicht mehr IIRC - das waren nicht binutils, sondern glibc aber trotzdem).

Frag doch mal Riker, ob er das eine Zeit lang im JTG-Snapshot testen mag (selbst ohne uclibc), der (oder besser: seine User ;)) findet immer die Bugs...
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: uclibc patch

Beitrag von amiga23 »

auf den uclibc.diff kann ich den rules-make.diff nicht mehr anwenden, daher habe ich wieder Probleme mit libpng und libtoolize unter gentoo.

Code: Alles auswählen

configure: error:

*** [Gentoo] sanity check failed! ***
*** libtool.m4 and ltmain.sh have a version mismatch! ***
*** (libtool.m4 = 1.5.26, ltmain.sh = 1.5.22) ***

Please run:

  libtoolize --copy --force

if appropriate, please contact the maintainer of this
package (or your distribution) for help.
lässt sich aber durch hinzufügen im Makefile

Code: Alles auswählen

libtoolize --copy --force
lösen.


build läuft mit folgendem Script:

Code: Alles auswählen

amiga@thinkpad /media/disk $ cat tuxbox-uclibc.sh 
export cvsdir=$HOME/tuxbox-uclibc/tuxbox-cvs
export cdkdir=$cvsdir/cdk
export distridir=$HOME/tuxbox-uclibc/dbox2

mkdir $cvsdir

cd $cvsdir
export CVS_RSH=ssh
BUILDDIR=$PWD
CVS=:ext:anoncvs@cvs.tuxbox.org:/cvs/tuxbox
cvs -qz9 -d $CVS co -f -r newmake -P .
patch -p1 </media/disk/Download/uclibc.diff

cd $cdkdir
ln -s ~/tuxbox/tuxbox-cvs/cdk/Archive

./autogen.sh
./configure --enable-german-keymaps \
            --enable-uclibc \
            --enable-maintainer-mode \
            --prefix=$distridir \
            --enable-flashrules \
            --enable-cdkVcInfo \
            --disable-ext3 \
            --with-checkImage=rename \
            --with-cvsdir=$cvsdir \
            --enable-ccache

time make flash-neutrino-squashfs-all
Dauert etwas die Kiste hat nur 1,1GHz.
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: uclibc patch

Beitrag von amiga23 »

Ähm

Kernel panic: No init found. Try passing init= option to kernel.

es ist gar kein busybox drin. Baue es gerade explizit mit

make flash-busybox

und flashe dann nochmal.
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: uclibc patch

Beitrag von amiga23 »

irgendwas stimmt hier nicht. sind auch gar keine Spiele drin.

Ich lösche jetzt erstmal alles und baue es dann nochmal ganz von vorne. Kann mir nur vorstellen, dass es daran lag, dass ich versucht habe den make-rules.diff zu patchen. Habe ihn zwar wieder mit -R zurückgenommen, aber vielleicht hat das trotzdem was kaputt gemacht.

Hattest Du nicht geschrieben, dass die library reduction nicht funktioniert? Hat er aber trotzdem gemacht und scheint zu gehen.

Code: Alles auswählen

/var # ls -l /lib
-rwxr-xr-x    1 500      500         19612 Sep 26 23:06 ld-uClibc-0.9.28.so
-rwxr-xr-x    1 500      500         19612 Sep 26 23:06 ld-uClibc.so.0
lrwxrwxrwx    1 500      500            19 Sep 26 23:06 ld.so.0 -> ld-uClibc-0.9.28.so
lrwxrwxrwx    1 500      500            19 Sep 26 23:06 libc.so.0 -> libuClibc-0.9.28.so
die ld-uClibc.so.0 könnte man eigentlich auch auf die ld-uClibc-0.9.28.so linken und so nochmal 20kb sparen :-) oder?
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: uclibc patch

Beitrag von amiga23 »

so, jetzt hat es geklappt. Sicherheitshalber habe ich auch den ccache abgeschaltet. Mein Skript sieht jetzt folgender massen aus:

Code: Alles auswählen

rm -Rf $HOME/.ccache/*

export type=uclibc
export location=/media/disk/tuxbox-$type

mkdir $location || exit
ln -s $location /home/amiga || exit

export cvsdir=$HOME/tuxbox-$type/tuxbox-cvs
export cdkdir=$cvsdir/cdk
export distridir=$HOME/tuxbox-$type/dbox2

mkdir $cvsdir || exit

cd $cvsdir || exit
export CVS_RSH=ssh
BUILDDIR=$PWD
CVS=:ext:anoncvs@cvs.tuxbox.org:/cvs/tuxbox
cvs -qz9 -d $CVS co -f -r newmake -P . || exit
patch -p1 </media/disk/Download/uclibc.diff || exit

cd $cdkdir || exit
ln -s ~/tuxbox/tuxbox-cvs/cdk/Archive || exit

./autogen.sh || exit
./configure --enable-german-keymaps \
            --enable-uclibc \
            --enable-maintainer-mode \
            --prefix=$distridir \
            --enable-flashrules \
            --enable-cdkVcInfo \
            --disable-ext3 \
            --with-checkImage=rename \
            --with-cvsdir=$cvsdir \
            --disable-ccache || exit
echo
echo "!!! Manualy change libpng in tuxbox-cvs/cdk/Makefile, add"
echo "libtoolize --copy --force"
echo
echo "then run:"
echo "make flash-neutrino-squashfs-all"
Das Keyboard funktioniert korrekt mit DE Layout.

Bildbetrachter, MP3 Player, TS abspielen, Txtxt, Tuxcal, Tuxmail und tuxmaild funktionieren.
Wetterplugin geht erwartungsgemäß nicht, da es ja gegen die normale glibc kompiliert ist.

Das Internet Radio stürzt mit einem segfault ab:

Code: Alles auswählen

[FileBrowser] SC URL: http://www.shoutcast.com/sbin/newxml.phtml
[FileBrowser] SC URL: http://www.shoutcast.com/sbin/newxml.phtml?genre=Latin
failed to get glyph bitmap.
failed to get glyph bitmap.
failed to get glyph bitmap.
processPlaylistUrl(http://www.shoutcast.com/sbin/tunein-station.pls?id=305783, Mexico es S U P E R - H I T S !(((( PON TU RADIO EN INTERNET)))) !)
Segmentation fault
Neutrino exited with nonzero exit status, restarting...
starting /bin/neutrino
EDIT: timerd segfaulted auch, aber das ist ja schon bekannt.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

amiga23 hat geschrieben:Das Keyboard funktioniert korrekt mit DE Layout.
Da bin ich erleichtert.

Um den uclibc-Patch etwas schlanker zu machen, habe ich den Patch, der
console_tools mit kbd ersetzt, herausgelöst: kbd.diff

console_tools wird seit 1999 nicht mehr weiterentwickelt und wurde in
einigen Distros bereits durch kbd ersetzt. Das einzige Programm,
was in Tuxbox genutzt wird, ist loadkeys, wobei die kbd-Version ein
100% funktionsfähiger Ersatz für die console_tools-Version ist.

Die neueste kbd-Version ist im März 2008 veröffentlicht worden.

console_tools ist unter uclibc trotz vieler Versuche/Tricks nicht kompilierbar,
kbd hingegen schon. Der o.g. Patch beinhaltet bereits einige Anpassungen
in Vorbereitung für uclibc.

Bitte testet diesen Patch in einer glibc-Umgebung.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

amiga23 hat geschrieben:Hattest Du nicht geschrieben, dass die library reduction nicht funktioniert? Hat er aber trotzdem gemacht und scheint zu gehen.
spiralvoice hat geschrieben:Die uClibc selbst wurde nicht mit mklibs bearbeitet, da sie dadurch zerstört werden würde.
Es geht nur um uClibc selbst, nicht um die anderen Dateien. Nachdem mklibs
durchgelaufen ist, werden die Original-uClibc-Dateien ins flashroot kopiert:

Code: Alles auswählen

+if TARGETRULESET_UCLIBC
+         UCLIBC_FILES="libpthread-0.9.28.so libm-0.9.28.so libuClibc-0.9.28.so libdl-0.9.28.so libnsl-0.9.28.so ld-...
+         for i in $$UCLIBC_FILES; do cp $(targetprefix)/lib/$$i $</lib/; done; \
+         for i in $$UCLIBC_FILES; do ln -sf $$i $</lib/`echo $$i | cut -d - -f 1`.so.0; done
+         ln -sf libuClibc-0.9.28.so $</lib/libc.so.0
+endif
In der reduzierten uClibc-Version in einem flashimage produzieren fast alle
Binaries, inkl. Neutrino, einen segfault und sind unbrauchbar.

Ein Vorteil einer nicht reduzierten uClibc ist, dass eine Binary eines Users in
jedem Image laufen kann, da aus uClibc keinerlei Symbole entfernt wurden.
Nachteil ist natürlich, dass sie größer ist. Es soll aber eine mklibs.py geben,
die mit uClibc umgehen kann, ein erster Versuch hier ist leider gescheitert.

Ich halte den bestehenden uClibc-Patch reif fürs CVS, wobei er gerne noch
getestet werden kann, um zu dokumentieren, was funktioniert und was (noch)
nicht. Natürlich hat der uClibc-Betrieb experimentellen Charakter, alleine schon
wegen des timerd, aber der glibc-Betrieb wird AFAIK nicht beeinträchtigt.

In einem nächsten Schritt kann dann versucht werden, mklibs zur Zusammen-
arbeit mit uClibc zu überreden. Tests mit aktuelleren uClibc-Versionen,
0.9.29 und 0.9.30-rc1, haben hier keinen Erfolg gebracht, sondern nur neue
Kompilierfehler. Deshalb bleibe ich in diesem Patch bei Version 0.9.28.3,
ein uClibc-Update kann ebenfalls später geschehen.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: uclibc patch

Beitrag von seife »

rhabarber1848 hat geschrieben:Ich halte den bestehenden uClibc-Patch reif fürs CVS
...
aber der glibc-Betrieb wird AFAIK nicht beeinträchtigt.
Warum müssen die binutils updated werden? Ich würde das nur ungern ohne gute Begründung tun.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

seife hat geschrieben:ist das binutils-update wirklich notwendig?
Binutils 2.18.50.0.9 hat uClibc-Support bereits eingebaut, der
bestehende cdk/Patches/binutils-uclibc.diff müsste aufwendig
angepasst werden, da der Patch noch auf binutils-2.15.91.0.2,
während im CDK binutils-2.17.50.0.9 genutzt wird.

Ich habe die Anpassung des uClibc-Patches von zaphot ans aktuelle
CVS gleich mit der aktuellen binutils-Version probiert und es hat
bei mir auf Anhieb funktioniert. Natürlich ist dieser Teil des Patches
der potentiell problematischste, weil er am tiefsten ins CDK eingreift.
Deshalb habe ich auch den binutils-Teil des uClibc-Patches herausgelöst
und biete ihn hier getrennt zum Test an: EDIT: entfernt

Anmerkungen zur geänderten Datei cdk/Patches/binutils.diff:
- texinfo-Versionsnummern-Patch wurde upstream committed
- $(libdir)-Patch stammt vom OpenWRT-Projekt
Zuletzt geändert von rhabarber1848 am Samstag 27. September 2008, 14:48, insgesamt 1-mal geändert.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: uclibc patch

Beitrag von seife »

Vorschlag:
wir nehmen binutils-uclibc.diff
(den habe ich letztes Jahr im Dezember mal gemacht, aber das Ergebnis nie testgebootet ;-)) anstelle des Updates der Binutils. Der Rest geht IMHO in Ordnung.
Das ist nur der binutils-diff, den Rest nehmen wir aus deinem Patch.

Ich bereite grad einen Testbuild vor, um zu sehen, ob es überhaupt noch baut ;-), aber ich glaube das sollte es schon.
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: uclibc patch

Beitrag von amiga23 »

... da aus uClibc keinerlei Symbole entfernt wurden.
cool, dann müsste es ja auch einfacher möglich sein links in ein flashimage zu integrieren :-)
Das werde ich heute Abend versuchen. Dann versuche ich es auch gleich so, dass ich es in newmake integrieren kann, dann lerne ich da auch wieder was dabei. Is' ja im WIKI schön beschrieben.

Damit, dass der timerd nicht funktioniert kann ich leben (habe ich halt keinen Wecker mehr). Aber damit, dass das internetradio nicht geht, kann ich absolut nicht leben ;-) Da wollte ich aber sowieso dran rumbasteln, weil es die ganze Box zum Absturz bringt, wenn es Probleme mit der Internet verbindung gibt (z.B. 24h Zwangstrennung).
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

rhabarber1848 hat geschrieben:Um den uclibc-Patch etwas schlanker zu machen, habe ich den Patch, der
console_tools mit kbd ersetzt, herausgelöst: kbd.diff
Bitte nochmals herunterladen, in der ersten Version war noch ein kleiner Fehler drin.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

seife hat geschrieben:Vorschlag:
wir nehmen binutils-uclibc.diff
Gute Idee, ich probiere gerade folgende Patches im aktuellen CVS (inkl. kbd.diff):

EDIT: Aktueller Patch ist hier: http://forum.tuxbox-cvs.sourceforge.net ... 37#p360937
Zuletzt geändert von rhabarber1848 am Montag 29. September 2008, 12:33, insgesamt 5-mal geändert.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: uclibc patch

Beitrag von seife »

Mit Kernel 2.6 baut uclibc nicht (asm/mman.h nicht gefunden).

mit uclibc-0.29 und

Code: Alles auswählen

+               KERNEL_SOURCE="$(buildprefix)/$(KERNEL_DIR)" \
+               KERNEL_HEADERS="$(targetprefix)/include" \
baut's auch mit Kernel 2.6. Ich bin mir aber nicht so sicher, ob die Optionen, die ich bei der uclibc-Konfiguration ausgewählt habe, sinnvoll sind ;-)
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: uclibc patch

Beitrag von amiga23 »

Sind diese Hunk Meldungen normal? Was bedeutet das?

Code: Alles auswählen

patching file cdk/configure.ac
Hunk #2 succeeded at 664 (offset 1 line).
patching file cdk/make/automount.mk
patching file cdk/make/bluetooth.mk
patching file cdk/make/bootstrap.mk
patching file cdk/make/buildenv.mk
patching file cdk/make/busybox.mk
patching file cdk/make/contrib-apps.mk
Hunk #5 succeeded at 105 (offset 20 lines).
Hunk #6 succeeded at 131 (offset 20 lines).
Hunk #7 succeeded at 160 (offset 20 lines).
Hunk #8 succeeded at 179 (offset 20 lines).
Hunk #9 succeeded at 193 (offset 20 lines).
Hunk #10 succeeded at 220 (offset 20 lines).
Hunk #11 succeeded at 265 (offset 20 lines).
Hunk #12 succeeded at 282 (offset 20 lines).
Hunk #13 succeeded at 321 (offset 20 lines).
Hunk #14 succeeded at 343 (offset 20 lines).
Hunk #15 succeeded at 383 (offset 20 lines).
Hunk #16 succeeded at 408 (offset 20 lines).
Hunk #17 succeeded at 435 (offset 20 lines).
Hunk #18 succeeded at 460 (offset 20 lines).
patching file cdk/make/contrib-libs.mk
patching file cdk/make/development-tools.mk
patching file cdk/make/dosfstools.mk
patching file cdk/make/dvb-apps.mk
patching file cdk/make/flashable-dirs.mk
patching file cdk/make/ftpd.mk
patching file cdk/make/fun.mk
patching file cdk/make/ide-apps.mk
patching file cdk/make/java-stuff.mk
patching file cdk/make/linuxkernel.mk
patching file cdk/make/nfsserver.mk
patching file cdk/make/reduce-libs.mk
patching file cdk/make/rootutils.mk
patching file cdk/make/u-boot.mk
patching file cdk/make/upnp.mk
patching file cdk/Patches/autofs.diff
patching file cdk/Patches/busybox.config.m4
patching file cdk/Patches/gcc-g++.diff
patching file cdk/Patches/libcurl.diff
patching file cdk/Patches/strace.diff
patching file cdk/Patches/uclibc-0.9.28.3.config
patching file cdk/rules-archive
Hunk #2 succeeded at 127 (offset 1 line).
patching file cdk/rules-install
patching file cdk/rules-make
Hunk #1 succeeded at 17 with fuzz 2.
Hunk #2 succeeded at 126 (offset 1 line).
patching file hostapps/mklibs/mklibs.py
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: uclibc patch

Beitrag von amiga23 »

Hab's mit folgendem script auf einem 1,6 GHz DualCore 64bit Hostsystem gebaut. Baut innerhalb ~35 Minuten durch. Wenn ihr also noch mehr zum testen habt, als her damit...

Code: Alles auswählen

rm -Rf $HOME/.ccache/*

# You only need to change these three paths ###############
export type=uclibc-new
export location=/media/disk/tuxbox-$type
export archivedir=/media/disk/tuxbox/Archive
###########################################################

export cvspatchdir=$location/cvspatches
export cvsdir=$location/tuxbox-cvs
export cdkdir=$cvsdir/cdk
export distridir=$location/dbox2


mkdir $location || exit
mkdir $cvsdir || exit
mkdir $cvspatchdir || exit

cd $cvsdir || exit
export CVS_RSH=ssh
BUILDDIR=$PWD
CVS=:ext:anoncvs@cvs.tuxbox.org:/cvs/tuxbox
cvs -qz9 -d $CVS co -f -r newmake -P . || exit

# kbd.diff - already checked in
#wget -nv -O kbd.diff "http://tuxbox-upload.wittnet.de/index.php?action=downloadfile&filename=kbd.diff&directory=Diffs" || exit
#patch -p1 <$cvspatchdir/kbd.diff || exit

# binutils-2.17-uclibc.diff - basiert auf Patch von seife
wget -nv -O $cvspatchdir/binutils-2.17-uclibc.diff "http://tuxbox-upload.wittnet.de/index.php?action=downloadfile&filename=binutils-2.17-uclibc.diff&directory=Diffs" || exit
patch -p1 <$cvspatchdir/binutils-2.17-uclibc.diff || exit

# uclibc-nobinutils.diff - eigentlicher uClibc-Patch ohne kbd und binutils
wget -nv -O $cvspatchdir/uclibc-nobinutils.diff "http://tuxbox-upload.wittnet.de/index.php?action=downloadfile&filename=uclibc-nobinutils.diff&directory=Diffs" || exit
patch -p1 <$cvspatchdir/uclibc-nobinutils.diff || exit

# rules-make-uclibc.diff löst Kompilierprobleme von amiga23
wget -nv -O $cvspatchdir/rules-make-uclibc.diff "http://tuxbox-upload.wittnet.de/index.php?action=downloadfile&filename=rules-make-uclibc.diff&directory=Diffs" || exit
patch -p1 <$cvspatchdir/rules-make-uclibc.diff || exit

cd $cdkdir || exit
# No need to download the archives again and again
ln -s $archivedir || exit

./autogen.sh || exit
./configure --enable-german-keymaps \
            --enable-uclibc \
            --enable-maintainer-mode \
            --prefix=$distridir \
            --enable-flashrules \
            --enable-cdkVcInfo \
            --disable-ext3 \
            --with-checkImage=rename \
            --with-cvsdir=$cvsdir \
            --disable-ccache || exit

time make flash-neutrino-squashfs-all
make flash-tuxcal
make flash-neutrino-squashfs-all
Funktioniert genauso wie vorher auch. Also timerd und Internetradio gehen nicht. Zusätzlich habe ich jetzt noch das VNC Plugin getestet, segfaulted auch.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: uclibc patch

Beitrag von rhabarber1848 »

seife hat geschrieben:Mit Kernel 2.6 baut uclibc nicht (asm/mman.h nicht gefunden).
Das Problem ist im aktuellen(EDIT: Aktueller Patch ist hier: http://forum.tuxbox-cvs.sourceforge.net ... 37#p360937) gelöst.
KERNEL_SOURCE bei uClibc muss bei Kernel 2.6 anders sein, ebenso muss
das Target install-linux-headers vor uClibc abgearbeitet werden.

EDIT (21:16h): Bei "make driver" gibt es einen weiteren Fehler, der Patch wird noch heute
abend aktualisiert, in ca. 1h.
Zuletzt geändert von rhabarber1848 am Montag 29. September 2008, 12:34, insgesamt 2-mal geändert.