Moin!
Das hier ist mein erster Post aber ich lese schon seit einiger Zeit im Forum und fühle mich schon sehr heimisch...
Ich habe mir nun also auch einen Wiz zugelegt, welcher mit der Firmware 1.1.0 in Revision 255 kam. Wie sicherlich bekannt ist, geht mit diesen Geräten das USB-Netzwerk mit g_ether nicht mehr.
Daher habe ich mich also einmal hingesetzt und versucht, dass Modul zu debuggen. Ich bin nun an einem Punkt, wo ich glaube, gegen eine Wand zu laufen; vielleicht kann mir hier ja jemand eine neue Richtung aufzeigen:
Das Problem mit dem Modul ist, dass ein Segfault auftritt, wenn man das Modul lädt. Dies liegt daran, dass die Kernel-Funktion alloc_etherdev zwar ein device initialisiert, aber die private Datenstruktur nicht allokiert. Dann wird versucht, mit der privaten Struktur zu arbeiten und - Oops - Griff ins Leere / Segfault. Wenn man selbst den Speicherbereich anlegt (Alignment ist ein 'No-Op' auf ARM), dann kann man das Modul laden, bekommt ein usb-network-device und auch der PC am anderen Ende erkennt die Verbindung mit dem Gadget-Treiber. Aber Kommunikation ist nicht möglich...
Zunächst einmal scheint das ja gut zu klingen: Man kann das Modul laden. Aber hier geht es nicht weiter, da man es nicht zu Kommunikation überreden kann. Also einmal zurück zur ersten Beobachtung: Der Segfault. Nach Studium der Kernel-Quellen, kann dies nicht passieren. Es wird immer Speicher allokiert. Was ist hier also los ?
Meine Vermutung ist, dass GPH den Netzwerkcode im Kernel 'sabotiert' hat. Auf der offiziellen Seite, steht etwas von Network-Messenger-Tests für den Wiz. Ich nehme daher an, dass sie daran basteln. Allerdings haben sie damit Grundfunktionen des Kernels gestört.
Im Prinzip ja kein Problem. Der entsprechende Code ist GPL, daher müssen sie ihre Modifikationen rausgeben (da sie das Gerät vertreiben). Aber wie ist das nun mit der Realität ? Kann mir jemand sagen, ob es GPH juckt, wenn ich als Privatperson nach dem Code frage und mit der GPL wedle ?
Irgendwelche Ideen dazu ?
p.s.
Der Beitrag ist eventuell etwas chaotisch - ich hoffe, ihr versteht aber, worauf ich hinaus will.
Vielleicht noch etwas zu mir:
Ich bin kein Kernel-Guru, aber ein kompetenter Programmierer und Linux Enthusiast mit abgeschlossenem Studium in Informatik. Ich arbeite in einem wissenschaftlichem Bereich, wo wir viel mit embedded Systemen zu tun haben. Mein Interesse am Wiz liegt in diesem Bereich. Bisher habe ich noch kein Spiel auf dem Gerät installiert, aber schon etwa 10 Stunden Kernel-Module debuggt... ;-)
Das hier ist mein erster Post aber ich lese schon seit einiger Zeit im Forum und fühle mich schon sehr heimisch...
Ich habe mir nun also auch einen Wiz zugelegt, welcher mit der Firmware 1.1.0 in Revision 255 kam. Wie sicherlich bekannt ist, geht mit diesen Geräten das USB-Netzwerk mit g_ether nicht mehr.
Daher habe ich mich also einmal hingesetzt und versucht, dass Modul zu debuggen. Ich bin nun an einem Punkt, wo ich glaube, gegen eine Wand zu laufen; vielleicht kann mir hier ja jemand eine neue Richtung aufzeigen:
Das Problem mit dem Modul ist, dass ein Segfault auftritt, wenn man das Modul lädt. Dies liegt daran, dass die Kernel-Funktion alloc_etherdev zwar ein device initialisiert, aber die private Datenstruktur nicht allokiert. Dann wird versucht, mit der privaten Struktur zu arbeiten und - Oops - Griff ins Leere / Segfault. Wenn man selbst den Speicherbereich anlegt (Alignment ist ein 'No-Op' auf ARM), dann kann man das Modul laden, bekommt ein usb-network-device und auch der PC am anderen Ende erkennt die Verbindung mit dem Gadget-Treiber. Aber Kommunikation ist nicht möglich...
Zunächst einmal scheint das ja gut zu klingen: Man kann das Modul laden. Aber hier geht es nicht weiter, da man es nicht zu Kommunikation überreden kann. Also einmal zurück zur ersten Beobachtung: Der Segfault. Nach Studium der Kernel-Quellen, kann dies nicht passieren. Es wird immer Speicher allokiert. Was ist hier also los ?
Meine Vermutung ist, dass GPH den Netzwerkcode im Kernel 'sabotiert' hat. Auf der offiziellen Seite, steht etwas von Network-Messenger-Tests für den Wiz. Ich nehme daher an, dass sie daran basteln. Allerdings haben sie damit Grundfunktionen des Kernels gestört.
Im Prinzip ja kein Problem. Der entsprechende Code ist GPL, daher müssen sie ihre Modifikationen rausgeben (da sie das Gerät vertreiben). Aber wie ist das nun mit der Realität ? Kann mir jemand sagen, ob es GPH juckt, wenn ich als Privatperson nach dem Code frage und mit der GPL wedle ?
Irgendwelche Ideen dazu ?
p.s.
Der Beitrag ist eventuell etwas chaotisch - ich hoffe, ihr versteht aber, worauf ich hinaus will.
Vielleicht noch etwas zu mir:
Ich bin kein Kernel-Guru, aber ein kompetenter Programmierer und Linux Enthusiast mit abgeschlossenem Studium in Informatik. Ich arbeite in einem wissenschaftlichem Bereich, wo wir viel mit embedded Systemen zu tun haben. Mein Interesse am Wiz liegt in diesem Bereich. Bisher habe ich noch kein Spiel auf dem Gerät installiert, aber schon etwa 10 Stunden Kernel-Module debuggt... ;-)