Prinzipiell gibt es verschiedene Möglichkeiten. Ich habe es so gemacht, dass ich die Konfiguration "NORMAL", die im Treiber hinterlegt ist, durch meine eigene Wunsch-Konfig ersetzt habe. Dann brauchst Du keinen Aufruf von cpmaccfg beim Booten der Box - hast aber auch keine "Fallback-Konfig".
Das ist die Variante, wo Du nur eine Stelle in den Treiber ändern musst.
Wenn Du die vordefinierten Konfigs erhalten willst, kannst Du Du Deine Wunsch-Konfig als "SPECIAL" im Treiber hinterlegen, dann musst Du aber noch die Stelle suchen, finden und ändern, wo die initiale Konfig geladen wird -> zwei Änderungen. (Oder Du schaltest beim Booten via cpmaccfg um, aber dann lohnt sich das Patchen auch nicht und Du hast nicht den Sicherheitsgewinn.)
Hier ist der Patch, den ich verwendet habe:
Den musst Du an Deine Wünsche anpassen und legst ihn dann im dsmod unter z.B. "make/linux/patches/04.29/500-cpmac-myconfig.patch" ab.
Dann ein "make kernel-clean" (?) und ein "make kernel-precompiled" usw. und das sollte funktionieren.
Zur Erklärung: die erste Zahl gibt die Anzahl der Devices in dem Array an, die 0xff bedeutet, dass es kein WAN-Device gibt (ansonsten den entsprechenden Index-Wert angeben), und die folgende LIste definiert die Device-Namen und die Portmasken.
Das ist die Variante, wo Du nur eine Stelle in den Treiber ändern musst.
Wenn Du die vordefinierten Konfigs erhalten willst, kannst Du Du Deine Wunsch-Konfig als "SPECIAL" im Treiber hinterlegen, dann musst Du aber noch die Stelle suchen, finden und ändern, wo die initiale Konfig geladen wird -> zwei Änderungen. (Oder Du schaltest beim Booten via cpmaccfg um, aber dann lohnt sich das Patchen auch nicht und Du hast nicht den Sicherheitsgewinn.)
Hier ist der Patch, den ich verwendet habe:
Code:
--- 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,
Dann ein "make kernel-clean" (?) und ein "make kernel-precompiled" usw. und das sollte funktionieren.
Zur Erklärung: die erste Zahl gibt die Anzahl der Devices in dem Array an, die 0xff bedeutet, dass es kein WAN-Device gibt (ansonsten den entsprechenden Index-Wert angeben), und die folgende LIste definiert die Device-Namen und die Portmasken.