# D-Link DWL-650+ and Gentoo

## pasilo

I´ve managed to get Gentoo working on my laptop (Compaq Evo N1020v, no 3D support for mobile Radeon however) and every major component is working, including Eth 10/100 which I´m using right now.

I´ve had a DWL-650+ PCMCIA WLAN card for a while and I´ve learned that that there are no, nor there will be in near future, drivers for Linux. Couple of days ago I checked the usual "DWL-650+" pages again and someone had gotten some binary drivers in his hands! And even more better, they had been made to work with Gentoo also.

Of course I downloaded the files and tried to do as the guy who had gotten the drivers to work with Gentoo 1.4 kernel r5, but I ended up messing my whole installation.  After several hours I was back where I started.

I tried kernel with and without PCMCIA support, I emerged and unmerged pcmcia-cs, I installed wireless..., I installed pcmcia-core, etc, can´t even remember everything. I ended up with the system not able to start X. The error had something to do with "not enough memory". After that I "modporbe del":d everything I had installed and got back to "working" system again. Now I´m not even sure if everything necessary for PCMCIA is installed.

I understood that the driver might work with other distros as well (besides the mentioned), but I tried to avoid installing mdk-kernel. Why shouldn´t it work since both Gentoo and mdk 9.1 are 2.4.20-8?

The driver can be found from http://www.ivor.it/wireless/acx.html.

I would appreciate it a lot if someone would help me to get this to work.

Regards,

Pasi

----------

## johnk73

Hi I have my dwl-650 working in gentoo without any specific dlink drivers pcmcia detects the card as an orinoco_cs I think, 

these are the two guides I used to get it working 

https://forums.gentoo.org/viewtopic.php?t=26716

https://forums.gentoo.org/viewtopic.php?t=33864

Hope this helps,

jk

----------

## Tuna

too bad that dwl-650 and dwl-650+ are 2 totally different cards.

ill try that guide again.. on my first try the script failed that should remap the symbols of the module.

----------

## Tuna

works now!

the guide is pretty good.. the scripts are great.

only thing that should be mentioned is, that the binary drivers _DO NOT_ support i82365 pcmcia bridge, common on some laptops. use yenta_socket instead.

btw.. this one should work with all wlan cards using the acx100 chip. not dlink only. my was some cheap noname build..

----------

## pasilo

Tuna:

Could you explain exactly how to make the plus-card work. What do I have to compile into kernel? What's yenta_socket, kernel module? What to put into modules.autoload? How about APM-support? Tried it on and off and temporarily lost my USB mouse. How about the binary driver? Do I have to edit/rename it somehow? Does this whole procedure require that I use mdk - or some other supported kernel sources?

Any help appreciated!

I've compiled my kernel about 15 times now - sometimes loosing something and sometimes getting back to where I started. Tried to read menuconfig help-pages to make sure everything necessary is included. Wouldn't want to go back to mdk/RH just because of this ACX100 WLAN card...

-Pasi

----------

## Tuna

ok i try to to explain but lot of this is taken directly out of the link above. maybe there are some mistakes because im typing this blindly without beeing able to doublecheck.

kernel stuff and pcmcia. first i installed pcmcia_cs until i figured out that this is a no go for this type of card. the i82365 module that comes with that package (and with the kernel) are quite useless as the binary module does not support that bridge. so i enabled "General setup  --->PCMCIA/CardBus support  ---><*> PCMCIA/CardBus support" (note: i am not sure if did this into the kernel or via module.. i think it was kernel). i didnt care about the 3 other, because only one was supported by hardware, but not by the module. install the new kernel with its modules. there should also compile a yenta_socket.o. so basically put pcmcia_core (only if it isnt compiled into the kernel) and yenta_socket to your modules.autoload.

ok first step get the modules and extract them

```
wget http://www.ivor.it/wireless/acx100_bin_20030608.tgz

tar -xzvf acx100_bin_20030608.tgz
```

next one is to prepare the module for your kernel version. type uname -r to determine which kernel version is running. create a directory depending on your kernel version. and copy one of the modules into that directly and name it correctly. the 2.4.20-8 version seems to work fine.

```
cd Acx100Drv

uname -r

--> returns 2.4.20-gentoo-r5 for me

mkdir 2.4.20-gentoo-r5

cp 2.4.20-8/acx100sta-2.4.20-8.o 2.4.20-gentoo-r5/acx100sta-2.4.20-gentoo-r5.o
```

next step is to fix the kernel version number of the module, because it was not build on a gentoo-kernel.

```
cd 2.4.20-gentoo-r5

echo -ne "kernel_version="`uname -r`"\0" > version

objcopy --remove-section=.modinfo --add-section=.modinfo=version acx100sta-*.o
```

ok we are almost finished. last step concerning the module should be to run the installer script that comes with the archive. it will complain that module symbols are wrong and ask if it should fix that. of course we want! the script should install everything accordingly, and we should be happy.

ok.. if your unlucky.. the script may continue to complain about versioning symbols. if that is the case something is wrong.. kernel versions messed up on your system or whatever.. i cant think of any good tips for now if that happens to you.

```
cd ..

./installAcx100
```

add a line to /etc/modules.conf

```
nano -w /etc/modules.d/wlan

--> write in there:

alias eth1 acx100sta

--> save and exit

modules-update
```

hm.. cross fingers.. and..

```
modprobe acx100sta
```

try to get the iface running with the generic bash script that is mentioned on the url. maybe a plain ifconfig eth1 192.168.0.100 proves that it is working too. i do not own a wlan card myself unfortunately.. so dont try to bother me how to set the card up correctly for the access points.  :Wink: 

----------

## swimgeek

Hi,

I have DLink 650 Air, which is actually a DLink 650 with H/W revision 2. I found out that the chipset for the card was made by a company called ADMTek. They even have a driver for the card (with source) available at their website. I compiled the driver in my directory by and placed the resulting kernel module into the pcmcia directory (/lib/modules/2.4.20-gentoo-r5/kernel/drivers/pcmcia/8211.o) and symlinking it from (/lib/modules/2.4.20-gentoo-r5/pcmcia/8211.o) as per the instructions in the README. I had to use yenta_socket as the i82365 module with pcmcia-cs didn't seem to work for my Inspiron 4150. 

I dont have to start the pcmcia subsystem (/etc/init.d/pcmcia start) but the card is detected (the light starts blinking) as soon as I insert it in the pcmcia slot. I'm able to detect my school network by using "iwconfig".  But I'm unable to obtain an IP address. When I had Mandrake 9.1 on my system, I was able to obtain an ipaddress by running dhclient. I emerged dhclient (from the package dhcp) and tried running it. It fails first and/or second time saying that there is already a dhcp server running. This happens even when eth0 (my ethernet card) has not been started. After a few tries it fires up and sends subsequent DHCPDISCOVER messages. However it fails to get a DHCP offer even though there is a strong signal. 

What might I be doing wrong? How can I obtain a IP address as easily as my ethernet card can (or even with difficulty)?

Any ideas would be appreciated.

thanks!

----------

## RedBeard0531

You should start your pcmcia startup script, becuase that does hardware detection, and runs some other scripts. Have a look at /etc/pcmcia/wireless.opts , and /etc/conf.d/net . These are pretty selfexplanitory. Just so you know almost every WiFi card is a Lucent Wavelan, so fill out those settings. BTW- im typing this on a DLink 650.

----------

## li1_getoo

i tried to fix it several time but got the same result

```
Acx100 Module for 2.4.20-gentoo-r5 will be installed

 

...........Installation is executing...........

 

Dependency failure, try to fix symbols? [y]|n : y

Removing driver

Fixscript V1.7

doing eth_type_trans trunc=eth_type_trans new=eth_type_trans_R3gig_b68dc634

doing __wake_up trunc=__wake_up new=__wake_up_R3gig_b76c5f1e

doing __kfree_skb trunc=__kfree_skb new=__kfree_skb_R3gig_a2a51ee9

doing alloc_skb trunc=alloc_skb new=alloc_skb_R3gig_8ba86874

doing pci_register_driver trunc=pci_register_driver new=pci_register_driver_R3gi g_1e536d21

doing __generic_copy_from_user trunc=__generic_copy_from_user new=__generic_copy _from_user_R3gig_116166aa

doing __release_region trunc=__release_region new=__release_region_R3gig_d49501d 4

doing kmalloc trunc=kmalloc new=kmalloc_R3gig_93d4cfe6

doing pci_free_consistent trunc=pci_free_consistent new=pci_free_consistent_R3gi g_1bfc1908

doing pci_enable_device trunc=pci_enable_device new=pci_enable_device_R3gig_1bc7 41d2

doing alloc_etherdev trunc=alloc_etherdev new=alloc_etherdev_R3gig_f295c01f

doing vfree trunc=vfree new=vfree_R3gig_2fd1d81c

doing pci_disable_device trunc=pci_disable_device new=pci_disable_device_R3gig_9 5846005

doing cpu_raise_softirq trunc=cpu_raise_softirq new=cpu_raise_softirq_R3gig_d01f 3ee8

doing free_irq trunc=free_irq new=free_irq_R3gig_f20dabd8

doing unregister_netdev trunc=unregister_netdev new=unregister_netdev_R3gig_ed70 badd

doing __out_of_line_bug trunc=__out_of_line_bug new=__out_of_line_bug_R3gig_8b0f d3c5

doing iounmap trunc=iounmap new=iounmap_R3gig_5fb196d4

doing pci_alloc_consistent trunc=pci_alloc_consistent new=pci_alloc_consistent_R 3gig_ca1c24c8

doing __ioremap trunc=__ioremap new=__ioremap_R3gig_9eac042a

doing del_timer trunc=del_timer new=del_timer_R3gig_fc62f16d

doing register_netdev trunc=register_netdev new=register_netdev_R3gig_95c933e3

doing iomem_resource trunc=iomem_resource new=iomem_resource_R3gig_9efed5af

doing kfree trunc=kfree new=kfree_R3gig_037a0cba

doing request_irq trunc=request_irq new=request_irq_R3gig_0c60f2e0

doing netif_rx trunc=netif_rx new=netif_rx_R3gig_df5032bf

doing pci_unregister_driver trunc=pci_unregister_driver new=pci_unregister_drive r_R3gig_e8061e13

doing skb_over_panic trunc=skb_over_panic new=skb_over_panic_R3gig_1a5de600

doing pci_set_master trunc=pci_set_master new=pci_set_master_R3gig_99cc7ae2

doing sleep_on_timeout trunc=sleep_on_timeout new=sleep_on_timeout_R3gig_75c8e39 4

doing sprintf trunc=sprintf new=sprintf_R3gig_1d26aa98

doing jiffies trunc=jiffies new=jiffies_R3gig_0da02d67

doing __vmalloc trunc=__vmalloc new=__vmalloc_R3gig_79995c5b

doing softnet_data trunc=softnet_data new=softnet_data_R3gig_d1df9be6

doing __request_region trunc=__request_region new=__request_region_R3gig_1a1a4f0 9

doing printk trunc=printk new=printk_R3gig_1b7d4074

doing add_timer trunc=add_timer new=add_timer_R3gig_a19eacf8

doing __generic_copy_to_user trunc=__generic_copy_to_user new=__generic_copy_to_ user_R3gig_d523fdd3

 

Acx100 Module for 2.4.20-gentoo-r5 will be installed

 

...........Installation is executing...........

 

Dependency failure, try to fix symbols? [y]|n : n

Removing driver

 

The installation is Failed

```

i am trying to use dwl-g650 airplus xtremeg

----------

## swimgeek

Redbeard:

I don't think you're getting my point! I already have the card detected and all. I need to know a way to get the dhcp working with that. I already have made the necessary changes to the above mentioned files. I even tried starting the pcmcia subsystem the way that you had suggested, but then I wasn't even able to have my card detected.

Also I'm sorry but I don't agree that every wireless card comes with lucent chipset. I have a card with the ADMTek chipset and another miniPCI card that has broadcom chipset: Truemobie 1180 (for which no drivers have been released because of											FCC

restrictions).

Thanks for trying to help though!

----------

## RedBeard0531

Sorry, I meant to answer that, but forgot to.  :Embarassed:   The command you are looking for is "dhcpcd eth0" assuming it is eth0.

But i suggest you look at those config files as they call that automaticly. In /etc/conf.d/net , make sure that you uncomment iface_eth0="dhcp" .

I meant all 802.11b cards. The one you are mentioning is 802.11g. I could be Just Plain Wrong though.

----------

## Tuna

li1_getoo:

this happens for me too once.. i was about to compile a kernel at that time. after the build was finished, installed and the machine rebooted the fix script was successful. i cant exactly tell you what causes this, but you may want to try to unmerge and reemerge the whole linux sources (make mrproper failed to me once resulting in a kernel tree unable to compile.. guess because of some ugly patches). build a new clean kernel from scratch (also maybe delete appropiate /lib/modules before). no guarantee that will work.. but that symbol hacking is an ugly and painfull task..

if all fails.. i dont know if that is possibillity.. i try to get my binary version on the web so you may want to try that one instead..

p.s. all that non-'+' card users.. please make another thread :>

EDIT: ok for all desperate or clueless: try this one and let me know if it works.

http://user.cs.tu-berlin.de/~tuna/acx100/

again.. i dont know if these symbol names differ from kernel configuration from kernel configuration. someone enlighten us?

----------

## alexmaz

Ok, I can load the acx100sta module, but I can't ping the ap or my network... I'm using a 2.4.21 vanilla kernel, maybe this is the problem, I tried with 2.4.20-8 module and 2.4.21-3mdk with same results, I'll try a 2.4.20-gentoo-r5 kernel... any other solutions?

Thanks  :Smile: 

----------

## rmp42885

to li1_gentoo and anyone else with the dwl-g650:

the driver being discussed in this thread for the dwl-650+ will not work on the dwl-g650, as it uses a different chipset, the Atheros AR5001.  i have found a driver, but can't yet confirm that it works.  the website for the driver is http://team.vantronix.net/ar5k, however, it is down at the moment i am writing this.  if you go to yahoo and search for this site, you can view a cached copy.  anyway, the driver can be downloaded through cvs with this command:  (assuming you have cvs installed)

CVS_RSH=ssh cvs -d:ext:anoncvs@cvs.145.253.64.25:/cvs/vt_ar5k co vt_ar5k    

the password is "anoncvs"

ill post again with my results of messing with this driver.[/i]

----------

## BradB

The acx100 SF project has released a preliminary OSS driver.

See http://acx100.sourceforge.net/ for more info.

Brad

----------

## Tuna

nice.. that is some good news!

EDIT: ah ok.. i hacked an ebuild for that little thing. but as i dont have any wireless card i can not test the functionality of the module, but the ebuild installs fine. again.. dont blame me if sourceforge cvs behaves bitchy.. try more often.. sometimes it takes me about 20 fetches to get the cvs tree..

```
# Distributed under the terms of the GNU General Public License v2

# $Header: $

DESCRIPTION="Kernel driver for TI acx100 based ethernet WLAN adapters."

HOMEPAGE="http://acx100.sourceforge.net/"

LICENSE="MPL-1.1"

SLOT="0"

KEYWORDS="x86"

DEPEND="virtual/linux-sources"

inherit cvs

# CVS settings for acx100 module

ECVS_SERVER="cvs.sourceforge.net:/cvsroot/acx100"

ECVS_MODULE="acx100"

ECVS_TOP_DIR="${DISTDIR}/cvs-src/${PN}"

S="${WORKDIR}/${ECVS_MODULE}"

src_compile() {

   check_KV

   cd "${S}"

   wget http://www.ivor.it/wireless/acx100_bin_20030626.tgz || die "could not download firmware"

   tar -xzvf acx100_bin_20030626.tgz || die

   cp Acx100Drv/2.4.18-6mdk/acx100sta-2.4.18-6mdk.o firmware/acx100_pci.o || die

   make

}

src_install() {

   insinto "/lib/modules/${KV}/kernel/drivers/net"

   doins "${S}/src/acx100_pci.o" || die "Make failed"

   einfo ""

   einfo "In case you have problems, loading the module, try to run depmod -A"

   einfo ""

}
```

ok.. its really hacky.. maybe someone with ebuild skills wants to explain how i can get sources from a cvs and a http resource aswell? all others feel free to test. if it works we try to get it into the portage tree.

ah yeah.. install this one in {PORTAGE_OVERLAY}/net-misc/acx100-cvs/acx100-cvs-0.1.ebuild and run  ebuild {PORTAGE_OVERLAY}/net-misc/acx100-cvs/acx100-cvs-0.1.ebuild digest

----------

## damphyr

I managed to get the driver loaded by compiling PCMCIA/Cardbus support  as a module in the kernel (gentoo-r5) (no pcmcia-cs package drivers)

I did 

modprobe pcmcia_core

modprobe yenta_socket

modprobe ds

modprobe acx100sta

cardmgr -f 

I used the 2.4.20-8 module doing everything described in the howto for the binary driver and using the install script that comes with it.

The problem I have is that iwconfig says:

eth1 no wireless extensions.

Any ideas? 

V.-

----------

## Tuna

hm.. did you really add that 'eth1 acx100sta' line to modules.conf? cant really think of anything else right now. maybe try the opensource driver instead, as that one may be more successfull.

----------

## atac

hmm, i've got a weird problem.

i've manage to get the wlan card to work.

tho it dosen't seem to find a AP.

when wlan0 is up, i can't ping the AP (even tho i've got a working eth0)

```
[/usr/portage/net-wireless] # ping 192.168.50.99

PING 192.168.50.99 (192.168.50.99) 56(84) bytes of data.

From 192.168.50.133 icmp_seq=1 Destination Host Unreachable

```

192.168.50.99 is the AP, and 133 is wlan0.

when bringing wlan0 down it works:

```
[/usr/portage/net-wireless] # /etc/init.d/net.wlan0 stop

 * Bringing wlan0 down...                                                                 [ ok ]

[/usr/portage/net-wireless] # ping 192.168.50.99

PING 192.168.50.99 (192.168.50.99) 56(84) bytes of data.

64 bytes from 192.168.50.99: icmp_seq=1 ttl=127 time=1.47 ms

```

the AP settings are factory defaults.

any thoughts ?

----------

## weazy

I am also trying to configure the DWL 650+

I have followed the above instructions and it looks like the settings have worked. the problem is this:

in the start_net script, I need to have the IP get picked up automatically, how/where do i set up the alternative DNS than what I use for my LAN connection? 

One other issue, when i try to start pcmcia from the init.d directory it starts but I get an error that states: 'Cant locate module ds'

also, when I manually put in an address that I know is free and run start_net I do not get any errors, when I run iwconfig I get a fine output but I cannot get the internet.

----------

## wuonm

 *BradB wrote:*   

> The acx100 SF project has released a preliminary OSS driver.
> 
> See http://acx100.sourceforge.net/ for more info.
> 
> Brad

 

I have compiled and loaded the OSS driver successfully [kernel 2.4.21, vanilla]. But when I start the network I get this message in the kernel log:

```
Jul 16 00:25:47 [kernel] trying to xmit, but not associated yet: aborting...
```

(several hundreths lines like the above)

And, of course, the card don't get associated with the AP.

My next tries will be:

-try with Ad-Hoc instead of Managed

-patch the kernel with we-15 and recompile everything (acx100 module and wirelesstools)

-buy a PRISM based card  :Evil or Very Mad:  

Any hint?

----------

## ctford0

Well, it seems as though I have successfully installed the driver, however it will not load.  When I try to modprobe I get the following:

```

root@laptop ctford0 # modprobe acx100sta

Warning: loading /lib/modules/2.4.20-ck6/pcmcia/acx100sta.o will taint the kernel: no license

  See http://www.tux.org/lkml/#export-tainted for information about tainted modules

/lib/modules/2.4.20-ck6/pcmcia/acx100sta.o: init_module: No such device

Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.

      You may find more information in syslog or the output from dmesg

/lib/modules/2.4.20-ck6/pcmcia/acx100sta.o: insmod /lib/modules/2.4.20-ck6/pcmcia/acx100sta.o failed

/lib/modules/2.4.20-ck6/pcmcia/acx100sta.o: insmod acx100sta failed

```

then dmesg shows this:

```

GSTWLAN0: AP TI acx100_pci.o: Ver 0.9.0.1c -- 2003/04/25 08:06:42 CST Loaded

2003/04/25 08:06:42 CST driver loaded

GSTWLAN0: No devices found, driver not installed.

GSTWLAN0: The wireless card initial fail!

```

NOTE:  I cannot get my kernel to compile with pcmica support built in.  everytime that I try it dies on yenta.

any ideas??

chris

----------

## ctford0

Ok after spending most of the night trying to figure out how to get my 650+ working I found some info.  Let me give an overview of what I have done so far.

I tried the pcmcia_cs drivers however cardmgr could never identify my card.  I had i82365 and ds in modules.autoload and pcmcia_ core would be loaded correctly, however everytime that I would try to modprobe acx100sta I would get the output in my previous post.  This morning I found something interesting on the acx100 sourceforge discussion forum.  One post said that the acx100sta binary would NOT work with the pcmcia_cs drivers.  So then I tried compiling things in the kernel again.

I compiled PCMCIA as a module and cardbus and i82365 into the kernel.  After doing this i could load them fine, however my pc-cardbus was never activated (no beep).  I also gave yenta_socket a try, which would load as a module, however the same effect, no beep.  

I have a couple simple questions.  Do I need to do anything special to use the kernels pc modules?  What do I have to do after the kernel compile and reboot, besides loading the modules?  Do I need to install pcmcia-cs, and if so do I need to worry about it playing nice with the kernel modules.  

Thanks ahead of time.....

Chris

----------

## ctford0

Ok, well, I'm now totally tripping out here.  I finally got the card to work by some miracle with some weird effects.  I still dont get any beeps, i guess since i dont have cardmgr installed, which can be taken care of.  The solution was to compile both, and only, pcmcia support and cardbus support intot the kernel.  It appears that the binary drivers will not infact work with pcmcia_cs.

Another weird side effect is that my MAC addy seem to change in linux from when I am in Windows.  Has anyone else seen this effect?  I find this quite strange since it is supposed to be a hardware based address.

Now the only thing left to complete here is to get a startup script going.  Anyone have one handy they would be willing to share??

chris

----------

## gmarceau

I have a DWL-650+ working with the acx100 open source driver from acx100.sf.net

The full story is here:

http://sourceforge.net/forum/forum.php?thread_id=904785&forum_id=257272

Thanks ctford0. Your war story helped me quite a bit.

----------

## ctford0

glad to hear....

chris

----------

## artoo

I was planning on buying a dlink dwl-650+ card as well as a dwl(something) router. I am trying to read up on all this, but am a bit lost. Just a copuple questions:

1) Can I get the dwl-650+ to work?

2) Is a a huge pain?

3) Should I just get another card?

Thanks

----------

## BradB

artoo - yes, yes and yes.

I'm following the ACX100 development, basically you can get it working in ad-hoc mode, managed mode is getting there.  Don't expect sniffer tools like kisment or airsnort to work.

I'd stick to a prism2 or orinoco chipset.

Brad

----------

## artoo

ok, prism or orinoco, what are some manufacteurers that use those chipsets? The only other main brand of card i see is SMC, and I hear those have horrible range. Please let me know ASAP caise I actually have to get an order cancelled.

----------

## ctford0

I have the binay driver actually working with a WEP key, however it is a huge pain.  I am yet to figure out how to make it do dhcp first off and you also have to write a script that activates the card then assigns the values and then actually connects the card to the access point.  D-Link's DWL-650 (w/out +), at least the first couple versions are prisim 2.5 chipsets and they do work the orinoco or the linux-wlan-ng drivers.  

However, even though the card is now a pain, D-Link is developing a linux driver for the card!!!!

http://support.dlink.com/faq/view.asp?prod_id=1042

 *Quote:*   

> 
> 
> Currently, we do not have Linux drivers for these adapters. D-Link is working on developing drivers. Proper functioning source code or modules will be posted at support.dlink.com/products as soon as they are available. We do not have an estimated or definite time of release. 
> 
> 

 

Things look promising for this card in the future...

Chris

----------

## artoo

Ok, but on the page it says not to buy with hopes of a release. I need to know very soon whether or not to get this card and router. Does either the open-source or close-source driver work? I hear it only works in Ad-Hoc mode, I don't know much about 802.11b, but I have a general grasp. Does this make things harder/worse for me? Will I be able to use dhcp? If d-link released a driver, my problems would be solved, but in the interim, is it worth it?

----------

## ctford0

I got my card to work with the binary (closed source) driver, however the oss driver is developing fairly quickly.  I expect this card to be fairly useable within the next few months so my advice would be if you can't wait then cancel your order.  

chris

----------

## artoo

I don't have a burning need to get the card, but assuming I can get partial support, and hopefully full support, I guess I might as well get it now...

----------

## ctford0

I found a very good walk through for the OSS driver on the acx100 sourceforge forum...

http://sourceforge.net/forum/forum.php?thread_id=904785&forum_id=257272

EDIT: OSS driver sorry.....

EDIT: fixed broken link, pasted in from windows (go figure)

ChrisLast edited by ctford0 on Thu Aug 21, 2003 9:05 pm; edited 1 time in total

----------

## phriday613

ctford,

i am experiencing the same issues with installing the acx100sta module. Same errors when you try to run the install program, and the same dmesg output..

I cant seem to bring up the eth1 or wlan0, whatever the interface is for the card.. 

-when i start the pcmcia service, it shows the card as there, started and has a valid irq (9)

-cardctl info, status both show a card in the slot

but if run kwifimanager, it doesnt show any card. 'ifconfig eth1 up' or 'ifconfig wlan0 up' results in an error. I believe that acx100sta is the modules for the eth1 interface, but i cant get it to be installed!

right now, i have removed pcmcia/cardbus support in the kernel, and added pci/hotplug support into the kernel as a module, and added wireless lan (non-hamradio) also as a builtin modules to the kernel (with no options selected).

any advice to get it to install? did i do something wrong?

Thanks!

----------

## artoo

I have my DWL-650+ working just fine in Gentoo with the open source drivers from acx100.sf.net. I have the 0.1g version, which has good speed, and functional wep. Here is all I did:

```

$ cd ~

$ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/acx100 login

$ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/acx100 co acx100

$ cd acx100

$ ./Configure

$ make

```

At this point you need the firmware drivers, I got them off my CD, but they are also available from the D-Link website at: ftp://ftp.dlink.com/Wireless/DWL650+/Driver/dwl650+_driver_303.zip

Then

```

$ mkdir dwl

$ mv dwl650+_driver_303.zip dwl/

$ unzip dwl650+_driver_303.zip

$ cd Drivers/650+/WinXP

$ cp WLANGEN.BIN ~/acx100/firmware

$ cp WLANGEN.BIN ~/acx100/firmware/APLUSGEN.BIN

$ cp RADIO11.BIN ~/acx100/firmware

$ cp AIRPLUS.BIN ~/acx100/firmware

$ cp AIRPLUS.BIN ~/acx100/firmware/APLUSRFM.BIN

```

There are some duplicate copies there because some files may need to be renamed, and I'm a little forgetfull

After this, you should be all set to go, but I wasn't very satisfied with the start_net/stop_net scripts to I hacked up the net.eth0 script, and made a net.wlan0 script that lets you use all the options just as rate/wep/essidmode via the /etc/conf.d/net config file. So this it where it get's long, so I don't have to put files up on my struggling server, here is my /etc/conf.d/net:

```

#eth0

iface_eth0="dhcp"

dhcpcd_eth0="-dt 20"

gateway="eth0/192.168.1.1"

#wlan0

iface_wlan0="dhcp"

dhcpcd_wlan0="-dt 20"

gateway="wlan0/192.168.1.1"

rate_wlan0="22M"

mode_wlan0="managed"

wep_wlan0="XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

ssid_wlan0="XXXX"

module_wlan0="/home/r2d2/acx100/src/acx100_pci.o debug=0x8 firmware_dir=/home/r2d2/acx100/firmware"

```

Make sure to change the wep key, the ssid as well as the path to the module, path to the firmware, and debug level. For testing, 0x9b is recommended.

And here is the longer, net.wlan0 init.d script:

```

#!/sbin/runscript

# Copyright 1999-2003 Gentoo Technologies, Inc.

# Distributed under the terms of the GNU General Public License v2

# $Header: /home/cvsroot/gentoo-src/rc-scripts/init.d/net.eth0,v 1.30 2003/07/17 18:26:40 azarah Exp $

#NB: Config is in /etc/conf.d/net

# For pcmcia users. note that pcmcia must be added to the same

# runlevel as the net.* script that needs it.

depend() {

   need pcmcia

   use hotplug pcmcia

}

checkconfig() {

   if [ -z "${iface_IFACE}" ]

   then

      eerror "Please make sure that /etc/conf.d/net has \$iface_$IFACE set"

      return 1

   fi

   if [ -n "${vlans}" -a \! -x /sbin/vconfig ]

   then

      eerror "For VLAN (802.1q) support, emerge net-misc/vconfig"

      return 1

   fi

}

setup_env() {

   # No reason to check these multiple times in the file

   iface="${1/\./_}"

   iface_IFACE="$(eval echo \$\{iface_${iface}\})"

   dhcpcd_IFACE="$(eval echo \$\{dhcpcd_${iface}\})"

   inet6_IFACE="$(eval echo \$\{inet6_${iface}\})"

   alias_IFACE="$(eval echo \$\{alias_${iface}\})"

   status_IFACE="$(ifconfig | gawk -v IFACE="${iface}" '/Link/ { if ($1 == IFACE) print "up" }')"

   rate_IFACE="$(eval echo \$\{rate_${iface}\})"

   mode_IFACE="$(eval echo \$\{mode_${iface}\})"

   wep_IFACE="$(eval echo \$\{wep_${iface}\})"

   ssid_IFACE="$(eval echo \$\{ssid_${iface}\})"

   module_IFACE="$(eval echo \$\{module_${iface}\})"

   vlans="$(eval echo \$\{iface_${IFACE}_vlans\})"

}

iface_start() {

   local retval=0

   setup_env ${1}

   checkconfig || return 1

   local IFACE="${1}"

   ebegin "Bringing ${IFACE} up"

   if [ -n "${module_IFACE}" ]

   then

   ebegin "  Loading Module"

      insmod $module_IFACE >/dev/null || {

         retval=$?

         eend ${retval} "Failed to load module"

         return ${retval}

      }

      eend 0

   fi

   if [ -n "${rate_IFACE}" ]

   then

      ebegin "  Setting Rate"

      iwconfig $IFACE rate $rate_IFACE >/dev/null || {

         retval=$?

         eend ${retval} "Failed to set rate"

         return ${retval}

      }

      eend 0

   fi

   if [ -n "${ssid_IFACE}" ]

   then

      ebegin "  Setting SSID"

      iwconfig $IFACE essid $ssid_IFACE >/dev/null || {

         retval=$?

         eend ${retval} "Failed to set SSID"

         return ${retval}

      }

      eend 0

   fi

   if [ -n "${mode_IFACE}" ]

   then

      ebegin "  Setting mode"

      iwconfig $IFACE mode $mode_IFACE >/dev/null || {

         retval=$?

         eend ${retval} "Failed to set mode"

         return ${retval}

      }

      eend 0

   fi

   if [ -n "${wep_IFACE}" ]

   then

      ebegin "  Setting WEP"

      iwconfig $IFACE key $wep_IFACE >/dev/null || {

         retval=$?

         eend ${retval} "Failed to set WEP"

         return ${retval}

      }

      eend 0

   fi

   if [ "${iface_IFACE}" != "dhcp" ]

   then

      /sbin/ifconfig ${IFACE} ${iface_IFACE} >/dev/null || {

         retval=$?

         eend ${retval} "Failed to bring ${IFACE} up"

         return ${retval}

      }

      # ifconfig do not always return failure ..

      /sbin/ifconfig ${IFACE} &> /dev/null || {

         retval=$?

         eend ${retval} "Failed to bring ${IFACE} up"

         return ${retval}

      }

   else

      # Check that eth0 was not brough up by the kernel ...

      if [ "${status_IFACE}" != "up" ]

      then

         /sbin/dhcpcd ${dhcpcd_IFACE} ${IFACE} >/dev/null || {

            retval=$?

            eend ${retval} "Failed to bring ${IFACE} up(dhcp fail)"

            return ${retval}

         }

      fi

   fi

   eend 0

   if [ -n "${alias_IFACE}" ]

   then

      local x=""

      local num=0

      local aliasbcast=""

      local aliasnmask=""

      ebegin "  Adding aliases"

      for x in ${alias_IFACE}

      do

         aliasbcast="$(eval echo \$\{broadcast_${iface}\} \| awk \'\{ print \$$((num + 1)) \}\')"

         if [ -n "${aliasbcast}" ]

         then

            aliasbcast="broadcast ${aliasbcast}"

         fi

         aliasnmask="$(eval echo \$\{netmask_${iface}\} \| awk \'\{ print \$$((num + 1)) \}\')"

         if [ -n "${aliasnmask}" ]

         then

            aliasnmask="netmask ${aliasnmask}"

         fi

         ebegin "    ${IFACE}:${num}"

         /sbin/ifconfig ${IFACE}:${num} ${x} \

            ${aliasbcast} ${aliasnmask} >/dev/null

         num=$((num + 1))

         eend 0

      done

      save_options "alias" "${alias_IFACE}"

   fi

   if [ -n "${inet6_IFACE}" ]

   then

      local x=""

      ebegin "  Adding inet6 addresses"

      for x in ${inet6_IFACE}

      do

         ebegin "    ${IFACE} inet6 add ${x}"

         /sbin/ifconfig ${IFACE} inet6 add ${x} >/dev/null

         eend 0

      done

      save_options "inet6" "${inet6_IFACE}"

   fi

   if [ -n "${gateway}" ] && [ "${gateway%/*}" = "${IFACE}" ]

   then

      ebegin "  Setting default gateway"

      # First delete any existing routes if it was setup by kernel ..

      /sbin/route del default dev ${gateway%/*} &>/dev/null

      /sbin/route add default gw ${gateway#*/} dev ${gateway%/*} \

         netmask 0.0.0.0 metric 1 >/dev/null || {

         local error=$?

         ifconfig ${IFACE} down &>/dev/null

         eend ${error} "Failed to bring ${IFACE} up"

         stop

         return ${error}

      }

      eend 0

   fi

   # Enabling rp_filter causes wacky packets to be auto-dropped by

   # the kernel.  Note that we only do this if it is not set via

   # /etc/sysctl.conf ...

   if [ -e /proc/sys/net/ipv4/conf/${IFACE}/rp_filter ] && \

      [ -z "$(egrep '^[^#]*rp_filter' /etc/sysctl.conf 2>/dev/null)" ]

   then

      echo 1 > /proc/sys/net/ipv4/conf/${IFACE}/rp_filter

   fi

}

iface_stop() {

   local myalias="$(get_options alias)"

   local myinet6="$(get_options inet6)"

   setup_env ${1}

   local IFACE="${1}"

   ebegin "Bringing ${IFACE} down"

   # Also down the inet6 interfaces

   if [ -n "${myinet6}" ]

   then

      local x=""

      for x in ${myinet6}

      do

         /sbin/ifconfig ${IFACE} inet6 del ${x} >/dev/null

      done

   fi

   

   # Do some cleanup in case the amount of aliases change

   if [ -n "${myalias}" ]

   then

      local x=""

      local num=0

      for x in ${myalias}

      do

         /sbin/ifconfig ${IFACE}:${num} down >/dev/null

         num=$((num + 1))

      done

   fi

   if [ "${iface_IFACE}" = "dhcp" ]

   then

      local count=0

      while /sbin/dhcpcd -k ${IFACE} &>/dev/null && [ "${count}" -lt 9 ]

      do

         # Give dhcpcd time to properly shutdown

         sleep 1

         count=$((count + 1))

      done

      if [ "${count}" -ge 9 ]

      then

         eerror "Timed out trying to stop dhcpcd"

      fi

   else

      /sbin/ifconfig ${IFACE} down >/dev/null

   fi

   eend 0

}

start() {

   iface_start ${IFACE} || return 1

   for vlan in ${vlans}

   do

      /sbin/vconfig add ${IFACE} ${vlan} >/dev/null

      iface_start ${IFACE}.${vlan}

   done

}

stop () {

   setup_env ${IFACE}

   checkconfig || return 1

   for vlan in ${vlans}

   do

      iface_stop ${IFACE}.${vlan}

      /sbin/vconfig rem ${IFACE}.${vlan} >/dev/null

   done

   iface_stop ${IFACE}

   ifconfig $IFACE down

   rmmod acx100_pci

}

# vim:ts=4

```

A simple:

```

/etc/init.d/net.eth0 stop

/etc/init.d/net.wlan0 start

```

should do it. ALT+F12 will take you to kernel messages, which should be very helpful.

Good luck.

----------

## ctford0

phriday613, since your card actually shows up i would guess that your kernel is configured correctly.  under pcmcia all i have is pcmcia and cardbus enabled (im not on my laptop now) however, im not sure if i made them modules or compiled directly into the kernel.  im pretty sure that i made them modules...  if you dont have these then that could be part of your problem.  if you are using the pcmcia-cs drivers make sure that you unmerge them or this could be where you get the tainting kernel error.  all you need at this time is to use the drivers that are in the kernel plus the pcmcia-cs-tools, which there is a masked ebuild in portage.  this was my big hang up when tring to get this card to function.  the acx100 modules will NOT work with the pcmcia-cs drivers.

keep us informed on your progress...

chris

----------

## phriday613

```
root@milhouse src # /etc/init.d/net.wlan0 start

 * ERROR:  "/etc/init.d/net.wlan0" has syntax errors in it; not executing...

```

any idea why??  :Sad: 

----------

## artoo

Hmm, that is curious, make sure you have a complete copy? If you do, I can try to find a place to host the file.

On another note, I have pcmcia-cs emerged, so that I can start the pcmcia service, it was crucial for me to have it for anything to function.

----------

## gitarretyp

I have the 650+ and the DI-614+ router. I finally have the 650+ working --i have no idea how because it didn't work earlier today or yesterday and now only works about every fourth time i run the start_net script --but the speed is terribly slow in linux, no problems in win2k. I get ping times to google of ~60 ms through a cable and more like 1500-3000 ms wireless. I'm using the latest acx100 drivers as of last night and have the rate set to 22M. Any thoughts? Also, this router/card combo is capable of 4x mode. How might i go about setting this, if it's even possible?

Thanks

----------

## artoo

The OSS driver authors plan on implementing 4x mode eventually. Confirm that you have version 0.1g please.

----------

## gitarretyp

Yes, i am using the 0.1g drivers. I noticed that 0.1h was released today, but i haven't yet had a chance to try them.

----------

## artoo

Thanks for letting me know H is out, lets see what it does(and backup my copy of g just in case)

Anyways, give H a shot, 0.1f had a lot of reports of slow ping times, 0.1g supposedly fixed that(it did for me), but a lot of people still reported troubles, perhaps 0.1h has further enhancements.

----------

## gitarretyp

I'm happy to say that 0.1h has fixed the speed problem for me.

Best of luck to everyone else with a 650+

----------

