PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme bei der Installation des Atmel Wlan Treibers



Tristan
04.11.05, 11:54
Ich habe SuSE Linux 10 mit dem 2.6.13-15 Kernel. Dieser hat nach der Installation zwar meinen Noname WLAN USB Adapter mit Atmelchip erkannt, jedoch brachte ich keine Verbindung zum Router zustande.

Auf dem Chip meines Adapters steht:
ATMEL
AT76C503A
56602-2
2G4289
0249 TAIWAN

Auf der Treiber-CD für Windows, die beim Adapter dabei war war u.a. ein Verweis auf:

http://sourceforge.net/projects/atmelwlandriver

Ich habe dann erstmal alle Atmel Treiber im Kernel, bzw. entsprechende Module in Linux gelöscht und dann die neuste Version des Treibers (3.4.1.1) geladen und entpackt.

In Linux habe ich mir dann mit:


cat /proc/bus/usb/devices

unter anderem diesen Block gefunden...


T: Bus=04 Lev=02 Prnt=02 Port=03 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=fe(app. ) Sub=01 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=03eb ProdID=7605 Rev= 1.00
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=ff Driver=(none)
E: Ad=85(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms

... welcher wohl meinem Wlan Adapter entsprechen dürfte. Treiber war nach dem Löschen auch keiner mehr geladen. Ich hab mir dann die beiden Zahlen für Vendor und ProdID notiert und daraufhin die Datei "config.h" im Unterverzeichnis des Archivs des Teibers "/src/includes/usb" angepasst.
Die Datei sah nach meiner Bearbeitung so aus (den letzten Block mit R503A habe ich hinzugefügt):


/************************************************** *************************
Copyright 2000-2001 ATMEL Corporation.

This file is part of atmel wireless lan drivers.

Atmel wireless lan drivers is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

Atmel wireless lan drivers is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Atmel wireless lan drivers; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

************************************************** *************************/
#ifndef __config_h_OK__
#define __config_h_OK__


/* to add a device simply add a line in defines acc. to its RF part above the
all-zero line. Don't forget the trailing '' ! */

#define RFMD_DEVICES { \
{USB_DEVICE(0x069a,0x0321)}, /* Dynalink/Askey WLL013, Compex WLU11A (?) */ \
{USB_DEVICE(0x0d5c,0xa002)}, /* Belkin F5D6050 USB adapter */ \
{USB_DEVICE(0x077b,0x2219)}, /* Linksys WUSB11 V2.6 adapter */ \
{USB_DEVICE(0x03eb,0x4102)}, /* AirVast 210 */ \
{USB_DEVICE(0x1371,0x5743)}, /* DSE XH1153 USB adapter */ \
{USB_DEVICE(0x0864,0x4102)}, /* Netgear MA 101 Rev. B */ \
{USB_DEVICE(0x04a5,0x9001)}, /* Benq AWL400 USB adapter */ \
{USB_DEVICE(VNetVID,VNetPID_RFMD)}, /* Atmel's id */ \
{ } /* end with an all-zeroes entry */\
} /* end marker */

#define R505_DEVICES { \
{USB_DEVICE(VNetVID,VNetPID_R505)}, /* Atmel's id */\
{ } /* end with an all-zeroes entry */\
} /* end marker */

#define R505AMX_DEVICES { \
{USB_DEVICE(VNetVID,VNetPID_R505AMX)}, /* Atmel's id */\
{ } /* end with an all-zeroes entry */\
} /* end marker */

#define R505A_DEVICES { \
{USB_DEVICE(VNetVID,VNetPID_R505A)}, /* Atmel's id */\
{USB_DEVICE(VNetVID,VNetPID_R505AS)}, /* Atmel's id */\
{ } /* end with an all-zeroes entry */\
} /* end marker */

#define R505_2958_DEVICES { \
{USB_DEVICE(VNetVID,VNetPID_R505_2958)}, /* Atmel's id */\
{ } /* end with an all-zeroes entry */\
} /* end marker */

#define R503A_DEVICES { \
{USB_DEVICE(0x03eb,0x7605)}, /* Atmel's id */\
{ } /* end with an all-zeroes entry */\
} /* end marker */
#endif



Wenn ich jetzt ins Hauptverzeichnis des Treiberarchivs gehe und dort den Treiber übersetzen will, kommen folgende Fehler:


tristan:/home/tristan/atmelwlandriver # make usb
Building usbvnetr
Bootstraping target usbvnetr
Debug
make[1]: Entering directory `/home/tristan/atmelwlandriver/objs/usbvnetr/debug'
make[2]: Entering directory `/usr/src/linux-2.6.13-15'
LD /home/tristan/atmelwlandriver/objs/usbvnetr/debug/built-in.o
CC [M] /home/tristan/atmelwlandriver/objs/usbvnetr/debug/callbacks.o
CC [M] /home/tristan/atmelwlandriver/objs/usbvnetr/debug/command.o
CC [M] /home/tristan/atmelwlandriver/objs/usbvnetr/debug/common.o
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/common.c:91:5: warning: "CCX2" is not defined
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/common.c:183:5: warning: "CCX2" is not defined
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/common.c:1458:5: warning: "DBG" is not defined
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/common.c:2284:5: warning: "DBG" is not defined
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/common.c:2322:5: warning: "DBG" is not defined
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/common.c:2333:5: warning: "DBG" is not defined
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/common.c:2352:5: warning: "DBG" is not defined
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/common.c:2390:5: warning: "DBG" is not defined
CC [M] /home/tristan/atmelwlandriver/objs/usbvnetr/debug/rx.o
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/rx.c:296:5: warning: "CCX2" is not defined
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/rx.c: In function ‘MgmtFrameProcessing’:
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/rx.c:753: error: invalid lvalue in assignment
make[3]: *** [/home/tristan/atmelwlandriver/objs/usbvnetr/debug/rx.o] Fehler 1
make[2]: *** [_module_/home/tristan/atmelwlandriver/objs/usbvnetr/debug] Fehler 2
make[2]: Leaving directory `/usr/src/linux-2.6.13-15'
make[1]: *** [all] Fehler 2
make[1]: Leaving directory `/home/tristan/atmelwlandriver/objs/usbvnetr/debug'
make: *** [usbvnetr] Fehler 2
tristan:/home/tristan/atmelwlandriver #



tristan:/home/tristan/atmelwlandriver # make lvnet
make[1]: Entering directory `/home/tristan/atmelwlandriver/src/apps/cmd_line'
gcc -Wall -DATMEL_WLAN -DATMEL -O2 -g -I../../includes -o lvnet -lncurses cofvnet.c sets.c survey.c
sets.c: In function ‘Set_ESSID’:
sets.c:58: warning: pointer targets in passing argument 1 of ‘strcpy’ differ in signedness
make[1]: Leaving directory `/home/tristan/atmelwlandriver/src/apps/cmd_line'
tristan:/home/tristan/atmelwlandriver #



tristan:/home/tristan/atmelwlandriver # make winter
make[1]: wx-config: Kommando nicht gefunden
make[1]: Entering directory `/home/tristan/atmelwlandriver/src/apps/winter'
make[1]: wx-config: Kommando nicht gefunden
make[1]: wx-config: Kommando nicht gefunden
It seems that the wxWindows library is not installed.
wx-config, the script providing information about wxWindows
installation, is missing. Please, refer to the README.linux
or visit www.wxwindows.org for further information.
We are sorry about the inconvenience.
make[1]: *** [wxconfig] Fehler 255
make[1]: Leaving directory `/home/tristan/atmelwlandriver/src/apps/winter'
make: *** [winter] Fehler 2
tristan:/home/tristan/atmelwlandriver #


Beim letzten Befehl kommt eine Meldung, dass ich die wx Library nicht installiert hätte, diese habe ich jedoch schon einige Zeit zuvor mit Yast installiert, wie auf folgendem Bild zu erkennen ist:

http://home.arcor.de/schloegl/forum/Bildschirmfoto-klein.jpg


Was nun :confused:

mima
04.11.05, 13:54
Hallo Tristan,

zum ersten Fehler:

/home/tristan/atmelwlandriver/objs/usbvnetr/debug/rx.c: In function 'MgmtFrameProcessing':
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/rx.c:753: error: invalid lvalue in assignmentdort wird auf einen falschen linksseitigen Ausdruck hingewiesen. Dies ist in Zeile 749 der (UCHAR) Cast.Dieses Konstrukt wird von älteren Compilern nicht bemängelt. Lösch den Ausdruck (UCHAR) einfach.
zum zweiten Fehler:
Zum Compilieren brauchst Du nicht nur die Programmbibiolothek selbst, sondern auch das zugehörige devel Paket, indem die notwendigen include Dateien und nötige Hilfsprogramme wie wx-config enthalten sind.

Gruß mima

stefan.becker
04.11.05, 17:38
http://sourceforge.net/tracker/index.php?func=detail&aid=1298266&group_id=59001&atid=489567

Das könnte weiterhelfen.

Tristan
05.11.05, 14:26
Ich hab jetzt das zugehörige devel-Paket von wxwindows.org installiert und er fing an 'make winter' auszuführen ... :D ... aber nicht lange ... :eek:


Nach einigen Sekunden kamen folgende Zeilen:


[...]
g++ -I/usr/local/lib/wx/include/gtk2-ansi-release-2.6 -I/usr/local/include/wx-2.6 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE S -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -I. -I. -DOS_LINUX -DATMEL_WLAN -g -c ProfilesPage.cpp
g++ -I/usr/local/lib/wx/include/gtk2-ansi-release-2.6 -I/usr/local/include/wx-2.6 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE S -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -I. -I. -DOS_LINUX -DATMEL_WLAN -g -c WinterApp.cpp
g++ -I/usr/local/lib/wx/include/gtk2-ansi-release-2.6 -I/usr/local/include/wx-2.6 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE S -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -I. -I. -DOS_LINUX -DATMEL_WLAN -g -c WinterFrame.cpp
WinterFrame.cpp: In constructor ‘CWinterFrame::CWinterFrame(wxWindow*, wxWindowID, const wxString&, const wxPoint&, const wxSize&, long int)’:
WinterFrame.cpp:154: error: invalid cast of an rvalue expression of type ‘wxBitmap’ to type ‘const wxIcon&’
make[1]: *** [WinterFrame.o] Fehler 1
make[1]: Leaving directory `/home/tristan/atmelwlandriver/src/apps/winter'
make: *** [winter] Fehler 2

_______________________________________


Hallo Tristan,

zum ersten Fehler:

Zitat:
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/rx.c: In function 'MgmtFrameProcessing':
/home/tristan/atmelwlandriver/objs/usbvnetr/debug/rx.c:753: error: invalid lvalue in assignment

dort wird auf einen falschen linksseitigen Ausdruck hingewiesen. Dies ist in Zeile 749 der (UCHAR) Cast.Dieses Konstrukt wird von älteren Compilern nicht bemängelt. Lösch den Ausdruck (UCHAR) einfach.
[...]
Gruß mima

Ähhm :ugly:
Wo soll ich jetzt was löschen :confused:


Oder, falls es einfacher ist, wie kann ich in den Genuss des folgenden Patches kommen?


The following patch works for me (tested with usb drivers
only).

--- atmelwlandriver/src/Pcmcia_Pci/fastvnet_cs.c 2005-10-02
11:34:05.000000000 +1000
+++ baseline/atmelwlandriver/src/Pcmcia_Pci/fastvnet_cs.c
2005-07-22 17:37:22.000000000 +1000
@@ -1958,7 +1958,7 @@
u64* pTime = (u64*) tCurrentTime;
struct timeval timev;
do_gettimeofday(&timev);
- (*pTime) = timev.tv_sec * 10000000;
+ (u64) (*pTime) = timev.tv_sec * 10000000;
};

int atmel_assoc_info_event (struct net_device *dev,
PVNet_ADAPTER Adapter)
diff -u -r atmelwlandriver/src/usb/rx.c
baseline/atmelwlandriver/src/usb/rx.c
--- atmelwlandriver/src/usb/rx.c 2005-10-02
11:03:51.000000000 +1000
+++ baseline/atmelwlandriver/src/usb/rx.c 2005-07-22
17:37:22.000000000 +1000
@@ -746,7 +746,7 @@
Adapter->RxInBuff.WirelessPacket +
MGMT_FRAME_BODY_OFFSET;

- Adapter->ErrorCode =
+ (UCHAR) Adapter->ErrorCode =
(UCHAR) *
(PUSHORT) &
AssociationRspnsFrame
diff -u -r atmelwlandriver/src/usb/vnetusba.c
baseline/atmelwlandriver/src/usb/vnetusba.c
--- atmelwlandriver/src/usb/vnetusba.c 2005-10-02
11:04:30.000000000 +1000
+++ baseline/atmelwlandriver/src/usb/vnetusba.c 2005-07-22
17:37:22.000000000 +1000
@@ -843,7 +843,7 @@
u64* pTime = (u64*) tCurrentTime;
struct timeval timev;
do_gettimeofday(&timev);
- (*pTime) = timev.tv_sec * 10000000;
+ (u64) (*pTime) = timev.tv_sec * 10000000;
};

int atmel_assoc_info_event (PVNet_ADAPTER Adapter)


Quelle: s. stefan.becker 's Post (Link (http://sourceforge.net/tracker/index.php?func=detail&aid=1298266&group_id=59001&atid=489567))



PS: Wieso wurde der Thread eigentlich ins Mobile-Forum verschoben?

stefan.becker
05.11.05, 14:43
Trag die Zeilen selbst per Editor nach.

Es ist erst Herbst. Lass "make winter" einfach weg, es geht doch ohne. Der Treiber braucht die GUIs nicht.

Tristan
06.11.05, 12:36
Wahnsinn!

Ich hab's tatsächlich geschafft mit Linux ins Internet zu gehen.

Da könnt ihr sagen was ihr wollt, aber ich bin stolz auf mich :D



EDIT: Und ihr könnt natürlich stolz auf eure kompetente Hilfe sein :cool:

stefan.becker
06.11.05, 12:51
Nur so aus Interesse, mir steht der Umstieg auf FC 4 und gcc 4 in den nächsten Tagen auch bevor: War es jetzt das Weglassen von "make winter" oder musstest du die Dateien noch ändern anhand der Vorlage?

Tristan
07.11.05, 18:10
Bei 'make usb' musste ich feststellen, dass die (u64) und (UCHAR) Ausdrücke bereits vorhanden waren. Ich hab sie dann einfach mal entfernt, dann liefs durch.

Bei 'make winter' hab ich gar nichts mehr probiert. Habs einfach weggelassen. Du kannst es aber gerne hier posten, falls du eine Lösung gefunden hast.


EDIT:
In deinem Howto zu "WLAN einrichten" schreibst du, dass man die Befehlsfolge zum Aufbauen der Internetverbindung (iwconfig essid "Name"; ifconfig atml0 inet "IP"; ...) z.B. in die Datei /etc/rc.d/rc.local eintragen kann, damit die Verbindung automatisch beim Hochfahren des Rechners aufgebaut wird.

Bei SuSE 10 (zumindest bei meinem) existiert diese Datei jedoch nicht. Es gibt eine boot.local, die wird die Befehle wahrscheinlich aber ein bisschen zu früh ausführen. Wo kann ich also die Befehle reinschreiben, die dann am Ende des Hochfahrens automatisch als root ausgeführt werden?