Initial commit

This commit is contained in:
domenico
2025-06-24 15:51:28 +02:00
commit 22031d9dab
6862 changed files with 1462554 additions and 0 deletions

View 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))

View 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
}

View 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
}

View 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);

View 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;