Newmake/HEAD für die Dreambox (erste Schritte)
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Ich finde die "driver_dream"-Lösung immer noch suboptimal (sehr vorsichtig ausgedrückt)
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Mangels Hardware möchte ich da eigentlich nicht dran,seife hat geschrieben:Ich finde die "driver_dream"-Lösung immer noch suboptimal (sehr vorsichtig ausgedrückt)
prinzipiell habe ich aber nichts dagegen, eine Änderung
im build-System ist leicht möglich.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Kompile der vorletzten Version für Dbox2 läuft durch.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Dreambox-neutrino baut im CVS eh nicht, habe ich grad gemerktrhabarber1848 hat geschrieben:Mangels Hardware möchte ich da eigentlich nicht dran,seife hat geschrieben:Ich finde die "driver_dream"-Lösung immer noch suboptimal (sehr vorsichtig ausgedrückt)
prinzipiell habe ich aber nichts dagegen, eine Änderung
im build-System ist leicht möglich.
tuxbox-add-dreambox-headers.diff
Das fügt nur die unbedingt notwendigen header hinzu. Allerdings muss in der acinclude der "detect API V1" Algorithmus etwas geändert werden. Auf die Schnelle habe ich mal einfach "Wenn nicht dbox, dann API V1" gemacht, aber mit den boxtype/boxvendor sachen lässt sich das bestimmt eleganter machen (momentan bricht es bestimmt auf i386).
Das ist zwar nicht schön, aber immer noch besser, als der /driver_dream $%!$&$§!!
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (zweiter Schritt)
Patch ist im CVS, da er für die Dbox2 keine Probleme macht.rhabarber1848 hat geschrieben: cdk2.diff
Mangels Dreambox kann ich den Patch dort nicht testen.
@seife: Deinen driver-Patch schaue ich mir noch an.
-
- Contributor
- Beiträge: 319
- Registriert: Samstag 29. Mai 2004, 18:49
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Ich bin wieder einen Schritt weiter :
Das fertige Image bootet jetzt (zumindest vom USB-Stick) und Enigma startet auch.
Der Transponderscan läuft durch und man kann danach einen Sender wählen.
Beim Wechsel auf einen anderen Sender stürzt Enigma aber noch ab .
Die nötigen Änderungen habe ich ins CVS eingecheckt.
Zu der Sache mit dem driver_dream-Verzeichnis.
Mir ist leider erst nach dem Einchecken aufgefallen, das ja nur das include-Verzeichnis benötigt wird .
Das kann dann meinetwegen wieder raus.
Ich denke nicht, das es so gut ist, die include-Verzeichnisse ins driver-Verzeichnis zu legen,
da IMHO das driver-Verzeichnis doch ziemlich DBox-spezifische Sachen enthält, oder?
dbluelle
Edit:
Hier noch das prepare-Skript mit Anpassung für die neue Boxtype/Boxmodel-Optionen
Das fertige Image bootet jetzt (zumindest vom USB-Stick) und Enigma startet auch.
Der Transponderscan läuft durch und man kann danach einen Sender wählen.
Beim Wechsel auf einen anderen Sender stürzt Enigma aber noch ab .
Die nötigen Änderungen habe ich ins CVS eingecheckt.
Zu der Sache mit dem driver_dream-Verzeichnis.
Mir ist leider erst nach dem Einchecken aufgefallen, das ja nur das include-Verzeichnis benötigt wird .
Das kann dann meinetwegen wieder raus.
Ich denke nicht, das es so gut ist, die include-Verzeichnisse ins driver-Verzeichnis zu legen,
da IMHO das driver-Verzeichnis doch ziemlich DBox-spezifische Sachen enthält, oder?
dbluelle
Edit:
Hier noch das prepare-Skript mit Anpassung für die neue Boxtype/Boxmodel-Optionen
Code: Alles auswählen
#!/bin/bash
cd .. && CURRENT_PATH=`pwd`;
cd cdk
./autogen.sh;
# boxtype dm500 dm56x0 or dm7000
TYPE=$1
if test -z "$TYPE"; then
TYPE=dm7000
fi
./configure \
--with-boxtype="dreambox" \
--with-boxmodel=$TYPE \
--with-webif=expert \
--prefix=$CURRENT_PATH/root \
--with-cvsdir=$CURRENT_PATH \
--enable-maintainer-mode \
--enable-flashrules \
--with-cpu=405 \
--with-epg=private \
--with-mhw-epg=yes \
--with-flashtool=expert \
--with-reiserfs=no \
--with-ext-flashtool=yes \
--with-enigma-debug=yes \
--enable-ide \
--enable-kernel26 \
--enable-ccache
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Die ja aber normalerweise nicht included werden. Auf der dreambox/ipbox/itgate darf eben nur "ost/xxx.h" included werden, das kann man ja evtl. abprüfen.dbluelle hat geschrieben:Zu der Sache mit dem driver_dream-Verzeichnis.
Mir ist leider erst nach dem Einchecken aufgefallen, das ja nur das include-Verzeichnis benötigt wird .
Das kann dann meinetwegen wieder raus.
Ich denke nicht, das es so gut ist, die include-Verzeichnisse ins driver-Verzeichnis zu legen,
da IMHO das driver-Verzeichnis doch ziemlich DBox-spezifische Sachen enthält, oder?
Natürlich könenn wir "driver/oldapi/xxx.h" machen, aber dann müssen wir überall den Code ändern. Das hätte ich halt vermieden.
Evtl. könnte man "driver/oldapi/ost/..." machen, und dann mit "--with-driverdir=../driver/oldapi" konfigurieren, das wäre eine Lösung, vermutlich noch nicht mal die schlechteste.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Dazu ein paar Anmerkungen bzgl. CVS HEAD:dbluelle hat geschrieben:./configure \
--with-boxtype="dreambox" aktiviert automatisch
--with-cpu=405 --enable-kernel26
Die Option --with-cpu habe ich aus CVS HEAD bereits komplett entfernt.
Diese Optionen werden von cdk/configure.ac nicht verarbeitet und
damit auch nicht an Enigma weitergegeben:
--with-epg=private \
--with-mhw-epg=yes \
--with-flashtool=expert \
--with-reiserfs=no \
--with-ext-flashtool=yes \
--with-enigma-debug=yes \
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Für mich bitte nochmal zum Mitschreiben,seife hat geschrieben:Die ja aber normalerweise nicht included werden. Auf der dreambox/ipbox/itgate darf eben nur "ost/xxx.h" included werden, das kann man ja evtl. abprüfen.
da ich davon heute zum ersten Mal höre:
Ist es richtig, dass auf der Dbox2@Kernel2.4
driver/dvb/include/linux/dvb/*
genutzt werden müssen, auf den anderen Boxen stattdessen
driver/include/ost/* ?
Wäre es dann nicht möglich, den --with-dvbincludes-Mechanismus
auch auf Neutrino auszudehnen?
Dazu noch eine Frage:
http://cvs.tuxbox-cvs.sourceforge.net/c ... r2=1.1.2.7
Liefert Kernel 2.6@Dbox2 korrekte DVB-Header mit oder warum
wird hier auf $(targetprefix)/include zurückgegriffen?
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Default (neue Treiber, dbox egal mit welchem Kernel, PC,...) ist include/linux/dvb
Dream/IPbox brauchen include/ost
Das Problem ist, dass in acinclude.m4 das alleinige Vorhandensein von include/ost dafür sorgt, dass "API=1" gesetzt wrid.
Wenn wir nun einfach anhand des boxtypes API auf 1 setzen, dann können wir einfach include/ost auch in das "normale" driver/include-Verzeichnis kopieren.
Allerdings wird dann bei Fehlern (ein #ifdef HAVE_DVB_API_VERSION falsch / vergessen) kein Compilerfehler auftreten (die includes sind ja alle da), das gibt dann zur Laufzeit schwer debugbare Fehler.
Wenn wir stattdessen "driver/oldapi/include/ost" oder "driver/oldapi/ost" machen und dann "--with-driverdir=../driver/oldapi", dann schlägt schon das kompilieren fehl, was ich persönlich bevorzuge. Ich versuche mal, meinen Patch entsprechend zu aktualisieren.
Das "--with-dvbincludes" wird nicht wirklich benutzt wenn ich mich recht erinnere, da habe ich mich zu TD-port-Zeiten schon mal drüber gewundert.
Dream/IPbox brauchen include/ost
Das Problem ist, dass in acinclude.m4 das alleinige Vorhandensein von include/ost dafür sorgt, dass "API=1" gesetzt wrid.
Wenn wir nun einfach anhand des boxtypes API auf 1 setzen, dann können wir einfach include/ost auch in das "normale" driver/include-Verzeichnis kopieren.
Allerdings wird dann bei Fehlern (ein #ifdef HAVE_DVB_API_VERSION falsch / vergessen) kein Compilerfehler auftreten (die includes sind ja alle da), das gibt dann zur Laufzeit schwer debugbare Fehler.
Wenn wir stattdessen "driver/oldapi/include/ost" oder "driver/oldapi/ost" machen und dann "--with-driverdir=../driver/oldapi", dann schlägt schon das kompilieren fehl, was ich persönlich bevorzuge. Ich versuche mal, meinen Patch entsprechend zu aktualisieren.
Das "--with-dvbincludes" wird nicht wirklich benutzt wenn ich mich recht erinnere, da habe ich mich zu TD-port-Zeiten schon mal drüber gewundert.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
ich habe tuxbox-add-dreambox-headers.diff mal updated. Jetzt driver/oldapi/include und es baut (ich habs noch nicht probiert, aber ich habe mir das Kompilieren ausführlich angeschaut und bin mir ziemlich sicher, dass die richtigen Sachen genommen werden).
Das einzige, was nicht funktionieren wird (auf der dream), ist das "outdoor"-Plugin, das wird aber sowieso nicht gebaut, vermutlich weil es eh nicht funktioniert.
Die treiber für 2.6 sind ja etwas neuer als die für 2.4, insofern vermute ich, dass die mit dem Kernel mitgelieferten Header da passen sollten.
Zusätzlich zu meinem diff muss im cdk/makefile noch sowas in der Art gemacht werden (abhängig vom boxtype):
Diskutieren könnte man noch, ob man $(driverdir)/oldapi/include oder nur $(driverdir)/oldapi macht.
Edit: das dummy-Makefile im Diff ist überflüssig, das war aus einem früheren Versuch.
Das einzige, was nicht funktionieren wird (auf der dream), ist das "outdoor"-Plugin, das wird aber sowieso nicht gebaut, vermutlich weil es eh nicht funktioniert.
Die treiber für 2.6 sind ja etwas neuer als die für 2.4, insofern vermute ich, dass die mit dem Kernel mitgelieferten Header da passen sollten.
Zusätzlich zu meinem diff muss im cdk/makefile noch sowas in der Art gemacht werden (abhängig vom boxtype):
Code: Alles auswählen
- --with-dvbincludes=$(driverdir)/include \
+ --with-dvbincludes=$(driverdir)/oldapi/include \
Edit: das dummy-Makefile im Diff ist überflüssig, das war aus einem früheren Versuch.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Das sähe dann so aus:seife hat geschrieben:Zusätzlich zu meinem diff muss im cdk/makefile noch sowas in der Art gemacht werden (abhängig vom boxtype):Code: Alles auswählen
- --with-dvbincludes=$(driverdir)/include \ + --with-dvbincludes=$(driverdir)/oldapi/include \
Code: Alles auswählen
diff -uNr ../cvs/cdk/make/buildenv.mk ./cdk/make/buildenv.mk
--- ../cvs/cdk/make/buildenv.mk 2009-04-26 23:35:50.000000000 +0200
+++ ./cdk/make/buildenv.mk 2009-04-27 10:42:43.000000000 +0200
@@ -28,18 +28,12 @@
--with-boxtype=$(BOXTYPE) \
--with-target=cdk
if BOXTYPE_DREAMBOX
-CONFIGURE_OPTS += --with-boxmodel=$(BOXMODEL)
+CONFIGURE_OPTS += --with-boxmodel=$(BOXMODEL) \
+ --with-dvbincludes=$(driverdir)/oldapi/include
endif
if BOXTYPE_IPBOX
-CONFIGURE_OPTS += --with-boxmodel=$(BOXMODEL)
-endif
-if BOXTYPE_DREAMBOX
-CONFIGURE_OPTS += \
- --with-dvbincludes=$(driverdir)/dvb/include
-endif
-if BOXTYPE_IPBOX
-CONFIGURE_OPTS += \
- --with-dvbincludes=$(driverdir)/include
+CONFIGURE_OPTS += --with-boxmodel=$(BOXMODEL) \
+ --with-dvbincludes=$(driverdir)/oldapi/include
endif
if BOXTYPE_DBOX2
if KERNEL26
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Warum existiert satellites.xml zweimal im CVS?
cdk/root_dream/share/tuxbox/satellites.xml, 228572 Byte
apps/dvb/config/satellites.xml, 26473 Byte
cdk/root_dream/share/tuxbox/satellites.xml, 228572 Byte
apps/dvb/config/satellites.xml, 26473 Byte
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
weil enigma/dream eine andere hat als neutrino (und vermutlich auch als enigma/dbox)
In der satellites.xml (und anderen .xml) sind die rohen zahlenwerte für FEC etc. drin, und die sind driverabhängig.
Für neutrino habe ich das mal gefixt (sonst hätte die TD nochmals ne andere)
In der satellites.xml (und anderen .xml) sind die rohen zahlenwerte für FEC etc. drin, und die sind driverabhängig.
Für neutrino habe ich das mal gefixt (sonst hätte die TD nochmals ne andere)
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Ich habe mal flashtargets für neutrino gemacht. Was rauskommt sieht nicht komplett kaputt aus, ich habe es allerdings noch nicht geflashed, sondern nur per loopback-mount und chroot grob getestet.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Besteht eigentlich die Möglichkeit, Dreambox- und IPBox-Images
ohne Cramfs zu bauen? So wie ich das sehe, wird bei IPBox
U-Boot ohne Squashfs-Support, da die Dbox-Patches z.Zt.
nicht genutzt werden, gebaut, was wohl der Grund dafür
ist, dass der Kernel in einer Cramfs-Partition liegen muss.
ohne Cramfs zu bauen? So wie ich das sehe, wird bei IPBox
U-Boot ohne Squashfs-Support, da die Dbox-Patches z.Zt.
nicht genutzt werden, gebaut, was wohl der Grund dafür
ist, dass der Kernel in einer Cramfs-Partition liegen muss.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Nicht dass ich wüsste. Ich vermute dass das seltsame "OpenBios" von IBM nur von einem festen Pfad in einem cramfs booten kann. Dort könnte man natürlich auch auf der dream einen u-boot hinlegen, aber wozu? (Ok, der könnte sich sachen wie parameter für die serielle Konsole etc merken, aber das wars dann auch).
Ich flashe auf der dream praktisch immer nur das root-squashfs.img, denn am Kernel ändert sich eh nie was (autofs gibts als Modul, und sonst kann man vermutlich eh nichts grundlegendes ändern, sonst wird das head.ko nicht mehr laden)
Ein "complete.img" ist ja auch nicht "komplett" im Sinne eines dbox-Images - du hast auf der dream nie die /var/-Partition mit drin. Stattdessen wird beim ersten boot halt /var formatiert (mit eraseall) und dann /var-init.tar.gz ausgepackt. "complete.img" ist also nur kernel(cramfs)+root(squashfs).
Ich flashe auf der dream praktisch immer nur das root-squashfs.img, denn am Kernel ändert sich eh nie was (autofs gibts als Modul, und sonst kann man vermutlich eh nichts grundlegendes ändern, sonst wird das head.ko nicht mehr laden)
Ein "complete.img" ist ja auch nicht "komplett" im Sinne eines dbox-Images - du hast auf der dream nie die /var/-Partition mit drin. Stattdessen wird beim ersten boot halt /var formatiert (mit eraseall) und dann /var-init.tar.gz ausgepackt. "complete.img" ist also nur kernel(cramfs)+root(squashfs).
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Sieht gut aus, hier die vollständige Version: tuxbox-add-dreambox-headers2.diffseife hat geschrieben:ich habe tuxbox-add-dreambox-headers.diff mal updated.
BTW: Geht dieser Patch in Ordnung?
Code: Alles auswählen
--- ../cvs/apps/tuxbox/enigma/lib/dvb/edvb.cpp 2009-02-03 19:52:55.000000000 +0100
+++ ./apps/tuxbox/enigma/lib/dvb/edvb.cpp 2009-04-27 15:52:58.000000000 +0200
@@ -9,9 +9,6 @@
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
-#if HAVE_DVB_API_VERSION < 3
-#include <dbox/info.h>
-#endif
#include <algorithm>
#include <string.h>
Ohne die besagten Zeilen kompiliert der Code.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Sieht gut aus, die sachen aus dbox/info.h werden nirgends benutzt, das ist also ein "totes" include.
Wenn später auffällt, dass noch was fehlt, können wir ja noch sachen in oldapi/... hinzufügen.
Ich brauchte übrigens auch noch das:, ansonsten war HAVE_DREAMBOX_HARDWARE nicht definiert (das kommt aus dem config.h include im rcinput.h).
Keine Ahnung, warum das erst nicht auffiel...
Wenn später auffällt, dass noch was fehlt, können wir ja noch sachen in oldapi/... hinzufügen.
Ich brauchte übrigens auch noch das:
Code: Alles auswählen
Index: fx2/lib/rcinput.c
===================================================================
RCS file: /local/mirror/tuxbox-cvs/apps/tuxbox/plugins/fx2/lib/rcinput.c,v
retrieving revision 1.22
diff -u -p -r1.22 rcinput.c
--- fx2/lib/rcinput.c 17 Dec 2008 21:26:49 -0000 1.22
+++ fx2/lib/rcinput.c 27 Apr 2009 10:58:41 -0000
@@ -9,15 +9,15 @@
#include <termios.h>
#include <unistd.h>
+#include "draw.h"
+#include "rcinput.h"
+
#ifdef HAVE_DREAMBOX_HARDWARE
static int fd_is_ext = 0;
static int keyboard = 0;
static int drop = 0;
#endif
-#include "draw.h"
-#include "rcinput.h"
-
#define Debug if (debug) printf
static int fd = -1;
Keine Ahnung, warum das erst nicht auffiel...
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Patch ist im CVS, driver_dream/ nicht mehrseife hat geschrieben:Ich brauchte übrigens auch noch das:Code: Alles auswählen
Index: fx2/lib/rcinput.c
Diese Patches sind ebenfalls im CVS:
http://forum.tuxbox-cvs.sourceforge.net ... 30#p367230
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Super. Dann werde ich jetzt mutiger und versuche mal, das was rausfällt zu flashen
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
make flash-neutrino-squashfs flash-enigma-squashfs
erzeugt jeweils complete.img? Das wäre nicht gut, oder?
erzeugt jeweils complete.img? Das wäre nicht gut, oder?
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
jetzt nicht mehr
complete-neutrino.img build war kaputt, ich hatte da was vergessen...
complete-neutrino.img build war kaputt, ich hatte da was vergessen...
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Newmake/HEAD für die Dreambox (erste Schritte)
@seife:
#ifndef HAVE_DREAMBOX_HARDWARE
bedeutete bis vor kurzem, dass es sich um eine Dbox handelt.
Da dies wegen der IPBox, TD und BOXTYPE_GENERIC nicht mehr
stimmt, möchte ich vorschlagen, das in
#ifdef HAVE_DBOX_HARDWARE
abzuwandeln: dbox2_define.diff
#ifndef HAVE_DREAMBOX_HARDWARE
bedeutete bis vor kurzem, dass es sich um eine Dbox handelt.
Da dies wegen der IPBox, TD und BOXTYPE_GENERIC nicht mehr
stimmt, möchte ich vorschlagen, das in
#ifdef HAVE_DBOX_HARDWARE
abzuwandeln: dbox2_define.diff
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Newmake/HEAD für die Dreambox (erste Schritte)
Das sieht im Prinzip gut aus, allerdings zumindest der erste Hunk im zapit.cpp sollte erstmal bleiben. Da steht im Kommentar extra drin, dass es auf der dreambox nicht benötigt wird, wir sollten also andere Boxen erst mal testen.
(Wenn ich's dann in den tripleldragon-Branch merge, sehe ich auch, ob mir woanders schon Probleme mit der Logik aufgefallen sind. Die meisten dieser Stellen habe ich ja auf der TD schon mal gesehen )
(Wenn ich's dann in den tripleldragon-Branch merge, sehe ich auch, ob mir woanders schon Probleme mit der Logik aufgefallen sind. Die meisten dieser Stellen habe ich ja auf der TD schon mal gesehen )