HILFE: compilieren von ATMEL WLAN Treibern

  • Hallo,


    Hintergrund der Frage:
    ------------------------------------
    - ich habe einen Netgear MA101 USB WLAN-Adapter. Es ist ein revision-B und hat also einen ATMEL Chip


    - ich würde gerne c't-VDR installieren/benutzen, weil ich hier - im Gegensatz zu LinVDR - mehr PlugIns nutzen kann (auf vdrconvert hätte ich große Lust)


    - mein VDR steht aber im Wohnzimmer und dort kann ich (beim Besten Willen nicht) kein Netzwerkkabel legen. Ich MUSS WLAN nutzen.


    - LinVDR liefert einen Treiber "at76c503-rfmd" mit der ganz prima funktioniert.... bei der c't-Distri ist sowas nicht dabei ...



    Was ich bisher gemacht habe:
    -------------------------------------------
    (ich habe es mit der c't-VDR 1 und auch mit der 2 versucht (mit der CD von gestern aus der c't 8/2004)
    - Den Rechner ins Büro gestellt und mit einer geliehenen 3Com-Karte per Kabel ins Netz gebracht um erstmal installieren zu können
    - c't-VDR installiert
    - mit apt-get install diverse Dinge nachgeladen (make, g++, fakeroot, etc....)
    - ATMEL Treiber runtergeladen und ausgepackt (http://sourceforge.net/project/showfiles.php?group_id=59001&release_id=201712)
    - wie beschrieben: "make config", "make clear", "make all", "make install" ausgeführt
    - Ergebnis: ich habe "usbvnetr.o" im /lib/modules/2.4.24-ctvdr-2/drivers/usb (hoffe das war korrekt aus dem Kopf)
    - es gab aber meldungen während des compilierens (vnet.h und cofnet.c konnten nicht gefunden werden - und ganz am Anfang von make all gabs bestimmt noch mehr solche Meldungen konnte ich nur nicht so schnell lesen)


    - modprobe usbvnetr ==> Ergebnis ist ein "version mismatch". Es heißt "...compilied for version 2.4.18 while this kernel is version 2.4.24-ctvdr-2"
    Ich habe von catweazle noch ein anderes Paket bekommen. nach dem compilieren dieselbe Meldung!
    Ich habe es auch mit der c't-VDR 1 gemacht, gleiche Meldung!


    - dann habe ich vorhin noch folgendes gemacht:
    vdr:/usr/src# apt-get install kernel-source-2.4.24-ctvdr-2
    vdr:/usr/src# tar -xjf kernel-source-2.4.24-ctvdr-2.tar.bz2
    vdr:/usr/src# ln -s kernel-source-2.4.24-ctvdr-2 linux
    vdr:/usr/src# cp /boot/config-2.4.24-ctvdr-2-bf2.4 linux/.config


    (die namen sind jetzt aus dem Kopf getippt - das hatte jedenfalls alles ohne Fehler geklappt)


    - dann wieder (im Verzeichnis der ATMEL-Treiber): make realclean, make config, make clean, make all, make install
    - beim compilieren wieder meldungen wg. nicht gefundener .h, .c dateien
    - dennoch ein "usbvnetr.o" vorhanden
    - modprobe usbvnetr
    -> wieder version mismatch (2.4.28 <> 2.4.24-ctvdr-2)


    Fragen:
    ------------
    WARUM um alles in der Welt meint er immer, dass es für 2.4.18 compiliert wäre???


    WIE bekomme ich jetzt einen WLAN-Treiber für meinen Netgear MA101?


    WER von Euch kann mir hier weiterhelfen? Gerne auch per Chat oder Fernwartung (zugriff auf den VDR wäre nach Absprache möglich) - es muss aber etwas nachvollziehbares sein, da ich - wenn es klappt, später alles nochmal machen muss auf einer neuen Festplatte (dies hier ist nur meine Test-Platte)

  • Interessant!


    Hab ich es zu ausführlich geschrieben?
    Hab ich zu wenig geschrieben?
    Ist es zu speziell?


    Hat keiner eine Idee wo das Problem liegt?


    ;(


    P.S.: ich habe auch mit google-Suche und auf der Seite (s.Link oben) durchaus ein oder zwei Seiten finden können, auf denen andere User mit anderen Systemen/kernels dasselbe Problem berichten und fragen... KEINE Antworten bisher...


    Hat NIEMAND hier einen USB-WLAN am laufen? Mit der c't-Distri? nein?

  • hi
    lies mal meinen thread kernelupdateseiten...


    Cat

    "Life moves fast. Don't miss a thing."
    ------------------------------------------------------
    Rechner: Celeron 2,666 Ghz; 256 SDRAM, TT rev. 1.6 +Satelco Easywatch ,1x 160GB Samsung Festplatte, 1 x 500 GB WD
    Gehäuse : LaScala03 (Silverstone),Zalman CNPS 7000CU .Asus P4S533-MX; AVBoard 1.0
    CTVDR ( Lenny)

  • Zitat

    Originally posted by catweazle
    hi
    lies mal meinen thread kernelupdateseiten...


    Cat


    hab ich doch :] ... aber jetzt rate mal... ?(


    ich mach Schluss für dieses Wochenende... vielleicht teste ich es dann noch mal mit mit der c't-VDR 1 und wie dort - in Deinem Thread - angegeben auf 2.4.23 hochzuziehen.


    Nur: bisher brachte jeder compilier-Versuch im Endergebnis ein "version mismatch ... build for version 2.4.18" - ich meine, solange man nicht weiß warum das so ist fällt es schwer das abzustellen? - Wo kommt diese verdammte .18 her in der Fehlermeldung beim start des gerade frisch kompilierten Treibers...


    btw. Der Tipp mit "make oldconfig" etc... den hab ich jetzt so verstanden, dass der für Dich gedacht war, damit Du auf Deinem System, für meine Version etwas kompilieren kannst?

  • denke,dass du das auch brauchst...das ist vielleicht das was uns fehlt:)


    cat

    "Life moves fast. Don't miss a thing."
    ------------------------------------------------------
    Rechner: Celeron 2,666 Ghz; 256 SDRAM, TT rev. 1.6 +Satelco Easywatch ,1x 160GB Samsung Festplatte, 1 x 500 GB WD
    Gehäuse : LaScala03 (Silverstone),Zalman CNPS 7000CU .Asus P4S533-MX; AVBoard 1.0
    CTVDR ( Lenny)

  • Zitat

    Original von elastico
    Nur: bisher brachte jeder compilier-Versuch im Endergebnis ein "version mismatch ... build for version 2.4.18" - ich meine, solange man nicht weiß warum das so ist fällt es schwer das abzustellen? - Wo kommt diese verdammte .18 her in der Fehlermeldung beim start des gerade frisch kompilierten Treibers...


    Also es gibt mehrere Stellen, die man ändern muss. Als erstes ist im Makefile des Kernels folgendes am Anfang einzutragen:

    Code
    VERSION = 2
    PATCHLEVEL = 4
    SUBLEVEL = 24
    EXTRAVERSION = -ctvdr-2


    Und dann sollte die 1. Zeile von debian/changelog so oder ähnlich aussehen:

    Code
    kernel-source-2.4.24-ctvdr-2 (1)  unstable; urgency=low


    Wieso hast du überhaupt die Quellen von einem 2.4.18er Kernel? Ich musste lediglich die spezielle c't-Version hinter EXTRAVERSION = einpflegen.


    Zitat

    Original von elastico
    btw. Der Tipp mit "make oldconfig" etc... den hab ich jetzt so verstanden, dass der für Dich gedacht war, damit Du auf Deinem System, für meine Version etwas kompilieren kannst?


    Auch. Aber in erster Linie sorgt das dafür, dass die Config-Datei für den Sourcecode verwendet wird und beim Kompilieren des Sources ein Kernel mit der bestehenden Konfiguration erzeugt wird.


    ByE...

    Server:  (K)VM on Proxmox 4.x-Host, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) auf Debian 8 (Jessie), 1x Digital Devices Cine S2 (V6) + DuoFlex S2
    Clients: Raspberry Pi 2/3 mit Raspbian, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) als Streamdev-Clients

  • Zitat

    Original von atl


    Wieso hast du überhaupt die Quellen von einem 2.4.18er Kernel? Ich musste lediglich die spezielle c't-Version hinter EXTRAVERSION = einpflegen.


    ByE...


    Hat er nicht, das ist ja der clou... ?( er hat ausschliesslich die 2.4.24....


    Cat

    "Life moves fast. Don't miss a thing."
    ------------------------------------------------------
    Rechner: Celeron 2,666 Ghz; 256 SDRAM, TT rev. 1.6 +Satelco Easywatch ,1x 160GB Samsung Festplatte, 1 x 500 GB WD
    Gehäuse : LaScala03 (Silverstone),Zalman CNPS 7000CU .Asus P4S533-MX; AVBoard 1.0
    CTVDR ( Lenny)

  • Jau - ich bin mir keiner Schuld bewusst... von 2.4.18 habe ich das erste Mal "gehört", als ich die "version mismatch"-Meldung bekam! catweazle war sogar auf dem Rechner (Fernwartung) und kann bestätigen, dass von einer 2.4.18 nix zu sehen war/ist


    Vielleicht nochmal langsam, von NULL und zum mitschreiben, damit ich es beim nächsten Versuch absolut richtig mache und es hier dokumentiert wird:


    Vorarbeit:
    -----------------
    - ich baue eine 3Com-Netzwerkkarte ein und klemme den Rechner erstmal per Kabel an meinen Router


    Variante 1: c't-VDR 1 (aus 20/2003)
    ----------------------------------------------------
    - ich boote von CD und starte die Installation (Festplatte partitionieren etc.)
    - Netzwerkkarte (3Com) wird erkannt, ich trage IP, Mask, Gate, Nameserver ein (oder nehme DHCP)
    - jetzt ist ein sehr rudimentärer VDR installiert
    - Kernel ist (aus'm Kopf) 2.4.22 (oder noch weniger?)


    Variante 2: c't-VDR 2 (aus 8/2004)
    ------------------------------------------------
    - ich boote von CD, wähle "vdr", installation startet, aktualisiert über Internet, ich wähle gleich mal ein paar PlugIns, installation läuft (teils über Internet)
    - noad und icons können nicht installiert werden (egal jetzt erstmal)
    - jetzt ist ein VDR installiert
    - Kernel ist 2.4.24-ctvdr-2



    So - Jetzt möchte ich die ATMEL-WLAN-Treiber kompilieren. WAS brauche ich jetzt im einzelnen dafür?


    a) Compilier und Tools: apt-get install make g++ fakeroot (und noch etwas mehr - hab meine Aufzeichnung nicht hier, trage ich gerne nach)


    b) Die Kernelsourcen:
    vdr:/# cd /usr/src/
    vdr:/usr/src# apt-get install kernel-source-2.4.24-ctvdr-2
    vdr:/usr/src# tar -xjf kernel-source-2.4.24-ctvdr-2.tar.bz2
    vdr:/usr/src# ln -s kernel-source-2.4.24-ctvdr-2 linux
    vdr:/usr/src# cp /boot/config-2.4.24-ctvdr-2-bf2.4 linux/.config
    (bzw. das ganze mit der Version der c't-VDR 1 - je nach Variante)


    c) die ATMEL-Treiber (packe ich in /usr/local/src/atmel/ aus) - download-link siehe mein Posting ganz oben



    Wer ergänzt jetzt im Detail?
    Wo ist das Makefile des kernels (damit ich die Verison mal prüfen kann)?
    Was und wo ist das debian/changelog?
    Was soll ich jetzt genau machen bevor ich zum eigentlichen kompilieren der Treiber gehe?

  • Also:


    habe jetzt ct-vdr-2 erneut installiert,
    habe compiler nachinstalliert:
    apt-get install dpkg-dev gcc g++ libc6-dev make patch fakeroot


    habe kernelsourcen nachinstalliert
    vdr:~# cd /usr/src
    vdr:/usr/src# apt-get install kernel-source-2.4.24-ctvdr-2
    vdr:/usr/src# tar -xjf kernel-source-2.4.24-ctvdr-2.tar.bz2
    vdr:/usr/src# ln -s kernel-source-2.4.24-ctvdr-2 linux


    rufe ich jetzt "make oldconfig" auf, dann erhalte ich
    make: *** Keine Regel, um >oldconfig< zu erstellen. Schluss.


    "make-kpkg kernel_image" führt zu:
    -bash: make-kpkg: command not found


    (konnte es mit apt-cache search auch nicht finden)


    im /boot/-Verzeichnis gibt es eine config... umkopieren mit
    vdr:/usr/src# cp /boot/config-2.4.24-ctvdr.2 linux/.config


    gibt zwar keine Fehlermeldung - aber unter "linux" finde ich dann keine config-datei?


    compilieren der Treiber funktioniert nicht, da immer noch header-dateien nicht gefunden werden.
    Was mir aufgefallen ist:
    - im Makefile wird auf /lib/modules/{kernelversion}/build verwiesen
    - gucke ich nach (mit mc) dann finde ich ..../build/ als link... aber als link auf /usr/src/kernel-source-2.4.24 (also OHNE "-ctvdr-2")
    - jetzt habe ich einen neuen link angelegt (von den kernel-sourcen MIT -ctvdr-2 auf ein verzeichnis ohne -ctvdr-2 ... jetzt funktioniert der LInk schonmal)


    wenn ich jetzt "make" aufrufe (zur info - ich nutze jetzt nicht die sourcefource-treiber sondern diese hier: http://at76c503a.berlios.de/#quickstart) dann tut er schon mal was - endet aber in einem Fehler - nur sehe ich nicht was für einer?


    was ich noch lesen konnte sind meldungen wie:
    /lib/modules/2.4.24-ctvdr-2/build/include/linux/shed.h:805 : conflicting types for 'kernel_thread'
    /usr/include/asm/processor.h:432: previous declaration of 'kernel_thread'
    In file included from /usr/include/asm/smplock.h:6,
    from /lib/modules/2.4.24-ctvdr-2/build/include/linux/smp_lock.h:15,
    from at76c503.c:89:


    /lib/modules/2.4.24-ctvdr-24/build/include/linux/interrupt.h:138: 'CONFIG_NR_CPUS' undeclared here (not in a function)
    ...


    es endet dann in
    make: ** [at76c503.o] Fehler 1


    HILFE!

  • Zitat

    Original von elastico
    "make-kpkg kernel_image" führt zu:
    -bash: make-kpkg: command not found


    (konnte es mit apt-cache search auch nicht finden)


    apt-get install kernel-package


    Zitat

    im /boot/-Verzeichnis gibt es eine config... umkopieren mit
    vdr:/usr/src# cp /boot/config-2.4.24-ctvdr.2 linux/.config


    gibt zwar keine Fehlermeldung - aber unter "linux" finde ich dann keine config-datei?


    Die Datei .config ist eine versteckte Datei, die du z.B. mit ls -la anzeigen kannst. Um eine der c't-Version entsprechende Version zu erzeugen musst du zwei Änderungen machen:


    1. Im Makefile folgende Zeile wie angezeigt eintragen:

    Code
    EXTRAVERSION = -ctvdr-2


    2. In debian/changelog die erste Zeile anpassen. Sie könnte z.B. wie folgt aussehen:

    Code
    kernel-source-2.4.24-ctvdr-2 (1) unstable; urgency=low


    Danach kannst du mittels


    make-kpkg kernel_image


    ein Kernelimage erstellen. Das brauchst du aber nicht installieren. Bei mir funktionierte das Kompilieren von Modulen auch erst nach obigen Erstellen eines Images, weil dabei auch wichtige Abhängigkeiten (modversions.h) erzeugt werden.


    ByE...

    Server:  (K)VM on Proxmox 4.x-Host, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) auf Debian 8 (Jessie), 1x Digital Devices Cine S2 (V6) + DuoFlex S2
    Clients: Raspberry Pi 2/3 mit Raspbian, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) als Streamdev-Clients


  • da steh ich auf dem Schlauch, weil ich habe kein "debian"-Verzeichnis wo soll das sein?

    elastico


    (LinVDR 0.5 + MarcTwain Komplett-Patch)

    Einmal editiert, zuletzt von elastico ()

  • Zitat

    Original von elastico
    da steh ich auf dem Schlauch, weil ich habe kein "debian"-Verzeichnis wo soll das sein?


    Hää, wenn ich deinen obigen Beitrag richtig lese hast du doch die c't-Kernelsourcen für den 2.4.24-ctvdr-2 gezogen!? Das habe ich auch und wenn ich unter /usr/src/linux folgendes mache, dann bekomme ich da so was zu sehen:

    Code
    sonyvdr:/usr/src/linux# ls -lh debian/
    insgesamt 100k
    -rw-r--r--    1 root     src           20k  3. Apr 19:07 changelog
    -rw-r--r--    1 root     src          3.4k  3. Apr 17:05 control
    -rw-r--r--    1 root     src            64  3. Apr 18:09 files
    -rwxr-xr-x    1 root     src           62k 14. Apr 2002  rules


    Das sollte aber nicht so entscheidend sein. Wichtig ist die Anpassung im Makefile. Danach sollte das make-kpkg kernel_image funktionieren. :)


    Nur noch mal zur Info: Du musst alle Befehle direkt im Verzeichnis /usr/src/linux aufrufen, also vorher dahinein wechseln!


    ByE...

    Server:  (K)VM on Proxmox 4.x-Host, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) auf Debian 8 (Jessie), 1x Digital Devices Cine S2 (V6) + DuoFlex S2
    Clients: Raspberry Pi 2/3 mit Raspbian, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) als Streamdev-Clients

  • hrmpf... woher sollte ich jetzt wissen, dass das changelog im Linux-Verzeichnis (was ja auch nur ein link ist) gemeint war ... ich habe natürlich immer gedacht, es müsste wirklich ein "Debian"-Verzeichnis geben... :rolleyes:


    Ich werde die anderen Schritte bei nächster Gelegenheit testen (Ostern ist nun leider um) und melde dann meinen (miss)erfolg :)


    Danke zunächst mal!

  • Zitat

    Original von elastico
    hrmpf... woher sollte ich jetzt wissen, dass das changelog im Linux-Verzeichnis (was ja auch nur ein link ist) gemeint war ... ich habe natürlich immer gedacht, es müsste wirklich ein "Debian"-Verzeichnis geben... :rolleyes:


    Ein Vollprofi hätte dir wohl folgendes vorgehauen und an deine Logik appeliert ;)

    Code
    sonyvdr:/usr/src# find . -iname debian -type d
    ./kernel-source-2.4.24-ctvdr-2/debian
    ./vdr/vdr-1.2.6/debian
    ./modules/dvb-driver/debian


    Also wenn du es noch mal versuchst, dann hier noch mal die Reihenfolge, nach der es bei mir klappt:
    [list=1]
    [*]cd /usr/src
    [*]apt-get install kernel-source-2.4.24-ctvdr-2
    [*]apt-get install kernel-package
    [*]tar xjvf kernel-source-2.4.24-ctvdr-2.tar.bz2
    [*]ln -s /usr/src/kernel-source-2.4.24-ctvdr-2 linux
    [*]cd linux
    [*]cp /boot/config-2.4.24-ctvdr-2 .config
    [*]nano -w Makefile #erweitern von EXTRAVERSION = -ctvdr-2
    [*]nano -w debian/changelog # 1. Zeile ändern, um eigene Patchlinie zu kennzeichnen*)
    [*]make-kpkg kernel_image
    [/list=1]

    Weitere Treiber kannst du dann ähnlich kompilieren (hier an hand der DVB-Treiber):
    [list=1]
    [*]cd /usr/src
    [*]apt-get install dvb-driver-source dvb-dev
    [*]tar xjvf dvb-driver.tar.bz2
    [*]nano -w modules/dvb-driver/debian/changelog # 1. Zeile ändern, um eigene Patchlinie zu kennzeichnen*)
    [*]cd linux
    [*]make-kpkg modules_image
    [/list=1]

    Wie zu erkennen ist, sind zusätzliche Treibermodule unter /usr/src/modules. Das Kompilieren muss trotzdem aus /usr/src/linux heraus angestossen werden.


    Zitat

    Original von elastico
    Ich werde die anderen Schritte bei nächster Gelegenheit testen (Ostern ist nun leider um) und melde dann meinen (miss)erfolg :)


    Danke zunächst mal!


    Viel Erfolg! :)


    ByE...


    *) Die erste(n) Zeile(n) der changelog sollte(n) geändert werden, damit das ganze als eigene Linie betrachtet wird und bei Updates nicht versucht wird, die selbstkompilierten Sachen durch vorkompilierte Standardpakete zu ersetzen. Für den DVB-Treiber könnte z.B. folgendes am Anfang eingefügt werden:

    Code
    linuxtv-dvb (1.0.1-8ct-patch-1) unstable; urgency=low
    
    
      * my own patch line
    
    
     -- No One <no.one@unknown.com>  Sat, 03 Apr 2004 15:00:00 +0200
    
    
    ...


    Beim Kernel reicht es z.B., wenn der Text in der Klammer durch eine Zahl z.B. 1 ersetzt wird.

    Server:  (K)VM on Proxmox 4.x-Host, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) auf Debian 8 (Jessie), 1x Digital Devices Cine S2 (V6) + DuoFlex S2
    Clients: Raspberry Pi 2/3 mit Raspbian, VDR 2.2.0 (selbstgebaut vom yaVDR unstable Repo) als Streamdev-Clients

    Einmal editiert, zuletzt von atl ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!