Commit 997c17a8 authored by Benoît Thébaudeau's avatar Benoît Thébaudeau Committed by Peter Korsgaard
Browse files

rpi-userland: Fix vcfiled startup



The VideoCore file server daemon startup script installed from this package is
not compatible with BuildRoot (because of its naming and other Debian
dependencies), which prevented vcfiled from starting. Hence, prevent this
package from installing its vcfiled startup script, and add a configuration
option to install a vcfiled SysV init script suitable for BuildRoot.

[Peter: tweak help text as suggested by Yann]
Signed-off-by: default avatarBenoît Thébaudeau <benoit.thebaudeau@advansee.com>
Acked-by: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: default avatarSamuel Martin <s.martin49@gmail.com>
Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent 47544e43
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -31,6 +31,13 @@ config BR2_PACKAGE_PROVIDES_LIBOPENVG
config BR2_PACKAGE_PROVIDES_LIBOPENMAX
	default "rpi-userland"

config BR2_PACKAGE_RPI_USERLAND_START_VCFILED
	bool "Start vcfiled"
	depends on BR2_INIT_SYSV || BR2_INIT_BUSYBOX
	help
	  vcfiled is a daemon serving files to VideoCore from the host file
	  system.

endif

comment "rpi-userland needs a toolchain w/ C++, largefile, threads"
+47 −0
Original line number Diff line number Diff line
#!/bin/sh

NAME=vcfiled
DESC="VideoCore file server daemon $NAME"
DAEMON="/usr/sbin/$NAME"
DAEMON_ARGS=""
CFGFILE="/etc/default/$NAME"
PIDFILE="/var/run/$NAME.pid"

# Read configuration variable file if it is present
[ -r "$CFGFILE" ] && . "$CFGFILE"

do_start()
{
	echo -n "Starting $DESC: "
	start-stop-daemon -S -q -p "$PIDFILE" -x "$DAEMON" -- $DAEMON_ARGS &&
			echo "done" || echo "failed"
}

do_stop()
{
	echo -n "Stopping $DESC: "
	if start-stop-daemon -K -q -R TERM/30/KILL/5 -p "$PIDFILE" -n "$NAME"; then
		# This daemon does not remove its PID file when it exits.
		rm -f "$PIDFILE"
		echo "done"
	else
		echo "failed"
	fi
}

case "$1" in
	start)
		do_start
		;;
	stop)
		do_stop
		;;
	restart|reload)
		do_stop
		do_start
		;;
	*)
		echo "Usage: $0 {start|stop|restart|reload}" >&2
		exit 1
		;;
esac
+12 −1
Original line number Diff line number Diff line
@@ -9,11 +9,22 @@ RPI_USERLAND_SITE = $(call github,raspberrypi,userland,$(RPI_USERLAND_VERSION))
RPI_USERLAND_LICENSE = BSD-3c
RPI_USERLAND_LICENSE_FILES = LICENCE
RPI_USERLAND_INSTALL_STAGING = YES
RPI_USERLAND_CONF_OPT = -DVMCS_INSTALL_PREFIX=/usr
RPI_USERLAND_CONF_OPT = -DVMCS_INSTALL_PREFIX=/usr \
	-DCMAKE_C_FLAGS="-DVCFILED_LOCKFILE=\\\"/var/run/vcfiled.pid\\\""

RPI_USERLAND_PROVIDES = libegl libgles libopenmax libopenvg

ifeq ($(BR2_PACKAGE_RPI_USERLAND_START_VCFILED),y)
define RPI_USERLAND_INSTALL_INIT_SYSV
	$(INSTALL) -m 0755 -D package/rpi-userland/S94vcfiled \
			$(TARGET_DIR)/etc/init.d/S94vcfiled
endef
endif

define RPI_USERLAND_POST_TARGET_CLEANUP
	rm -f $(TARGET_DIR)/etc/init.d/vcfiled
	rm -f $(TARGET_DIR)/usr/share/install/vcfiled
	rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/share/install
	rm -Rf $(TARGET_DIR)/usr/src
endef
RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP