News:

Latest versions:
Server plugin: 0.5.1
MVP dongle: 0.5.2
Raspberry Pi client: 0.5.2
Windows client: 0.5.2-1

Main Menu

build vompclient on archlinuxarm

Started by tofuwurst, April 13, 2013, 14:21:30

Previous topic - Next topic

tofuwurst

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







MartenR

libcec is too new. Since I am developing with raspbian I stick to the pre 2.0 libcec version.

Marten

tofuwurst

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?


MartenR

You should compile the older libcec for yourself, if I remember correctly, it was necessary to patch the libcec somewhere.

tofuwurst

#4
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...




MartenR

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

tofuwurst

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?

sirwio

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.

tofuwurst

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...