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"
 
--- /dev/null
+#!/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
 
 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