Forums » Tutorial and setups »
Howto build Tvheadend 4.2.x /4.3 with yocto / openembedded / bitbake / OpenPLi 6.2 for mips32el Mut@nt hd530c VuSOLO
Added by Walter av about 6 years ago
UPDATE 2018-12-14: Issue 5432 has been created!
https://tvheadend.org/issues/5432
Introduction:¶
With some quick and dirty patching/hacking and skipping warnings/errors both Tvheadend git release/4.2 and master(4.3x) "build" and do "run" on OpenPLi 6.2 on mips32el Mut@nt hd530c and VuSOLO including hdhomerun and satip client support. However expect errors/limitations that these setop boxes might give due to tight closed dvb drivers using older/out of tree kernel/modules and very limited cpu/ram specs!!! This build procedure will take ~6GB and 2,5 hours on a dated 3GHz i7(Quadcore+ssd) for the combined building part, without taking the Internet Provider download speed and reader skills into account!
If I'm not mistaking a couple of years ago I think I tried a classic Tvheadend version on a dated OpenPLi/OpenATV with VuSolo, but lost interest since its was not detecting any tuners was buggy and unusefull.
Due to having success/joy in using and building Tvheadend for PC x86 and Raspberry Pi Arm hardware (deb based), I noticed that there was some standardization in these (OpenPLi) setop boxes too that earned having another look.
They use yocto(Linux Foundation)/openembedded(OE alliance)/bitbake system with each setop box distribution (OpenPLi/OPENATV) having their own meta/recipes/layers on top of this. Which is a very complete and complex system for generating hardware specific firmware/rootfs images.
By only fiddling with some text file patches and understanding in which meta/recipe folder they need to occur I got Tvheadend to build with minimal OpenPLi build instructions. First it was Tvheadend v.3.3 that compiled than v4.0.9 to see if the bitbake files were at all any exchangable (pyro>morty) which they indeed were. Following with current git release/4.2 v4.2.7.x and master v4.3x which mostly need different line numbers for diff/.patch files to apply I decided to write this howto. Afterwards I wasn't able to directly compile v3.3 and v4.0.9... but newer versions did.
We see that native yocto building of Tvheadend v3.3 has been done in the past yocto(morty) release when looking at "tvheadend_git.bb" bitbake file:
https://layers.openembedded.org/layerindex/recipe/55018/
Currently v4.0.9 of tvheadend is blacklisted in the yocto(pyro) release with a dvb-apps dependency problem(luckily didn't notice dvb-apps error building OpenPLi 6.2 when unblacklisting tvheadend build):
https://layers.openembedded.org/layerindex/recipe/63277/
Since it was blacklisted because of dvb-apps depenency (eventhough its not needed anymore for v4.3.x tvheadend):
https://tvheadend.org/projects/tvheadend/repository/revisions/fab0a6c59ceb322c44722f7576e743de176f81a9
Its not only outdated with v4.0.9 but apparently removed/missing in current and future upstream yocto(rocko/sumo) openembedded bitbake recipes as we see:
https://layers.openembedded.org/layerindex/branch/rocko/layer/meta-multimedia/
https://layers.openembedded.org/layerindex/branch/sumo/layer/meta-multimedia/
Good news its back in yocto(master) thanks Peter Bašista for noticing.
https://layers.openembedded.org/layerindex/recipe/89269/
Status¶
The Mut@nt hd530c currently runs tvheadend 79ea2a42c477e315ffa2143252273fe2db0c2165 with 3 frontends detected on a single adapter but using its dvb-c adapters directly within tvheadend causes tvheadend to crash as soon as a 2nd channel on a different transponder is tuned on a 2nd/3rd tuner. This happens with enigma enabled in background and with runlevel init 4. There has been some tvheadend optimizations lately(see issues) to improve multiple frontend behaviour on dual tuners but for this FBC dvb-c tuner it did not improve yet.
Related issues/bugs:
https://tvheadend.org/issues/5379
https://tvheadend.org/issues/5330
Prepare Building:¶
To get tvheadend support in your build of OpenPLi, I use Ubuntu 16.04 amd64 (you must use 16.04 otherwise some build dependencies/resolving will fail) and first build a default OpenPLi 6.2 image to see if that will actual succeed and all the ingredients are done, afterwards tvheadend support will be patched in and only parts of the build process are redone quickly thanks to the advanced yocto oe buildsysten. Open a terminal and:
#make sure "en_US_utf8" is installed and default sudo dpkg-reconfigure locales sudo apt-get -y install default-jre gettext zip sed wget cvs subversion git-core coreutils unzip texi2html texinfo docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ \ desktop-file-utils chrpath libdvbcsa-dev libhdhomerun-dev libxml2-utils autoconf automake bison bzip2 flex gzip ncurses-bin ncurses-dev libc6-dev libtool make texinfo patch perl pkg-config subversion \ tar texi2html wget zlib1g-dev #get openpli sources git clone -b release-6.2 https://github.com/OpenPLi/openpli-oe-core.git #sumo #release-6.2 #rc #develop=master cd openpli-oe-core sed -i 's/"develop"/"release-6.2"/g' meta-openpli/recipes-openpli/enigma2/enigma2.bb sed -i 's/"${BRANCH}"/"release-6.2"/g' meta-openpli/recipes-openpli/enigma2/enigma2.bb #prepare actual build environment getting more sources MACHINE=hd530c make
#add/append buildflags to speedup compile change thread number 7 to your cpu count tee -a build/conf/local.conf <<EOF BB_NUMBER_THREADS = "7" PARALLEL_MAKE="-j7" BUILD_OPTIMIZATION = "-march=native -O2 -pipe" BB_SCHEDULER = "speed" EOF
#fix libdca source cat <<'EOF' > meta-openpli/recipes-multimedia/vlc/libdca_0.0.5.bb SUMMARY = "decoding library for DTS Coherent Acoustics streams" SECTION = "libs/multimedia" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" PR = "r1" DEPENDS += "quilt-native" inherit autotools-brokensep lib_package pkgconfig SRC_URI = "http://download.videolan.org/pub/videolan/libdca/${PV}/libdca-${PV}.tar.bz2" S = "${WORKDIR}/libdca-${PV}" SRC_URI[md5sum] = "dab6b2795c66a82a6fcd4f8343343021" SRC_URI[sha256sum] = "dba022e022109a5bacbe122d50917769ff27b64a7bba104bd38ced8de8510642" EOF
rm meta-openpli/recipes-multimedia/vlc/libdca_0.0.5-10.bb
Building Image:¶
#build image and take a long break ~2,5 hours MACHINE=hd530c make image
Prepare Feed Build:¶
#fix epgimport rytec url sed -i 's|http://www.vuplus-community.net/rytec/sources|http://rytecepg.dyndns.tv/~rytecepg/epg_data/sources|g' meta-openpli/recipes-openpli/enigma2-plugins/enigma2-plugin-extensions-epgimport-rytec.bb cd build source env.source #build feed may take ~25 minutes MACHINE=hd530c bitbake openpli-enigma2-feed
Rebuild Feed with Tvheadend¶
Mind the ugly copy/pasted/reused EOF surrounded EOF codeblocks/patches maybe its necessary to manually just copy paste into nano directly since "cat" seems to break layout of .patch files...
#rebuild with tvheadend v4.2.7 sed -i 's/transmission \\/transmission \\\n\ttvheadend \\/g' ../meta-openpli/recipes-openpli/images/openpli-enigma2-feed.bb
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb SUMMARY = "Tvheadend TV streaming server" HOMEPAGE = "https://www.lonelycoder.com/redmine/projects/tvheadend" DEPENDS = "avahi zlib openssl python-native gettext dvb-apps" LICENSE = "GPLv3+" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9cae5acac2e9ee2fc3aec01ac88ce5db" SRC_URI = "git://github.com/tvheadend/tvheadend.git;branch=release/4.2 \ file://002-Fix-checks-for-sse2-mmx.patch \ file://0001-disable-varargs-warning-on-clang.patch \ file://002-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and-version.patch \ file://002-hdhomerun-remove-sha1sum.patch \ file://002-Makefile-Ignore-warning-about-wrong-includes.patch \ file://002-iconv.patch \ file://002-check.patch \ " SRCREV = "45cc65a03d1bb808b2d26601e3f7668448f3f930" PV = "4.2.79+git${SRCREV}" S = "${WORKDIR}/git" PACKAGECONFIG ?= "" PACKAGECONFIG[uriparser] = "--enable-uriparser,--disable-uriparser,uriparser" do_configure() { ./configure ${PACKAGECONFIG_CONFARGS} \ --prefix=${prefix} \ --libdir=${libdir} \ --bindir=${bindir} \ --datadir=${datadir} \ --arch=${TARGET_ARCH} \ --enable-dvbscan \ --disable-ffmpeg_static \ --enable-bundle \ --enable-hdhomerun_client } do_install() { oe_runmake install DESTDIR=${D} } FILES_${PN} += "${datadir}/${BPN}" RDEPENDS_${PN} += "libdvben50221 libucsi libdvbapi gettext" EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-Fix-checks-for-sse2-mmx.patch From f0dab6d6fe4b0aae4394eee93be86e9747c6ed5c Mon Sep 17 00:00:00 2001 From: Khem Raj <[email protected]> Date: Tue, 22 Nov 2016 05:07:38 +0000 Subject: [PATCH] Fix checks for sse2/mmx Just checking for cmdline options is not enough its better to check for builtin defines to be sure, clang does not error out on sse2 options on arm e.g. and it ends up doing SSE2 stuff for arm which is not desired Signed-off-by: Khem Raj <[email protected]> --- configure | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 47d2cf2..4be000c 100755 --- a/configure +++ b/configure @@ -150,8 +150,14 @@ fi else check_cc_header execinfo fi -check_cc_option mmx -check_cc_option sse2 +check_cc_snippet mmx '#ifndef __MMX__ +error "MMX not supported" +#endif +' +check_cc_snippet sse2 '#ifndef __SSE2__ +error "SSE2 not supported" +#endif +' check_cc_optionW unused-result if check_cc ' -- 1.9.1 EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and-version.patch From c3767e189e90965407937b6178adbbd8cdafe31d Mon Sep 17 00:00:00 2001 From: Khem Raj <[email protected]> Date: Tue, 22 Nov 2016 05:59:10 +0000 Subject: [PATCH] hdhomerun: Override forced overrdiing og CC/STRIP and CFLAGS This is required for cross compiling otherwise it ends up using build host gcc Signed-off-by: Khem Raj <[email protected]> --- Makefile.hdhomerun | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile.hdhomerun b/Makefile.hdhomerun index 943ffec..8bd14ff 100644 --- a/Makefile.hdhomerun +++ b/Makefile.hdhomerun @@ -19,8 +19,8 @@ DIR := $(dir $(lastword $(MAKEFILE_LIST))) include $(DIR)/.config.mk -unexport CFLAGS -unexport LDFLAGS +#unexport CFLAGS +#unexport LDFLAGS ifeq ($(CONFIG_PIE),yes) CFLAGS += -fPIE @@ -32,10 +32,10 @@ # ########################################################################### # Upstream Packages # ########################################################################### -LIBHDHR = libhdhomerun_20171221 +LIBHDHR = libhdhomerun_20180817 LIBHDHR_TB = $(LIBHDHR).tgz LIBHDHR_URL = http://download.silicondust.com/hdhomerun/$(LIBHDHR_TB) -LIBHDHR_SHA1 = 6b019728eadea3af7a5686ed5ba44e970bca7365 +LIBHDHR_SHA1 = 052868bde3a5713c55b4d060b77e0bc3a0d891d6 # ########################################################################### # Library Config @@ -79,6 +79,8 @@ $(LIB_ROOT)/$(LIBHDHR)/.tvh_download: $(call DOWNLOAD,$(LIBHDHR_URL),$(LIB_ROOT)/$(LIBHDHR_TB),$(LIBHDHR_SHA1)) $(call UNTAR,$(LIBHDHR_TB),z) ln -sf libhdhomerun $(LIB_ROOT)/$(LIBHDHR) + @sed -i -e "s/CC.*:=/CC ?=/" $(LIB_ROOT)/$(LIBHDHR)/Makefile + @sed -i -e "s/STRIP.*:=/STRIP ?=/" $(LIB_ROOT)/$(LIBHDHR)/Makefile @touch $@ $(LIB_ROOT)/$(LIBHDHR)/.tvh_build: \ -- 1.9.1 EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-hdhomerun-remove-sha1sum.patch From 906d95695af95970bf551ea55b6c3e70332c6b97 Mon Sep 17 00:00:00 2001 From: Khem Raj <[email protected]> Date: Tue, 22 Nov 2016 05:22:32 +0000 Subject: [PATCH] disable varargs warning on clang The issue is that 'len' is an unsigned char and we violate the promotion rules for passing the value to va_start. passing an object that undergoes defau lt argument promotion to 'va_start' has undefined behavior [-Wvarargs] | va_start(ap, len); Signed-off-by: Khem Raj <[email protected]> --- Makefile | 1 + 1 file changed, 5 deletion(+) diff --git a/Makefile.static b/Makefile.static index 8c5e380..f41ef1a 100644 --- a/Makefile.static +++ b/Makefile.static @@ -96,11 +96,6 @@ else \ file=$$(basename $(2)); \ cp "$$TVHEADEND_FILE_CACHE/$${file}" $(2); \ fi - @{ \ - sum=$$(sha1sum $(2) | cut -d ' ' -f 1); \ - printf "SHA1SUM test '$${sum}' == '$(3)': "; \ - test "y$${sum}" = "y$(3)"; \ - } @echo "OK" endef -- 1.9.1 EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-Makefile-Ignore-warning-about-wrong-includes.patch From 7d672305c7ad2f716dfe1c487b525a1a92954d4a Mon Sep 17 00:00:00 2001 From: Khem Raj <[email protected]> Date: Tue, 22 Nov 2016 06:22:36 +0000 Subject: [PATCH] Makefile: Ignore warning about wrong includes It happens on musl especially usr/include/sys/poll.h:1:2: error: redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror,-W#warnings] | #warning redirecting incorrect #include <sys/poll.h> to <poll.h> | ^ | In file included from src/avahi.c:48: Signed-off-by: Khem Raj <[email protected]> --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index f41ef1a..cc7b249 100644 --- a/Makefile +++ b/Makefile @@ -75,6 +75,7 @@ CFLAGS += -Wno-microsoft -Qunused-arguments -Wno-unused-function CFLAGS += -Wno-unused-value -Wno-tautological-constant-out-of-range-compare CFLAGS += -Wno-parentheses-equality -Wno-incompatible-pointer-types CFLAGS += -Wno-error=varargs +CFLAGS += -Wno-error=\#warnings endif -- 1.8.3.1 EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-iconv.patch commit 4535a2cf6ccf5209d220971890869390e1567889 Author: Jaroslav Kysela <[email protected]> Date: Mon Feb 19 13:58:38 2018 +0100 intlconv: add safe check for transil feature (to detect wrong musl builds), fixes #4940, fixes #4827 diff --git a/src/intlconv.c b/src/intlconv.c index 3fe3eb6..fb0d176 100644 --- a/src/intlconv.c +++ b/src/intlconv.c @@ -23,11 +23,26 @@ tvh_iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, return iconv(cd, inbuf, inbytesleft, outbuf, outbytesleft); } +static void +intlconv_test( void ) +{ + /* The string is "Yellow Horse" in Czech for the curiosity */ + const char *charset = intlconv_charset_id("ASCII", 1, 1); + char *s = intlconv_utf8safestr(charset, "ŽluťoučkýKůň", 128); + if (strcmp(s, "ZlutouckyKun")) { + tvherror(LS_MAIN, "iconv() routine is not working properly, aborting!"); + tvh_safe_usleep(2000000); + abort(); + } + free(s); +} + void intlconv_init( void ) { pthread_mutex_init(&intlconv_lock, NULL); pthread_mutex_init(&intlconv_lock_src, NULL); + intlconv_test(); } void EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/002-check.patch commit 4535a2cf6ccf5209d220971890869390e1567889 Author: Jaroslav Kysela <[email protected]> Date: Mon Feb 19 13:58:38 2018 +0100 intlconv: add safe check for transil feature (to detect wrong musl builds), fixes #4940, fixes #4827 diff --git a/src/intlconv.c b/src/intlconv.c index 3fe3eb6..fb0d176 100644 --- a/configure +++ b/configure @@ -344,8 +344,6 @@ # Binaries # check_bin ${PKG_CONFIG} bin_pkg_config || die 'no pkg-config binaries found' -check_bin ${XGETTEXT} || die 'no gettext binaries found' -check_bin ${MSGMERGE} || die 'no gettext binaries found' check_bin ${GZIPCMD} || die 'no gzip binary found' check_bin ${BZIP2} || echo 'WARN: no bzip2 binary found' EOF
#build feed again may take ~5 minutes MACHINE=hd530c bitbake openpli-enigma2-feed #see tvheadend ipkg file ls -la tmp/deploy/ipk/mips32el/tvheadend_* #copy package to openpli machine(enabled ssh) scp tmp/deploy/ipk/mips32el/tvheadend_*.ipk root@ipaddress:/ #install tvheadend on openpli(login with ssh) opkg install /tvheadend_*.ipk #if packages are missing manually opkg install them or copy from build machine #run tvheadend 1st time mkdir /etc/tuxbox/config/tvheadend /usr/bin/tvheadend -C -c /etc/tuxbox/config/tvheadend -u root -g root -f #will run in background and create config files because of -C #run tvheadend 2nd/xth time /usr/bin/tvheadend -c /etc/tuxbox/config/tvheadend -u root -g root -f #notice the -C is missing...
Prepare rebuild Tvheadend v4.3x¶
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb SUMMARY = "Tvheadend TV streaming server" HOMEPAGE = "https://www.lonelycoder.com/redmine/projects/tvheadend" DEPENDS = "avahi zlib openssl python-native gettext libdvbcsa dvb-apps" LICENSE = "GPLv3+" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9cae5acac2e9ee2fc3aec01ac88ce5db" SRC_URI = "git://github.com/tvheadend/tvheadend.git;branch=master \ file://002-Fix-checks-for-sse2-mmx.patch \ file://003-disable-varargs-warning-on-clang.patch \ file://003-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and.patch \ file://002-Makefile-Ignore-warning-about-wrong-includes.patch \ file://002-check.patch \ " SRCREV = "1648c7b7b5cfe4ce457e4fc04b96feb3c9b7d8a2" PV = "4.3+git${SRCREV}" S = "${WORKDIR}/git" PACKAGECONFIG ?= "" PACKAGECONFIG[uriparser] = "--enable-uriparser,--disable-uriparser,uriparser" do_configure() { ./configure ${PACKAGECONFIG_CONFARGS} \ --prefix=${prefix} \ --libdir=${libdir} \ --bindir=${bindir} \ --datadir=${datadir} \ --arch=${TARGET_ARCH} \ --disable-libx264 \ --disable-libx265 \ --enable-dvbscan \ --disable-ffmpeg_static \ --enable-bundle \ --enable-hdhomerun_client } do_install() { oe_runmake install DESTDIR=${D} } FILES_${PN} += "${datadir}/${BPN}" RDEPENDS_${PN} += "libdvben50221 libucsi libdvbapi gettext libdvbcsa" EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/003-disable-varargs-warning-on-clang.patch From 906d95695af95970bf551ea55b6c3e70332c6b97 Mon Sep 17 00:00:00 2001 From: Khem Raj <[email protected]> Date: Tue, 22 Nov 2016 05:22:32 +0000 Subject: [PATCH] disable varargs warning on clang The issue is that 'len' is an unsigned char and we violate the promotion rules for passing the value to va_start. passing an object that undergoes defau lt argument promotion to 'va_start' has undefined behavior [-Wvarargs] | va_start(ap, len); Signed-off-by: Khem Raj <[email protected]> --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 8c5e380..f41ef1a 100644 --- a/Makefile +++ b/Makefile @@ -82,6 +82,7 @@ ifeq ($(COMPILER), clang) CFLAGS += -Wno-microsoft -Qunused-arguments -Wno-unused-function CFLAGS += -Wno-unused-value -Wno-tautological-constant-out-of-range-compare CFLAGS += -Wno-parentheses-equality +CFLAGS += -Wno-error=varargs endif -- 1.9.1 EOF
cat <<'EOF' > ../meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend/003-hdhomerun-Override-forced-overrdiing-og-CC-STRIP-and.patch From c3767e189e90965407937b6178adbbd8cdafe31d Mon Sep 17 00:00:00 2001 From: Khem Raj <[email protected]> Date: Tue, 22 Nov 2016 05:59:10 +0000 Subject: [PATCH] hdhomerun: Override forced overrdiing og CC/STRIP and CFLAGS This is required for cross compiling otherwise it ends up using build host gcc Signed-off-by: Khem Raj <[email protected]> --- Makefile.hdhomerun | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile.hdhomerun b/Makefile.hdhomerun index 943ffec..8bd14ff 100644 --- a/Makefile.hdhomerun +++ b/Makefile.hdhomerun @@ -19,8 +19,8 @@ DIR := $(dir $(lastword $(MAKEFILE_LIST))) include $(DIR)/.config.mk -unexport CFLAGS -unexport LDFLAGS +#unexport CFLAGS +#unexport LDFLAGS ifeq ($(CONFIG_PIE),yes) CFLAGS += -fPIE @@ -79,6 +79,8 @@ $(LIB_ROOT)/$(LIBHDHR)/.tvh_download: $(call DOWNLOAD,$(LIBHDHR_URL),$(LIB_ROOT)/$(LIBHDHR_TB),$(LIBHDHR_SHA1)) $(call UNTAR,$(LIBHDHR_TB),z) ln -sf libhdhomerun $(LIB_ROOT)/$(LIBHDHR) + @sed -i -e "s/CC.*:=/CC ?=/" $(LIB_ROOT)/$(LIBHDHR)/Makefile + @sed -i -e "s/STRIP.*:=/STRIP ?=/" $(LIB_ROOT)/$(LIBHDHR)/Makefile @touch $@ $(LIB_ROOT)/$(LIBHDHR)/.tvh_build: \ -- 1.9.1 EOF
sed -i 's/libbluray \\/libbluray \\\n\tlibdvbcsa \\/g' ../meta-openpli/recipes-openpli/images/openpli-enigma2-feed.bb mkdir -p ../meta-openpli/recipes-multimedia/libdvbcsa/files
cat <<'EOF' > ../meta-openpli/recipes-multimedia/libdvbcsa/libdvbcsa.bb SUMMARY = "Open implementation of the DVB Common Scrambling Algorithm, encrypt and decrypt " SECTION = "libs/multimedia" LICENSE = "LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" SRCREV = "bc6c0b164a87ce05e9925785cc6fb3f54c02b026" PV = "1.1.0" SRC_URI = "git://code.videolan.org/videolan/libdvbcsa.git;protocol=https \ file://libdvbcsa.pc \ " S = "${WORKDIR}/git" inherit autotools lib_package pkgconfig do_install_append() { install -d ${D}${includedir}/dvbcsa/ install -d ${D}${libdir}/pkgconfig install -m 0644 ${S}/src/dvbcsa/dvbcsa.h ${D}${includedir}/dvbcsa/ install -m 0644 ${WORKDIR}/libdvbcsa.pc ${D}${libdir}/pkgconfig/ } EOF
cat <<'EOF' > ../meta-openpli/recipes-multimedia/libdvbcsa/files/libdvbcsa.pc prefix=/usr libdir=${prefix}/lib includedir=${prefix}/include Name: libdvbcsa Description: is a free implementation of the DVB Common Scrambling Algorithm - DVB/CSA - with encryption and decryption capabilities. Version: 1.1.0 Requires: Libs: -L${libdir} -ldvbcsa EOF
#rebuild feed tvheadend v4.3 again may take ~5 minutes MACHINE=hd530c bitbake openpli-enigma2-feed
Prepare feed updated catalinii minisatip¶
This will need previous libdvbcsa step see tvheadend 4.3!
cat <<'EOF' > ../meta-openpli/recipes-openpli/satip/minisatip.bb SUMMARY = "SAT>IP server" MAINTAINER = "catalinii" require conf/license/license-gplv2.inc HOMEPAGE = "https://minisatip.org/" DEPENDS = "libdvbcsa openssl" RDEPENDS_${PN} = "libdvbcsa openssl" SRC_URI = " \ git://github.com/catalinii/minisatip.git;protocol=http \ file://minisatip.init \ " SRCREV = "${AUTOREV}" UPSTREAMVERSION = "3.1d" PV = "${UPSTREAMVERSION}+git${SRCPV}" S = "${WORKDIR}/git" BUILD = "${WORKDIR}/git" inherit autotools-brokensep INITSCRIPT_NAME = "minisatip" EXTRA_OECONF = "--enable-enigma --disable-netcv" do_configure_prepend () { } do_install () { install -d -m 0755 ${D}/${bindir} install -d -m 0755 ${D}/${datadir}/${PN} install -d -m 0755 ${D}/etc/init.d install -m 0755 ${S}/minisatip ${D}/${bindir}/ install -m 0755 ${WORKDIR}/minisatip.init ${D}/etc/init.d/minisatip cp -r --preserve=timestamps ${S}/html ${D}/${datadir}/${PN} } EOF
mkdir ../meta-openpli/recipes-openpli/satip/files
cat <<'EOF' > ../meta-openpli/recipes-openpli/satip/files/minisatip.init #!/bin/sh # # start/stop minisatip server. if [ -e /etc/default/minisatip ]; then . /etc/default/minisatip fi if ! [ -x /usr/bin/minisatip ]; then exit 0 fi case "$1" in start) echo -n "Starting minisatip:" start-stop-daemon -S -x /usr/bin/minisatip -p /var/run/minisatip.pid -- -R /usr/share/minisatip/html $MINISATIP_OPTS > /dev/null echo "." ;; stop) echo -n "Stopping minisatip:" start-stop-daemon -K -x /usr/bin/minisatip -p /var/run/minisatip.pid > /dev/null echo "." ;; restart) echo -n "Restarting minisatip:" echo $0 stop $0 start # killall -HUP inetd #echo "." ;; *) echo "Usage: /etc/init.d/minisatip {start|stop|restart}" exit 1 ;; esac exit 0 EOF
sed -i 's|81f519fa5346968906c3348d069d0fcddd4b62c2|1ef3c7151b5dd5d275b6b4c66c98564b83a7721c|g' ../meta-openpli/conf/distro/reporefs.conf #rebuild again with updated minisatip support MACHINE=hd530c bitbake openpli-enigma2-feed
Replies (8)
RE: Howto build Tvheadend 4.2.x /4.3 with yocto / openembedded / bitbake / OpenPLi 6.2 for mips32el Mut@nt hd530c VuSOLO - Added by Walter av almost 6 years ago
Debugging¶
https://tvheadend.org/projects/tvheadend/wiki/Debugging
Trying to install the tvheadend-dbg package shows that also dependent packages should be installed using their respective dbg variant...
opkg install tvheadend-dbg_4.31\+git79ea2a42c477e315ffa2143252273fe2db0c2165-r0_mi ps32el.ipk tvheadend-dbg: unsatisfied recommendation for dbus-lib-dbg tvheadend-dbg: unsatisfied recommendation for libavahi-client-dbg tvheadend-dbg: unsatisfied recommendation for libavahi-common-dbg tvheadend-dbg: unsatisfied recommendation for libavcodec-dbg tvheadend-dbg: unsatisfied recommendation for libavfilter-dbg tvheadend-dbg: unsatisfied recommendation for libavformat-dbg tvheadend-dbg: unsatisfied recommendation for libavutil-dbg tvheadend-dbg: unsatisfied recommendation for libc6-dbg tvheadend-dbg: unsatisfied recommendation for libcrypto-dbg tvheadend-dbg: unsatisfied recommendation for libdvbcsa-dbg tvheadend-dbg: unsatisfied recommendation for libpcre-dbg tvheadend-dbg: unsatisfied recommendation for libssl-dbg tvheadend-dbg: unsatisfied recommendation for libz-dbg Installing tvheadend-dbg (4.31+git79ea2a42c477e315ffa2143252273fe2db0c2165) on root. Configuring tvheadend-dbg
Although no further install errors show up, it seems that /usr/bin/tvheadend(-dbg) is missing tvheadend was installed in "/usr/bin/.debug/tvheadend" but it stalls on the following error so no debugging yet sorry.
/usr/bin/tvheadend: line 1: ELFP�: not found /usr/bin/tvheadend: line 2: syntax error: unexpected "("
RE: Howto build Tvheadend 4.2.x /4.3 with yocto / openembedded / bitbake / OpenPLi 6.2 for mips32el Mut@nt hd530c VuSOLO - Added by Digi Hoe almost 6 years ago
Sorry for abit oftopic, any chance you could share your tvheadend.ipk and newer minisatip.ipk files?
Also would you think that CI-module could work in tvheadend?
Best regadrs!
RE: Howto build Tvheadend 4.2.x /4.3 with yocto / openembedded / bitbake / OpenPLi 6.2 for mips32el Mut@nt hd530c VuSOLO - Added by Walter av almost 6 years ago
Digi Hoe wrote:
Sorry for abit oftopic, any chance you could share your tvheadend.ipk and newer minisatip.ipk files?
Also would you think that CI-module could work in tvheadend?
Best regadrs!
Not really useful sharing the *.ipk files since they don't work reliable, they also come with dependencies... and the reason I did write a step by step tutorial is the ability to make them yourself. Any chance of showing which steps are not clear?
Also are we talking about the same hardware (offtopic?) as far as I know the hd530c does not come with a CI?
Tvheadend supports some CI's / tuner combinations fine for more than 2 years now.
RE: Howto build Tvheadend 4.2.x /4.3 with yocto / openembedded / bitbake / OpenPLi 6.2 for mips32el Mut@nt hd530c VuSOLO - Added by Digi Hoe almost 6 years ago
Walter av wrote:
Digi Hoe wrote:
Sorry for abit oftopic, any chance you could share your tvheadend.ipk and newer minisatip.ipk files?
Also would you think that CI-module could work in tvheadend?
Best regadrs!
Not really useful sharing the *.ipk files since they don't work reliable, they also come with dependencies... and the reason I did write a step by step tutorial is the ability to make them yourself. Any chance of showing which steps are not clear?
Also are we talking about the same hardware (offtopic?) as far as I know the hd530c does not come with a CI?
Tvheadend supports some CI's / tuner combinations fine for more than 2 years now.
Your titorial is fine and detailed, easy to follow, however most people do not want to load an older specific Linux distro (is ubuntu 16.04.05 fine btw, since thats the one for dl on the ubuntu site) and then go through hours of hours, I might do, but the general public will not (and minisatip can be compiled static, would be good if tvheadend also had that option).
Yes ofcourse I know about the CI's working in general, but since the title also says Vu Solo also I kind of thought that you had tried it on that set top box too (one of many boxes I do own).
Best regards and thank your for your time and effort!
RE: Howto build Tvheadend 4.2.x /4.3 with yocto / openembedded / bitbake / OpenPLi 6.2 for mips32el Mut@nt hd530c VuSOLO - Added by Walter av almost 6 years ago
You're absolutely right about the VUsolo having a CI, sorry for guessing you had a hd530c. I don't own a VUsolo but I'm not sure any more when testing if the interanl CI was listed as linuxdvb api v5 compatible CI to its DVB-S2 tuner in the TVheadend webinterface. Check the kernel version of the Vusolo and see if that may already answer the questions if dvb api5 dvbcsa is already supported since linux 3.x or compile own version?
The problem with the Vusolo is its very limited nand size, therefor during testing of this tvheadend package I only saw that it runs one of the early 4.x Tvheadend that got build and after detecting tuner did some FTA setup and than noticed that the root / was full will installing the lastest 4.3 version of package (which is a lot bigger) and than the device crashed out of disk space. Since then did not try again.
MAybe in future.
RE: Howto build Tvheadend 4.2.x /4.3 with yocto / openembedded / bitbake / OpenPLi 6.2 for mips32el Mut@nt hd530c VuSOLO - Added by Marco D almost 6 years ago
Thanks for your tutorial.
I'm using a VU+ Uno 4K SE receiver (Enigma2) with DVB-C FBC Tuner. It's an ARM-based receiver with 1,7 GHz Dual-Core CPU, 2GB RAM and even an HD video hardware transcoder built-in.
Specs: http://www.vuplus.com/sub/sub0117.php
Is it possible to install Tvheadend on this receiver with your provided instructions? Can the build process be done on the machine itself (using the mounted hard drive for the large file requirements)?
RE: Howto build Tvheadend 4.2.x /4.3 with yocto / openembedded / bitbake / OpenPLi 6.2 for mips32el Mut@nt hd530c VuSOLO - Added by Peter Bašista over 4 years ago
I'm using a VU+ Uno 4K SE receiver (Enigma2) with DVB-C FBC Tuner.
I am also using the same device, but with a DVB-S FBC tuner.
Is it possible to install Tvheadend on this receiver with your provided instructions?
Most probably yes. I have done it slightly differently by at first building the entire current OpenATV image to ensure compatibility and then building Tvheadend by using bitbake
and the existing tvheadend
recipe. It took hours and I remember that there were issues (packages failing to build) that needed to be resolved manually.
I have done the same thing a while back on Octagon SF4008 and there the Tvheadend works very well. With regards to VU Plus Uno 4K SE, at least in my case Tvheadend does not seem to work with the device's tuner correctly (https://tvheadend.org/boards/5/topics/41039).
Can the build process be done on the machine itself (using the mounted hard drive for the large file requirements)?
Yes, but it would take an unnecessarily long time. Also, in order to install all build dependencies, it would be perhaps simpler to create and use a chroot environment with some standard Linux distribution where the necessary tools are more readily available. In such case, I think that it makes more sense to use a regular, possibly more powerful computer.
RE: Howto build Tvheadend 4.2.x /4.3 with yocto / openembedded / bitbake / OpenPLi 6.2 for mips32el Mut@nt hd530c VuSOLO - Added by captain onboard almost 4 years ago
last version now on feed with openatv 6.4 and 6.5, start with images 25.12.2020
to install
opkg update
opkg install tvheadend