Recent Posts

Pages: [1] 2 3 ... 10
1
VOMP for Raspberry Pi / Re: Static build possible?
« Last post by noone on November 18, 2019, 07:02:41 »
Ha! that totally works. Just copied over every library to /lib on the vfat partition and booted with that as rootfs. Still having some issues with fonts (everything is monospaced) but I will post a ZIP which conaints all files for a blank sdcard with only a fat partition.
2
VOMP for Raspberry Pi / Re: CEC functionality depends on GPU firmware (start.elf)?
« Last post by noone on November 15, 2019, 20:37:53 »
I finally found the problem! =)
A feature introduced in a later raspberry firmware than I used which turns on your tv seems to disable some buttons on the remote on my panasonic tv.

Using hdmi_ignore_cec_init=1 in /boot/config.txt fixes the problem completely, yesss!!

https://www.raspberrypi.org/documentation/configuration/config-txt/video.md
3
Announcements / Version 0.5.1 released
« Last post by Chris on October 29, 2019, 19:49:14 »
New things:

  • It's now possible to mark as recording as new (deleting the resume data)
  • The recording information screen displays more details
  • When playing a recording, the "previous channel" button rewinds 2s (for interlacing resync (yes, this needs fixing properly))
  • IPv6 support (Raspberry Pi only)

Fixes:

  • Fixed a playback hang due to a threading deadlock
  • Fixed a hang starting playing a recording which has already been deleted on the server
  • Fixed the Raspberry Pi screen going black during pause
  • Fixed a bug moving a recording with special characters in the name
  • Fixed a bug with the advanced menu in options
  • Fixed the stop-time display in the timer information screen
  • Compile fixes for Stretch and Buster
  • Fixed libcec4 support
  • Saved some Raspberry Pi CPU usage in the on-screen-display code
  • Fixed a crash when using subtitles
  • Fixed a crash pressing up too much in the options screen

Other:

  • Server Makefile updated
  • Server sample config file updated

Notes:

The minimum VDR version is still 1.7.35. The maximum known-working version is 2.4.1.

Raspberry Pi models 1, 2 and early 3s are known to work. Later Pi 3s did not work with the 0.5.0 image but I expect they will work with 0.5.1. I haven't got a late 3, if you have and it works please let me know.

Reportedly the Raspberry Pi 4 has no hardware MPEG2 support. I haven't got a Pi 4 so I can't test it. I expect very bad results trying to play MPEG2! It might still work to play MPEG4, I don't know. It is also possible the image won't work at all - reports welcome!

This is probably the last 0.5.x release. 0.6.x will drop support for Hauppauge MVPs and will require at minimum VDR 2.4.0.
4
VOMP for Raspberry Pi / Re: Static build possible?
« Last post by noone on October 22, 2019, 10:50:09 »
sounds also interessting 8) ...
Code: [Select]
pi@raspberrypi:~/vompclient $ ldd vompclient
linux-vdso.so.1 (0x7eb85000)
/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0x76f17000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76eed000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x76ed6000)
libbrcmEGL.so => /opt/vc/lib/libbrcmEGL.so (0x76e9d000)
libbrcmOpenVG.so => /opt/vc/lib/libbrcmOpenVG.so (0x76e78000)
libopenmaxil.so => /opt/vc/lib/libopenmaxil.so (0x76e62000)
libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x76e38000)
libavformat.so.58 => /usr/lib/arm-linux-gnueabihf/libavformat.so.58 (0x76c0a000)
libavcodec.so.58 => /usr/lib/arm-linux-gnueabihf/libavcodec.so.58 (0x758a8000)
libavutil.so.56 => /usr/lib/arm-linux-gnueabihf/libavutil.so.56 (0x7581f000)
libavresample.so.4 => /usr/lib/arm-linux-gnueabihf/libavresample.so.4 (0x757fd000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x757ea000)
libfontconfig.so.1 => /usr/lib/arm-linux-gnueabihf/libfontconfig.so.1 (0x757a2000)
libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0x756ff000)
libMagick++-6.Q16.so.8 => /usr/lib/arm-linux-gnueabihf/libMagick++-6.Q16.so.8 (0x7568a000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x75543000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x754c1000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x75494000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x75346000)
/lib/ld-linux-armhf.so.3 (0x76f2c000)
libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x75330000)
libvcos.so => /opt/vc/lib/libvcos.so (0x75317000)
libbrcmGLESv2.so => /opt/vc/lib/libbrcmGLESv2.so (0x752f0000)
libxml2.so.2 => /usr/lib/arm-linux-gnueabihf/libxml2.so.2 (0x75173000)
libbz2.so.1.0 => /lib/arm-linux-gnueabihf/libbz2.so.1.0 (0x75153000)
libgme.so.0 => /usr/lib/arm-linux-gnueabihf/libgme.so.0 (0x75105000)
libopenmpt.so.0 => /usr/lib/arm-linux-gnueabihf/libopenmpt.so.0 (0x74f47000)
libchromaprint.so.1 => /usr/lib/arm-linux-gnueabihf/libchromaprint.so.1 (0x74f26000)
libbluray.so.2 => /usr/lib/arm-linux-gnueabihf/libbluray.so.2 (0x74ed0000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x74ea5000)
libgnutls.so.30 => /usr/lib/arm-linux-gnueabihf/libgnutls.so.30 (0x74d03000)
libssh-gcrypt.so.4 => /usr/lib/arm-linux-gnueabihf/libssh-gcrypt.so.4 (0x74c84000)
libswresample.so.3 => /usr/lib/arm-linux-gnueabihf/libswresample.so.3 (0x74c5c000)
libvpx.so.5 => /usr/lib/arm-linux-gnueabihf/libvpx.so.5 (0x74b5b000)
libwebpmux.so.3 => /usr/lib/arm-linux-gnueabihf/libwebpmux.so.3 (0x74b43000)
libwebp.so.6 => /usr/lib/arm-linux-gnueabihf/libwebp.so.6 (0x74adf000)
liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0x74aae000)
libmmal_core.so => /opt/vc/lib/libmmal_core.so (0x74a90000)
libmmal_util.so => /opt/vc/lib/libmmal_util.so (0x74a70000)
libmmal_vc_client.so => /opt/vc/lib/libmmal_vc_client.so (0x74a55000)
librsvg-2.so.2 => /usr/lib/arm-linux-gnueabihf/librsvg-2.so.2 (0x74647000)
libgobject-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0 (0x745ea000)
libglib-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x744da000)
libcairo.so.2 => /usr/lib/arm-linux-gnueabihf/libcairo.so.2 (0x743df000)
libzvbi.so.0 => /usr/lib/arm-linux-gnueabihf/libzvbi.so.0 (0x7435c000)
libsnappy.so.1 => /usr/lib/arm-linux-gnueabihf/libsnappy.so.1 (0x74345000)
libaom.so.0 => /usr/lib/arm-linux-gnueabihf/libaom.so.0 (0x74049000)
libcodec2.so.0.8.1 => /usr/lib/arm-linux-gnueabihf/libcodec2.so.0.8.1 (0x73fe0000)
libgsm.so.1 => /usr/lib/arm-linux-gnueabihf/libgsm.so.1 (0x73fc5000)
libmp3lame.so.0 => /usr/lib/arm-linux-gnueabihf/libmp3lame.so.0 (0x73f49000)
libopenjp2.so.7 => /usr/lib/arm-linux-gnueabihf/libopenjp2.so.7 (0x73eee000)
libopus.so.0 => /usr/lib/arm-linux-gnueabihf/libopus.so.0 (0x73e8f000)
libshine.so.3 => /usr/lib/arm-linux-gnueabihf/libshine.so.3 (0x73e75000)
libspeex.so.1 => /usr/lib/arm-linux-gnueabihf/libspeex.so.1 (0x73e4e000)
libtheoraenc.so.1 => /usr/lib/arm-linux-gnueabihf/libtheoraenc.so.1 (0x73e0b000)
libtheoradec.so.1 => /usr/lib/arm-linux-gnueabihf/libtheoradec.so.1 (0x73de3000)
libtwolame.so.0 => /usr/lib/arm-linux-gnueabihf/libtwolame.so.0 (0x73db3000)
libvorbis.so.0 => /usr/lib/arm-linux-gnueabihf/libvorbis.so.0 (0x73d7c000)
libvorbisenc.so.2 => /usr/lib/arm-linux-gnueabihf/libvorbisenc.so.2 (0x73cea000)
libwavpack.so.1 => /usr/lib/arm-linux-gnueabihf/libwavpack.so.1 (0x73cb6000)
libx264.so.155 => /usr/lib/arm-linux-gnueabihf/neon/vfp/libx264.so.155 (0x73a6a000)
libx265.so.165 => /usr/lib/arm-linux-gnueabihf/libx265.so.165 (0x737b0000)
libxvidcore.so.4 => /usr/lib/arm-linux-gnueabihf/libxvidcore.so.4 (0x736c0000)
libva.so.2 => /usr/lib/arm-linux-gnueabihf/libva.so.2 (0x73691000)
libva-drm.so.2 => /usr/lib/arm-linux-gnueabihf/libva-drm.so.2 (0x7367c000)
libva-x11.so.2 => /usr/lib/arm-linux-gnueabihf/libva-x11.so.2 (0x73667000)
libvdpau.so.1 => /usr/lib/arm-linux-gnueabihf/libvdpau.so.1 (0x73653000)
libX11.so.6 => /usr/lib/arm-linux-gnueabihf/libX11.so.6 (0x73531000)
libdrm.so.2 => /usr/lib/arm-linux-gnueabihf/libdrm.so.2 (0x73512000)
libexpat.so.1 => /lib/arm-linux-gnueabihf/libexpat.so.1 (0x734d1000)
libuuid.so.1 => /lib/arm-linux-gnueabihf/libuuid.so.1 (0x734ba000)
libpng16.so.16 => /usr/lib/arm-linux-gnueabihf/libpng16.so.16 (0x7347e000)
libMagickCore-6.Q16.so.6 => /usr/lib/arm-linux-gnueabihf/libMagickCore-6.Q16.so.6 (0x73202000)
libMagickWand-6.Q16.so.6 => /usr/lib/arm-linux-gnueabihf/libMagickWand-6.Q16.so.6 (0x730dd000)
libicui18n.so.63 => /usr/lib/arm-linux-gnueabihf/libicui18n.so.63 (0x72e8d000)
libicuuc.so.63 => /usr/lib/arm-linux-gnueabihf/libicuuc.so.63 (0x72d07000)
libicudata.so.63 => /usr/lib/arm-linux-gnueabihf/libicudata.so.63 (0x71309000)
libmpg123.so.0 => /usr/lib/arm-linux-gnueabihf/libmpg123.so.0 (0x712ac000)
libvorbisfile.so.3 => /usr/lib/arm-linux-gnueabihf/libvorbisfile.so.3 (0x71294000)
libp11-kit.so.0 => /usr/lib/arm-linux-gnueabihf/libp11-kit.so.0 (0x7118f000)
libidn2.so.0 => /usr/lib/arm-linux-gnueabihf/libidn2.so.0 (0x71163000)
libunistring.so.2 => /usr/lib/arm-linux-gnueabihf/libunistring.so.2 (0x70fe7000)
libtasn1.so.6 => /usr/lib/arm-linux-gnueabihf/libtasn1.so.6 (0x70fc7000)
libnettle.so.6 => /usr/lib/arm-linux-gnueabihf/libnettle.so.6 (0x70f83000)
libhogweed.so.4 => /usr/lib/arm-linux-gnueabihf/libhogweed.so.4 (0x70f42000)
libgmp.so.10 => /usr/lib/arm-linux-gnueabihf/libgmp.so.10 (0x70ec9000)
libgcrypt.so.20 => /lib/arm-linux-gnueabihf/libgcrypt.so.20 (0x70def000)
libgssapi_krb5.so.2 => /usr/lib/arm-linux-gnueabihf/libgssapi_krb5.so.2 (0x70da5000)
libsoxr.so.0 => /usr/lib/arm-linux-gnueabihf/libsoxr.so.0 (0x70d43000)
libvcsm.so => /opt/vc/lib/libvcsm.so (0x70d29000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgdk_pixbuf-2.0.so.0 (0x70cf7000)
libgio-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgio-2.0.so.0 (0x70b7c000)
libpangocairo-1.0.so.0 => /usr/lib/arm-linux-gnueabihf/libpangocairo-1.0.so.0 (0x70b61000)
libpangoft2-1.0.so.0 => /usr/lib/arm-linux-gnueabihf/libpangoft2-1.0.so.0 (0x70b3f000)
libpango-1.0.so.0 => /usr/lib/arm-linux-gnueabihf/libpango-1.0.so.0 (0x70af0000)
libcroco-0.6.so.3 => /usr/lib/arm-linux-gnueabihf/libcroco-0.6.so.3 (0x70aae000)
libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0x70a96000)
libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x70a1f000)
libpixman-1.so.0 => /usr/lib/arm-linux-gnueabihf/libpixman-1.so.0 (0x70944000)
libxcb-shm.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-shm.so.0 (0x70931000)
libxcb.so.1 => /usr/lib/arm-linux-gnueabihf/libxcb.so.1 (0x70902000)
libxcb-render.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-render.so.0 (0x708e7000)
libXrender.so.1 => /usr/lib/arm-linux-gnueabihf/libXrender.so.1 (0x708ce000)
libXext.so.6 => /usr/lib/arm-linux-gnueabihf/libXext.so.6 (0x708af000)
libogg.so.0 => /usr/lib/arm-linux-gnueabihf/libogg.so.0 (0x70898000)
libXfixes.so.3 => /usr/lib/arm-linux-gnueabihf/libXfixes.so.3 (0x70883000)
liblcms2.so.2 => /usr/lib/arm-linux-gnueabihf/liblcms2.so.2 (0x7082c000)
liblqr-1.so.0 => /usr/lib/arm-linux-gnueabihf/liblqr-1.so.0 (0x70811000)
libfftw3.so.3 => /usr/lib/arm-linux-gnueabihf/libfftw3.so.3 (0x70713000)
libltdl.so.7 => /usr/lib/arm-linux-gnueabihf/libltdl.so.7 (0x706fb000)
libgomp.so.1 => /usr/lib/arm-linux-gnueabihf/libgomp.so.1 (0x706c3000)
libgpg-error.so.0 => /lib/arm-linux-gnueabihf/libgpg-error.so.0 (0x70699000)
libkrb5.so.3 => /usr/lib/arm-linux-gnueabihf/libkrb5.so.3 (0x705dc000)
libk5crypto.so.3 => /usr/lib/arm-linux-gnueabihf/libk5crypto.so.3 (0x7059c000)
libcom_err.so.2 => /lib/arm-linux-gnueabihf/libcom_err.so.2 (0x70589000)
libkrb5support.so.0 => /usr/lib/arm-linux-gnueabihf/libkrb5support.so.0 (0x7056f000)
libkeyutils.so.1 => /lib/arm-linux-gnueabihf/libkeyutils.so.1 (0x7055b000)
libresolv.so.2 => /lib/arm-linux-gnueabihf/libresolv.so.2 (0x70537000)
libgmodule-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgmodule-2.0.so.0 (0x70523000)
libmount.so.1 => /lib/arm-linux-gnueabihf/libmount.so.1 (0x704c2000)
libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0x70490000)
libharfbuzz.so.0 => /usr/lib/arm-linux-gnueabihf/libharfbuzz.so.0 (0x70392000)
libthai.so.0 => /usr/lib/arm-linux-gnueabihf/libthai.so.0 (0x70378000)
libfribidi.so.0 => /usr/lib/arm-linux-gnueabihf/libfribidi.so.0 (0x7034e000)
libXau.so.6 => /usr/lib/arm-linux-gnueabihf/libXau.so.6 (0x7033b000)
libXdmcp.so.6 => /usr/lib/arm-linux-gnueabihf/libXdmcp.so.6 (0x70326000)
libblkid.so.1 => /lib/arm-linux-gnueabihf/libblkid.so.1 (0x702ce000)
libgraphite2.so.3 => /usr/lib/arm-linux-gnueabihf/libgraphite2.so.3 (0x7029d000)
libdatrie.so.1 => /usr/lib/arm-linux-gnueabihf/libdatrie.so.1 (0x70287000)
libbsd.so.0 => /usr/lib/arm-linux-gnueabihf/libbsd.so.0 (0x7025f000)
pi@raspberrypi:~/vompclient $
5
VOMP for Raspberry Pi / Re: Static build possible?
« Last post by Chris on October 21, 2019, 15:52:11 »
An idea I had... It's no static build but it might be of use. How about compiling a dynamic vompclient then getting the list of so files with "ldd vompclient", copying every single one and the vompclient binary to the target empty O/S and using LD_LIBRARY_PATH to direct it to all the so files? It sounds too simple to work...

Good luck with the Broadcom stuff.
6
VOMP for Raspberry Pi / Re: Static build possible?
« Last post by noone on October 21, 2019, 06:56:23 »
Thanks for the big explanation!
I always thought creating a static build ld just takes every so-file and "appends" it to the final binary but that sounds very complicated now.

I also experimented with a static busybox using the script-wrapper option instead of symlinks for the applets.
This is cool so you can use a single vfat partition on the sdcard and make it also the rootfs.
So the final approach would be, take a new sdcard, extra all the files from zip to it, done!

Will try to compile the Broadcom libraries and play around, maybe I'll get some where.
Best regards
NoOne
7
VOMP for Raspberry Pi / Re: Static build possible?
« Last post by Chris on October 19, 2019, 16:35:33 »
Hi,

For obvious reasons I share your desire to build it statically - I would be able to distribute a much smaller image file and it would boot on a Pi much faster with some kind of Busybox build rather than a whole systemd O/S.

I remember trying it about a month back and got to exactly the same situation you showed. At the time I shelved the idea thinking it would be very difficult / impossible. But, given your post I've had another look... I still think it's going to be very difficult, but maybe not impossible if a mostly static binary is acceptable.

Firstly the warnings - Well they're only warnings - it does imply that it should be possible to have a statically linked vompclient binary with some number of .so files alongside somehow. It depends how many library files "the shared libraries from the glibc version used" means. If it's a few then I would say this is feasible. If it's hundreds - basically a standard /lib & /usr/lib collection, then clearly it's not feasible. I haven't got as far trying this yet.

Secondly - all the libraries used except the Broadcom ones in /opt/vc. I have been working through some of these and it is possible to build some in statically - see the linking script below. The next major set of libraries to tackle is the ImageMagick ones - no small task. I tried making pthread and avcodec static but they eventually depend on one of the Broadcom libs, so they may be possible once the Broadcom problem is solved.

Thirdly - the Broadcom libraries. Broadcom appear to permit redistribution of the libs found in /opt/vc, so including that whole set in an image and dynamically linking to them for me would be acceptable. However, because the .a file versions of those libs aren't available it means any other library you try to make static for vompclient that depends on something in the Broadcom libraries won't link. A second however however, is that it looks like the source code for those libraries in /opt/vc/lib is available (to my surprise) at https://github.com/raspberrypi/userland. If this really is the case then it should be possible to compile the missing .a files, allowing other libraries to then be linked statically.

At best it may be possible to statically link everything except the glibc libraries the warnings are about.

The script below is a work-in-progress. To try it, compile vompclient normally first - this is only the last step linker command. It links what it can statically, and then dynamically links the rest. In theory libs can be moved one by one from dynamic to static. In practice it's quite messy. I think the next bit to work on is the Broadcom libraries, since other libraries end up depending on some low level Pi memory code and they can't be made static until the the Broadcom libraries are.

If you feel like continuing this work please do!

Also if anyone knows a better way of doing any of this, please chip in.

Code: [Select]
#!/bin/bash

set -x

BLOBS="-Wl,--format=binary -Wl,other/vdrhires.png -Wl,other/wallpaper720p.jpg -Wl,other/properties.png -Wl,other/radio.png -Wl,other/timers.png -Wl,other/tv.png -Wl,other/recordings.png -Wl,other/restart.png -Wl,other/hd1080i.png -Wl,other/hd720p.png -Wl,other/sd576i.png -Wl,other/txtoff.png -Wl,other/txton.png -Wl,other/dolbyoff.png -Wl,other/dolbyon.png -Wl,other/recording.png -Wl,other/recfolder.png -Wl,other/defposter.png -Wl,--format=default"
OBJECTS="command.o tcp.o dsock.o thread.o timers.o i18n.o vdp6.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 vrecording.o vinfo.o vquestion.o vrecordinglist.o vrecordinglistclassic.o vrecordinglistadvanced.o vepgsummary.o vepglistadvanced.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 led.o remote.o mtd.o osd.o surface.o vpicturebanner.o abstractoption.o eventdispatcher.o vdrrequestpacket.o vdrresponsepacket.o vvideolivetv.o vsleeptimer.o playerlivetv.o playerliveradio.o wprogressbar.o bitmap.o dvbsubtitles.o tfeed.o vteletextview.o teletextdecodervbiebu.o teletxt/txtfont.o movieinfo.o seriesinfo.o wmovieview.o wseriesview.o tvmedia.o wtvmedia.o wpictureview.o main.o threadp.o  osdvector.o surfacevector.o osdopenvg.o ledraspberry.o mtdraspberry.o videoomx.o audioomx.o imageomx.o wjpegsimple.o remotelinux.o signal.o"

# All dynamic
# LIBSSTATIC=""
# LIBSDYNAMIC="-Wl,-Bdynamic -lpthread -lrt -lbrcmEGL -lbrcmOpenVG -lopenmaxil -lbcm_host -lavformat -lavcodec -lavutil -lavresample -ldl -lfontconfig -lfreetype -lMagick++-6.Q16"

# WIP
LIBSSTATIC="-Wl,-Bstatic -lfontconfig -lexpat -luuid -lfreetype -lpng -lavformat -lavresample -lavutil -lswresample -lz -lrt"
LIBSDYNAMIC="-Wl,-Bdynamic -lbrcmEGL -lbrcmOpenVG -lopenmaxil -lbcm_host -lpthread -lavcodec -lMagick++-6.Q16 -ldl"

g++ -Wall -o vompclient -L/opt/vc/lib -L/usr/lib/arm-linux-gnueabihf $BLOBS $OBJECTS $LIBSSTATIC $LIBSDYNAMIC
8
VOMP for Raspberry Pi / Static build possible?
« Last post by noone on October 16, 2019, 21:36:29 »
Hi, I'm trying to build a static binary of vompclient for raspberry pi.

I added -static in the GNUmakefile in the LDFLAGS variable:
Code: [Select]
....
ifeq ($(vomp_platform),raspberry)
$(info Raspberry pi flags)
LDFLAGS = -Wall -static $(PICTURES)
LIBS = -L/opt/vc/lib  -lpthread -lrt -lbrcmEGL -lbrcmOpenVG -lopenmaxil -lbcm_host   -lavformat -lavcodec -lavutil -lavresample
....

But now I'm getting the following compile error:
Code: [Select]
....
g++ -Wall -static -Wl,--format=binary  -Wl,other/vdrhires.png  -Wl,other/wallpaper720p.jpg  -Wl,other/properties.png  -Wl,other/radio.png  -Wl,other/timers.png  -Wl,other/tv.png  -Wl,other/recordings.png -Wl,other/restart.png  -Wl,other/hd1080i.png   -Wl,other/hd720p.png    -Wl,other/sd576i.png   -Wl,other/txtoff.png   -Wl,other/txton.png  -Wl,other/dolbyoff.png -Wl,other/dolbyon.png   -Wl,other/recording.png -Wl,other/recfolder.png   -Wl,other/defposter.png   -Wl,--format=default    -DIPV6 -o vompclient  command.o tcp.o dsock.o thread.o timers.o i18n.o vdp6.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 vrecording.o vinfo.o vquestion.o vrecordinglist.o vrecordinglistclassic.o vrecordinglistadvanced.o vepgsummary.o vepglistadvanced.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 led.o remote.o mtd.o osd.o surface.o vpicturebanner.o abstractoption.o eventdispatcher.o vdrrequestpacket.o vdrresponsepacket.o vvideolivetv.o vsleeptimer.o playerlivetv.o playerliveradio.o wprogressbar.o bitmap.o dvbsubtitles.o tfeed.o vteletextview.o teletextdecodervbiebu.o teletxt/txtfont.o movieinfo.o seriesinfo.o wmovieview.o wseriesview.o tvmedia.o wtvmedia.o wpictureview.o  main.o threadp.o  osdvector.o surfacevector.o osdopenvg.o ledraspberry.o mtdraspberry.o videoomx.o audioomx.o imageomx.o wjpegsimple.o remotelinux.o signal.o   -L/opt/vc/lib  -lpthread -lrt -lbrcmEGL -lbrcmOpenVG -lopenmaxil -lbcm_host   -lavformat -lavcodec -lavutil -lavresample -ldl -lfontconfig -lfreetype -L/usr/lib/arm-linux-gnueabihf -lMagick++-6.Q16
/usr/bin/ld: cannot find -lbrcmEGL
/usr/bin/ld: cannot find -lbrcmOpenVG
/usr/bin/ld: cannot find -lopenmaxil
/usr/bin/ld: cannot find -lbcm_host
/usr/bin/ld: remotelinux.o: in function `__gnu_cxx::__normal_iterator<Option**, std::vector<Option*, std::allocator<Option*> > >::difference_type __gnu_cxx::operator-<Option**, std::vector<Option*, std::allocator<Option*> > >(__gnu_cxx::__normal_iterator<Option**, std::vector<Option*, std::allocator<Option*> > > const&, __gnu_cxx::__normal_iterator<Option**, std::vector<Option*, std::allocator<Option*> > > const&)':
/usr/include/libcec/cecloader.h:124: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: tcp.o: in function `TCP::connectTo(char*, unsigned short)':
/home/pi/vompclient/tcp.cc:151: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
collect2: error: ld returned 1 exit status
make: *** [GNUmakefile:123: vompclient] Error 1
pi@raspberrypi:~/vompclient $

Is building a static binary even possible at all?
It would be nice to run a minimal busybox and just the vompclient, nothing else.
And with the newly added IPv6 support there isn't even a need for a dhcp client any more. 8)

Best regards
NoOne
9
VOMP for Raspberry Pi / Re: Latest version of vomp fails to compile
« Last post by Chris on August 17, 2019, 15:50:11 »
Hi,

I've fixed the errors for compiling on buster and it's in git. There are still several warnings that need looking into but at least it works now.
10
VOMP for Raspberry Pi / Re: Latest version of vomp fails to compile
« Last post by MartenR on August 01, 2019, 07:05:25 »
May be just follow the suggestion of the compiler. Seems to be a change in libAv.

Marten
Pages: [1] 2 3 ... 10