owfs: add sysv init scripts
owserver is started unconditionally, but it needs the device(s) to be specified at startup. Therefore a check for non-empty OWSERVER_ARGS is added to the owserver start script. owfs is started only if is built. It will connect to the owserver. It will try to load the fuse module; if fuse is built-in or already loaded, modprobe -q will fail silently. The filesystem will be mounted on /dev/1wire, because it represents the 1-wire slave devices; also, the bundled Debian init scripts mount it there. We have to create that directory in the init script in case of devtmpfs, and we have to create it in the rootfs for static /dev; for simplicity, just do both. Users who want a setup without owserver need to remove the owserver init script post-build and need to give appropriate defaults to owfs. [Peter: fix mountpoint variable typo in S30owfs] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
c6d16d3b2d
commit
ac940e023d
31
package/owfs/S25owserver
Executable file
31
package/owfs/S25owserver
Executable file
@ -0,0 +1,31 @@
|
||||
NAME="owserver"
|
||||
DAEMON="/usr/bin/${NAME}"
|
||||
PID_F="/run/${NAME}.pid"
|
||||
|
||||
OWSERVER_ARGS=
|
||||
[ -r /etc/default/${NAME} ] && . /etc/default/${NAME}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
printf "Starting ${NAME}: "
|
||||
if [ -z "${OWSERVER_ARGS}" ]; then
|
||||
echo "OWSERVER_ARGS must be set in defaults file" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
start-stop-daemon -S -x ${DAEMON} -- \
|
||||
--pid_file ${PID_F} ${OWSERVER_ARGS}
|
||||
[ $? -eq 0 ] && echo "OK" || echo "FAIL"
|
||||
;;
|
||||
stop)
|
||||
printf "Stopping ${NAME}: "
|
||||
start-stop-daemon -K -p ${PID_F}
|
||||
[ $? -eq 0 ] && echo "OK" || echo "FAIL"
|
||||
;;
|
||||
restart|reload)
|
||||
$0 stop
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|reload}"
|
||||
exit 1
|
||||
esac
|
33
package/owfs/S30owfs
Executable file
33
package/owfs/S30owfs
Executable file
@ -0,0 +1,33 @@
|
||||
NAME="owfs"
|
||||
DAEMON="/usr/bin/${NAME}"
|
||||
PID_F="/run/${NAME}.pid"
|
||||
OWFS_MOUNTPOINT="/dev/1wire"
|
||||
OWFS_DEVICES="-s localhost:4304"
|
||||
OWFS_ARGS=""
|
||||
|
||||
[ -r /etc/default/${NAME} ] && . /etc/default/${NAME}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
printf "Starting ${NAME}: "
|
||||
# Fuse may be in a module, so try to load it
|
||||
modprobe -q fuse && printf "[fuse] "
|
||||
mkdir -p ${OWFS_MOUNTPOINT}
|
||||
start-stop-daemon -S -x ${DAEMON} -- \
|
||||
--pid_file ${PID_F} -m ${OWFS_MOUNTPOINT} ${OWFS_DEVICES} \
|
||||
${OWFS_ARGS}
|
||||
[ $? -eq 0 ] && echo "OK" || echo "FAIL"
|
||||
;;
|
||||
stop)
|
||||
printf "Stopping ${NAME}: "
|
||||
start-stop-daemon -K -p ${PID_F}
|
||||
[ $? -eq 0 ] && echo "OK" || echo "FAIL"
|
||||
;;
|
||||
restart|reload)
|
||||
$0 stop
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|reload}"
|
||||
exit 1
|
||||
esac
|
@ -23,6 +23,14 @@ OWFS_CONF_OPTS += \
|
||||
--enable-owfs \
|
||||
--with-fuseinclude=$(STAGING_DIR)/usr/include \
|
||||
--with-fuselib=$(STAGING_DIR)/usr/lib
|
||||
define OWFS_INSTALL_FUSE_INIT_SYSV
|
||||
$(INSTALL) -D -m 0755 $(OWFS_PKGDIR)S30owfs \
|
||||
$(TARGET_DIR)/etc/init.d/S30owfs
|
||||
endef
|
||||
define OWFS_CREATE_MOUNTPOINT
|
||||
mkdir -p $(TARGET_DIR)/dev/1wire
|
||||
endef
|
||||
OWFS_POST_INSTALL_TARGET_HOOKS += OWFS_CREATE_MOUNTPOINT
|
||||
else
|
||||
OWFS_CONF_OPTS += --disable-owfs
|
||||
endif
|
||||
@ -70,4 +78,10 @@ ifeq ($(BR2_STATIC_LIBS),y)
|
||||
OWFS_CONF_OPTS += --disable-zero
|
||||
endif
|
||||
|
||||
define OWFS_INSTALL_INIT_SYSV
|
||||
$(INSTALL) -D -m 0755 $(OWFS_PKGDIR)S25owserver \
|
||||
$(TARGET_DIR)/etc/init.d/S25owserver
|
||||
$(OWFS_INSTALL_FUSE_INIT_SYSV)
|
||||
endef
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
Loading…
Reference in New Issue
Block a user