batman-adv: few makefile changes & upgrade dev to latest

git-svn-id: svn://svn.openwrt.org/openwrt/packages@21541 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
marek 2010-05-23 13:17:09 +00:00
parent f7a1999dd0
commit d12ba985c2
5 changed files with 142 additions and 46 deletions

View File

@ -9,23 +9,42 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=batman-adv
PKG_REV:=1611
PKG_VERSION:=r$(PKG_REV)
PKG_RELEASE:=1
# Versions to download for maintenance build
PKG_REV_MAINT:=1611
PKG_KMOD_VERSION_MAINT:=5c4633c532a7a9b5adfe5dbf3f5e97fff307216e
# just for the package version numbering
PKG_VERSION_MAINT:=0.2.1
# Versions to download for development build
PKG_REV_DEV:=1679
PKG_KMOD_VERSION_DEV:=de32ed5ba4b6487dbd3c4cad6c9ba8240d79c421
# just for the package version numbering
PKG_VERSION_DEV:=0.3.0a
## Make sure git-commit hash and svn revision number fit! ##
PKG_RELEASE:=1
PKG_SOURCE_SUBDIR:=$(PKG_NAME)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
PKG_TOOL_VERSION=$(PKG_REV)
ifneq ($(CONFIG_BATMAN_ADV_DEV),)
PKG_KMOD_VERSION=f9c84f3d20df87f4ebbc38b754b6b13fc1593ce2
PKG_REV:=$(PKG_REV_DEV)
PKG_VERSION:=$(PKG_VERSION_DEV)
PKG_KMOD_VERSION=$(PKG_KMOD_VERSION_DEV)
PKG_KMOD_URL=http://git.open-mesh.org/snapshot/$(PKG_KMOD_VERSION)/
PKG_KMOD_FNAME=batman-adv-dev-$(PKG_REV).tar.gz
PKG_TOOL_VERSION=$(PKG_REV)
PKG_TOOL_PROTO=svn
PKG_TOOL_URL=http://downloads.open-mesh.org/svn/batman/trunk/batctl
PKG_TOOL_FNAME:=batctl-dev-$(PKG_TOOL_VERSION).tar.gz
else
PKG_KMOD_VERSION=5c4633c532a7a9b5adfe5dbf3f5e97fff307216e
PKG_REV:=$(PKG_REV_MAINT)
PKG_VERSION:=$(PKG_VERSION_MAINT)
PKG_KMOD_VERSION=$(PKG_KMOD_VERSION_MAINT)
PKG_KMOD_URL=http://git.open-mesh.org/snapshot/$(PKG_KMOD_VERSION)/
PKG_KMOD_FNAME=batman-adv-maint-$(PKG_REV).tar.gz
PKG_TOOL_VERSION=$(PKG_REV)
PKG_TOOL_PROTO=svn
PKG_TOOL_URL=http://downloads.open-mesh.org/svn/batman/branches/batctl-0.2.x/
PKG_TOOL_FNAME:=batctl-maint-$(PKG_TOOL_VERSION).tar.gz
endif
@ -69,7 +88,7 @@ endef
define Download/batman-adv-kernelland
FILE:=$(PKG_KMOD_FNAME)
URL:=http://git.open-mesh.org/snapshot/$(PKG_KMOD_VERSION)/
URL:=$(PKG_KMOD_URL)
endef
$(eval $(call Download,batman-adv-kernelland))
@ -77,7 +96,7 @@ ifneq ($(DEVELOPER)$(CONFIG_KMOD_BATMAN_ADV_BATCTL),)
define Download/batctl
FILE:=$(PKG_TOOL_FNAME)
URL:=$(PKG_TOOL_URL)
PROTO:=svn
PROTO:=$(PKG_TOOL_PROTO)
VERSION:=$(PKG_TOOL_VERSION)
SUBDIR:=$(PKG_SOURCE_SUBDIR)/batctl
endef
@ -157,8 +176,8 @@ endef
define KernelPackage/batman-adv-kernelland/install
$(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) ./files/etc/init.d/batman-adv-kernelland $(1)/etc/init.d
$(INSTALL_DATA) ./files/etc/config/batman-adv-kernelland $(1)/etc/config
$(INSTALL_BIN) ./files/etc/init.d/batman-adv $(1)/etc/init.d
$(INSTALL_DATA) ./files/etc/config/batman-adv $(1)/etc/config
ifneq ($(DEVELOPER)$(CONFIG_KMOD_BATMAN_ADV_BATCTL),)
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/batctl $(1)/usr/sbin/

View File

@ -0,0 +1,5 @@
config 'mesh' 'bat0'
option 'interfaces' 'wlan0'
option 'orig_interval'
option 'log_level'

View File

@ -1,4 +0,0 @@
config batman-adv-kernelland general
option interface ath0
option originator_interval
option log_level

View File

@ -0,0 +1,108 @@
#!/bin/sh /etc/rc.common
START=90
MODULE_DIR="/sys/module/batman_adv"
detect_version() {
local version
if [ ! -d "$MODULE_DIR" ]; then
echo "batman-adv module directory not found - is the module loaded ?" >&2
return 1
fi
version=$(cat $MODULE_DIR/version)
if [ "$version" != "${version#0.3*}" ]; then
BAT_VER="0.3"
elif [ "$version" != "${version#0.2*}" ]; then
BAT_VER="0.2"
else
echo "Error - unknown version encountered: $version" >&2
return 1
fi
return 0
}
start_mesh () {
local meshif="$1"
detect_version
[ $? -ne 0 ] && return 1
config_get interfaces "$meshif" interfaces
config_get orig_interval "$meshif" orig_interval
config_get log_level "$meshif" log_level
if [ "$interfaces" = "" ]; then
echo Error, you must specify at least a network interface
return
fi
for interface in $interfaces
do
if [ "$BAT_VER" = "0.2" ]; then
echo $interface > /proc/net/batman-adv/interfaces
else
[ ! -f "/sys/class/net/$interface/batman_adv/mesh_iface" ] && echo "Can't add interface $interface - ignoring" && continue
echo $meshif > /sys/class/net/$interface/batman_adv/mesh_iface
fi
done
if [ $orig_interval ]; then
if [ "$BAT_VER" = "0.2" ]; then
echo $orig_interval > /proc/net/batman-adv/orig_interval
else
echo $orig_interval > /sys/class/net/$meshif/batman_adv/originator_interval
fi
fi
if [ $log_level ]; then
echo $log_level > /sys/module/batman_adv/parameters/debug 2>&-
fi
}
stop_mesh() {
local meshif="$1"
detect_version
[ $? -ne 0 ] && return 1
if [ "$BAT_VER" = "0.2" ]; then
echo "" > /proc/net/batman-adv/interfaces
return
fi
for iface in $(ls /sys/class/net/*)
do
[ ! -f "$iface/batman_adv/mesh_iface" ] && continue
[ "$(head -1 $iface/batman_adv/mesh_iface)" != "status: $meshif" ] && continue
echo "none" > $iface/batman_adv/mesh_iface
done
}
# can also be used with "batman-adv start bat0"
start() {
config_load batman-adv
if [ -n "$1" ]; then
start_mesh $1
else
config_foreach start_mesh mesh
fi
}
# can also be used with "batman-adv stop bat0"
stop () {
config_load batman-adv
if [ -n "$1" ]; then
stop_mesh $1
else
config_foreach stop_mesh mesh
fi
}

View File

@ -1,32 +0,0 @@
#!/bin/sh /etc/rc.common
START=90
start () {
interfaces=$(uci get batman-adv-kernelland.general.interface)
if [ "$interfaces" = "" ]; then
echo $1 Error, you must specify at least a network interface
exit
fi
for interface in $interfaces
do
echo $interface > /proc/net/batman-adv/interfaces
done
originator_interval=$(uci get batman-adv-kernelland.general.originator_interval)
log_level=$(uci get batman-adv-kernelland.general.log_level)
if [ $originator_interval ]; then
echo $originator_interval > /proc/net/batman-adv/orig_interval
fi
if [ $log_level ]; then
echo $log_level > /sys/module/batman_adv/parameters/debug 2>&-
fi
}
stop () {
echo "" > /proc/net/batman-adv/interfaces
}