Naja, es gibt noch nicht besonders viele Plugins mit neuem Makefile. Ulrich Eckhardt macht es so.
graphlcd (base, vdr-plugin) touchcol branch (archiv)
- wastl
- Geschlossen
-
-
Ich habe mir das Makefile von Graphlcd mal genauer angeschaut.
Dieser Block führt zu Problemen:
Bei mir ist PLGCFG undefiniert und das ist so auch erlaubt. PLGCFG ist optional
Da Makefiles nicht von oben nach unten abgearbeitet werden, wird hier VDRDIR nach ../../.. gesetztDas hat dann zur Folge, dass pkg-config fehlschlägt.
-
news (vdr-plugin-graphlcd)
- consider that both VDRDIR and PLGCFG can be empty
wie auf seite 44 bereits vorgeschlagen, werden VDRDIR und PLGCFG jetzt separat behandelt.
eine extra behandlung, dass Make.config in neueren versionen _ueberhaupt_ nicht mehr inkludiert werden kann, wird noch folgen.
getestet innerhalb v. vdr sowohl v. vdr-root aus als auch v. plugin-verzeichnis aus und von plugin-verzeichnis ausserhalb v. vdr-tree (mittels VDRDIR=<path to vdr-tree> make)ergaenzung (behandlung v. Make.config)-inkludierung:
news (vdr-plugin-graphlcd):
- disallow inclusion of Make.config when VDR >= 1.7.33
-
consider that both VDRDIR and PLGCFG can be empty
Und prompt wird das Plugin nun, keine Ahnung warum, ohne API-Suffix installiert (ja, ich verwende Gentoo, also "installiere" ich) , was dazu fuehrt das es beim Start des vdr-1.7.35 nicht mehr geladen wird...:(
-
alle aktuellen aenderungen von mir erfolgten aber unterhalb v. APIVERSION = $(call PKGCFG,apiversion).
auch das ifeq ($(strip $(APIVERSION)),) wird da kaum so hineinpfuschen, dass am ende ein leerer string heraus kommt ...
(und in dieses ifeq kommt es nur hinein, wenn im vdr.pc kein apiversion gesetzt ist oder vdr.pc nicht geladen werden kann)ich sehe da jetzt nicht wirklich irgendetwas, was da diesbez. an meinen aenderungen problematisch waere ...
aber du kannst ja ein
$(info APIVERSION $(APIVERSION))
zum debuggen an geeigneten stellen einbauen, um zu sehen, wo das apiversion verloren geht ...
-
-
Zitat
Makefiles werden nicht der Reihenfolge nach abgearbeitet. Alles passiert gleichzeitig.
nur weil man einen ausgemachten bloedsinn permanent wiederholt wird er nicht wahrer ...
-
Gut, das war nur geraten. Tatsache ist das der oben zitierte Block die Ursache ist. Auskommentieren und schon funktionierts.
Irgendwie beeinflusst das bei mir dass keine CXXFLAGS beim Compiler ankommen. Ich denke das daher auch die APIVERSION verschwindet.
Dein Makefile-Wirrwarr blicke ich jetzt auf die Schnelle nicht.
Mach zwei Makefiles oder nur ein Makefile für die neuen VDR-Versionen. -
Zitat
Gut, das war nur geraten. Tatsache ist das der oben zitierte Block die Ursache ist. Auskommentieren und schon funktionierts.
denke ich mir bei der unqualifizierten aussage.
ZitatIrgendwie beeinflusst das bei mir dass keine CXXFLAGS beim Compiler
ankommen. Ich denke das daher auch die APIVERSION verschwindet.tja. was soll man dazu sagen. das leben ist ein kommen und gehen ...
wenn du das plugin ausserhalb v. vdr kompilierst, solltest du das VDRDIR=/path/to/vdr vor dem make-aufruf nicht vergessen ...
(wenn als shell bash oder sh verwendet wird).ZitatDein Makefile-Wirrwarr blicke ich jetzt auf die Schnelle nicht.
aufgrund deiner bisherigen aussagen verstehe ich jetzt, weshalb das fuer dich ein wirrwar ist ...
ZitatMach zwei Makefiles oder nur ein Makefile für die neuen VDR-Versionen.
GANZ
SICHER
NICHT!
-
wenn du das plugin ausserhalb v. vdr kompilierst, solltest du das VDRDIR=/path/to/vdr vor dem make-aufruf nicht vergessen ...
Ahh, dann ist das aber falsch herum. VDRDIR ist gesetzt wenn man innerhalb des VDRs baut. Außerhalb soll das kompilieren mit einem einfachen "make" funktionieren. -
jetzt mal zur abwechslung mit etwas logischem denken:
wie soll es funktionieren, wenn zb. das plugin in /tmp/ entpackt wird, du dann nach /tmp/vdr-graphlcd-plugin wechselst und dort dann make eingibst, ohne dass VDRDIR bekannt ist (dh. nicht als env.variable direkt gesetzt oder beim aufruf mit VDRDIR=.... mitgegeben)?
holt sich das make dann die information von einem wahrsager ab?
-
jetzt mal zur abwechslung mit etwas logischem denken:
wie soll es funktionieren, wenn zb. das plugin in /tmp/ entpackt wird, du dann nach /tmp/vdr-graphlcd-plugin wechselst und dort dann make eingibst, ohne dass VDRDIR bekannt ist (dh. nicht als env.variable direkt gesetzt oder beim aufruf mit VDRDIR=.... mitgegeben)?
holt sich das make dann die information von einem wahrsager ab?
Nein, der holt das von pkg-config, das funktioniert wirklich
Wenn man ausserhalb baut, dann ist ja das VDR Quellverzeihnis eh nicht vorhanden, dann sind nur die Header im System (d.h. das vdr-dev Packet ist installiert).
cu
-
Ein ordnungsgemäß installierter VDR legt seine Headerdateien in /usr/include/vdr ab.
Mehr als Headerdateien braucht man zum kompilieren nicht. Alle diese Verzeichnisse lassen sich über ein "call PKGCFG" abrufen.Da steht in meinem Fall das hier drin:
Code
Alles anzeigenbindir=/usr/bin mandir=/usr/share/man configdir=/var/lib/vdr videodir=/srv/vdr/video cachedir=/var/cache/vdr resdir=/usr/share/vdr libdir=/usr/lib/vdr/plugins locdir=/usr/share/locale plgcfg= apiversion=1.7.36 cflags=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -O3 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE cxxflags=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -O3 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
In meiner Make.config steht das hier:
LIBDIR ändere ich nur, weil ich (vdr4arch) in /usr/lib/vdr auch noch den shutdown-wrapper ablege. Das ändere ich aber eventuell in Zukunft. Das es dem VDR-Standard bzw. FHS-Standard folgt.
-
danke Keine_Ahnung, jetzt kommt licht ins dunkel.
werde das als zusatzbedingung einbauen beim setzen v. einem leeren VDRDIR
EDIT: bad spelling, not even once ...
-
werde das als zusatzbedienung einbauen beim setzen v. einem leeren VDRDIR
Vielen Dank. Allerdings ist VDRDIR in em Fall nicht leer sondern gar nicht definiert. -
news (vdr-plugin-graphlcd):
- Makefile: should now be compliant with 'new style make' and old vdr versions (incl. 1.4.x)
so. habe das Makefile ausgehend von einem via newplugin generiertem makefile neu erzeugt und angereichert, sodass es jetzt fuer div. vdr-versionen (neu, alt, sogar 1.4.x) brauchbar sein sollte, egal ob pkg-config das vdr.pc vom tree holt oder vom system, es werden auch auf keine dateien v. vdr mehr direkt zugegriffen und ich habe es in allen moeglichen und unmoeglichen anwendungsfaellen ausprobiert (ausg. jene, die ich uebersehen habe) ...
achtung luxusedition: ich habe sogar ein paar kommentare hineingeschrieben ...bitte testen ...
-
Hi,
ich habe nun meinen Mimo 720-S soweit, dass er die Ausgabe von GraphLCD anzeigt.
In der graphlcd.conf habe ich folgende Settings:
Code[serdisp_udlfb] Driver=serdisp Controller=framebuffer Device=out: Options=reportdamage=auto;fbdevice=/dev/fb1
Die Frage ist nun, wie bekomme ich es hin, dass auch "touch" funktoiniert?
-
protokol ausfindig machen und dazuprogrammieren
-
Makefile: should now be compliant with 'new style make' and old vdr versions (incl. 1.4.x)
Ja, jetzt passt alles. Super -
protokol ausfindig machen ...
Das würde ich evtl. noch hinbekommen.[...] und dazuprogrammieren
Das aber ganz sicher nicht.lsusb sagt:
Code
Alles anzeigenvdr01 ~ # lsusb -vvv -d 17e9:401a Bus 006 Device 004: ID 17e9:401a DisplayLink Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x17e9 DisplayLink idProduct 0x401a bcdDevice 0.07 iManufacturer 1 DisplayLink iProduct 2 nanovision MiMo iSerial 3 USM700-92120144 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 57 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 29 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 4 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered) vdr01 ~ #
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!