...
ethmode = ethmode_router;
...
ethinterfaces {
name = "lan";
...
interfaces = "eth0", "tiwlan0", "wdsup0", "wdsdw0", "wdsdw1",
"wdsdw2", "wdsdw3";
...
} {
name = "eth1";
...
} {
...
Es funktioniert, du musst aber den Kernel tauschen. Probleme gibts bei mir nur in der Anwendung der Funktionlität
$ cpmaccfg gsmc
Devices: 3
WAN is port: 0
Device 1: name=eth0, portmask=0x26
Device 2: name=eth1, portmask=0x28
Device 3: name=wan, portmask=0x21
$ cpmaccfg ssm split_ata
Setting switch_mode to 'split_ata' (4).
$ cpmaccfg gsmc
ioctl: No such device
$ cpmaccfg ssm ata
Setting switch_mode to 'ata' (2).
ioctl: No such device
cpmaccfg ssm split_ata
ifconfig -a
cpmaccfg ssm ata
ifconfig -a
cpmaccfg ssm split_ata
ifconfig -a |grep eth
cpmaccfg ssm ata
ifconfig -a |grep eth
dmesg|tail -n 15
$ cpmaccfg ssm split_ata
Setting switch_mode to 'split_ata' (4).
$ ifconfig -a |grep eth
eth1 Link encap:Ethernet HWaddr 00:1A:4F:xx:xx:xx
eth2 Link encap:Ethernet HWaddr 00:1A:4F:xx:xx:xx
eth3 Link encap:Ethernet HWaddr 00:1A:4F:xx:xx:xx
$ cpmaccfg ssm ata
Setting switch_mode to 'ata' (2).
ioctl: No such device
$ ifconfig -a |grep eth
eth1 Link encap:Ethernet HWaddr 00:1A:4F:xx:xx:xx
eth2 Link encap:Ethernet HWaddr 00:1A:4F:xx:xx:xx
eth3 Link encap:Ethernet HWaddr 00:1A:4F:xx:xx:xx
$ dmesg|tail -n 15
[speedup] -> 62.5 MHz
[speedup] -> 125 MHz
lan: port 1(eth0) entering disabled state
lan: port 1(eth0) entering disabled state
[cpmac] cpmac_main_ioctl, unknown ioctl 35142
lan: port 1(eth1) entering learning state
lan: topology change detected, propagating
lan: port 1(eth1) entering forwarding state
[cpmac] cpmac_main_ioctl, unknown ioctl 35142
lan: port 2(eth2) entering learning state
lan: topology change detected, propagating
lan: port 2(eth2) entering forwarding state
[cpmac] cpmac_main_ioctl, unknown ioctl 35142
[speedup] -> 62.5 MHz
[speedup] -> 125 MHz
iptables -A FORWARD -i air -o lan -m state --state NEW -j REJECT
Eigentlich wollte ich damit herausfinden, welche Netzwerk-Devices nach den Befehlen vorhanden sind: die können nicht nur ethX heißen, sondern z.B. auch wan oder cpmac0 oder... Du kannst aber die Liste einfach kürzen, die Details zu den einzelnen Geräten interessieren mich nicht. Der Fehler "no such device" deutet nämlich daraufhin, dass das Device, um das diese ioctls abgeschickt werden, nicht vorhanden ist...ich habe den Befehl mal etwas geändert:
Code:[cpmac] cpmac_main_ioctl, unknown ioctl 35142
Nein, das ist so nicht richtig. Es gibt cpmac0 als "übergeordnetes" "Container"-Device (mir fällt grad keine passende Bezeichnung ein). Je nach Modus gibt es dann eth0-3, im "Normal"-Modus z.B. nur eth0 über das alle 4 ports angesprochen werden. Zusammen mit dem WLAN wird mittels bridge-Funktion das lan-Device gebildet, falls nichts anderes eingestellt ist.Ich habe den 5-Port Switch der 7170 so verstanden:Es gibt "eth"0-3 welche intern per "lan" ansprechbar sind. Im split-Modus sind die einzelnen Ports dann noch per "lan" ansprechbar, können aber untereinander keine Daten austauschen.
Jein. Wenn Du einen Rechner anschaltest und er sich beim dnsmasq eine IP-Adresse holt, dann entscheidet dnsmasq anhand der MAC-Adresse, welche IP zugeteilt wird. Ab diesem Zeitpunkt läuft es dann aber genau andersrum: die Fritzbox (genauer gesagt der Linuxkernel) merkt sich die MAC-Adresse der einzelnen Geräte nicht, und schon gar nicht, über welchen Port dieses Gerät erreichbar ist. Da muss der FB quasi geholfen werden, indem man verschiedene IP-Netze auf die einzelnen Ports legt.So sollte es meiner Meinung nach auch keine Probleme bei gleichen IP-Netzen geben, da ja anhand der MACs die IPs zugeordnet werden, und so das richtige "eth" für jeder IP ermittelt werden sollte.
Hab wohl zuviel mit Cisco Switches zu tun gehabt, ging davon aus, dass die FB/jeder Switch das auch so handhabt. Aber man lernt wohl nie aus..Ab diesem Zeitpunkt läuft es dann aber genau andersrum: die Fritzbox (genauer gesagt der Linuxkernel) merkt sich die MAC-Adresse der einzelnen Geräte nicht, und schon gar nicht, über welchen Port dieses Gerät erreichbar ist
Das liegt wohl daran, dass der multid neu gestartet wird.Habe jetzt aber noch ein Problem ^^ : Der cpmac Modus "special" wird bei mir in der debug.cfg gesetzt. Wenn ich jetzt zB beim dnsmasq auf der ds-mod Oberfläche "übernehmen" klicke, wechselt die Box wieder in den "ata" Modus (wird auch im Syslog angezeigt), was natürlich sehr unschön ist, wenn unvertraute Clients im "air" Netz hängen. Wo setze ich denn am besten den Modus für cpmac, damit dieser immer geladen wird? Muss ich hierfür evtl direkt im Source-Code etwas ändern?
/var/tmp # multid -? 2>&1 |grep changed
-S STRING - script to call when onlinestatus changes. ("/bin/onlinechanged")
/var/tmp # ls -l /bin/onlinechanged
lrwxrwxrwx 1 root root 24 Nov 18 2007 /bin/onlinechanged -> ../var/tmp/onlinechanged
source/avm-gpl-04.49/GPL/base/kernel/linux-2.6.13.1/drivers/net/avm_cpmac/linux_avm_cpmac.h
--- linux-2.6.13.1/drivers/net/avm_cpmac/cpphy_adm6996.c.orig 2006-12-20 13:54:47.000000000 +0100
+++ linux-2.6.13.1/drivers/net/avm_cpmac/cpphy_adm6996.c 2007-01-27 09:30:39.062066125 +0100
@@ -106,8 +106,9 @@
{ {"", 0x0}
}
},
- /* CPMAC_MODE_NORMAL */ { 1, 0xff,
- { {"eth0", 0x2f}
+ /* CPMAC_MODE_NORMAL */ { 2, 0xff,
+ { {"eth0", 0x23},
+ {"eth1", 0x2c}
}
},
/* CPMAC_MODE_ATA */ { 2, 0,
cpmaccfg ssms -w 1 eth0 0x26 eth1 0x28 wan 0x21
--- linux-2.6.13.1/drivers/net/avm_cpmac/cpphy_adm6996.c_orig 2007-11-21 14:50:51.000000000 +0100
+++ linux-2.6.13.1/drivers/net/avm_cpmac/cpphy_adm6996.c 2008-03-26 00:46:06.000000000 +0100
@@ -108,8 +108,10 @@
{ {"", 0x0}
}
},
- /* CPMAC_MODE_NORMAL */ { 1, 0xff,
- { {"eth0", 0x2f}
+ /* CPMAC_MODE_NORMAL */ { 3, 0,
+ { {"wan", 0x21},
+ {"eth0", 0x26},
+ {"eth1", 0x28}
}
},
/* CPMAC_MODE_ATA */ { 2, 0,
In file included from drivers/mtd/maps/ohio-flash.c:18:
include/linux/squashfs_fs.h:37:2: #error unsupported
drivers/mtd/maps/ohio-flash.c: In function `ohio_find_hidden_filesystem':
drivers/mtd/maps/ohio-flash.c:133: warning: unsigned int format, different type arg (arg 2)
drivers/mtd/maps/ohio-flash.c:133: warning: unsigned int format, different type arg (arg 3)
make[4]: *** [drivers/mtd/maps/ohio-flash.o] Fehler 1
make[3]: *** [drivers/mtd/maps] Fehler 2
make[2]: *** [drivers/mtd] Fehler 2
make[2]: *** Warte auf noch nicht beendete Prozesse...
CC drivers/char/tffs-2.0/tffs_panic.o
LD drivers/char/tffs-2.0/built-in.o
LD drivers/char/built-in.o
make[1]: *** [drivers] Fehler 2
make[1]: Leaving directory `/home/eike/fritz/freetz-trunk/source/ref-8mb_26-04.49/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1'
make: *** [source/ref-8mb_26-04.49/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1/vmlinux.eva_pad] Fehler 2