cpmaccfg kernel patch

schulz.matthias

Neuer User
Mitglied seit
2 Jun 2008
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Ich habe freetz devel 2265 für meine Fritzbox 7170 v1 basierend auf Firmware 04.57 inkl. cpmaccfg kompiliert und es läuft auch wunderbar.
Nun möchte ich den Treiber für den Switch im Kernel patchen und habe es mit den Patches aus http://www.ip-phone-forum.de/showpost.php?p=818652&postcount=61 und http://www.ip-phone-forum.de/showpost.php?p=1066952&postcount=113 versucht. Jedoch Wird nach kompilieren und einspielen der Firmware nach Aufruf von cpmaccfg gsmc nur "Device 1: name=eth0, portmask=0x2f" ausgegeben, was wohl bedeutet, dass alle Ports in einem Netz sind.
Mein Patch sieht wie folgt aus:
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", 0x21},
+                                          {"eth1", 0x22},
+                                          {"eth2", 0x24},
+                                          {"eth3", 0x28}
                                         }
                                    },
         /* CPMAC_MODE_ATA       */ { 2, 0,
Er soll bewirken, dass wie im split Modus alle Ports getrennt sind.
Da ich nicht wusste, wo ich mit dem Patch hin soll, hab ich in als 501-cpmac-myconfig.patch gespeichert und ihn unter:
freetz-trunk\make\linux\patches
freetz-trunk\make\linux\patches\2.6.13.1
freetz-trunk\make\linux\patches\2.6.13.1\04.29
freetz-trunk\make\linux\patches\2.6.13.1\04.30
freetz-trunk\make\linux\patches\2.6.13.1\04.33
freetz-trunk\make\linux\patches\2.6.13.1\04.40
freetz-trunk\make\linux\patches\2.6.13.1\04.49
gespeichert, was aber nichts genützt hat.
Frage 1: Wo muss ich meinen Patch genau speichern, damit er beim kompilieren in den Kernel eingebaut wird?
Frage 2: Wenn ich den Kernel in einem Ordner hinterlegt habe, was muss ich dann beim Kompilieren beachten, damit der Patch in den Kernel eingebaut wird? Reicht da ein "make kernel-clean" "make kernel-precompiled" "make"?
Frage 3: Wenn ich in den split Modus gehe mit cpmaccfg ssm split wird mit ifconfig nur das interface eth0 angezeigt, aber nicht eth1, eth2, eth3. Warum ist das so? Muss ich da noch was konfigurieren in der ar7.cfg oder so?
Frage 4: Auf AVMs FTP Server befinden sich schon die Sources von 04.57er Kernel, wieso werden die beim aufruf von make nicht automatisch geladen und verwendet? Kann man die irgendwo als Quellen einstellen, oder muss freetz erst für diesen Kernel angepasst werden?
 
Hi.
Zu 1) Der Patch wird angewendet, wenn du ihn in 2.6.13.1 kopierst (für alle Versionen) und entsprechend nur für die compilierte Version, wenn du ihn in ein Unterverzeichnis packst.
Zu 2) Du musst ein "make kernel-dirclean" machen. Wenn du anschließend ein "make kernel-source" machst, dann kannst du schauen, ob der Patch korrekt angewendet wurde.
Zu 4) Es gibt im Trac ein Ticket dazu. Da habe ich einen Patch für die neuen Sourcen angehängt. Außerdem musst du im menuconfig die Option "replace kernel" wählen deine Änderungen auch eine Auswirkung haben.

MfG Oliver
 
Vielen Dank für die Tipps, werde es demnächst mal ausprobieren.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.