DWL-650+ problems...
hello. Just trying to get a dwl-650+ to start on my libranet2.8 laptop. I am using the Acx100 driver and have it inserted but the card won't connect to my access point for some reason. Have tried using iwconfig to set ap, essid, channel, key and others but still can't get it. any help would be greatly appreciated.
|
Speaking of open source, which driver (kernel module) are you using, and from where?
|
driver
like i said i am using the acx100 driver from http://acx100.sourceforge.net/
i just can't get the card configured right |
oh and i am using the 2.4.20 kernel... sorry
|
Actually there are 2 drivers out there for this chipset, one is the project on sourceforge the other is the "leaked" binaries which came out earlier, this is why I asked.
Other than complete misconfiguration of the card, which doesn't sound like your problem, the problem may that your card has a different radio in it and thus needs different firmware in the acx100/firmware directory prior to compilation, check out this post: http://www.linuxquestions.org/questi...452#post446452 I've also found that v0.1h is far superior to v0.1g, in that you no longer get the degradation of the connection over time. |
still no go
hey... i still can't get anything going. I followed what was in the other post and downloaded the latest acx100 driver (version "h") and can't get it to configure or compile. When I run make or make config in the source directory i get errors.
here is what I get when i run make: Quote:
Quote:
|
you need to install the kernel source, then the module should compile without incident, if you're using kernel 2.4.20, you can try downloading the pre-compiled module for slackware 9, which is also 2.4.20, from this little howto page I put together for that chipset: http://www.houseofcraig.net/acx100_howto.php
I should add that this module may not work for you depending on how different the libranet's config for their kernel is from slackware's, if your pcmcia_core and friends were compiled as modules, then it should work, if they were compiled-in, It may work, it may not. |
Hey. I followed your howto. Got all the way to loading the module and checking it. I did lsmod | grep acx100_pci like you state, but it returned nothing... so i did tail -n 20 /var/log/messages and it returned among other GOOD things
Quote:
Quote:
I did tail -n 20 /var/log/messages after all this and it gave me things like: GSTWLAN0: The wirless driver starts ok! Set Mode: 2 Transmit authentication request! Transmit association request! Associated! I am so close. What the hell... |
It looks like you've got the binary driver somehow, it's the "leaked" binary, look for a module somewhere under /lib/modules with acx100 and "sta" in it. Those log messages are definitely from the leaked binary, not from the open source driver. Do an lsmod and see which module is loaded, it's going to have acx100 and "sta" in it. Do a cardctl eject and then rmmod that module, remember it's name as listed by lsmod and add it's name to the /etc/hotplug/blacklist file, this will stop it from loading for your dwl-650+, then if all else has gone well, when you plug your card back in the open source module should get loaded.
Let me add this: the leaked binary works for my cards, the firmware that was embedded in it happens to work with the radio in my cards. According to the post I linked to above, it does *not* work for the dwl-650+, which apparently has a different radio chip in it, it will appear to be associated and show all good in iwconfig but will never transmit, so you've got to go with the open-source driver, where both radios are represented, that's why the firmware you downloaded has both the RADIO0d.BIN and RADIO11.BIN files in it. |
open source driver won't load
hey... you were right... the binary driver was my first attempt at this fiasco and it was obviously causing problems... so i did what you said... ejected the card... rmmod'ed the binary driver, put it on the blacklist and tried pluggin in the card again... BUT... for some reason the hotplug system doesn't load the open-source driver when i plug it in. I tried to do it myself w/ a modprobe but it returns: can't locate module acx100_pci.o. It is definately there, in /lib/modules/`uname -r`/kernel/drivers/net. I have tried updating module dependencies w/ depmod -A like you said before, but still nothing. I even tried gziping the module to no avail. WHAT IS MY DEAL, I am at the point where i think i am retarded.
|
Does a "grep acx100 /lib/modules/`uname -r`/modules.pcimap turn up a couple of lines with the driver? If not, do depmod -a, (not -A), this will take a good bit longer then -A, which is not working for you for some reason.
|
ya. when i do grep acx100 /lib/modules/`uname -r`/modules.pcimap it returns two lines w/ acx100_pci in them. and when i try depmod -a it returns:
Quote:
|
I have few modules that generate that error and yet still work, so it may still work for you, on the other hand this may mean that the module needs to be compiled locally, ie: on your machine. Does modprobe still not find the module? How about a "modinfo acx100_pci?
|
Oh, almost forgot this, those unresolved symbols may be references to things in the firmware files (the .BIN files) do you have the proper options line listing their location in your /etc/modules.conf?
|
hey i am gonna try compiling the driver on my machine. In your howto it says to have kernel source installed. How might i go about this on my machine (libranet). I have a file named "kernel-source-2.4.20.tar.bz2 in my /usr/src directory... is this what I should use?
|
yes that looks like it, I'm not sure what Libranet's going to use to "install" it, I think debian uses .deb files, is there a software installer on the menu?
|
should i install the source to the directory you stated in the howto (/lib/modules/`uname -r`/build/include/linux). Would this prevent me from being able to compile the source for the driver?
|
sorry... would NOT doing this prevent it from compiling....
|
No, you want the kernel source in /usr/src/linux-2.4.20, this should be where the "build" symlink in /lib/modules/2.4.20/ points to, if at all possible you should use Libranet's installer so your database of installed packages will be uptodate.
edit: the file is already in the right place, if there is no installer for it, just cd /usr/src and bunzip2 the kernel source.bz2 file, you may have to create the build symlink yourself, like this: ln -s /usr/src/linux-2.4.20 /lib/modules/2.4.20/build. |
ok i found out how to install the kernel source... checked everything (symlink) and all is ok cept for when i try to compile i still get
Quote:
|
I'm thinking the "build" link is wrong.
if you do a "cd /usr/src/linux-2.4.20/include/linux, and then an "ls -l modversions.h", you should see it there. Also, do an ls -l /lib/modules/`uname -r` and see where the build symlink actually points to. If it's wrong, "rm" it and do "ln -s /usr/src/linux-2.4.20/" /lib/modules/2.4.20/build", assuming there is a directory named "linux-2.4.20" under /usr/src. |
there is no modversions.h on my system... what is this file and how does it relate. Is libranet really that weird. here is my file tree: in my source directory (/usr/src) i have have a directory of my installed kernel named 'kernel-source-2.4.20'. in it is /include/linux/ but within it there is not a file named 'modversions.h'. What the heck is goin on. and within /lib/'modules/2.4.20/ there is no directory named build. This has totally thrown me off and I have no clue what to do. I know exactly what you are referring to but what is the deal w/ my file system. Maybe i should install slack9 and get back w/ you..... jeez, seems like you are working hard at messing w/ an os that is totally unfamiliar w/ the rest of the distros.
|
That file is just one of many include files that are part of the kernel source installation, if you were to find a copy of modversions.h and place it in the right location, the problem would simply move to the next #include'd file in the source code. I've heard good things about libranet, so the problem is most likely us. I'm quite familiar with the whole acx100 thing, but not at all with debian or debian based distros. Like you, I'm asking myself how different can it be...one thing I've heard is that libranet is not necessarily aimed at people who want to compile things, apparently it's more for the desktop crowd, maybe this is the explanation, maybe not, either way being debian-based it should be possible to get a proper installation of the kernel source and a symlink to it.
Was there some tool in libranet similar to the tools in redhat or slackware that you used to install the kernel source? Or did you have to do it manually? In any case, let's use a tool to verify that this file really isn't there, can you cd /usr and then find -name modversions.h, this will scour the entire /usr directory tree for the file. |
I used the libranet 'adminmenu' to install the source... I went to libranet's forums and asked around about it. they said to use the 'recompile kernel' tool which untar's the source and creates the appropriate symlink. They told me this installs it. So that is what I did. As for the 'find -name modversions.h', it returned nothing? Any ideas...
|
I went to libranet's site also and found the same things to be true. I'm having a hard time believing your kernel source is somehow mis-installed, not being familiar with debian, I'm thinking perhaps your version of the find command needs to have -print added to it in order for it to "print" it's findings. I know this must be getting tiresome, but could you run these commands as root:
cd /usr/src find -name mod*.h -print there will definitely be some filenames returned which will verify that the find command's syntax is correct, hopefully modversions will show itself. here's the output on one of my machines running mdk9: Code:
# find -name mod*.h -print |
I tried what you said. It turned up some of the same in yours... but no modversions.h... there is a modsetver.h. what to do?
|
I'm beginning to wonder what is going on. I'm going to have to do some research on compiling kernel modules for debian, it's hard to believe it's so different from the others. The acx100 source is very well-written in terms of compiling without error across distros, so it's not likely the source or the makefile is at fault here. I picked up debian 3.0 last week but don't yet have it installed on anything, hopefully this weekend, I'm curious what could be so different about it. maybe if you ask specifically about compiling a kernel module in the libranet forum someone will shed some light on this.
one more thing to try, in the acx100 source directory, do a make clean and then make configure, see what errors are returned from make configure, maybe there will be a clue in there. |
i did a make clean and it went returned:
Quote:
Quote:
|
Sorry about that configure vs config stuff, my bad.
It still looks to me like the build symlink is bad, here's how to check it: do a "cd /usr/src && find -name version.h | grep /linux/", if one line is returned showing version.h at the end, then we can assume the build symlink is wrong and should be pointing to the directory in front of version.h in that line that is returned, if nothing is returned then the kernel source is definitely not installed correctly or is installed in some other directory for some reason. If that command returns the one line, then do an "ls -l /lib/modules/`uname -r`/build", (don't substitute "2.4.20" for `uname -r` in that command, the makefile will be using `uname -r`, so you should too) and see which directory the build symlink is pointing to. |
ok, I ran "cd /usr/src && find -name version.h | grep /linux/" and it returned one line ("./kernel-source-2.4.20/include/linux/version.h") so, I did a "ls -l /lib/modules/`uname -r`/build" like you said and it returned "ls: /lib/modules/2.4.20/build: no such file or directory"
WTF, this means that for some reason the source tree is messed up right? My tree simply doesn't have a "build" subdirectory. is this where libranet differs slightly? |
No, actually you're almost ready to compile, do this:
ln -s /usr/src/kernel-source-2.4.20 /lib/modules/2.4.20/build that should do it, beware typos in the above command won't generate an error since you're allowed to symlink to non-existant directories. To test this, do ls /lib/modules/`uname -r`/build/include/linux/version.h, again, one line should be returned, then go into your acx100 directory and make clean, then make. Although, there's a newer version of the source out now: version 0.2.0pre2, so I suggest you cd to the acx100 source dir, then do cvs update, then do make clean, make. |
shitty, make failed, it returned:
Quote:
|
All-righty then...(this is me giving up on compiling this module on libranet...)
and yet all may not be lost... Let's re-visit using my already-compiled module for slackware 9.0 that you downloaded (or go download the newest version 0.2.0pre2 for slack9), the kernel version matches yours. if you're game: after you tar zxf the module to /lib/modules/2.4.20/kernel/drivers/net/pcmcia and tar zxf the firmware to the same directory add this line to your /etc/modules.conf file: options acx100_pci use_eth_name=1 debug=0x01 firmware_dir=/lib/modules/2.4.20/kernel/drivers/net/pcmcia do an insmod acx100_pci, if errors use insmod -f, if more errors, post 'em. do iwconfig, if you get some kind of output for the wireless card, continue. do iwconfig ethX mode managed rate 11M channel X essid <essid name of your access point> key xxxx-xxxx-xx (if you're using WEP) substitute your channel in there for "X". do dhcpcd -d ethX, using the device name for the wireless card. see what happens... |
dam, this is ugly. I tried insmod and w/ the -f option. I checked my modules.conf file, added the line you specified and i get lots of errors. Here is what is returned when i do and insmod -f and insmod:
Quote:
|
I just got some email from a guy who downloaded the slack 9 module and the firmware from the howto (of course, he's using slack 9) and has his dwl-650+ working. Don't give up.
I'm wondering how the module ends up being named "acx100.o" instead of "acx100_pci.o", any ideas? The problem with the module being acx100.o is that the options line in /etc/modules.conf will be ignored since it's for acx100_pci.o, meaning no firmware will be found, which is probably causing those errors. I'm not sure how the module got that name, but if you're sure that acx100.o module is the same slack9 module you downloaded, then "cd /lib/modules/2.4.20/kernel/drivers/net/pcmcia", then "mv acx100.o acx100_pci.o". I'm assuming by all those errors that the module did not get loaded, make sure: "lsmod", and if you see acx100 in the list, "rmmod acx100", if your card is in at the time, "cardctl eject" first, or the machine may hang, then "rmmod acx100". After the "mv", do "depmod -a", then "cardctl insert". At no time should you physically remove the card from the machine. |
Hi guys, I'm trying to get my D-Link DWL650+ card to work with RedHat 9. I also installed the acx100 driver from acx100.sf.net. After successful compilation and installation, i get wlan0 up running, but the mode is default to Ad-Hoc. Even though i set the mode to be Managed in the start_net scripts, it still comes up to be Ad-Hoc. So i tried to use "iwconfig wlan0 mode managed" to force it to change mode. I also tried "iwconfig wlan0 retry" and "iwconfig wlan0 commit". but they both gave me an error saying the operation is not supported. I'm using iwconfig version 25. No matter what i do, i can't get the mode to change to managed. I know i need managed mode to talk to the AP. Does anyone know why mode is not changing? Do i need to install a new iwconfig rpm?
Thanks alot! |
mybad. I must have posted wrong or sumthing b/c after a reboot it is listing "acx100_pci.o", w/ all the same errors. And no, the module obviously doesn't load. What would an "Unresolved symbols" error mean. When I do a "depmod -a" it gives me unresolved symbols messages like the ones when i try to insmod.
|
Unresolved symbols are the result of C function calls in the source code that are supposed to exist in other files outside the acx100 source directory, the *.h files in the kernel-source directory define how to make the function call and the parameters for it, but the actual compiled code is another file on the system, or it's *supposed* to be. "Unresolved" means the already-compiled-code (object code) for these external function calls was not found for all those function calls you listed, it suggests a library or two that the acx100 source code links to was not found, or the *.h files point to locations that were not found, etc.. Unlike the atmelwlandriver or the admtek source, the acx100 source never gives me unresolved symbol errors. Not on 6 different machines running mdk8.2, mdk9, mdk9.1, rh9, and slack9.
I truly wish I knew what was wrong, tomorrow I will install debian 3.0 on one of my machines, and yet I don't know how close libranet is to debian, so maybe this will give a clue, maybe not. |
It is pretty close from what I know, Plus, I have posted on Libranet's official forum to see what they have to say. I linked it to this post too, so that maybe help can go from here. Thanks a TON for your help!
|
highartboi,
check your /var/log/messages for lines with "/etc/hotplug/pci.agent...setup....for PCI slot...." in them, start at the end of the file and work backwards, does any other module appear on that line besides acx100_pci? |
bige,
this chipset gave me fits, it took over 2 months for me to find out what it was and find a driver and get it working, at the time the open source project had just begun and nothing was released, I finally found and used the leaked binaries, they worked but were very touchy. I would like nothing more than for every linux-er who owns a card w/this chipset in it to get it working with the open source driver. Helping linux people get this chipset to work is my ultimate revenge on Texas Instruments and the US military who would both probably prefer users of the chipset be limited to a closed-source driver, so...you're welcome, and please don't give up. |
hi akaBea Vis, I'm using a D-Link PCMCIA card on my laptop, so there is no messages about pci.agent related to acx100. Any idea it's telling me the following?
[root@chris scripts]# iwconfig wlan0 ap any Error for wireless request "Set AP Address" (8B14) : SET failed on device wlan0 ; Operation not supported. I'm using iwconfig version 26. Thanks alot |
high, (and may I call you "high"?, heh)
we need to see your /etc/modules.conf, output from lsmod, ifconfig -a, and iwconfig wlan0, additionally, please check and see what's in the acx100/firmware directory, It should be a few files ending in ".BIN", which were copied there from either your windows installation or from the driver disk, or from the downloaded driver from d-link. We will get this working, it's just a matter of time... |
nope, just says:
pci.agent: .. can't load module acx100_pci pci.agent: missing kernel or user mode driver acx100_pci |
hi aka (may I call you "aka"? ^_^),
Thank you very much for your reply. I do not have access to my Linux box right now, but I will post the output of the commands you mentioned earlier asap. I however did a thourough RedHat 9 RPM update through redhat network. I have make sure that I have all three BIN files in the /usr/acx100/firmware directory. I was able to successfully recompile the acx driver, but i still can't change the mode of wlan0. I will also post the output of dmesg later on today. I figure i should just give you guys a heads-up. Thanks alot high |
No, you must call me "beavis" or "butthead", lol, ;)
Can you outline briefly what you did when you say you were "able to successfully recompile the acx100 driver"? Did you use cvs to download the latest (0.2.0pre2) version and compile it? Did you move the compiled module (acx100_pci.o) to a location somewhere under you /lib/modules/`uname -r`/ directory tree? Did you run depmod -a after that? Is there an "options acx100_pci..." line in you /etc/modules.conf with the proper var set describing the location of the firmware? Does ifconfig show the correct MAC address for the card? |
HI Beavis, I used CVS to download the lates acx100 driver. I compiled under directory /usr/acx100. But I didn't copy it to /lib/modules/2.4.20-20.9 I didn't do any depmod -a, There is no options acx100_pci... in /etc/modules.conf. Here is the /etc/modules.conf:
[root@chris 2.4.20-20.9]# more /etc/modules.conf alias eth0 e100 alias usb-controller usb-uhci alias ieee1394-controller ohci1394 alias sound-slot-0 i810_audio post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || : pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || : I'm not sure how to add the acx100_pci option. Please shine some light. This is what my start_net script looks like: DEV=wlan0 IP=192.168.0.200 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 ESSID=House # any == associate to any ESSID # Default rate configured as 11Mbps to not cause connection problems with non-22Mbps hardware... RATE=11M CHAN=6 #TXPOWER=16 # 16 == 16.5dBm, 18 == 18dBm (default) MODE=Managed DEBUG=0xb #KEY=B401CD21B44CCD21DEADBEEF11 # WEP128 ALG=open # open == Open System, restricted == Shared Key after i start start_net, this is the output of ifconfig -a: wlan0 Link encap:Ethernet HWaddr 00:40:05:5A:A8:21 inet addr:192.168.0.200 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:576 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:3 Base address:0x4400 the MAC address of the pcmcia card is correct. this is the output of iwconfig: [root@chris scripts]# iwconfig lo no wireless extensions. eth0 no wireless extensions. wlan0 v0.2.0pre2 ESSID:"House" Mode:Ad-Hoc Channel:6 Cell: 00:00:00:00:00:00 Bit Rate=11Mb/s Tx-Power:18 dBm Encryption key:off Link Quality:100/100 Signal level:13/100 Noise level:0/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 This is the output when i try to change the mode [root@chris scripts]# iwconfig wlan0 mode managed [root@chris scripts]# iwconfig wlan0 commit Error for wireless request "Commit changes" (8B00) : SET failed on device wlan0 ; Operation not supported. [root@chris scripts]# iwconfig lo no wireless extensions. eth0 no wireless extensions. wlan0 v0.2.0pre2 ESSID:"House" Mode:Ad-Hoc Channel:6 Cell: 00:00:00:00:00:00 Bit Rate=11Mb/s Tx-Power:18 dBm Encryption key:off Link Quality:75/100 Signal level:38/100 Noise level:25/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 No matter how i try to change the mode, it still stays as "Ad-Hoc" I didn't find any instruction about modifying /etc/modules.conf in the README file that comes with the driver. |
Right, the readme in the driver has you loading the module and putting the param in that way like this: "insmod src/acx100_pci.o firmware_dir=firmware", which I assume is how the driver got loaded.
The instructions in my howto for this chipset (http://www.houseofcraig.net/acx100_howto.php) attempt to help you set things up where the card is integrated into the system like any *normally* supported device, meaning it starts on boot, comes back from suspend and can be removed/inserted normally, all without too much intervention on your part. This is why you'll see a variance between their readme and my howto. The big exception here is that gui network config tools don't quite get it. The exception here is kwifimanager, which you may want to try, other than it being obviously hard-coded to cut off at 11Mbps, it seems to work with the card and gives those nifty "stair-step" signal bars on the kicker that we're all used to seeing, IMO, redhat's wifi applet is a bit nicer though. Tell me, when you looked at the readme, did you see the part about enabling the "EXPERIMENTAL_VER_0_3" #define in include/acx100.h? Did you do that? I just did, and I had to go back and set it to 0 and recompile, interestingly enough, with that defined, my card also would not come out of ad-hoc mode. Another option if you're a C programmer would be to find and set the default mode in the source to managed instead of ad-hoc, although this seems a bit kludgy. If you'd like I'll take a look at that. From the looks of your iwconfig, the card is functional, just not set associated, this is where you can't get it to come out of ad-hoc? you've tried "iwconfig wlan0 mode managed channel x key off essid house rate 11M". |
Ok found the spot to set default to managed mode, open src/acx100_helper.c and modify line #1657 to read "wlandev->mode = 0x2;" from "wlandev->mode = 0x0;", then cd to the top level acx100 directory, "make clean" and "make", then do whatever you're doing to load the module, you may have to "rmmod acx100_pci" first, then load the new module.
I did this and turned EXPERIMENTAL_VER_0_3 back on and recompiled, the card now starts out in managed mode and gets associated, it's a hack and whether you use the experimental #define or not you may want to try it. |
Cool, I will look at your README link and play around with the srouce code and try to recompile again. I however have a question about how acx100_pci gets to be added to the /etc/modules.conf file and /lib/modules/2.4.20-20.9 directory. I have done "insmod src/acx100_pci.o firmware_dir=firmware" after make driver as instructed in the sourceforge readme file, but that does not put the acx100_pci module in the /lib/modules/2.4.20-20.9 directory nor in the /etc/modules.conf file. Isn't insmod supposed to register the module with the kernel? I have manually copied the module into the /lib/modules/2.4.20-20.9 dir, but it still does not work. Anyways, let me check out your link. thanks
|
All times are GMT -5. The time now is 03:03 PM. |