Initial commit
This commit is contained in:
54
package/utils/admswconfig/Makefile
Normal file
54
package/utils/admswconfig/Makefile
Normal file
@@ -0,0 +1,54 @@
|
||||
#
|
||||
# Copyright (C) 2007 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=admswconfig
|
||||
PKG_VERSION:=0.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://downloads.openwrt.org/sources
|
||||
PKG_HASH:=37b4409ea2105520b4a7327e53c3210251000ddf58f81a8e4c19e6ff9d615afe
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/admswconfig
|
||||
SECTION:=utils
|
||||
CATEGORY:=Utilities
|
||||
TITLE:=ADM5120 Switch configuration tool
|
||||
DEPENDS:=@TARGET_adm5120
|
||||
URL:=http://sharon.esrac.ele.tue.nl/users/pe1rxq/linux-adm/admswconfig/
|
||||
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
|
||||
endef
|
||||
|
||||
define Package/admswconfig/description
|
||||
A program to configure the internal ethernet switch of an ADM5120 processor.
|
||||
You need the corresponding driver for the switch in the kernel.
|
||||
With this program you can configure which ports of the switch belong
|
||||
to the different ethernet devices.
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(TARGET_CC) $(TARGET_CFLAGS) -Os $(PKG_BUILD_DIR)/admswconfig.c -o $(PKG_BUILD_DIR)/$(PKG_NAME)
|
||||
endef
|
||||
|
||||
define Package/admswconfig/install
|
||||
$(INSTALL_DIR) $(1)/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/admswconfig $(1)/sbin/
|
||||
$(INSTALL_DIR) $(1)/lib/network/
|
||||
$(INSTALL_DATA) ./files/admswswitch.sh $(1)/lib/network/admswswitch.sh
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/admswconfig $(1)/etc/init.d/admswconfig
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,admswconfig))
|
||||
68
package/utils/admswconfig/files/admswconfig
Normal file
68
package/utils/admswconfig/files/admswconfig
Normal file
@@ -0,0 +1,68 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2006 OpenWrt.org
|
||||
|
||||
START=05
|
||||
|
||||
start() {
|
||||
[ -e /etc/config/network ] && exit 0
|
||||
|
||||
mkdir -p /etc/config
|
||||
|
||||
board_name=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /system type/ {print $2}' /proc/cpuinfo)
|
||||
|
||||
case "$board_name" in
|
||||
"Compex WP54"*)
|
||||
board="Compex WP54";;
|
||||
esac
|
||||
|
||||
echo "$board" |awk '
|
||||
function p(cfgname, name) {
|
||||
if (c[name] != "") print " option " cfgname " \"" c[name] "\""
|
||||
}
|
||||
|
||||
BEGIN {
|
||||
FS="="
|
||||
c["lan_ifname"]="eth0"
|
||||
c["wan_ifname"]="eth1"
|
||||
c["eth0ports"]="1 2 3 4"
|
||||
c["eth1ports"]="0"
|
||||
}
|
||||
END {
|
||||
board=$1
|
||||
if (board == "Compex WP54") {
|
||||
c["eth0ports"]="0"
|
||||
c["eth1ports"]="1"
|
||||
}
|
||||
|
||||
print "#### VLAN configuration "
|
||||
print "config switch"
|
||||
p("eth0", "eth0ports")
|
||||
p("eth1", "eth1ports")
|
||||
print ""
|
||||
print ""
|
||||
print "#### Loopback configuration"
|
||||
print "config interface loopback"
|
||||
print " option ifname \"lo\""
|
||||
print " option proto static"
|
||||
print " option ipaddr 127.0.0.1"
|
||||
print " option netmask 255.0.0.0"
|
||||
print ""
|
||||
print ""
|
||||
print "#### LAN configuration"
|
||||
print "config interface lan"
|
||||
print " option type bridge"
|
||||
p("ifname", "lan_ifname")
|
||||
p("macaddr", "lan_macaddr")
|
||||
print " option proto static"
|
||||
print " option ipaddr 192.168.1.1"
|
||||
print " option netmask 255.255.255.0"
|
||||
print ""
|
||||
print ""
|
||||
print "#### WAN configuration"
|
||||
print "config interface wan"
|
||||
p("ifname", "wan_ifname")
|
||||
p("macaddr", "wan_macaddr")
|
||||
print " option proto dhcp"
|
||||
}' > /etc/config/network
|
||||
}
|
||||
|
||||
28
package/utils/admswconfig/files/admswswitch.sh
Normal file
28
package/utils/admswconfig/files/admswswitch.sh
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
# Copyright (C) 2006 OpenWrt.org
|
||||
|
||||
setup_switch_vlan() {
|
||||
config_get ports "$CONFIG_SECTION" "eth$1"
|
||||
ports=`echo "$ports"| sed s/" "/""/g`
|
||||
ip link set dev eth$1 down
|
||||
admswconfig eth$1 ${ports}c
|
||||
ip link set dev eth$1 up
|
||||
}
|
||||
|
||||
setup_switch() {
|
||||
config_cb() {
|
||||
case "$1" in
|
||||
switch)
|
||||
option_cb() {
|
||||
case "$1" in
|
||||
eth*) setup_switch_vlan "${1##eth}";;
|
||||
esac
|
||||
}
|
||||
;;
|
||||
*)
|
||||
option_cb() { return 0; }
|
||||
;;
|
||||
esac
|
||||
}
|
||||
config_load network
|
||||
}
|
||||
15
package/utils/admswconfig/patches/001-matrix.patch
Normal file
15
package/utils/admswconfig/patches/001-matrix.patch
Normal file
@@ -0,0 +1,15 @@
|
||||
--- a/admswconfig.c
|
||||
+++ b/admswconfig.c
|
||||
@@ -111,9 +111,9 @@ int main(int argc, char **argv)
|
||||
}
|
||||
} else {
|
||||
/* display matrix */
|
||||
- printf("ethX\tport0\tport1\tport2\tport3\tport4");
|
||||
- if (info.ports == 6)
|
||||
- printf("\tport5");
|
||||
+ printf("ethX");
|
||||
+ for (i = 0; i < info.ports; i++)
|
||||
+ printf("\tport%d", i);
|
||||
printf("\tCPU\n");
|
||||
for (i = 0; i < info.ports; i++) {
|
||||
printf("%d", i);
|
||||
11
package/utils/admswconfig/patches/002-fix-musl.patch
Normal file
11
package/utils/admswconfig/patches/002-fix-musl.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/admswconfig.c
|
||||
+++ b/admswconfig.c
|
||||
@@ -68,7 +68,7 @@ int main(int argc, char **argv)
|
||||
return 1;
|
||||
}
|
||||
strcpy(ifr.ifr_name, device);
|
||||
- ifr.ifr_data = (caddr_t)&info;
|
||||
+ ifr.ifr_data = (void *)&info;
|
||||
if (ioctl(fd, SIOCGADMINFO, &ifr) < 0) {
|
||||
perror("SIOCGADMINFO");
|
||||
return 1;
|
||||
Reference in New Issue
Block a user