Dbox2-Images mit gcc 4.x

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Dbox2-Images mit gcc 4.x

Beitrag von rhabarber1848 »

amiga23 hat geschrieben:powerpc-tuxbox-linux-uclibc-g++
Mit uclibc ist der Patch noch nicht getestet.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Dbox2-Images mit gcc 4.x

Beitrag von rhabarber1848 »

Aktualisierter Patch: EDIT: Patch ist im CVS

- Anmerkungen von amiga23 berücksichtigt, danke!
- binutils-2.23.51.0.1
Zum build eines gcc-4.7-Images die neue cdk/configure-Option --with-gcc47 nutzen.

Bitte testet diesen Patch nicht nur mit gcc-4.7, sondern vor allem mit gcc-3.4.6 und gcc-4.1.2,
da binutils für alle builds geändert wird. Hier funktioniert ein dBox2-Image mit allen vorgenannten
gcc-Versionen. Ich möchte den Patch gerne bis Ende des Monats committen, sofern positive
Rückmeldungen kommen.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Dbox2-Images mit gcc 4.x

Beitrag von GetAway »

rhabarber1848 hat geschrieben: Bitte testet diesen Patch nicht nur mit gcc-4.7, sondern vor allem mit gcc-3.4.6 und gcc-4.1.2,
Ein Yadd baut jeweils mit gcc-3.4.6 und gcc-4.1.2 durch,
bootet und läuft ohne Auffälligkeiten auf einer Nokia 500.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Dbox2-Images mit gcc 4.x

Beitrag von GetAway »

msrx111 hat geschrieben:Ich habe mal Enigma mit gcc4 gebaut. Und festgestellt, dass dann das laden von dboxide mit alternativem irq nicht mehr funktioniert. er meckert den Parameter irq=6 mit unknown option an......
Hi,
nachdem ich heute mal ein Flashimage mit gcc4.1.2 gebaut habe und
das IDE-Interface testen wollte, kann ich den Fehler bestätigen.
Ohne den zusätzlichen Parameter wird der Treiber geladen.

Code: Alles auswählen

Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
insmod: symbol for parameter irq6 not found
Edit:
Ein mit gcc3.4.6 gebautes dboxide Modul läuft in dem gcc4.1.2 Image. Sieht so aus,
als ob es nicht gestrippt werden darf.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Dbox2-Images mit gcc 4.x

Beitrag von rhabarber1848 »

GetAway hat geschrieben:
msrx111 hat geschrieben:Ich habe mal Enigma mit gcc4 gebaut. Und festgestellt, dass dann das laden von dboxide mit alternativem irq nicht mehr funktioniert. er meckert den Parameter irq=6 mit unknown option an......
nachdem ich heute mal ein Flashimage mit gcc4.1.2 gebaut habe und
das IDE-Interface testen wollte, kann ich den Fehler bestätigen.
kernel 2.4 oder 2.6?
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Dbox2-Images mit gcc 4.x

Beitrag von GetAway »

Kernel 2.4.

Du hattest mal ein ähnliches Problem mit zu starker Optimierung. Eventuell kann man deine damalige Lösung analog übernehmen.
http://www.tuxbox-cvs.sourceforge.net/f ... 75#p379675
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Dbox2-Images mit gcc 4.x

Beitrag von rhabarber1848 »

GetAway hat geschrieben:Kernel 2.4.

Du hattest mal ein ähnliches Problem mit zu starker Optimierung. Eventuell kann man deine damalige Lösung analog übernehmen.
http://www.tuxbox-cvs.sourceforge.net/f ... 75#p379675
rhabarber1848 hat geschrieben:Es gab noch ein Problem mit dem Zugriff auf Funktionen eines Modules
durch ein anderes: http://www.tuxbox-cvs.sourceforge.net/f ... 70#p379670
Hier geht es nur um das Modul dboxide.o, ich glaube nicht, dass die Lösung übertragbar ist.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Dbox2-Images mit gcc 4.x

Beitrag von GetAway »

Wahrscheinlich. Aber so geht's.

Code: Alles auswählen

Index: driver/ide/main.c
===================================================================
RCS file: /cvs/tuxbox/driver/ide/main.c,v
retrieving revision 1.16
diff -u -p -r1.16 main.c
--- a/driver/ide/main.c	19 Jun 2011 11:49:28 -0000	1.16
+++ b/driver/ide/main.c	28 Aug 2012 19:09:39 -0000
@@ -41,7 +41,7 @@ static uint idebase = 0;
 static struct platform_device *ide_dev;
 #else
 static int ideindex = -1;
-static int irq6 = 0;
+static int irq6;
 #endif
 
 /* address-offsets of features in the CPLD 
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Dbox2-Images mit gcc 4.x

Beitrag von rhabarber1848 »

GetAway hat geschrieben:-static int irq6 = 0;
+static int irq6;
Ich kann bestätigen, dass der Patch das Problem löst.
Ist es unkritisch, dass die Variable nicht mehr initialisiert wird?

PS: Kann der Patch für kernel 2.6 analog verwendet werden?
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Dbox2-Images mit gcc 4.x

Beitrag von GetAway »

Du kannst es auch so machen.

Code: Alles auswählen

-static int irq6 = 0;
+int irq6 = 0;
Ein vorangestelltes "static" bei einer globalen Variable heißt ja nur, dass man deren Gültigkeit auf die Quelldatei einschränkt.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Dbox2-Images mit gcc 4.x

Beitrag von seife »

static variablen müssen zumindest im Kernel-code nicht mit 0 initialisiert werden, die werden in einen speziellen ELF-Bereich gepackt, der beim starten genullt wird.

Oder so ähnlich, ist schon ne Weile her :-)

Also einfach das "= 0" weglassen sollte sowohl für 2.4 als auch 2.6 korrekt sein.
msrx111
Interessierter
Interessierter
Beiträge: 95
Registriert: Dienstag 14. Juni 2011, 17:50
Image: eigenkompilat neutrino
Image: eigenkompilat neutrino

Re: Dbox2-Images mit gcc 4.x

Beitrag von msrx111 »

GetAway hat geschrieben:
msrx111 hat geschrieben:Ich habe mal Enigma mit gcc4 gebaut. Und festgestellt, dass dann das laden von dboxide mit alternativem irq nicht mehr funktioniert. er meckert den Parameter irq=6 mit unknown option an......
Hi,
nachdem ich heute mal ein Flashimage mit gcc4.1.2 gebaut habe und
das IDE-Interface testen wollte, kann ich den Fehler bestätigen.
Ohne den zusätzlichen Parameter wird der Treiber geladen.

Code: Alles auswählen

Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
insmod: symbol for parameter irq6 not found
Edit:
Ein mit gcc3.4.6 gebautes dboxide Modul läuft in dem gcc4.1.2 Image. Sieht so aus,
als ob es nicht gestrippt werden darf.
Ich kann es ja kaum glauben, dass das jetzt doch noch jemand bestätigt. Ich bin sehr erfreut, dass da jetzt doch noch etwas passiert. :D
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Dbox2-Images mit gcc 4.x

Beitrag von rhabarber1848 »

GetAway hat geschrieben:-static int irq6 = 0;
+static int irq6;
committed:
kernel 2.4: http://article.gmane.org/gmane.comp.vid ... x.scm/3553
kernel 2.6: http://article.gmane.org/gmane.comp.vid ... x.scm/3554
felixka
Interessierter
Interessierter
Beiträge: 26
Registriert: Sonntag 5. Januar 2003, 00:47

Re: Dbox2-Images mit gcc 4.x

Beitrag von felixka »

Hi,
kann mir jemand nen Tipp geben, wie ich an eine toolchain mit gcc-4.x drankomme.
doc
Contributor
Beiträge: 1623
Registriert: Donnerstag 10. Januar 2002, 20:03

Re: Dbox2-Images mit gcc 4.x

Beitrag von doc »

http://crosstool-ng.org/
Ist wohl das praktikabelste was es aktuell so gibt. Kommt aber etwas darauf an was für Compiler für welche Plattform raus kommen soll.

Gibt aber auch Buildsysteme die Dir diese Arbeit abnehmen. :wink: Fast alle Systeme außer dbox2 Neutrino-HD_Entwicklungsumgebung -> http://gitorious.org/neutrino-hd/buildsystem-cs
Makefiles, patches etc. to build neutrino-hd for TripleDragon, AZbox ME, Fulan Spark and Coolstream (no longer really supported!) Set-Top-Boxes
Na schönen Dank Herr Schwanke!
Ein toller Sommer! :-(
felixka
Interessierter
Interessierter
Beiträge: 26
Registriert: Sonntag 5. Januar 2003, 00:47

Re: Dbox2-Images mit gcc 4.x

Beitrag von felixka »

crosstool-ng ist zu kompliziert für mich.

Aber damit hats prima geklappt:

Code: Alles auswählen

#! /bin/bash 
#
# Diese Script baut ein dbox2 cdk (toolchain) gcc-4.1.2 mit libcrypto. 
# Unter BUILDDIR angeben, wo die toolchain hin soll.
#
#----------------------------------------------
#
BUILDDIR=$HOME/toolchains/dbox2-gcc-4.1.2
#
#----------------------------------------------
DB=$BUILDDIR
CONFIG=$DB/cdk/config
export CVS_RSH=ssh
#-----------------------------------------------
mkdir "$DB" 
cd "$DB"

git clone git://git.code.sf.net/p/tuxbox-cvs/cdk cdk

cd cdk
./autogen.sh                                          
./configure --prefix="$DB" --enable-ccache --with-gcc4 --with-kernel-conf="$CONFIG"/dbox2_kernel-2.4.config.m4
make libcrypto
MastaG
Interessierter
Interessierter
Beiträge: 20
Registriert: Montag 6. Mai 2013, 11:17

Re: Dbox2-Images mit gcc 4.x

Beitrag von MastaG »

When I pass buildd with gcc4 uclibc and kernel26 the build will complete.
But it fails to boot on Sagem:

Code: Alles auswählen

init started: BusyBox v1.18.5 (2013-05-08 00:35:59 CEST)
starting pid 117, tty '': '/etc/init.d/sysinit'
[BOOT] running /etc/init.d/sysinit
/bin/makedevices
Thu Jan  1 01:00:00 UTC 1970
starting pid 144, tty '': '/etc/init.d/rcS'

Please press Enter to activate this console. starting /etc/init.d/S05drivers ...
[BOOT] running /etc/init.d/S05drivers

starting pid 145, tty '': '-/bin/sh'


BusyBox v1.18.5 (2013-05-08 00:35:59 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ # Detected STB:
        Vendor: Sagem
        Model: D-BOX2  (2 flash chips)
[   25.237974] [i2c-8xx]: mpc 8xx i2c init
[   25.300975] [i2c-8xx]: adapter: 0
[   25.855241] event: $Id: event.c,v 1.12.4.3 2007/10/09 01:04:05 carjay Exp $
[   26.522968] lcd: init lcd driver module
[   26.585782] lcd: found KS0713/SED153X lcd interface
[   27.243815] input: DBOX-2 FP IR as /devices/virtual/input/input0
[   27.382860] Oops: kernel access of bad area, sig: 11 [#1]
[   27.443444] PREEMPT
[   27.469483] NIP: c0129c30 LR: c012a760 CTR: c012a71c
[   27.528782] REGS: c1d9dd30 TRAP: 0300   Not tainted  (2.6.26.8-dbox2)
[   27.605701] MSR: 00009032 <EE,ME,IR,DR>  CR: 39000053  XER: 8000126e
[   27.681632] DAR: 0000000c, DSISR: c0000000
[   27.730538] TASK = c1c4a800[212] 'modprobe' THREAD: c1d9c000
[   27.796022] GPR00: c012a760 c1d9dde0 c1c4a800 00000000 c1d9de08 00000001 009effd5 c30555c0
[   27.895863] GPR08: 00000001 00000000 c38837c8 00000030 39000053 10080ae4 0000001c 00000033
[   27.995703] GPR16: c1da0820 c305e68c c305eb14 00000033 c305eaec 00000000 0000001e c305e590
[   28.095542] GPR24: 0000001f c305d000 00000000 c30555d0 c1d9e400 c1d29818 00000000 00000002
[   28.197455] NIP [c0129c30] i2c_transfer+0x14/0xbc
[   28.253625] LR [c012a760] i2c_master_send+0x44/0x68
[   28.311848] Call Trace:
[   28.340996] [c1d9dde0] [c305d000] 0xc305d000 (unreliable)
[   28.405471] [c1d9de00] [c012a760] i2c_master_send+0x44/0x68
[   28.472033] [c1d9de20] [c38811fc] fp_sendcmd+0x20/0x40 [dbox2_fp]
[   28.544833] [c1d9de40] [c3061150] dbox2_fp_rc_init+0xc4/0xdc [dbox2_fp_input]
[   28.630113] [c1d9de60] [c3061074] dbox2_fp_input_init+0x74/0x8c [dbox2_fp_input]
[   28.718513] [c1d9de80] [c0036ff8] sys_init_module+0x1490/0x1604
[   28.789232] [c1d9df40] [c0002660] ret_from_syscall+0x0/0x38
[   28.855764] Instruction dump:
[   28.891139] 38a5b71c 90010014 4bfd83d9 80010014 38210010 7c0803a6 4e800020 7c0802a6
[   28.983698] 9421ffe0 bf810010 90010024 7c7e1b78 <8123000c> 542b0024 80090000 7c9c2378
Unknown signal 11
[   30.107660] avia_gt_fb: $Id: avia_gt_fb_core.c,v 1.54.2.5 2007/10/09 01:03:38 carjay Exp $
[   30.203149] /home/mastag/dbox2/driver/dvb/drivers/media/dvb/avia/avia_gt.h: unsupported chipset
modprobe: can't load module avia_gt_fb (extra/dvb/drivers/media/dvb/avia/avia_gt_fb.ko): No such device
[   30.454677] avia_gt_lirc: $Id: avia_gt_lirc.c,v 1.14.4.7 2007/10/09 01:03:38 carjay Exp $
[   30.578494] Oops: kernel access of bad area, sig: 11 [#2]
[   30.639357] PREEMPT
[   30.665394] NIP: c38b6920 LR: c38b6914 CTR: 00000000
[   30.724715] REGS: c1da5d90 TRAP: 0300   Tainted: G      D    (2.6.26.8-dbox2)
[   30.809935] MSR: 00009032 <EE,ME,IR,DR>  CR: 35000039  XER: 8000126e
[   30.885866] DAR: 00000028, DSISR: c0000000
[   30.934772] TASK = c1c5ec00[227] 'modprobe' THREAD: c1da4000
[   31.000255] GPR00: 000186a0 c1da5e40 c1c5ec00 c38c1000 c38b0000 00000000 c3922a7c 00000000
[   31.100096] GPR08: ffffffff 00000000 c0210000 c000b2b4 c0266400 10080ae4 00000017 00000020
[   31.199936] GPR16: c1dd28c0 c305d9ec c305ddac 00000020 c305dd84 00000000 00000019 c305d920
[   31.299777] GPR24: 0000001a c305d000 00000000 c3885af0 c1dcf800 c1da5e68 c38c0000 fffffe00
[   31.401689] NIP [c38b6920] avia_gt_ir_register+0xcc/0x218 [avia_gt]
[   31.476579] LR [c38b6914] avia_gt_ir_register+0xc0/0x218 [avia_gt]
[   31.550403] Call Trace:
[   31.579547] [c1da5e40] [c38b68e0] avia_gt_ir_register+0x8c/0x218 [avia_gt] (unreliable)
[   31.675225] [c1da5e60] [c3063034] init_module+0x34/0xf0 [avia_gt_lirc]
[   31.753226] [c1da5e80] [c0036ff8] sys_init_module+0x1490/0x1604
[   31.823944] [c1da5f40] [c0002660] ret_from_syscall+0x0/0x38
[   31.890478] Instruction dump:
[   31.925861] 3c60c38c 3863d510 480018c9 3be0fff4 48000154 3ca00006 60a51a80 38800000
[   32.018416] 48001901 3d20c38c 8129d784 3c80c38b <a0690028> 38846e3c 4bff6a3d 2f830000
debug: DDF: Calibrating delay loop... debug: DDF: 66.76 BogoMIPS
debug: WATCHDOG RESET
Did I miss some of the patches?