Also hast du da noch nen kleinen Bug gefunden, du scheinst da Talent im Bugfinden zu haben
.. und du hast Talent diese schnell zu lösen!
Also hast du da noch nen kleinen Bug gefunden, du scheinst da Talent im Bugfinden zu haben
.. und du hast Talent diese schnell zu lösen!
Ich bin gerade dabei, die jüngsten Erkenntnisse einzuarbeiten und werde dann einen entsprechenden Patch hier posten.
Ich weiß nicht, ob die jüngsten Erkentnisse vollständig sind.
Aus irgendwelchen Gründen muß ich immer in dvbdevice.h 'typedef unsigned char __u8;' einfügen. Des weiteren scheint das Makefile nicht in der Lage zu sein, die aktuelle Kernel-Configuration zu finden. Ich muß immer dafür sorgen, daß die korrekte compiler.h gefunden wird. Meine Kernel werden alle mit der Option O=/my-kernel-build-dir gebaut.
Aktuell definiere ich in make.config DVBDIR=/usr/src/media_build_experimental/linux. In /usr/src/media_build_experimental/linux/include/linux muß ich zwei Links setzen:
dvb -> ../uapi/linux/dvb
compiler.h -> /usr/src/linux-3.6.11/include/linux/compiler.h
Das ich dem VDR mitteilen muß, wo neuere Include-Files für DVB liegen, ist klar. Die aktuelle Kernelkonfiguration (compiler.h) sollte er aber selber finden. Warum ich den Patch für __u8 benötige, ist mir auch nicht wirklich klar.
Gruß
e9hack
Alles anzeigen
Ich weiß nicht, ob die jüngsten Erkentnisse vollständig sind.
Aus irgendwelchen Gründen muß ich immer in dvbdevice.h 'typedef unsigned char __u8;' einfügen. Des weiteren scheint das Makefile nicht in der Lage zu sein, die aktuelle Kernel-Configuration zu finden. Ich muß immer dafür sorgen, daß die korrekte compiler.h gefunden wird. Meine Kernel werden alle mit der Option O=/my-kernel-build-dir gebaut.
Aktuell definiere ich in make.config DVBDIR=/usr/src/media_build_experimental/linux. In /usr/src/media_build_experimental/linux/include/linux muß ich zwei Links setzen:
dvb -> ../uapi/linux/dvb
compiler.h -> /usr/src/linux-3.6.11/include/linux/compiler.h
Lies mal, was ich vorhin im media_build_experimental Thread geschrieben habe.
Zitat
Das ich dem VDR mitteilen muß, wo neuere Include-Files für DVB liegen, ist klar. Die aktuelle Kernelkonfiguration (compiler.h) sollte er aber selber finden. Warum ich den Patch für __u8 benötige, ist mir auch nicht wirklich klar.
Seit geraumer Zeit ergänze ich in Make.config CXXFLAGS um
Dann braucht man nichts zu patchen.
CU
Oliver
Lies mal, was ich vorhin im media_build_experimental Thread geschrieben habe.
Das hilft mir für die DVB-Header aber nicht für compiler.h.
Ich würde mir wünschen, daß endgültig mal die Basic's bezüglich include-Files und Diretories in den Makefiles des VDR gerichtet werden würden.
Zitat
Schön und warum wird das nicht einfach in den Makefiles vom VDR gerichtet?
@Klaus:
Du hast jetzt mehr Geschäft
Gruß
e9hack
Das hilft mir für die DVB-Header aber nicht für compiler.h.
Afaik gibt es compiler.h nicht außerhalb des Kernels.
Bei media_build_experimental könnte ich eine Dummy-Datei unter .../uapi/linux/compiler.h anlegen.
Bisher hatte ich bei einem neuen System einmalig "touch /usr/include/linux/compiler.h" gamacht, und alle waren glücklich.
ZitatSchön und warum wird das nicht einfach in den Makefiles vom VDR gerichtet?
Dann aber höchstens in Make.config. Siehe meine Lösung.
Von Haus aus kompiliert VDR problemlos gegen /usr/include/..., alles andere - inkl. Workarounds für Kernel-Interna - muß konfiguriert werden.
CU
Oliver
Das hilft mir für die DVB-Header aber nicht für compiler.h.
Ich würde mir wünschen, daß endgültig mal die Basic's bezüglich include-Files und Diretories in den Makefiles des VDR gerichtet werden würden.
Was genau müsste denn da "gerichtet" werden?
Ich benutze immer den Treiber von UFO, und wenn ich den baue dann mache ich da
weil ich irgendwann mal bemerkt habe, daß das anscheinend notwendig ist.
Zitat
Schön und warum wird das nicht einfach in den Makefiles vom VDR gerichtet?
Siehe UFOs Antwort:
"Von Haus aus kompiliert VDR problemlos gegen /usr/include/..., alles andere - inkl. Workarounds für Kernel-Interna - muß konfiguriert werden."
Zitat
@Klaus:
Du hast jetzt mehr Geschäft
???
Klaus
Was ich auch irgendwie merkwürdig finde, ein einfaches 'make' erzeugt den Vdr und Plugins, ein 'make clean' räumt aber die Plugins nicht mit auf. Auch wenn ich dvb-Header, compiler.h und __u8 setzte, hagelt es Fehlermeldungen:
dvbdevice.h:18:2: error: #error VDR requires Linux DVB driver API version 5.3 or higher!
In file included from menuitems.h:14,
from menu.h:18,
from skinsttng.c:17:
dvbdevice.h:18:2: error: #error VDR requires Linux DVB driver API version 5.3 or higher!
In file included from menuitems.h:14,
from menu.h:18,
from svdrp.c:35:
dvbdevice.h:18:2: error: #error VDR requires Linux DVB driver API version 5.3 or higher!
In file included from vdr.c:45:
dvbdevice.h:18:2: error: #error VDR requires Linux DVB driver API version 5.3 or higher!
make: *** Datei ».dependencies« wird gelöscht
g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include -Werror=overloaded-virtual -Wno-parentheses -fPIC -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/video\" -DCONFDIR=\"\" -DCACHEDIR=\"\" -DRESDIR=\"\" -DPLUGINDIR=\"/usr/src/vdr-1.7.34/PLUGINS/lib\" -DLOCDIR=\"/usr/src/vdr-1.7.34/locale\" -I/usr/include/freetype2 audio.c
Alles anzeigen
Eine leere compiler.h reicht bei mir nicht. Verwendeter Kernel ist 3.6.11.
Und jetzt wird es richtig merkwürdig. Es werden Header von der letzten installierten Vdr-Version verwendet:
*** Plugin status:
In file included from /usr/local/include/vdr/menuitems.h:14,
from /usr/local/include/vdr/plugin.h:14,
from status.c:9:
/usr/local/include/vdr/dvbdevice.h:19:2: error: #error VDR requires Linux DVB driver API version 5.4 or higher!
g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include -Werror=overloaded-virtual -Wno-parentheses -fPIC -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34/include -c -DPLUGIN_NAME_I18N='"status"' status.c
g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include -Werror=overloaded-virtual -Wno-parentheses -fPIC -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34/include -shared status.o -o libvdr-status.so
install -D libvdr-status.so /usr/src/vdr-1.7.34/PLUGINS/lib/libvdr-status.so.1.7.34
Funktioniert das Plugin jetzt oder nicht? Bei status ist die DVB-Version vermutlich egal.
Gruß
e9hack
...
Eine leere compiler.h reicht bei mir nicht. Verwendeter Kernel ist 3.6.11.
Es hat ja auch niemand behauptet, daß eine *leere* compiler.h reichen würde.
ZitatAlles anzeigen
Und jetzt wird es richtig merkwürdig. Es werden Header von der letzten installierten Vdr-Version verwendet:
[code]*** Plugin status:
In file included from /usr/local/include/vdr/menuitems.h:14,
from /usr/local/include/vdr/plugin.h:14,
from status.c:9:
/usr/local/include/vdr/dvbdevice.h:19:2: error: #error VDR requires Linux DVB driver API version 5.4 or higher!
Da frage ich mich allerdings, welche VDR-Version du verwendest!?
Eine Abfrage auf "API version 5.4" hat es bisher nie gegeben. Das Höchste, was bisher abgefragt wurde, war 5.3.
Klaus
Da frage ich mich allerdings, welche VDR-Version du verwendest!?
Eine Abfrage auf "API version 5.4" hat es bisher nie gegeben. Das Höchste, was bisher abgefragt wurde, war 5.3.
5.4 habe ich in die Error-Meldung der dvbdevice.h unter /usr/local/include/vdr eingetragen, um zu sehen welche tatsächlich verwendet wird (wenn ohne Pfadangabe). Ansonsten ist es 1.7.34 ohne weitere zusätzliche Plugins, aber mit folgenden Änderungen:
vdr:/usr/src/vdr-1.7.34 # diff -u Make.config.template Make.config
--- Make.config.template 2012-12-22 11:54:47.000000000 +0100
+++ Make.config 2012-12-28 10:37:09.667341658 +0100
@@ -19,6 +19,8 @@
CFLAGS += -fPIC
CXXFLAGS += -fPIC
+CXXFLAGS += -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t
+
# Use 'make M32=1 ...' to build a 32-bit version of VDR on a 64-bit machine:
ifdef M32
CFLAGS += -m32
@@ -28,7 +30,7 @@
### The directory environment:
PREFIX = /usr/local
-#DVBDIR = /usr/src/v4l-dvb/linux
+DVBDIR = /usr/src/media_build_experimental/linux
MANDIR = $(PREFIX)/man
BINDIR = $(PREFIX)/bin
@@ -60,6 +62,6 @@
### You don't need to touch the following:
-ifdef DVBDIR
-INCLUDES += -I$(DVBDIR)/include
-endif
+#ifdef DVBDIR
+#INCLUDES += -I$(DVBDIR)/include
+#endif
vdr:/usr/src/vdr-1.7.34 # diff -u Makefile.save Makefile
--- Makefile.save 2012-12-23 12:28:13.000000000 +0100
+++ Makefile 2012-12-28 10:34:04.788825649 +0100
@@ -49,6 +49,10 @@
-include Make.config
+ifdef DVBDIR
+CFLAGS += -I$(DVBDIR)/include
+endif
+
SILIB = $(LSIDIR)/libsi.a
OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o dvbci.o\
Alles anzeigen
Der auskomentierte Block am Ende von Make.config scheint für die 5.3 Fehlermeldungen am Anfang verantwortlich zu sein. Wenn aktiv, werden weiterhin falsche Header-Files für Plugins verwendet.
Unter /usr/src/media_build_experimental/linux/include/linux habe ich noch zwei Links:
dvb -> ../uapi/linux/dvb
compliler.h -> /usr/src/linux-3.6.11/include/linux/compiler.h
Gruß
e9hack
Ich bin gerade dabei, die jüngsten Erkenntnisse einzuarbeiten und werde dann einen entsprechenden Patch hier posten.
Anbei mal der aktuelle Stand, soweit es die Makefile-Sachen betrifft.
Hoffentlich glättet das die Wogen wieder etwas...
Klaus
Anbei mal der aktuelle Stand, soweit es die Makefile-Sachen betrifft.
Irgendwas stimmt beim Erzeugen der Dependency-Files nicht. Es werden andere Include-Optionen als beim Compilieren gesetzt. Da das DVB-Directory an CFLAGS angehängt wird, sollte man CFLAGS auch für die Dependency-Files verwenden.
Gruß
e9hack
Wie ich schon weiter oben schrieb, hat sich die Directory-Struktur geändert. Du solltest also vor einem "make install" den alten media-Zweig unter /lib/modules/... wegräumen, damit sicher die aktuelle Version (und nur diese) geladen wird.
Eine andere Möglichkeit wären evtl. noch falsche Plugin-Einstellungen. Was steht in setup.conf bzgl. dvbhhddevice?
CU
Oliver
Hier ein Logauszug mit den VDR-relevanten Meldungen (also auch imon touch, DVB-Treiber etc.):
[ 12.491111] WARNING: You are using an experimental version of the media stack.
[ 12.491112] As the driver is backported to an older kernel, it doesn't offer
[ 12.491113] enough quality for its usage in production.
[ 12.491114] Use it with care.
[ 12.491115] Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
[ 12.491116] 8b2aea7878f64814544d0527c659011949d52358 [media] em28xx: prefer bulk mode on webcams
[ 12.491116] a3efa1cc0e067675ffa2d2c357cbe1da0db4653b [media] em28xx: make the logs reflect the specific chip name
[ 12.491117] aa51496b21542855e779a78bf33384002f01acb6 [media] em28xx: display the isoc/bulk mode
[ 12.491118] experimental: 38a1c8b00478e15853bf9342509c922f144e98a2 experimental: Update to media_build 2012-12-24 - Christmas edition :-)
[ 12.491119] ngene-octopus-test: f8e6de9145a3d65737aa053253a79b42cf19456b ddbridge: Support Digital Devices Octopus CI single.
[ 12.491121] v4l-dvb-saa716x: f9ecf4091afc12b4d5dd0836ab64d520887e9593 saa716x_ff: Fix missing copy user <-> kernel space.
[ 12.492043] Initializing USB Mass Storage driver...
[ 12.492531] input: iMON Panel, Knob and Mouse(15c2:0034) as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.0/input/input11
[ 13.618079] SAA716x FF FPGA version 1.09
[ 13.645563] Registered IR keymap rc-imon-pad
[ 13.645646] input: iMON Remote (15c2:0034) as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.0/rc/rc0/input12
[ 13.645752] rc0: iMON Remote (15c2:0034) as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.0/rc/rc0
[ 13.653668] imon 7-1:1.0: iMON device (15c2:0034, intf0) on usb<7:2> initialized
[ 13.653713] input: iMON USB Touchscreen (15c2:0034) as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.0/input/input13
[ 13.653761] imon 7-1:1.1: iMON device (15c2:0034, intf1) on usb<7:2> initialized
[ 13.674148] SAA716x FF loader version 1.03
[ 14.358108] DVB: registering new adapter (SAA716x dvb adapter)
[ 14.491283] stv6110x_attach: Attaching STV6110x
[ 14.494082] SAA716x FF 0000:05:00.0: DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...
[ 14.494281] DVB: registering new adapter (SAA716x dvb adapter)
[ 14.494645] stv6110x_attach: Attaching STV6110x
[ 14.534490] SAA716x FF 0000:05:00.0: DVB: registering adapter 1 frontend 0 (STV090x Multistandard)...
[ 15.308705] SAA716x FF firmware version 0.3.9
[ 15.308788] input: TT6400 DVB IR receiver as /devices/pci0000:00/0000:00:15.1/0000:05:00.0/input/input14
Alles anzeigen
Die setup.conf enthält bezüglich dvbhddevice keinerlei einträge.
unter /lib/modules finde ich nur die Kernel-Verzeichnisse - in den entsprechenden media-Unterverzeichnissen sind Module mit Datum des letzten
make install vom media_build_experimental vorhanden.
Update:
habe mal mehrere male make distcleans gemacht und irgendwie alles aufgeräumt. Bin dann nach der Anleitung aus dem Wiki für Ubuntu vorgegangen, natürlich mit den Anpassungen für
OpenSuse. Habe also nochmals die DVb-Treiber aus dem media_build_experimental ausgecheckt, ge-clean-t, ge-make-d und installiert. So wie es - für mich als Laie - aussieht, *kann* er jetzt
nur noch die Treiber aus dem Experimental-Zweig laden (entnehme ich z.B. der Meldung beim Laden der Module). Habe in der folge auch den VDR nochmals komplett aufgeräumt.
Status jetzt: Alles was OSD angeht kein Text, Bild und Ton einwandfrei.
Alles anzeigen
Ansonsten ist es 1.7.34 ohne weitere zusätzliche Plugins, aber mit folgenden Änderungen:DiffAlles anzeigenvdr:/usr/src/vdr-1.7.34 # diff -u Make.config.template Make.config --- Make.config.template 2012-12-22 11:54:47.000000000 +0100 +++ Make.config 2012-12-28 10:37:09.667341658 +0100 @@ -19,6 +19,8 @@ CFLAGS += -fPIC CXXFLAGS += -fPIC +CXXFLAGS += -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t + # Use 'make M32=1 ...' to build a 32-bit version of VDR on a 64-bit machine: ifdef M32 CFLAGS += -m32 @@ -28,7 +30,7 @@ ### The directory environment: PREFIX = /usr/local -#DVBDIR = /usr/src/v4l-dvb/linux +DVBDIR = /usr/src/media_build_experimental/linux MANDIR = $(PREFIX)/man BINDIR = $(PREFIX)/bin @@ -60,6 +62,6 @@ ### You don't need to touch the following: -ifdef DVBDIR -INCLUDES += -I$(DVBDIR)/include -endif +#ifdef DVBDIR +#INCLUDES += -I$(DVBDIR)/include +#endif vdr:/usr/src/vdr-1.7.34 # diff -u Makefile.save Makefile --- Makefile.save 2012-12-23 12:28:13.000000000 +0100 +++ Makefile 2012-12-28 10:34:04.788825649 +0100 @@ -49,6 +49,10 @@ -include Make.config +ifdef DVBDIR +CFLAGS += -I$(DVBDIR)/include +endif + SILIB = $(LSIDIR)/libsi.a OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o dvbci.o\
Der auskomentierte Block am Ende von Make.config scheint für die 5.3 Fehlermeldungen am Anfang verantwortlich zu sein. Wenn aktiv, werden weiterhin falsche Header-Files für Plugins verwendet.
Unter /usr/src/media_build_experimental/linux/include/linux habe ich noch zwei Links:
dvb -> ../uapi/linux/dvb
compliler.h -> /usr/src/linux-3.6.11/include/linux/compiler.h
Gruß
e9hack
Du solltest Dir dringend zu Gemüte führen, was ich hier und hier geschrieben habe!
Wenn Du dies auf Deine Konfiguration überträgst, nimmt vdr den richtigen Treiber und es reicht eine leere compiler.h. Man braucht keine Symlinks, und man sieht auch sofort, wenn die falsche frontend.h genommen wird.
CU
Oliver
OK, dann nochmal:
1) Make.config erzeugen (DVBDIR und __u8 definieren)
vdr:/usr/src/vdr-1.7.34-clean # diff -u Make.config.template Make.config
--- Make.config.template 2012-12-22 11:54:47.000000000 +0100
+++ Make.config 2012-12-28 17:06:50.694132996 +0100
@@ -15,6 +15,7 @@
CXX = g++
CXXFLAGS = $(CFLAGS) -Werror=overloaded-virtual -Wno-parentheses
+CXXFLAGS += -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t
CFLAGS += -fPIC
CXXFLAGS += -fPIC
@@ -28,7 +29,7 @@
### The directory environment:
PREFIX = /usr/local
-#DVBDIR = /usr/src/v4l-dvb/linux
+DVBDIR = /usr/src/media_build_experimental/linux/include/uapi
MANDIR = $(PREFIX)/man
BINDIR = $(PREFIX)/bin
@@ -61,5 +62,5 @@
### You don't need to touch the following:
ifdef DVBDIR
-INCLUDES += -I$(DVBDIR)/include
+INCLUDES += -I$(DVBDIR)
endif
Alles anzeigen
2.) Makefile anpassen, da sonst kein Plugin compiliert werden kann:
vdr:/usr/src/vdr-1.7.34-clean # diff -u Makefile.save Makefile
--- Makefile.save 2012-12-23 12:28:13.000000000 +0100
+++ Makefile 2012-12-28 17:34:14.504106763 +0100
@@ -49,6 +49,10 @@
-include Make.config
+ifdef DVBDIR
+CFLAGS += -I$(DVBDIR)
+endif
+
SILIB = $(LSIDIR)/libsi.a
OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o dvbci.o\
Alles anzeigen
3.) Links aus media_build_experimental entfernen und leere compiler.h per 'touch /usr/include/linux/compiler.h' erzeugen.
4.) Compilieren mit folgendem Resultat:
...
*** Plugin dvbhddevice:
In file included from /usr/local/include/vdr/menuitems.h:14,
from /usr/local/include/vdr/plugin.h:14,
from dvbhddevice.c:9:
/usr/local/include/vdr/dvbdevice.h:19:2: error: #error VDR requires Linux DVB driver API version 5.4 or higher!
In file included from dvbhdffdevice.h:13,
from dvbhdffdevice.c:11:
/usr/local/include/vdr/dvbdevice.h:19:2: error: #error VDR requires Linux DVB driver API version 5.4 or higher!
In file included from /usr/local/include/vdr/menuitems.h:14,
from /usr/local/include/vdr/plugin.h:14,
from setup.h:12,
from hdffosd.c:14:
/usr/local/include/vdr/dvbdevice.h:19:2: error: #error VDR requires Linux DVB driver API version 5.4 or higher!
In file included from /usr/local/include/vdr/menuitems.h:14,
from /usr/local/include/vdr/plugin.h:14,
from menu.h:11,
from menu.c:7:
/usr/local/include/vdr/dvbdevice.h:19:2: error: #error VDR requires Linux DVB driver API version 5.4 or higher!
In file included from /usr/local/include/vdr/menuitems.h:14,
from /usr/local/include/vdr/plugin.h:14,
from setup.h:12,
from setup.c:9:
/usr/local/include/vdr/dvbdevice.h:19:2: error: #error VDR requires Linux DVB driver API version 5.4 or higher!
g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include/uapi -Werror=overloaded-virtual -Wno-parentheses -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34-clean/include -c -DPLUGIN_NAME_I18N='"dvbhddevice"' dvbhddevice.c
g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include/uapi -Werror=overloaded-virtual -Wno-parentheses -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34-clean/include -c -DPLUGIN_NAME_I18N='"dvbhddevice"' dvbhdffdevice.c
g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include/uapi -Werror=overloaded-virtual -Wno-parentheses -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34-clean/include -c -DPLUGIN_NAME_I18N='"dvbhddevice"' hdffcmd.c
g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include/uapi -Werror=overloaded-virtual -Wno-parentheses -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34-clean/include -c -DPLUGIN_NAME_I18N='"dvbhddevice"' hdffosd.c
g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include/uapi -Werror=overloaded-virtual -Wno-parentheses -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34-clean/include -c -DPLUGIN_NAME_I18N='"dvbhddevice"' menu.c
g++ -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include/uapi -Werror=overloaded-virtual -Wno-parentheses -D__user= -D__KERNEL_STRICT_NAMES= -D__u8=uint8_t -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34-clean/include -c -DPLUGIN_NAME_I18N='"dvbhddevice"' setup.c
cc -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include/uapi -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34-clean/include -c bitbuffer.c
cc -g -O3 -Wall -fPIC -I/usr/src/media_build_experimental/linux/include/uapi -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/src/vdr-1.7.34-clean/include -c hdffcmd_av.c
In file included from hdffcmd_base.h:27,
from hdffcmd_av.c:29:
/usr/src/media_build_experimental/linux/include/uapi/linux/dvb/osd.h:107: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘*’ token
/usr/src/media_build_experimental/linux/include/uapi/linux/dvb/osd.h:145: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘*’ token
/usr/src/media_build_experimental/linux/include/uapi/linux/dvb/osd.h:152: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘*’ token
hdffcmd_av.c: In function ‘HdffCmdAvSetPlayMode’:
hdffcmd_av.c:41: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:47: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetVideoPid’:
hdffcmd_av.c:60: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:68: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetAudioPid’:
hdffcmd_av.c:82: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:91: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetPcrPid’:
hdffcmd_av.c:103: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:111: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetTeletextPid’:
hdffcmd_av.c:123: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:131: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetVideoWindow’:
hdffcmd_av.c:145: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:159: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvShowStillImage’:
hdffcmd_av.c:174: error: ‘osd_raw_data_t’ has no member named ‘data_buffer’
hdffcmd_av.c:175: error: ‘osd_raw_data_t’ has no member named ‘data_length’
hdffcmd_av.c:182: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:188: error: ‘osd_raw_data_t’ has no member named ‘data_handle’
hdffcmd_av.c:189: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetDecoderInput’:
hdffcmd_av.c:202: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:208: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetDemultiplexerInput’:
hdffcmd_av.c:221: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:227: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetVideoFormat’:
hdffcmd_av.c:240: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:249: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetVideoOutputMode’:
hdffcmd_av.c:262: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:267: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetStc’:
hdffcmd_av.c:279: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:287: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvFlushBuffer’:
hdffcmd_av.c:300: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:321: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvEnableSync’:
hdffcmd_av.c:334: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:341: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetVideoSpeed’:
hdffcmd_av.c:353: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:360: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetAudioSpeed’:
hdffcmd_av.c:372: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:379: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvEnableVideoAfterStop’:
hdffcmd_av.c:392: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:398: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetAudioDelay’:
hdffcmd_av.c:410: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:415: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetAudioDownmix’:
hdffcmd_av.c:427: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:432: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetAudioChannel’:
hdffcmd_av.c:444: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:449: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
hdffcmd_av.c: In function ‘HdffCmdAvSetSyncShift’:
hdffcmd_av.c:461: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_data’
hdffcmd_av.c:468: error: ‘osd_raw_cmd_t’ has no member named ‘cmd_len’
make[2]: *** [hdffcmd_av.o] Fehler 1
make[1]: *** [libvdr-dvbhddevice.so] Fehler 2
...
*** failed plugins: dvbhddevice
make: *** [plugins] Fehler 1
Alles anzeigen
Es läßt sich mit einer leeren compiler.h nicht bauen!!
Die Fehlermeldungen 'VDR requires Linux DVB driver API version 5.4 or higher!' kommen von falsch erzeugten dependency-Dateien. Ich habe da im Text der Fehlermeldung die Version auf 5.4 erhöht.
Gruß
e9hack
kls: Wenn man wie in der Mailinglist besprochen vor die jeweilige Einstellung "export" schreibt landet diese im Plugin.
Ein zusätzliches PLGCFG ist daher nicht nötig.
In welcher Datei willst du das export?
cu
Make.config
Make.config
Die wird vom Pluginmakefile doch nicht mehr includiert. Wenn man make im Pluginverzeichnis direkt aufruft greift das also nicht.
BTW: Schön das es nun doch ein gemeinsames Pluginconfigfile gibt Das vereinfacht einiges.
cu
Anbei mal der aktuelle Stand, soweit es die Makefile-Sachen betrifft.
Hoffentlich glättet das die Wogen wieder etwas...
Ich habe probiert, VDR 1.7.34 und die mitgelieferten Plugins zusammen mit dem Patch vdr-1.7.34-makefile-2.diff zu übersetzen und installieren. Dabei ist in Make.config abweichend vom Template:
Ich gehöre also zu denen, die VDR "ins System installieren"
Dabei gibt es aber zwei Fehler:
Meiner Meinung nach dürften die Targets "all" und "install" nicht von "plugin" und "install-plugins" abhängen, da ich ja erst dann Plugins übersetzen kann, wenn die Dateien des VDR (insbesondere die Includes) installiert worden sind. Die folgenden Änderungen sorgen daher bei mir dafür, dass ein "make, make install, make plugins, make install-plugins" reibungslos funktioniert.
diff --git a/Makefile b/Makefile
index 81bf975..bfc2011 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ CDEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
# Directories:
-CWD = .
+CWD = $(shell pwd)
LSIDIR = ./libsi
DESTDIR ?=
PREFIX ?= /usr/local
@@ -101,7 +101,7 @@ RESDIRDEF = $(firstword $(RESDIR) $(CONFDIRDEF))
VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$/\1/p' config.h)
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$/\1/p' config.h)
-all: vdr i18n plugins
+all: vdr i18n
# Implicit rules:
@@ -218,7 +218,7 @@ clean-plugins:
# Install the files:
-install: install-bin install-dirs install-conf install-doc install-plugins install-i18n install-includes install-pc
+install: install-bin install-dirs install-conf install-doc install-i18n install-includes install-pc
# VDR binary:
Alles anzeigen
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!