hello,
i am trying to build vompclient for archlinuxarm, has anybody else done this sucessfull?
thats what i did so far:
1. install dependencies
pacman -S ffmpeg libcec-rpi imagemagick
2. checkout source from git:
git clone http://git.vomp.tv/vompclient.git
cd vompclient
git checkout 0-4-0
3. change GNUmakefile, so that all pathes show to correct locations:
INCLUDES = -DVOMP_PLATTFORM_RASPBERRY -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/usr/include/freetype2 -I/usr/include/ImageMagick-6 -I/opt/vc/include/interface/vmcs_host/linux
4. make
but i still get an error:
g++ -g -O0 -Wall -Wshadow -DDEV -D_GNU_SOURCE -DVOMP_PLATTFORM_RASPBERRY -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/usr/include/freetype2 -I/usr/include/ImageMagick-6 -I/opt/vc/include/interface/vmcs_host/linux -D__STDC_CONSTANT_MACROS -c -o remotelinux.o remotelinux.cc
remotelinux.cc: In member function 'int RemoteLinux::initCec()':
remotelinux.cc:132:34: error: invalid conversion from 'int (*)(void*, const cec_log_message&) {aka int (*)(void*, const CEC::cec_log_message&)}' to 'CEC::CBCecLogMessageType {aka int (*)(void*, CEC::cec_log_message)}' [-fpermissive]
remotelinux.cc:133:32: error: invalid conversion from 'int (*)(void*, const cec_keypress&) {aka int (*)(void*, const CEC::cec_keypress&)}' to 'CEC::CBCecKeyPressType {aka int (*)(void*, CEC::cec_keypress)}' [-fpermissive]
remotelinux.cc:134:31: error: invalid conversion from 'int (*)(void*, const cec_command&) {aka int (*)(void*, const CEC::cec_command&)}' to 'CEC::CBCecCommandType {aka int (*)(void*, CEC::cec_command)}' [-fpermissive]
remotelinux.cc:135:44: error: invalid conversion from 'int (*)(void*, const libcec_configuration&) {aka int (*)(void*, const CEC::libcec_configuration&)}' to 'CEC::CBCecConfigurationChangedType {aka int (*)(void*, CEC::libcec_configuration)}' [-fpermissive]
remotelinux.cc: In member function 'virtual UCHAR RemoteLinux::getButtonPress(int)':
remotelinux.cc:248:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
remotelinux.cc:272:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
make: *** [remotelinux.o] Error 1
anything i can do?
edit: could be usefull to know which versions of packages are installed
libcec-rpi 2.1.1-1
ffmpeg 1:1.2-2
imagemagick 6.8.4.6-1
libcec is too new. Since I am developing with raspbian I stick to the pre 2.0 libcec version.
Marten
narf :( tried to compile an older libcec (1.8.1) but it says its not compatible with actual raspberrypi-firmware. seems to be a dead end...
anything i can do about this, maybe disable libcec support and stick to an alternative input system?
You should compile the older libcec for yourself, if I remember correctly, it was necessary to patch the libcec somewhere.
i will try that out later, but it will probably break xbmcs cec support. any hint where to find these patches?
edit: ok. thats how far i get till now.
pkgbuild:
pkgname=libcec-rpi
pkgver=1.8.1
pkgrel=1
pkgdesc="Pulse-Eight's libcec for the Raspberry Pi"
arch=('armv6h')
url="https://github.com/Pulse-Eight/libcec"
license=('GPL')
makedepends=('git')
depends=('udev>=151' 'lockdev' 'raspberrypi-firmware')
provides=('libcec')
conflicts=('libcec')
options=('!libtool')
source=('https://github.com/Pulse-Eight/libcec/archive/libcec-1.8.1.tar.gz')
md5sums=('7b2181c1a26e7179a2f70d9aedb66a65')
build() {
cd "$srcdir/libcec-libcec-$pkgver"
autoreconf -vif
./configure --prefix="/usr" \
--enable-rpi \
--with-rpi-include-path="/opt/vc/include" \
--with-rpi-lib-path="/opt/vc/lib"
make
}
package() {
cd "$srcdir/libcec-libcec-$pkgver/"
make DESTDIR="$pkgdir/" install
}
error message:
...
checking for vc_cec_param2message in -lbcm_host... yes
checking for vc_cec_poll_address in -lbcm_host... yes
checking for vc_cec_register_callback in -lbcm_host... yes
checking for vc_cec_release_logical_address in -lbcm_host... yes
checking for vc_cec_set_passive in -lbcm_host... yes
checking for vcos_init in -lbcm_host... yes
checking for vchiq_initialise in -lbcm_host... yes
checking for vchi_initialise in -lbcm_host... (cached) yes
checking for vchi_create_connection in -lbcm_host... yes
checking for bcm_host_init in -lbcm_host... yes
configure: error: Raspberry Pi API not found or incompatible with libCEC
tried to ask in archlinuxarm forum, but never recieved an confirmation mail after my registration... will try next weekend when i have more time...
Maybe the path is not correct. You should check in the source code of the configure skript, what is causing the failure. Alternatively you can seek in the forum, some posted some change for vomp to work 2.0.
Marten
this starts to get annoying :'( havent luck searching the forum for a patch supporting libcec > 2.0 or patching configure script of libcec so that it will pass firmware check.
however. i decided to compile libcec 1.8.1 without rpi support and stick to a remote sending keyboard events instead. but now ld is not able to link against imagemagick.
error:
g++ -Wall -Wl,--format=binary -Wl,other/vdrhires.jpg -Wl,other/wallpaper720p.jpg -Wl,--format=default -o vompclient command.o tcp.o dsock.o thread.o timers.o i18n.o message.o messagequeue.o udp.o wol.o audio.o video.o log.o mutex.o vdr.o recman.o recording.o recinfo.o channel.o rectimer.o event.o directory.o mark.o option.o player.o playerradio.o vfeed.o afeed.o demuxer.o demuxervdr.o demuxerts.o stream.o region.o colour.o boxstack.o boxx.o tbboxx.o vinfo.o vquestion.o vrecordinglist.o vrecording.o vmute.o vvolume.o vtimerlist.o vtimeredit.o vrecordingmenu.o vchannellist.o vwelcome.o vvideorec.o vepgsettimer.o vchannelselect.o vserverselect.o vconnect.o vepg.o vrecmove.o vradiorec.o vaudioselector.o vscreensaver.o vopts.o wselectlist.o wjpeg.o wsymbol.o wbutton.o wtextbox.o woptionpane.o woptionbox.o wremoteconfig.o wtabbar.o fonts/helvB24.o fonts/helvB18.o remote.o led.o mtd.o osd.o surface.o media.o vpicturebanner.o audioplayer.o demuxeraudio.o abstractoption.o eventdispatcher.o vdrrequestpacket.o vdrresponsepacket.o vvideolivetv.o vsleeptimer.o playerlivetv.o playerliveradio.o wprogressbar.o bitmap.o dvbsubtitles.o imagereader.o mediaoptions.o mediaplayer.o serialize.o localmediafile.o playermedia.o demuxermedia.o tfeed.o vteletextview.o teletextdecodervbiebu.o teletxt/txtfont.o mediafile.o main.o threadp.o osdvector.o surfacevector.o osdopenvg.o ledraspberry.o mtdraspberry.o videoomx.o audioomx.o wjpegsimple.o remotelinux.o -L/opt/vc/lib -lpthread -lrt -lEGL -lOpenVG -lopenmaxil -lbcm_host -lavformat -lavcodec -lavutil -lfreetype -lMagick++
/usr/bin/ld: cannot find -lMagick++
collect2: error: ld returned 1 exit status
make: *** [vompclient] Error 1
but it seems to be in the right spot
ls /usr/lib/ | grep Magick++:
libMagick++-6.Q32.so
libMagick++-6.Q32.so.1
libMagick++-6.Q32.so.1.0.0
any suggestions? or should i switch to raspbian?
I believe Marten referred to this post:
http://forum.loggytronic.com/index.php?topic=692.0
As mentioned in the post - the changes are trivial. The error received while compiling give a very good hint of what needs to change in remotelinux.cc and remotelinux.h.
I wiped out my working tree where I had implemented these changes so I can unfortunately not provide a patch.
ok, maybe i will give it a try. but never done something like that before. last time i got in contact with c++ was back in school...