Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

16.07.2010, 13:05

Modul RT2870 kompiliert nicht mehr.

Hallo zusammen,
ich habe seit dem ich Gentoo habe, einen Ordner mit dem Quellcode für mein WLAN Modul. Meine Wlan Karte in meinem Aldi Rechner ist wohl eine RT2870 USB, die mit diesem Paket das ich habe wunderbar gelaufen ist. Doch seit dem letzten Kernel Update, kompiliert dieses Modul nicht mehr. Das erstellen des Moduls bricht mit folgender Information ab:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
/root/wlantreiberlinux/os/linux/../../os/linux/rt_profile.c: In Funktion »RTMPReadParametersHook«:
/root/wlantreiberlinux/os/linux/../../os/linux/rt_profile.c:928: Fehler: »struct task_struct« hat kein Element namens »fsuid«
/root/wlantreiberlinux/os/linux/../../os/linux/rt_profile.c:929: Fehler: »struct task_struct« hat kein Element namens »fsgid«
/root/wlantreiberlinux/os/linux/../../os/linux/rt_profile.c:930: Fehler: »struct task_struct« hat kein Element namens »fsuid«
/root/wlantreiberlinux/os/linux/../../os/linux/rt_profile.c:930: Fehler: »struct task_struct« hat kein Element namens »fsgid«
/root/wlantreiberlinux/os/linux/../../os/linux/rt_profile.c:1593: Fehler: »struct task_struct« hat kein Element namens »fsuid«
/root/wlantreiberlinux/os/linux/../../os/linux/rt_profile.c:1594: Fehler: »struct task_struct« hat kein Element namens »fsgid«
make[2]: *** [/root/wlantreiberlinux/os/linux/../../os/linux/rt_profile.o] Fehler 1
make[1]: *** [_module_/root/wlantreiberlinux/os/linux] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.33-gentoo-r2'
make: *** [LINUX] Fehler 2

Auch eine neue Version von der Ralink Seite erzeugt eine Fehlermeldung beim kompilieren.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  CC [M]  /root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.o                                                                               
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2986: Fehler: unbekanntes Feld »private« in Initialisierung angegeben                   
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2986: Warnung: Initialisierung von inkompatiblem Zeigertyp                              
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2987: Fehler: unbekanntes Feld »num_private« in Initialisierung angegeben               
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2987: Warnung: Elementüberschreitung in struct-Initialisierung                          
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2987: Warnung: (nahe der Initialisierung für »rt28xx_iw_handler_def«)
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2988: Fehler: unbekanntes Feld »private_args« in Initialisierung angegeben
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2988: Warnung: Elementüberschreitung in struct-Initialisierung
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2988: Warnung: (nahe der Initialisierung für »rt28xx_iw_handler_def«)
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2989: Fehler: unbekanntes Feld »num_private_args« in Initialisierung angegeben
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2989: Warnung: Elementüberschreitung in struct-Initialisierung
/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.c:2989: Warnung: (nahe der Initialisierung für »rt28xx_iw_handler_def«)
make[2]: *** [/root/wlan_treiber_neu/os/linux/../../os/linux/sta_ioctl.o] Fehler 1
make[1]: *** [_module_/root/wlan_treiber_neu/os/linux] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.33-gentoo-r2'
make: *** [LINUX] Fehler 2

Das dieses Modul schon läuft und daher nichts klappt, stimmt wohl nicht.

Quellcode

1
2
3
4
5
localhost wlan_treiber_neu # lsmod
Module                  Size  Used by
fuse                   54435  2      
e1000e                119658  0      
nvidia              10820905  38 

Die kompletten Ausgaben habe ich in die angehängte Datei gepackt.
Ich hoffe das jemand dazu eine Idee, wenn ich wichtige oder hilfreiche Informationen vergessen habe, werde ich sie gerne nachliefern.
Vielen Dank
»janbk« hat folgende Datei angehängt:
  • Ausgabe.txt (18,59 kB - 2 mal heruntergeladen - zuletzt: 16.07.2010, 13:26)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »janbk« (17.07.2010, 11:23) aus folgendem Grund: Problem umgangen, somit gibt es kein Problem => gelöst.


2

16.07.2010, 13:29

Hallo Jan,

funktioniert der Treiber im Kernel nicht?

Quellcode

1
2
3
4
5
6
7
8
9
  │ Symbol: RT2870 [=n]                                                                                                            │  
  │ Prompt: Ralink 2870/3070 wireless support                                                                                      │  
  │   Defined at drivers/staging/rt2870/Kconfig:1                                                                                  │  
  │   Depends on: STAGING [=n] && !STAGING_EXCLUDE_BUILD [=n] && USB [=y] && X86 [=y] && WLAN [=y]                                 │  
  │   Location:                                                                                                                    │  
  │     -> Device Drivers                                                                                                          │  
  │       -> Staging drivers (STAGING [=n])                                                                                        │  
  │         -> Exclude Staging drivers from being built (STAGING_EXCLUDE_BUILD [=n])                                               │  
  │   Selects: WIRELESS_EXT [=n] && WEXT_PRIV [=n] && CRC_CCITT [=m] && FW_LOADER [=y]   

An sonsten, auf der Ralink Seite wird eine neue Version Deines Treibers (vom 9. Juli) angeboten. Vielleicht geht es ja damit. http://www.ralinktech.com/support.php?s=2
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

3

16.07.2010, 14:27

Hi danke für den Tipp.
Leider hilft die neue Version auch nicht. Ich hatte die Version 2.4.0.0 und das war nun schon Version 2.4.0.1
Doch nun ist die Fehlermeldung:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  CC [M]  /root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.o
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2986: Fehler: unbekanntes Feld »private« in Initialisierung angegeben
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2986: Warnung: Initialisierung von inkompatiblem Zeigertyp
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2987: Fehler: unbekanntes Feld »num_private« in Initialisierung angegeben
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2987: Warnung: Elementüberschreitung in struct-Initialisierung
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2987: Warnung: (nahe der Initialisierung für »rt28xx_iw_handler_def«)
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2988: Fehler: unbekanntes Feld »private_args« in Initialisierung angegeben
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2988: Warnung: Elementüberschreitung in struct-Initialisierung
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2988: Warnung: (nahe der Initialisierung für »rt28xx_iw_handler_def«)
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2989: Fehler: unbekanntes Feld »num_private_args« in Initialisierung angegeben
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2989: Warnung: Elementüberschreitung in struct-Initialisierung
/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:2989: Warnung: (nahe der Initialisierung für »rt28xx_iw_handler_def«)
make[2]: *** [/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.o] Fehler 1
make[1]: *** [_module_/root/wlan_treiber_neu/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux] Fehler 2
make[1]: Leaving directory 


Meine Kernelkonfiguration sieht, der geposteten sehr ähnlich. Nur CRC_CCITT [=m] && FW_LOADER [=y] werden bei mir nicht auf gelistet.
Muss ich also um das Device in den Kernel aufzunehmen, nun nur "Staging drivers" integrieren?

4

16.07.2010, 14:38

Wenn der Treiber im Kernel funktioniert, benötigst Du die manuell runtergeladenen Treiber nicht mehr. Du musst nur im "make menuconfig" den Pfad gehen und aktivieren (und natürlich anschließend kompilieren):

Quellcode

1
2
3
  │     -> Device Drivers
  │       -> Staging drivers
  │         -> Exclude Staging drivers from being built


und den Treiber aktivieren:

Quellcode

1
2
3
4
5
  │ │    --- Staging drivers
  │ │    [ ]   Exclude Staging drivers from being built
  │ │    < >     Agere ET-1310 Gigabit Ethernet support
...
  │ │    <M>     Ralink 2870/3070 wireless support   

Vollständigkeitshalber benötigst Du noch die Firmware für die Karte.
Da die Karte ja bereits lief, liegt die Firmware durch die manuelle Installation bereits in /lib/firmware/

PS: "Selects: WIRELESS_EXT [=n] && WEXT_PRIV [=n] && CRC_CCITT [=m] && FW_LOADER [=y] " bedeutet eigentlich nur, dass diese Optionen automatisch mit ausgewählt werden. Hier brauchst Du also nichts zu tun.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

5

16.07.2010, 16:09

HI bell.
ich habe nun den neuen Kernel gebaut, es dauerte ca doppelt so lange wie zuvor und nun läuft er. Allerdings weiß ich nicht wie ich den neuen Treiber nun nutze und mein Wlan zum Leben erwecke.
Auf der Suche nach dieser Lösung bin ich über diesen Blog gestolpert: http://markus-mazurczak.de/?p=89
Markus erklärt, das die Kernel-Treiber bei ihm nicht laufen und das er einen Trick gefunden hat den Code von Ralink zu kompilieren. Dazu hat er folgendes in die /net/wireless/Kconfig hinzugefügt.

Quellcode

1
2
3
select WIRELESS_EXT
select WEXT_SPY
select WEXT_PRIV

Er schreibt aber auch, das diese ... häm, Flags oder was auch immer, auch gesetzt werden wenn man Wlan Treiber im Kernel integriert. Nun genau das habe ich ja so eben gemacht. Daher habe ich einfach versucht, den Ralink Quellcode zu kompilieren. Siehe da es geht.
Nun scheiterte mein Systems daran, das keine Regel für make modules vorhanden war.
Das Ende der Geschichte: Es gibt wohl auch für das ursprüngliche Problem eine Lösung. Doch eine die die ich umsetzen kann ist mir am liebsten.

6

17.07.2010, 11:22

So einige Bastellein weiter...
fügt man diese Select Befehle ein, wird der Komplette Stagging Zeug in den Kernel geladen.
Allerdings war ich mit den Treibern im Kernel in der Lage das Ralink zeug zu kompilieren.
wahrscheinlich lässt sich dann auch das Modul von Ralink laden, ich habe jedoch die Treiber aus dem Staagging Bereich als Modul nun im kernel und lauffähig.