Wo zu Hölle habt ihr immer diese wilden, wie z.b. den folgenden Befehl her?
squeeze:/home/michael# cat /lib/modules/`uname -r`/modules.dep | egrep rt[23] | awk '{print $1}'
kernel/drivers/net/wireless/rt3090sta.ko:
strings rt3090sta.ko ...
strings: 'rt3090sta.ko': No such file
----------------------------------------------------
Gehen wir es durch,
Die Module sind einfache Dateien *.ko (früher *.o, für "kernel-object" oder "object" (richtig?)).
Diese liegen für jeden Kernel unterhalb von /lib/modules/KERNEL/ (sowas wie \windows\system32\)
(DAS ist das linux)
Die Module sind katalogisiert in den /lib/modules/KERNEL/modules.*-Dateien.
Die modules.* sind leserlich, die modules.*.bin nicht mehr.
Der Katalog wird erstellt durch den Aufruf 'depmod -a', nach einer Suche über alle gefundenen Modul-Dateien.
In modules.alias steht drin, für welche PCI-/USB-ID ein Treibermodul da ist,
in modules.dep(endency), welche weiteren Module es benötigt.
Ist ein Modul im Katalog eingetragen, reicht bei den spezifischen Modulbefehlen die Angabe des Namens, zBsp. 'modprobe rt3090sta' zum Laden.
Der Wächterdämon udevd sucht für jede gefundene Geräte-ID im Katalog nach einer (oder mehreren) Treiberdatei, lädt diese (auch mehrere) und deren benötigte Module,
und führt nach seinen Vorgaben weitere Aktionen durch, wie zBsp Gerätedateien anlegen.
(Ein automatischer Vorgang, daher braucht zBsp.das Modul rt3090sta nicht in /etc/modules eingetragen zu werden.)
--------------------------
Beim "wilden" Befehl wird im Katalog der Moduldateien nach dem Muster "rt2" und "rt3" gesucht (soll Ralink-artige Module finden),
und nur das Hauptmodul in der 1. Spalte ausgegeben (awk '{print $1}').
Damit wollte ich wissen, ob auch wirklich nur noch 1 Modul rt3090sta aktiv ist.
Du hast Dein selbstgebautes Modul als
kernel/drivers/net/wireless/rt3090sta.ko eingestellt,
ich würde der Übersichtlichkeit wegen eher sowas wie
extra/rt3090sta.ko oder sogar
meineeigenen/rt3090sta.ko
verwenden (da extra/ auch von einigen modulerstellenden Paketen verwendet wird).
---------------------------
Zum 'strings ...',
aus einem Modul kann ich Informationen ziehen,
mittels Abfrage durch 'modinfo Modul', resp 'modinfo Moduldatei'.
Häufig können binäre Dateien weitere Info geben, im einfachsten Fall als Klartext (Text-Strings).
Ein 'strings Datei' ist meist umfangreich und wird hier durch grep gefiltert,
nach dem Ralink-Modul-typischen String des Pfades der Konfigurationsdatei.
Daß ein 'strings Datei' nur etwas ausgibt, wenn es auch die Datei vorfindet
(die sich in Deinem Fall im Verzeichnis /lib/modules/KERNEL/kernel/drivers/net/wireless/ oder auch noch im Kompilationsverzeichnis befindet), ich dachte, da kommst Du selber drauf.
Die Überlegung dabei ist,
wenn ich das Modul bei mir baue, und so wie ich im Quelltext lese, sollte der im Modul enthaltene Pfad zur Konfig bei mir wie bei Dir derselbe sein.
Aber da ich natürlich etwas überlesen oder falsch verstehen kann, kann der Pfad bei Dir vielleicht anders aussehen (irgendwelche Bauoptionen, Umgebung etc.),
und hier ist nur die Information in Deinem Modul relevant.
Und nun muß ich auch noch zurückrudern und gestehen,
Der Treiber (Ralink) würde sich bei Nicht-Finden der Konfig beschweren (im 'dmesg'),
weiterhin wenn die Angaben bzgl Auth am WLAN unzureichend oder unzutreffend sind.
Jedoch beschwerte sich der Treiber nach Deinen Posts scheinbar weder über eine fehlende Konfig noch über Probleme bei der Authentifizierung,
und ich finde die Angaben in der Konfig passend zum 'iwlist scan'-Ergebnis.
Andererseits sieht die Ausgabe des 'iwconfig' mit dem leeren SSID-Wert so aus, als ob er keine Konfig findet oder diese nicht verarbeitet.
Eine Gegenprobe mit Provozierung einer Fehlermeldung des Treibers:
Code: Alles auswählen
modprobe -vr rt3090sta # Treiber entladen
lsmod | grep 3090 # Modul ist entladen?
# Konfig-Datei umbenennen
modprobe -v rt3090sta # Treiber laden
ifconfig ra0 up
dmesg # Meldung über fehlende Konfig?