News:

Rule #1 - Be Patient - Rule #2 - Don't ask when, if you don't contribute - Rule #3 - You have coding skills - LinuxMCE's small brother is available: http://www.agocontrol.com

Main Menu

VDR Plugins How-to?

Started by gazlang, May 27, 2008, 12:11:51 PM

Previous topic - Next topic

gazlang

Hi,

I want to get some plugins for VDR running on x64 LMCE, one of which is the lcdproc plugin. I am not 100% on what I should do to compile plugins in LMCE.

I have read this how-to http://smart-home-blog.com/writes/configure-imon-padvfd-in-plutohome but don't really understand what the VDR sources are, where the "<your_vdr_src_dir>/PLUGINS/src" is, or whether I need to patch the plugin sources as well.

I also notice that the link for the x64 pre-built deb package is no longer available, so can't do it the easy way :-)

I would be greatful if someone could give me a comprehensive step by step on this.

Cheers
AMD Athlon 5800+ X2
Asus M2N-SLI-Deluxe
2x Corsair XMS6400 DDR2 512mb
Samsung 400GB SATA + 500GB SATA
nVidia GeForce 7300GT
Hauppauge Nova-T 500
Hauppauge PVR-500
Thermaltake low-noise 450w PSU
Thermaltake Bach Case w/ imon vfd
Fiire Remote
UIRT

nite_man

gazlang, when I built LCD VDR plugin I just downloaded VDR 1.4.7, installed VDR headers from LinuxMCE and used them to compile the plugin. I'll fix the link tonight. So, you'll be able to download plugin's package. But note that for the latest LinuxMCE version you should use VDR 1.6.0 not 1.4.7.
Michael Stepanov,
My setup: [url="http://wiki.linuxmce.org/index.php/User:Nite_man#New_setup"]http://wiki.linuxmce.org/index.php/User:Nite_man#New_setup[/url]
Russian LinuxMCE community: [url="http://linuxmce.ru"]http://linuxmce.ru[/url]

gazlang

Cheers niteman.


I assume VDR headers is vdr-dev, but how do I use this to build a plugin??
And also, I assume I just download VDR 1.6.0 and NOT attempt to make / install, but just extract it and put the plugin into the PLUGIN folder and run make plugins?

If I just download and run the .deb package (if you fix it) do I need to Download VDR and headers?

--Obviosly completely new to VDR and plugins :) --
AMD Athlon 5800+ X2
Asus M2N-SLI-Deluxe
2x Corsair XMS6400 DDR2 512mb
Samsung 400GB SATA + 500GB SATA
nVidia GeForce 7300GT
Hauppauge Nova-T 500
Hauppauge PVR-500
Thermaltake low-noise 450w PSU
Thermaltake Bach Case w/ imon vfd
Fiire Remote
UIRT

nite_man

Well, I refreshed my memory a bit and found the way how I built plug-ins. I installed vdr-dev contained patched headers from LinuxMCE. Then I downloaded from Ubuntu repository sources of desired plug-in (vdr-lcdproc, in my case). Unpacked them and built deb package using dpkg-buildpackage -rfakeroot. That's it.

I prefer to use deb package because it'll be much easily to install it on others PC.

Hope it helped you.
Michael Stepanov,
My setup: [url="http://wiki.linuxmce.org/index.php/User:Nite_man#New_setup"]http://wiki.linuxmce.org/index.php/User:Nite_man#New_setup[/url]
Russian LinuxMCE community: [url="http://linuxmce.ru"]http://linuxmce.ru[/url]

gazlang

So do I just:

sudo apt-get install vdr-dev

Then download and untar the vdr-lcdproc-plugin

enter the vdr-lcdproc-plugin directory and run

dpkg-buildpackage -rfakeroot


AMD Athlon 5800+ X2
Asus M2N-SLI-Deluxe
2x Corsair XMS6400 DDR2 512mb
Samsung 400GB SATA + 500GB SATA
nVidia GeForce 7300GT
Hauppauge Nova-T 500
Hauppauge PVR-500
Thermaltake low-noise 450w PSU
Thermaltake Bach Case w/ imon vfd
Fiire Remote
UIRT

nite_man

Before run dpkg-buildpackage -rfakeroot you should apply ubuntu patch - <some_package_name.diff>. It can be found in the source section:

patch -p1 < ../vdr-plugin-<plugin_name>.diff

Note: you should be in the plugin directory. After applying the patch the new directory will be created there - debian. It contains package definitions. Also you should change node of file debian/rules to make it executable.
Michael Stepanov,
My setup: [url="http://wiki.linuxmce.org/index.php/User:Nite_man#New_setup"]http://wiki.linuxmce.org/index.php/User:Nite_man#New_setup[/url]
Russian LinuxMCE community: [url="http://linuxmce.ru"]http://linuxmce.ru[/url]

gazlang

Cheers,

I got as far as building the package, but it failed on a dependency - which I guess is lcdproc (even though I have lcdproc installed from source)

I guess it is lcdproc as I downloaded a pre-built lcdproc-plugin.deb from ubuntu and that too required installation of lcdproc. After installing the .deb successfully (and adding another lcdproc) I restarted vdr and had the message:
QuoteWARNING: The following plugins have been left out due to possible binary incompatibility: lcdproc.
I uninstalled the plugin and tried installing it following these instructions:
QuoteDownload and untar somewhere appropriate version of VDR sources (1.4.7 in case of LinuxMCE)
Download the latest version of vdr-lcdproc plug-in
Untar it into <your_vdr_src_dir>/PLUGINS/src and make a symlink - ln -s lcdproc-0.0.10-jw2 lcdproc
Build plug-in: make plugins. Note, for AMD64 you should add option -fPIC to the CXXFLAGS into lcdproc Makefile. Otherwise you’ll get this error:
/usr/bin/ld: lcdproc.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
lcdproc.o: could not read symbols: Bad value
Copy <your_vdr_src_dir>/PLUGINS/lib/libvdr-lcdproc.so.1.4.5 to the /usr/lib/vdr/plugins
Add a new config file plugin.lcdproc.conf into /etc/vdr/plugins and put there following options:
-h 127.0.0.1
-p 13666

restarted vdr, and get the same message - lcdproc plugin left out!

Any ideas?
AMD Athlon 5800+ X2
Asus M2N-SLI-Deluxe
2x Corsair XMS6400 DDR2 512mb
Samsung 400GB SATA + 500GB SATA
nVidia GeForce 7300GT
Hauppauge Nova-T 500
Hauppauge PVR-500
Thermaltake low-noise 450w PSU
Thermaltake Bach Case w/ imon vfd
Fiire Remote
UIRT

nite_man

Ok, let's start from the beginning:
1. Download vdr-plugin-lcdproc from the Ubuntu site - http://tinyurl.com/5qngff. Actually it's sources from hardy but I think it should be ok for gutsy as well.
2. Download Ubuntu patch - http://tinyurl.com/3khrdk.
3. Install vdr-dev from LinuxMCE - apt-get install vdr-dev.
4. Untar vdr-plugin-lcdproc somewhere.
5. Goto vdr-plugin-lcdproc directory.
6. Unzip Ubuntu patch somewhere.
7. Apply Ubuntu patch to the vdr-plugin-lcdproc: patch -p1 < path_to_ubuntu_patch_file. Note: you should be inside vdr-plugin-lcdproc directory.
8. Find and replace hardy by gutsy in the created by patch directory debian.
9. Change mode of file debian/rules - chmod +x debian/rules.
10. Build your package - dpkg-buildpackage -rfakeroot. If you'll get that error - Note, for AMD64 you should add option -fPIC to the CXXFLAGS into lcdproc Makefile ... just add option -fPIC to theCXXFLAGS in the  Makefile and run dpkg-buildpackage -rfakeroot again.
11. As result you should get an Ubuntu package and its service files outside vdr-plugin-lcdproc directory.
12. Install built package and restart vdr.
Michael Stepanov,
My setup: [url="http://wiki.linuxmce.org/index.php/User:Nite_man#New_setup"]http://wiki.linuxmce.org/index.php/User:Nite_man#New_setup[/url]
Russian LinuxMCE community: [url="http://linuxmce.ru"]http://linuxmce.ru[/url]

gazlang

Cheers nite_man, worked like a charm.
Adding the -fPIC option to the makefile results in an error as the deb adds a patch to change this (and fails if it has already changed).
I also removed the lcdproc dependancy from /debian/control before running dpkg... (don't know why it can't detect my lcd-proc!)

Anyway, thanks again
AMD Athlon 5800+ X2
Asus M2N-SLI-Deluxe
2x Corsair XMS6400 DDR2 512mb
Samsung 400GB SATA + 500GB SATA
nVidia GeForce 7300GT
Hauppauge Nova-T 500
Hauppauge PVR-500
Thermaltake low-noise 450w PSU
Thermaltake Bach Case w/ imon vfd
Fiire Remote
UIRT