Dbox2-Images mit gcc 4.x
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: Dbox2-Images mit gcc 4.1.2
Ok, man muss komplett neu bauen, dann rafft es das BS. Wegen der Segfaults könnte es wohl mehr an Neutrino selbst liegen. Das jetzt zu durchforsten, ist mir aber etwas zu anstrengend.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: Dbox2-Images mit gcc 4.1.2
Hallo
Ein Image mit gcc4.1.2 segfaulted bei mir immer noch. Ich habe mich mal drangemacht und die Ursache dafür gefunden.
Es liegt an der Freetype Version 2.1.4 mit der defaultmäßig gebaut wird. Bei mir kann ich es jederzeit damit nachbilden.
Warum es nur bei einigen Boxen auftritt entzieht sich meiner Kenntnis. Wahrscheinlich ist es ein Speicher- oder Timingproblem.
Es liegt an folgenden Zeilen, wenn < FT 2.1.8 gebaut wird.
fontrenderer.cpp
Ab 2.1.8 greift die neue API Version von Freetype und ab da sollte es nicht mehr segfaulten. Allerdings habe ich bei meinen
Tests immer FT 2.3.9 und FT 2.1.4 benutzt.
Es gibt eine Lösung für Version 2.1.4. Allerdings wird dann anders gerendert und man müsste einige Zeilen Code
mit ifdef gcc4 auffüllen um die gewohnte Ansicht der Menüs hinzubekommen, da die Hintergrundbox der Buchstaben
um 4 Pixel höher wird als sonst und die Menüs in die Länge zieht; sprich der Zeilenabstand wird größer.
Getestet habe ich es mit der Änderung der obigen Zeilen inbzw.
Die untere Variante wird schon mit 2.1.4 unterstützt. Man darf ja nicht vergessen das die Entwicklung mit FT 2.0.9
anfing und der Code der oberen Variante seitdem im CVS war. Wie gesagt, es wird anders gerendert und es segfaultet
dann nicht mehr. Den Unterschied der gerenderten Buchstaben wird man am TV nicht erkennen. Das muss man sich schon
mit einen Grafikprogramm ansehen. Auffallen werden nur die größeren Zeilenabstände, das Hochrutschen der Buchstaben
um 1 Pixel und das die Ziffern im Menü etwas kleiner sind.
Das kann man teils mit diesen Zeilen in fontrender.cpp anpassen...
Dann noch nen Hack das alle Zeilen um 1 Pixel nach unten rutschen und schon kann man FT 2.1.4 problemlos mit ggc4
kompilieren, ohne das Neutrino abschmiert.
Trotzdem lohnt sich meiner Meinung nach dieser Aufwand nicht.
Besser ist es direkt eine neuere FT Version (2.3.9) zu nehmen, auch wenn diese um ca. 113KB größer wird(gcc4 kompiliert).
Eventuell sollte man nochmal die Version 2.1.8 versuchen, da diese unter gcc4 vielleicht etwas kleiner als die 2.3.9 wird.
Insgesamt wird bei mir das Image um ca 3% kleiner, wenn man mit gcc4.1.2 baut, trotz der größeren libfreetype.so.6.
Ein Image mit gcc4.1.2 segfaulted bei mir immer noch. Ich habe mich mal drangemacht und die Ursache dafür gefunden.
Es liegt an der Freetype Version 2.1.4 mit der defaultmäßig gebaut wird. Bei mir kann ich es jederzeit damit nachbilden.
Warum es nur bei einigen Boxen auftritt entzieht sich meiner Kenntnis. Wahrscheinlich ist es ein Speicher- oder Timingproblem.
Es liegt an folgenden Zeilen, wenn < FT 2.1.8 gebaut wird.
fontrenderer.cpp
Code: Alles auswählen
font.image_type = ftc_image_grays;
font.image_type |= ftc_image_flag_autohinted;
Tests immer FT 2.3.9 und FT 2.1.4 benutzt.
Es gibt eine Lösung für Version 2.1.4. Allerdings wird dann anders gerendert und man müsste einige Zeilen Code
mit ifdef gcc4 auffüllen um die gewohnte Ansicht der Menüs hinzubekommen, da die Hintergrundbox der Buchstaben
um 4 Pixel höher wird als sonst und die Menüs in die Länge zieht; sprich der Zeilenabstand wird größer.
Getestet habe ich es mit der Änderung der obigen Zeilen in
Code: Alles auswählen
font.image_type = ftc_image_grays;
font.image_type |= ftc_image_flag_unhinted;
Code: Alles auswählen
- font.image_type = ftc_image_grays;
font.image_type = FT_LOAD_FORCE_AUTOHINT;
anfing und der Code der oberen Variante seitdem im CVS war. Wie gesagt, es wird anders gerendert und es segfaultet
dann nicht mehr. Den Unterschied der gerenderten Buchstaben wird man am TV nicht erkennen. Das muss man sich schon
mit einen Grafikprogramm ansehen. Auffallen werden nur die größeren Zeilenabstände, das Hochrutschen der Buchstaben
um 1 Pixel und das die Ziffern im Menü etwas kleiner sind.
Das kann man teils mit diesen Zeilen in fontrender.cpp anpassen...
Code: Alles auswählen
- upper = halflinegap+ascender+3; // we add 3 at top
- lower = -descender+halflinegap+1; // we add 1 at bottom
+ upper = halflinegap+ascender; // we add 3 at top
+ lower = -descender+halflinegap; // we add 1 at bottom
kompilieren, ohne das Neutrino abschmiert.
Trotzdem lohnt sich meiner Meinung nach dieser Aufwand nicht.
Besser ist es direkt eine neuere FT Version (2.3.9) zu nehmen, auch wenn diese um ca. 113KB größer wird(gcc4 kompiliert).
Eventuell sollte man nochmal die Version 2.1.8 versuchen, da diese unter gcc4 vielleicht etwas kleiner als die 2.3.9 wird.
Insgesamt wird bei mir das Image um ca 3% kleiner, wenn man mit gcc4.1.2 baut, trotz der größeren libfreetype.so.6.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Gibt es noch binary-only Plugins, die eine bestimmte Freetype-Version voraussetzen?GetAway hat geschrieben:Besser ist es direkt eine neuere FT Version (2.3.9) zu nehmen
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Nutzt Du andere als die fonts aus dem CVS?GetAway hat geschrieben:Ein Image mit gcc4.1.2 segfaulted bei mir immer noch. [...]
Es liegt an der Freetype Version 2.1.4 mit der defaultmäßig gebaut wird. [...]
Warum es nur bei einigen Boxen auftritt entzieht sich meiner Kenntnis. Wahrscheinlich ist es ein Speicher- oder Timingproblem.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: Dbox2-Images mit gcc 4.1.2
Ich benutze nur die Schriften aus dem CVS.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Mit diesem (im Image ungetesteten) Patch (EDIT: Patch entfernt) konnte ich den Größenzuwachs
auf 73kb beschränken, evtl. ist noch mehr möglich.
In meinen Spark-Patches nutze ich Freetype 2.3.12, der o.g. Patch basiert auf diesem Codestand,
zusätzlich mit der bestehenden cdk/configure-Option --with-freetypeversion=current konnte
ich Neutrino kompilieren.
Wenn keine Einwände gegen Freetype 2.3 bestehen, könnte man über ein generelles Update nachdenken...
auf 73kb beschränken, evtl. ist noch mehr möglich.
In meinen Spark-Patches nutze ich Freetype 2.3.12, der o.g. Patch basiert auf diesem Codestand,
zusätzlich mit der bestehenden cdk/configure-Option --with-freetypeversion=current konnte
ich Neutrino kompilieren.
Wenn keine Einwände gegen Freetype 2.3 bestehen, könnte man über ein generelles Update nachdenken...
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: Dbox2-Images mit gcc 4.1.2
Wahrscheinlich hast du die 73Kb auch nur mit gcc4 hinbekommen.rhabarber1848 hat geschrieben:Mit diesem (im Image ungetesteten) Patch libfreetype_current.diff konnte ich den Größenzuwachs
auf 73kb beschränken, evtl. ist noch mehr möglich.
Neuere ggc-Versionen bringen vielleicht noch mehr.
Hattest du nicht schon mit gcc4.5.3 experimentiert? Ich habe in den letzten Commits
etwas davon gelesen, denke aber das sich das auf Spark bezog.
Generell heisst jetzt für gcc3 und gcc4 Images?In meinen Spark-Patches nutze ich Freetype 2.3.12, der o.g. Patch basiert auf diesem Codestand,
zusätzlich mit der bestehenden cdk/configure-Option --with-freetypeversion=current konnte
ich Neutrino kompilieren.
Wenn keine Einwände gegen Freetype 2.3 bestehen, könnte man über ein generelles Update nachdenken...
Eventuell sollte man FT 2.3 auf gcc4 Images beschränken.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Ja.GetAway hat geschrieben:Wahrscheinlich hast du die 73Kb auch nur mit gcc4 hinbekommen.
Für Kernel 2.4 ist bei gcc 4.1 Schluss, siehe linux-2.4.37.11/include/linux/compiler.hGetAway hat geschrieben:Neuere ggc-Versionen bringen vielleicht noch mehr.
Korrekt.GetAway hat geschrieben:Hattest du nicht schon mit gcc4.5.3 experimentiert? Ich habe in den letzten Commits
etwas davon gelesen, denke aber das sich das auf Spark bezog.
Ja, in der aktuellen lokalen Version des Patches ist das bereits der Fall,GetAway hat geschrieben:Eventuell sollte man FT 2.3 auf gcc4 Images beschränken.
dort konnte ich noch ein paar KB mehr einsparen, Tests stehen noch
aus, ich lade den Patch demnächst in ULC hoch.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: Dbox2-Images mit gcc 4.1.2
Der Patch funktioniert auch mit dem mit dem aktuellen CVS-Stand, gebaut mit gcc4rhabarber1848 hat geschrieben:Mit diesem (im Image ungetesteten) Patch libfreetype_current.diff konnte ich den Größenzuwachs
auf 73kb beschränken, evtl. ist noch mehr möglich.
und --with-freetypeversion=current(FT 2.3.9). libfreetype.so.6 wir dabei 362,3KB groß,
also nur um 52KB größer als in einem mit gcc3 und FT 2.1.4 gebautem Image.
Ein Yadd läuft hier ohne Probleme.
Re: Dbox2-Images mit gcc 4.1.2
Hi,
bitte mich jetzt nicht falsch verstehen ...
Aber baut bitte nicht alles um, weil "einer" ein Problem hat.
Ich kann behaupten, dass mindestens 400 Leute problemlos sind.
Da liegt es eher nahe ...
MfG
Edit:
Aber ich habe auch kein Problem damit, die Finger davon zu lassen ...
Also war mein Post mal wieder überflüssig ... sorry
bitte mich jetzt nicht falsch verstehen ...
Aber baut bitte nicht alles um, weil "einer" ein Problem hat.
Ich kann behaupten, dass mindestens 400 Leute problemlos sind.
Da liegt es eher nahe ...
MfG
Edit:
Aber ich habe auch kein Problem damit, die Finger davon zu lassen ...
Also war mein Post mal wieder überflüssig ... sorry
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Patch aktualisiert, derzeitige Größe 305KB, 25KB größer.GetAway hat geschrieben:libfreetype.so.6 wird dabei 362,3KB groß,
EDIT: yadd-neutrino und flash-neutrino-jffs2_lzma-2x positiv getestet.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: Dbox2-Images mit gcc 4.1.2
@Mourice
Wenn Du weiterhin mit gcc3 Images baust, wird sich nichts ändern.
Wenn Du deine Images mit gcc4 baust, solltest du etwas offener der
Weiterentwicklung gegenüberstehen.
Wenn Du weiterhin mit gcc3 Images baust, wird sich nichts ändern.
Wenn Du deine Images mit gcc4 baust, solltest du etwas offener der
Weiterentwicklung gegenüberstehen.
Re: Dbox2-Images mit gcc 4.1.2
Hi,GetAway hat geschrieben:@Mourice
Wenn Du weiterhin mit gcc3 Images baust, wird sich nichts ändern.
Wenn Du deine Images mit gcc4 baust, solltest du etwas offener der
Weiterentwicklung gegenüberstehen.
dass meinte ich mit den "400" ... die benutzen nämlich gcc4 ohne Probleme.
Und ich bin glaube ich der einzige, der mit dem Thema "offen" umgeht ...
MfG
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Das ist doch gut, allerdings hat GetAway schon Mitte letzten Jahres von segfaultsMourice hat geschrieben:dass meinte ich mit den "400" ... die benutzen nämlich gcc4 ohne Probleme.
in Verbindung mit Freetype berichtet, sodass da sicher etwas dran ist.
Gegen ein Update auf FT 2.3 für gcc4 habe ich zudem nicht einzuwenden,
da dies auch für NeutrinoHD genutzt wird. Es hilft, beide repos einander
anzugleichen.
@GetAway: Behebt mein aktueller Patch die segfaults?
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: Dbox2-Images mit gcc 4.1.2
@rhabarber1848
Die Segfaults habe ich nur mit FT 2.1.4. Ich werde demnächst noch 2.1.8 probieren, wegen der neueren API.
Mal schauen wie groß libfreetype wird und ob man die noch optimieren kann.
Die Segfaults habe ich nur mit FT 2.1.4. Ich werde demnächst noch 2.1.8 probieren, wegen der neueren API.
Mal schauen wie groß libfreetype wird und ob man die noch optimieren kann.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Patch aktualisiert, nach dem Deaktivieren weiterer, scheinbar nichtGetAway hat geschrieben:libfreetype.so.6 wird dabei 362,3KB groß
genutzter Optionen, ist die Datei nur noch 266 KB groß,
flash-neutrino-jffs2_lzma-2x erfolgreich getestet.
PS: To-Do: Test mit Enigma und fx2-plugins
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: Dbox2-Images mit gcc 4.1.2
Das hört sich sehr gut an. Gibt es dieses Optimierungspotential
auch für FT 2.1.4 und gcc3? Bis jetzt lief ein mit gcc3 und FT214
gebautes Tetris auch in einem gcc4 mit FT2.3.x + letzten Patch
gebautem Yadd.
auch für FT 2.1.4 und gcc3? Bis jetzt lief ein mit gcc3 und FT214
gebautes Tetris auch in einem gcc4 mit FT2.3.x + letzten Patch
gebautem Yadd.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Möglicherweise, andererseits tendiere ich unter den gegebenen UmständenGetAway hat geschrieben:Gibt es dieses Optimierungspotential auch für FT 2.1.4 und gcc3?
derzeit eher dazu, FT 2.3.12 für die dBox2 zum Standard zu machen,
unabhängig von der compiler-Version. Einwände?
PS: libfreetype.so.6 mit meinem letzten Patch in einem gcc3-Image ist noch 270KB groß.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Folgender Patch behebt compile-Fehler mit gcc-4.4: EDIT: Patch ist im CVS
yadd-neutrino, kompiliert mit kernel 2.6, gcc-4.4.7 und eglibc-2.15 funktioniert hier
bereits, mehr dazu später, da noch einige Probleme mit mklibs und U-Boot/flash zu
beheben sind.
@seife: Könntest Du bitte insbesondere einen Blick auf die Fixes in
apps/tuxbox/tools/hotplug/hotplug.c werfen?
PS: Warum nicht gcc > 4.4.x? => http://article.gmane.org/gmane.comp.boo ... boot/98460
yadd-neutrino, kompiliert mit kernel 2.6, gcc-4.4.7 und eglibc-2.15 funktioniert hier
bereits, mehr dazu später, da noch einige Probleme mit mklibs und U-Boot/flash zu
beheben sind.
@seife: Könntest Du bitte insbesondere einen Blick auf die Fixes in
apps/tuxbox/tools/hotplug/hotplug.c werfen?
PS: Warum nicht gcc > 4.4.x? => http://article.gmane.org/gmane.comp.boo ... boot/98460
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Dbox2-Images mit gcc 4.1.2
Eine generelle Anmerkung:
* einen Returnwert zwar zuzuweisen aber dann nicht zu benutzen wird die nächste compilerversion (4.6, spätestens 4.7) dann anmeckern: "variable is set but not used". => Wenn das Ergebnis eh nicht gecheckt wird, dann einfach nach void casten: "(void)write(fd, buf, count);"
* die anderen Sachen in hotplug sehen OK aus, das war der übliche strncat-Fehler
* einen Returnwert zwar zuzuweisen aber dann nicht zu benutzen wird die nächste compilerversion (4.6, spätestens 4.7) dann anmeckern: "variable is set but not used". => Wenn das Ergebnis eh nicht gecheckt wird, dann einfach nach void casten: "(void)write(fd, buf, count);"
* die anderen Sachen in hotplug sehen OK aus, das war der übliche strncat-Fehler
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Nach compile-Lauf mit gcc-4.7.0 habe ich folgenden Patch committed, ein gcc-4.1.2-Image läuft weiterhin:seife hat geschrieben:* einen Returnwert zwar zuzuweisen aber dann nicht zu benutzen wird die nächste compilerversion (4.6, spätestens 4.7) dann anmeckern: "variable is set but not used".
http://article.gmane.org/gmane.comp.vid ... x.scm/3336
http://article.gmane.org/gmane.comp.vid ... x.scm/3337
http://article.gmane.org/gmane.comp.vid ... x.scm/3338
http://article.gmane.org/gmane.comp.vid ... x.scm/3339
http://article.gmane.org/gmane.comp.vid ... x.scm/3340
http://article.gmane.org/gmane.comp.vid ... x.scm/3341
http://article.gmane.org/gmane.comp.vid ... x.scm/3342
http://article.gmane.org/gmane.comp.vid ... x.scm/3343
http://article.gmane.org/gmane.comp.vid ... x.scm/3344
http://article.gmane.org/gmane.comp.vid ... x.scm/3345
http://article.gmane.org/gmane.comp.vid ... x.scm/3346
http://article.gmane.org/gmane.comp.vid ... x.scm/3347
http://article.gmane.org/gmane.comp.vid ... x.scm/3348
http://article.gmane.org/gmane.comp.vid ... x.scm/3349
http://article.gmane.org/gmane.comp.vid ... x.scm/3350
http://article.gmane.org/gmane.comp.vid ... x.scm/3351
http://article.gmane.org/gmane.comp.vid ... x.scm/3352
http://article.gmane.org/gmane.comp.vid ... x.scm/3353
http://article.gmane.org/gmane.comp.vid ... x.scm/3354
http://article.gmane.org/gmane.comp.vid ... x.scm/3355
http://article.gmane.org/gmane.comp.vid ... x.scm/3356
http://article.gmane.org/gmane.comp.vid ... x.scm/3357
http://article.gmane.org/gmane.comp.vid ... x.scm/3358
http://article.gmane.org/gmane.comp.vid ... x.scm/3359
http://article.gmane.org/gmane.comp.vid ... x.scm/3360
http://article.gmane.org/gmane.comp.vid ... x.scm/3361
http://article.gmane.org/gmane.comp.vid ... x.scm/3362
Re: Dbox2-Images mit gcc 4.1.2
Hi,
auf meinen Boxen läuft es mittlerweile garnicht mehr.
Nicht nur segfaults sondern auch in der Menü-Steuerung geht eigentlich "nichts" mehr.
Eigentlich "schade" ...
MfG
auf meinen Boxen läuft es mittlerweile garnicht mehr.
Nicht nur segfaults sondern auch in der Menü-Steuerung geht eigentlich "nichts" mehr.
Eigentlich "schade" ...
MfG
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Könntest Du das bitte etwas genauer beschreiben?Mourice hat geschrieben:mittlerweile
Re: Dbox2-Images mit gcc 4.1.2
Hi,rhabarber1848 hat geschrieben:Könntest Du das bitte etwas genauer beschreiben?Mourice hat geschrieben:mittlerweile
letzter "akzeptabler" Stand, der auch bei mir selber läuft ist vom 12.02.2012.
Mehr kann ich momentan leider nicht sagen, da im Moment soviele "Bäume" hier rumstehen, dass ich den Wald nicht mehr sehe.
(von "den Anderen" habe ich leider keine Rückmeldungen, sodass vielleicht auch der Stand vom 02.04.2012 auf der einen oder anderen Box noch sauber läuft - bei mir leider auch nicht mehr)
MfG
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Dbox2-Images mit gcc 4.1.2
Änderungen seitdem umfassen u.a. die hardware sections.Mourice hat geschrieben:letzter "akzeptabler" Stand, der auch bei mir selber läuft ist vom 12.02.2012.