forked from freifunk-franken/firmware
fff-macnock: new package
Fixes #68 Signed-off-by: Tim Niemeyer <tim@tn-x.org> Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Reviewed-by: Robert Langhammer <rlanghammer@web.de>
This commit is contained in:
parent
a7544befc5
commit
00767f92ad
|
@ -13,7 +13,7 @@ define Package/$(PKG_NAME)
|
|||
CATEGORY:=Freifunk
|
||||
TITLE:= Freifunk-Franken hoods
|
||||
URL:=http://www.freifunk-franken.de
|
||||
DEPENDS:=+fff-hoodutils
|
||||
DEPENDS:=+fff-hoodutils +fff-macnock
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/description
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fff-macnock
|
||||
PKG_VERSION:=0.1
|
||||
PKG_RELEASE:=1
|
||||
PKG_REV:=ffd1a64515709d75afaab0f990308fd164dc4cc6
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://github.com/FreifunkFranken/macnocker.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_SOURCE_VERSION:=$(PKG_REV)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
CMAKE_OPTIONS:=-DMACNOCK_DEBUG=ON
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
SECTION:=base
|
||||
CATEGORY:=Freifunk
|
||||
TITLE:= Freifunk-Franken mac nocker
|
||||
URL:=http://www.freifunk-franken.de
|
||||
KCONFIG:= \
|
||||
CONFIG_NET_EMATCH=y \
|
||||
CONFIG_NET_EMATCH_U32=y \
|
||||
CONFIG_NET_CLS_BASIC=y \
|
||||
CONFIG_NET_CLS_ACT=y \
|
||||
CONFIG_NET_ACT_GACT=y \
|
||||
CONFIG_NET_CLS_U32=y
|
||||
DEPENDS:=+fff-network
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/macnock $(1)/usr/sbin/macnock
|
||||
$(CP) ./files/* $(1)/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)))
|
|
@ -0,0 +1,64 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=99
|
||||
|
||||
USE_PROCD=1
|
||||
PROCD_DEBUG=9
|
||||
|
||||
validate_hood_section() {
|
||||
if [ -z "$(uci -q get network.ethmesh.ifname)" ]; then
|
||||
# false
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ -n "$(uci -q get system.@system[0].hood)" -o -n "$(uci -q get network.mesh.macaddr)" ]; then
|
||||
# true
|
||||
return 0
|
||||
fi
|
||||
|
||||
# false
|
||||
return 1
|
||||
}
|
||||
|
||||
service_triggers()
|
||||
{
|
||||
local script name
|
||||
|
||||
script=$(readlink -f "$initscript")
|
||||
name=$(basename ${script:-$initscript})
|
||||
|
||||
procd_add_config_trigger "config.change" "system" /etc/init.d/$name reload
|
||||
procd_add_interface_trigger "interface.*" "ethmesh" /etc/init.d/$name reload
|
||||
procd_add_validation validate_hood_section
|
||||
}
|
||||
|
||||
reload_service()
|
||||
{
|
||||
echo "Explicitly restarting macnocker"
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
start_service() {
|
||||
validate_hood_section || {
|
||||
echo "validation failed"
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
local IFACE="$(uci -q get network.ethmesh.ifname)"
|
||||
local HOOD="$(uci -q get system.@system[0].hood)"
|
||||
if [ -z "$HOOD" ]; then
|
||||
HOOD="$(uci -q get network.mesh.macaddr)"
|
||||
fi
|
||||
|
||||
procd_open_instance macnock
|
||||
procd_set_param command /usr/sbin/macnock $IFACE $HOOD
|
||||
procd_set_param respawn 10 10 0
|
||||
procd_set_param file /etc/config/system
|
||||
procd_set_param netdev $IFACE
|
||||
procd_set_param stdout 1
|
||||
procd_set_param stderr 1
|
||||
procd_set_param user root
|
||||
procd_close_instance
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
if ! grep -q u32 /etc/iproute2/ematch_map;
|
||||
then
|
||||
echo "3 u32" > /etc/iproute2/ematch_map
|
||||
fi
|
Loading…
Reference in New Issue