Open SuSE Capi Forum Foren-Übersicht Open SuSE Capi Forum
Alles rund um Linux und AVM Capi
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Suse 11.2 Treiber für Fritz!X USB (fxusb)

 
Neues Thema eröffnen   Neue Antwort erstellen    Open SuSE Capi Forum Foren-Übersicht -> Treiber News
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
dimamizou



Anmeldedatum: 11.02.2010
Beiträge: 5

BeitragVerfasst am: 12.02.2010, 00:17    Titel: Suse 11.2 Treiber für Fritz!X USB (fxusb) Antworten mit Zitat

AVM hat uns Käufer zwar mit neueren Linux-Systemen hängen lassen, es gibt aber eine Lösung für Suse 11.2 und Fritz!X: man lade die Treiberquellen für das neueste System aus den verfügbaren hier (Suse 10.3: http://opensuse.foehr-it.de/rpms/10_3/src/) runter und wende den folgenden Patch nach allen ander darauf an.

firtz-a.patch
Code:

diff -rupN fritz/src//driver.c fritz-a/src//driver.c
--- fritz/src//driver.c   2010-02-11 19:40:42.000000000 +0100
+++ fritz-a/src//driver.c   2010-02-11 19:45:18.000000000 +0100
@@ -92,8 +92,8 @@ static DECLARE_WAIT_QUEUE_HEAD(wait);
 static DECLARE_WAIT_QUEUE_HEAD(capi_wait);
 static DECLARE_WAIT_QUEUE_HEAD(tx_wait);
 static DECLARE_WAIT_QUEUE_HEAD(rx_wait);
-static DECLARE_MUTEX_LOCKED(hotplug);
-static DECLARE_MUTEX_LOCKED(notify);
+static DECLARE_COMPLETION(hotplug);
+static DECLARE_COMPLETION(notify);
 
 #define   SCHED_WAKEUP_CAPI   { atomic_set (&thread_capi_flag, 1); wake_up_interruptible (&capi_wait); }
 #define   SCHED_WAKEUP      { atomic_set (&got_kicked, 1); wake_up_interruptible (&wait); }
@@ -787,7 +787,7 @@ void start_closing_worker (void (* func)
    close_func = func;
    close_data = data;
 
-   INIT_WORK (&closing_work, closing_worker);
+   INIT_WORK (&closing_work, (work_func_t)closing_worker);
    schedule_work (&closing_work);
    LOG("Worker scheduled.\n");
 } /* start_closing_worker */
@@ -1211,7 +1211,8 @@ static int scheduler (void * arg) {
       }
    }
    LOG("Scheduler thread stopped.\n");
-   up (&hotplug);
+   complete(&hotplug);
+   //up (&hotplug);
    return 0;
 } /* scheduler */
 
@@ -1237,7 +1238,7 @@ void kill_thread (void) {
 
    if (thread_pid != -1) {
       atomic_set (&thread_run_flag, 0);
-      if (NULL == find_task_by_pid (thread_pid)) {
+      if (NULL == find_pid_ns(thread_pid, 0)) {
          LOG("Thread[%d] has died before!\n", thread_pid);
       } else {
          if (!atomic_read (&thread_capi_flag)) {
@@ -1246,7 +1247,8 @@ void kill_thread (void) {
             SCHED_WAKEUP;
          }
          LOG("Scheduler thread signalled, waiting...\n");
-         down (&hotplug);
+         wait_for_completion(&hotplug);
+         //down (&hotplug);
          LOG("Scheduler thread[%d] terminated.\n", thread_pid);
       }
       thread_pid = -1;
diff -rupN fritz/src//driver.h fritz-a/src//driver.h
--- fritz/src//driver.h   2010-02-11 19:40:42.000000000 +0100
+++ fritz-a/src//driver.h   2010-02-11 19:45:09.000000000 +0100
@@ -23,7 +23,7 @@
 #ifndef __have_driver_h__
 #define __have_driver_h__
 
-#include <asm>
+#include <linux>
 #include <asm>
 #include <linux>
 #include <linux>
diff -rupN fritz/src//main.c fritz-a/src//main.c
--- fritz/src//main.c   2010-02-11 19:40:42.000000000 +0100
+++ fritz-a/src//main.c   2010-02-11 19:45:18.000000000 +0100
@@ -61,7 +61,7 @@
 
 /*---------------------------------------------------------------------------*\
 \*---------------------------------------------------------------------------*/
-MODULE_LICENSE ("Proprietary");
+MODULE_LICENSE ("GPL");
 MODULE_DESCRIPTION ("CAPI4Linux: Driver for " PRODUCT_LOGO);
 
 /*---------------------------------------------------------------------------*\
diff -rupN fritz/src//tools.h fritz-a/src//tools.h
--- fritz/src//tools.h   2010-02-11 19:40:42.000000000 +0100
+++ fritz-a/src//tools.h   2010-02-11 19:45:09.000000000 +0100
@@ -69,18 +69,6 @@ extern void message (const char *, ...);
 extern void lprintf  (const char *, const char *, ...);
 extern void vlprintf (const char *, const char *, va_list);
 
-/*---------------------------------------------------------------------------*\
-\*---------------------------------------------------------------------------*/
-#ifndef atomic_xchg
-static inline unsigned long atomic_xchg (
-   volatile atomic_t *   v,
-   unsigned      value
-) {
-   return __xchg (value, &v->counter, sizeof (unsigned));
-} /* atomic_xchg */
-#endif
-/*---------------------------------------------------------------------------*\
-\*---------------------------------------------------------------------------*/
 #ifndef NDEBUG
 extern unsigned hallocated (void);
 extern int hvalid (void *);


Danach kompilieren die Quelle auch unter 2.6.31 Kernel und der Treiber (fxusb) läuft anstandslos. Andere AVM Treiber, die nicht mehr aktualisiert werden, lassen sich bestimmt ähnlich einfach anpassen.

Warnung
Ein so gebauter Treiber verstößt gegen Lizenzbestimmungen von Linux-Kernel! Man sollte ihn daher auf keinen Fall veröffentlichen oder auf einem Produktivsystem im Arbeitsumfeld installieren, dies könnte unter anderem zur Erloschung evtl. bestehender Support-Verträge führen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
bastibasti



Anmeldedatum: 29.12.2009
Beiträge: 2

BeitragVerfasst am: 10.03.2010, 09:58    Titel: Antworten mit Zitat

funktioniert dieser patch auch für 2.6.33 kernel?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dimamizou



Anmeldedatum: 11.02.2010
Beiträge: 5

BeitragVerfasst am: 10.03.2010, 14:07    Titel: Antworten mit Zitat

bastibasti hat Folgendes geschrieben:
funktioniert dieser patch auch für 2.6.33 kernel?

Keine Ahnung, ich nehme es schon an - der sollte eigentlich mit allen 2.6.3x gehen.

Aber probiere es doch aus und sag bescheid, es würde mich auch interessieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
bastibasti



Anmeldedatum: 29.12.2009
Beiträge: 2

BeitragVerfasst am: 11.03.2010, 10:09    Titel: Antworten mit Zitat

Das Patch funktioniert nicht

Code:

server fcusb-0.1-0 # patch -p0 <fritzpatch
patching file fritz/src//driver.c
Hunk #1 succeeded at 92 with fuzz 2.
Hunk #2 FAILED at 789.
Hunk #3 FAILED at 1211.
Hunk #4 FAILED at 1238.
Hunk #5 FAILED at 1247.
4 out of 5 hunks FAILED -- saving rejects to file fritz/src//driver.c.rej
patching file fritz/src//driver.h
Hunk #1 FAILED at 23.
1 out of 1 hunk FAILED -- saving rejects to file fritz/src//driver.h.rej
patching file fritz/src//main.c
patching file fritz/src//tools.h
Reversed (or previously applied) patch detected!  Assume -R? [n] ^C


haben sich sie sources geändert, oder hast du das patch mit geänderten sources erstellt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dimamizou



Anmeldedatum: 11.02.2010
Beiträge: 5

BeitragVerfasst am: 11.03.2010, 18:15    Titel: Antworten mit Zitat

bastibasti hat Folgendes geschrieben:
Das Patch funktioniert nicht
haben sich sie sources geändert, oder hast du das patch mit geänderten sources erstellt?


Nein, der Patch ist wie beschrieben für das Suse 10.3 SRC-RPM und muss als letztes nach allen in der RPM-Spec bereits aufgeführten Patches angewandt werden. Allein oder an einer anderen Stelle in der Prepare-Reihenfolge wird er nicht funktionieren.

Am einfachsten, Du installierst das SRC-RPM, fügst meinen Patch der Spec zu und machst dann RPM-Build.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
adda



Anmeldedatum: 24.07.2007
Beiträge: 63

BeitragVerfasst am: 12.03.2010, 20:39    Titel: Antworten mit Zitat

Wer an einem Treiber interessiert ist, kann mir eine Email schreiben: b.adda@gmx.net
Ich kann den Treiber nicht zum Download stellen.
Deshalb der Abruf. Ist auch fürs Forum zu groß.
Also einfach Email mit Hinweis auf fxusb.

adda
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Open SuSE Capi Forum Foren-Übersicht -> Treiber News Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de