# [WLAN] [ACX100||ACX111] wireless card installation (22mb/s)

## Chaosite

This guide will show you how to use your ACX chipset based card in Linux. The ACX100 is the 802.11b flavor, and the ACX111 is the 802.11g flavor. Both these cards have superior capabilities due to usuage of a different modulation technique (The ACX100 has 22MB/s datarate and 256 bit WEP).

However, Texas Instruments does not support Linux, and did not provide any documentation so that a OSS could be made. Luckily, a binary linux driver was leaked, and by reverse engineering that a OSS driver was made by the ACX native linux driver team (Really creative name...).

This guide assumes that you currently have Internet access, by physically connecting your computer or any other way.

Step -1

First of all, you'll want to find it if its really a ACX based card. As root, do:

```
emerge pciutils

lspci | grep ACX
```

You should get something like:

```
0000:02:09.0 Network controller: Texas Instruments ACX 100 22Mbps Wireless Interface
```

Step 0

Now, you need the actual driver. Go to this website, and download the latest snapshot (Read the changelog, too - as of 26/7/2004, USB is broken in the latest release, and works in a previous version). For example: 

```
wget -c http://lisas.de/~andi/acx100/acx100-0.2.0pre8_plus_fixes_20.tar.bz2
```

Step 1

untar the tarball. It will create a new directory.

```
tar -xvvjf acx100-0.2.0pre8_plus_fixes_20.tar.bz2
```

Step 2

I suggest moving the driver sources into /usr/share/acx100 (or acx111, depends). You don't have to, but I do it.

```
mv acx100-0.2.0pre8_plus_fixes_20/ /usr/share/acx100

cd /usr/share/acx100
```

Step 3

Now we need the firmware for the drivers. The easiest way to get this is using the provided script:

```
./scripts/fetch_firmware
```

Just follow the instructions.

TODO: Provide alternate instructions on what to do in case the script fails. In case you need this, there is a good explanation in the README file.

Step 4

Move the firmware to the correct place:

```
mkdir /usr/share/acx

mv firmware/* /usr/share/acx
```

Step 5

We now have two options: Build the module out of the kernel tree (2.4 & 2.6 kernels), or build it inside the kernel tree (2.6 only, IIRC). If you have a patchset which already includes the acx driver (such as love-sources), skip this step. Make sure your kernel has wireless extensions. In 2.6 kernel, you can find them at: Device Drivers -> Networking Support -> Wireless LAN (non-hamradio)

TODO: Find out where these are hiding in 2.4 kernel. Little help here?

Note that the driver has locking issues with SMP - so turn SMP off.

Step 6a

Outside of the kernel tree: 

```
ACX_IO_WIDTH="32" make && make install
```

and modprobe it:

```
modprobe acx_pci
```

Step 6b

Inside the kernel tree: 

```
KSRC="/path/to/kernel/source/" make inject
```

 If you don't specify KSRC it defaults to /usr/src/linux. Now go configure your kernel - you can find it in Device Drivers -> Networking Support -> Wireless LAN (non-hamradio) -> Texas Instruments ACX100/ACX111 (TNETW1xxx) cards.Instruments

if you compiled it into the kernel (Its a bit experimental at the moment, so I don't recommend that - removing the module might get you out of a tight spot), you don't need to modprobe it, otherwise:

```
modprobe acx_pci
```

Step 7

Now we have a wireless interface, so all we need to do is set it up:

```
emerge wireless-tools

iwconfig wlan0
```

You should see a few lines of information. If you don't, something is wrong. Ask for support here. Now, to configure the card using iwconfig (I'm assuming there is a wireless router or other access point managing this. I don't know how to configure Ad-Hoc)

```
iwconfig wlan0 essid FOO channel BAR mode managed key s:iamalumberjackandimok rate 22M
```

Fill this out according to your router settings. If suggest not using WEP when first trying to get this to work - its another thing that you might get wrong. Use the s:foobar style to enter a string as the wep key, or just enter it in hex.

```
dhcpcd wlan0
```

You should now have an IP address, and be able to use your wireless connection. Feel free to disconnect the wire. Have fun.

I suggest moving to the Gentoo wireless configuration initscript from here, to have your wireless configuration set up at startup.

This guide was written while using a D-Link DWL-520+ (ACX100 based card).

 *the README file wrote:*   

> Please NEVER consider using the NDIS driver loader cludge instead of our driver. For an incredible number of reasons against it, please see http://acx100.sourceforge.net/ndis_cludge.html
> 
> If for some or another reason you're unhappy with the performance of our current driver version, then either fix it if you're capable of doing that or immediately think of returning to the shop or, if that is not possible, of selling your very poorly supported Taxed Sinstruments based card in exchange for a wireless card that is well-supported under Linux.
> 
> Buying the very problematic DriverLoader product instead in an attempt to "fix" missing Linux driver support will send the entirely wrong message to wireless card manufacturers, so please never choose to do that.
> ...

 

TODO: Add information on using USB and pcmcia versions of the card.

EDIT [04/08/04]: Improved formatting.

EDIT [04/10/04]: Missing ".Last edited by Chaosite on Thu Dec 30, 2004 7:16 pm; edited 3 times in total

----------

## noookz

wow...I've been looking for a guide to compile this driver outside the source tree (2.6) for a while now and finally found yours.  Thank you! Thank you! Thank you!  :Razz:  This was the most recent and the easiest guide to follow so far! Props to Chaosite

----------

## drizzt

First I want to thank the author for this wonderful guide - works great with netgear wg311v2.

First thing I want to add is, that the original *.bin files from netgear windows cd(Win 2000)  work great without any modification - just copy them to the given firmware directory (3 files).

Second is - if you run into trouble while compiling ( I've got an error about no function 'timeout' in member....) do a "make clean" and try to compile again - worked for me.

For the moment I was only able to compile this driver on kernel 2.6.4-ck1. 2.6.9 - kernels gave me a lot of trouble. So if you can't get it compiled in any way - try out that kernel version.

----------

## drizzt

Make sure you compile the actual kernel and the acx driver with the same version of gcc.

Makes your life a lot easier....   :Smile: 

----------

## Chaosite

Your welcome   :Very Happy: 

And yeah, it doesn't really matter where you get your firmware from, as long as it is in the firmware directory. And `make clean` does seem to solve weird problems from time to time...

And about 2.6.9 kernels:

```
chaosite@Aurora ~ $ uname -a

Linux Aurora 2.6.9-rc2-chaotic1 #2 Thu Sep 16 18:37:19 IDT 2004 i686 Intel(R) Pentium(R) 4 CPU 2.60GHz GenuineIntel GNU/Linux

```

WFM   :Cool: 

----------

## drizzt

Hmm, I`ll try the 2.6.9-kernels as of today a new version is out.

Probably this version works better for me.

Besides the compiling problems with the ACX111 driver, the 2.6.9-kernel also gave me errors about floppy not accessible. (Something with Address already in use or something like that...)

I will post my results if I get anything new...

----------

## Chaosite

Oh, by the way, in the latest mm-sources kernel (2.6.9-rc3-mm2) an internal API changed a bit, so you have to edit the driver.

This little patch should take care of that.

For in-kernel builds:

```

--- linux/drivers/net/wireless/acx/acx100.c.orig        2004-10-06 11:00:43.590670584 +0200

+++ linux/drivers/net/wireless/acx/acx100.c     2004-10-06 09:17:04.000000000 +0200

@@ -817,7 +817,7 @@

        dev->base_addr = pci_resource_start(pdev, 0); /* TODO this is maybe incompatible to ACX111 */

 

        /* need to be able to restore PCI state after a suspend */

-       pci_save_state(pdev, priv->pci_state);

+       pci_save_state(pdev);

 

        if (OK != acx_reset_dev(dev)) {

                acxlog(L_BINSTD | L_INIT,

@@ -1134,7 +1134,7 @@

        acxlog(L_STD, "acx100: experimental resume handler called for %p!\n", priv);

        pci_set_power_state(pdev, 0);

        acxlog(L_DEBUG, "rsm: power state set\n");

-       pci_restore_state(pdev, priv->pci_state);

+       pci_restore_state(pdev);

        acxlog(L_DEBUG, "rsm: PCI state restored\n");

        acx_reset_dev(dev);

        acxlog(L_DEBUG, "rsm: device reset done\n");

```

For out-of-kernel builds:

```

--- src/acx100.c        2004-10-05 08:52:32.000000000 +0200

+++ src/acx100.c~rc3-mm2-fix    2004-10-06 11:04:10.957146088 +0200

@@ -817,7 +817,7 @@

        dev->base_addr = pci_resource_start(pdev, 0); /* TODO this is maybe incompatible to ACX111 */

 

        /* need to be able to restore PCI state after a suspend */

-       pci_save_state(pdev, priv->pci_state);

+       pci_save_state(pdev);

 

        if (OK != acx_reset_dev(dev)) {

                acxlog(L_BINSTD | L_INIT,

@@ -1134,7 +1134,7 @@

        acxlog(L_STD, "acx100: experimental resume handler called for %p!\n", priv);

        pci_set_power_state(pdev, 0);

        acxlog(L_DEBUG, "rsm: power state set\n");

-       pci_restore_state(pdev, priv->pci_state);

+       pci_restore_state(pdev);

        acxlog(L_DEBUG, "rsm: PCI state restored\n");

        acx_reset_dev(dev);

        acxlog(L_DEBUG, "rsm: device reset done\n");

```

If you don't get a build error while trying to compile this, don't apply this patch.

Good luck!

----------

## byoungstrom

BTW, thanks for writing this howto!

I am having trouble with step 6b. I do the 'make inject', then go to /usr/src/linux and do make menuconfig. I can't find the driver in "Device Drivers -> Networking Support -> Wireless LAN (non-hamradio)".

I am using 2.6.8 kernel. I have tried a make clean on the kernel source, re-injected, and it still won't show up. When I did the make clean I got:

```
make clean

  CLEAN   arch/i386/boot/compressed

  CLEAN   arch/i386/boot

  CLEAN   arch/i386/kernel

  CLEAN   drivers/char

  CLEAN   drivers/ieee1394

drivers/net/wireless/acx/Makefile:3: ACX_DEBUG was not defined, assuming 1

drivers/net/wireless/acx/Makefile:8: ACX_IO_WIDTH was not defined, assuming 16bit access

  CLEAN   drivers/pci

  CLEAN   init

  CLEAN   lib

  CLEAN   usr

  CLEAN   .tmp_versions

  CLEAN   include/asm-i386/asm_offsets.h vmlinux System.map .tmp_kallsyms1.S .tmp_kallsyms1.o .tmp_kallsyms2.S .tmp_kallsyms2.o .tmp_vmlinux1 .tmp_vmlinux2 .tmp_System.map

```

So there is something happening with the ACX driver.

----------

## Chaosite

Well, that message means that at least its there (Its harmless, don't worry).

Are you sure you have SMP turned off?

And PCI support turned on?

In my computer, this is what happens:

```
Aurora wireless # cat /usr/src/linux/drivers/net/wireless/Kconfig | grep "acx100 driver"

# acx100 driver, available at http://acx100.sourceforge.net
```

Is this the case for your computer as well?

----------

## firenx

hey.. well the driver seemed to compile fine, but unfortunatly now i get 

FATAL: Error inserting acx_pci (/lib/modules/2.6.8-gentoo-r7/net/acx_pci.o): Invalid module format

----------

## byoungstrom

Chaosite - I got it working! Thanks for your help. I don't know what I was doing wrong, but I started from scratch again and it worked. Probably overlooked one of your instructions (doh!).

Thanks again.

----------

## Chaosite

 *firenx wrote:*   

> hey.. well the driver seemed to compile fine, but unfortunatly now i get 
> 
> FATAL: Error inserting acx_pci (/lib/modules/2.6.8-gentoo-r7/net/acx_pci.o): Invalid module format

 

Well, thats weird. It can be caused by two things I can think of right now.

One, is that the module is not build for the currently running kernel ( ... On second thought, it would be complaining about magic cookies then, so no)

The more probable is that you compiled the module with a different version of GCC then the one you used for the kernel. Could this be the case?

byoungstrom: cool, good to know! You're very welcome.  :Smile: 

----------

## G|N|

what is the syntax of this line?

```
iwconfig wlan0 essid FOO channel BAR mode managed key s:iamalumberjackandimok rate 22M
```

are it all standard things are do you have to edit them for your personel network?

and is there an other way to do this?

----------

## Lolek

Hi.

I have followed all steps listed here, but i can't 'force' my dlink (dwl-g650+ h/w: b1 f/w: 2.04) to work. I'm trying run it on toshiba A60 laptop with 2.6.9 kernel but with no luck. I think there is problem with my pci drivers because there is no Network Controller listed after typing lspci.

Anyone know why?

ps. I have latest drivers for dlink card from acx100.sf.net, pcmcia-cs, wireless-tools and firmware.

----------

## SuperJudge

Thanks a lot, this worked beautifully with my Netopia 3dReach.   :Cool: 

----------

## Chaosite

 *G|N| wrote:*   

> what is the syntax of this line?
> 
> ```
> iwconfig wlan0 essid FOO channel BAR mode managed key s:iamalumberjackandimok rate 22M
> ```
> ...

 

No, they're no standard. You have to replace FOO with your ESSID, BAR by the channel, and "iamalumberjackandimok" with your key.

Yes, you can use the wireless startup scripts to avoid typing this everytime. Theres a thread here, but mostly its emerging the latest (keyworded) baselayout and reading /etc/conf.d/wireless.conf.example .

Hope this helps!  :Cool: 

----------

## Chaosite

 *Lolek wrote:*   

> Hi.
> 
> I have followed all steps listed here, but i can't 'force' my dlink (dwl-g650+ h/w: b1 f/w: 2.04) to work. I'm trying run it on toshiba A60 laptop with 2.6.9 kernel but with no luck. I think there is problem with my pci drivers because there is no Network Controller listed after typing lspci.
> 
> Anyone know why?
> ...

 

Yes, it wouldn't appear after the lspci, because its a pcmcia card . . .

I'm not really sure how to handle this one really. I don't have the pcmcia version of this card - your best bet is to go to acx100.sf.net and ask on the forums there. They are generally helpful people.

Once you get your card working, please tell me how you did it so I can update the howto - Thanks!

----------

## SuperJudge

"imalumberjackandimok" would make a great enc if I used ascii.

----------

## megz

hi im trying to set up my netgear wg311 v2 wireless card using these drivers only thing is if i disable smp when i do dmesg i just get a whole heap of rubbish bout needing it and then on top of that i cant get any stats for wlan0 however if i dont disable it i cannot select texas instruments when i do a make menuconfig but i can get most stats for wlan0 and a more workable dmesg output but i still cannot get it to actually connect to the internet ...anybody able to help??????

----------

## Chaosite

 *megz wrote:*   

> hi im trying to set up my netgear wg311 v2 wireless card using these drivers only thing is if i disable smp when i do dmesg i just get a whole heap of rubbish bout needing it and then on top of that i cant get any stats for wlan0 however if i dont disable it i cannot select texas instruments when i do a make menuconfig but i can get most stats for wlan0 and a more workable dmesg output but i still cannot get it to actually connect to the internet ...anybody able to help??????

 

...

The dmesg output could be helpful.

No stats for wlan0 when? When you run ifconfig -a? Is the module loaded?

Ummm... If you don't select Texas Instruments, then you are basically not using the module (Unless you did it the other way). Are you sure you have a ACX card?

Basically, tell me exactly what you did, show me the dmesg output, the lsmod output, and anything else you think could be useful.

----------

## troki

Dont forget to set the channel either on your card. I found it helps greatly.

Oh and ChaoSite ? 

~ THANK YOU ~

And while I am at it too, thanks to the dev team behind acx.

Oh, and thank you to gentoo users and providers and devs.

Thank you World

alleluia

It's a miracle, my box's Heart has restarted, and the encephalogram is

reaching 54MBps ! On the 6th day it spoke thus :

- Emerge World

And it worked.

alleluia

-- Troki

----------

## Chaosite

 *troki wrote:*   

> 
> 
> ~ THANK YOU ~
> 
> 

 

You're welcome!  :Smile: 

And amen to that, brother!

----------

## fuxxy

Hmm. I've got a couple problems.

First of all, 'modprobe acx_pci' fails with the error "init module: no such device"

/etc/modules.d/acx_pci already contains 

```
options acx_pci debug=0xb firmware_dir=/usr/src/acx/
```

and I've updated my modules.conf using modules-update

However , when loading the module with 

```
 insmod /usr/share/acx100/src/acx_pci.o debug=0xb firmware_dir=/usr/share/acx/

```

 the module is loaded fine.

More importantly, I've loaded the module using insmod, and set up all my options using iwconfig.

```
iwconfig wlan0 essid foo_bar channel 6 mode managed key restricted s:iamacutelittlebumblebee
```

essid='foo_bar'

rate='11M'

chan=6

mode=Managed

dedbug=0xb

key='iamacutelittlebumblebee'

alg=restricted

I've checked the options (output of iwconfig wlan0) output as follows:

 *Quote:*   

> 
> 
> wlan0     IEEE 802.11b+  ESSID:"foo_bar"  Nickname:"acx100 v0.2.0pre8"
> 
>           Mode:Managed  Channel:6  Access Point: 00:00:00:00:00:00
> ...

 

The next step in your guide is to do a 'dhcpcd wlan0,' However when I issue that command, my command line stalls for about 1 minuite, and then dumps back to prompt, without retrieving an IP or setting up the interface..

I am in the process of disabling WEP for the moment, and I'll respond with the results of that endeavour.

----------

## Chaosite

Hey, fuxxy  :Smile: 

(I remember your from IRC last night)

Hmmm...

You sure you did a "make install"?

Thats the only thing I can think that would make insmod work and modprobe not work right now.

And for the other thing: Try to configure it manually first, AKA ifconfig wlan0 up, ifconfig wlan0 <someIP>, etc.

If you can see that you got a MAC address in iwconfig, then your wireless card is set up correctly. Else, you need to check the configuration you gave it.

----------

## TheNull

Thank you very much Chaosite.

I remember like 8 months ago, I tried to get this driver working for 3 days straight and failed.  However with your walkthrough, it took a grand total of 5 minutes.

Once again, thanks alot, and thanks to the acx100 driver dev team  =D

----------

## Chaosite

 *TheNull wrote:*   

> Thank you very much Chaosite.
> 
> I remember like 8 months ago, I tried to get this driver working for 3 days straight and failed.  However with your walkthrough, it took a grand total of 5 minutes.
> 
> Once again, thanks alot, and thanks to the acx100 driver dev team  =D

 

 :Very Happy: 

No problem, glad to be useful.

----------

## feardapenguin

I followed the "inside the kernel" path but I get this when I attempt to compile:

```
  CC      drivers/net/8139too.o

drivers/net/wireless/acx/Makefile:3: ACX_DEBUG was not defined, assuming 1

drivers/net/wireless/acx/Makefile:8: ACX_IO_WIDTH was not defined, assuming 16bit access

  LD      drivers/net/wireless/acx/built-in.o

  CC [M]  drivers/net/wireless/acx/acx100.o

drivers/net/wireless/acx/acx100.c: In function `acx100_probe_pci':

drivers/net/wireless/acx/acx100.c:749: error: too many arguments to function `pci_save_state'

drivers/net/wireless/acx/acx100.c: In function `acx100_resume':

drivers/net/wireless/acx/acx100.c:1032: error: too many arguments to function `pci_restore_state'

make[4]: *** [drivers/net/wireless/acx/acx100.o] Error 1

make[3]: *** [drivers/net/wireless/acx] Error 2

make[2]: *** [drivers/net/wireless] Error 2

make[1]: *** [drivers/net] Error 2

make: *** [drivers] Error 2
```

----------

## megz

hey ive manage dot get my wireless working but after every reboot gentoo 'forgets' my essid meaning i have to manually reset it and then restart /etc/init.d/net.wlan0 after every reboot...where can i set it to work on boot up??? i also dont appear to have a /etc/conf.d/wireless file??? is this bad???/ sorry for bein so ignorant:/

thanx

----------

## feardapenguin

I get this when I attempt to compile.  Same error when compiled in or outside of the kernel.

```
  CC      drivers/net/8139too.o

drivers/net/wireless/acx/Makefile:3: ACX_DEBUG was not defined, assuming 1

drivers/net/wireless/acx/Makefile:8: ACX_IO_WIDTH was not defined, assuming 16bit access

  LD      drivers/net/wireless/acx/built-in.o

  CC [M]  drivers/net/wireless/acx/acx100.o

drivers/net/wireless/acx/acx100.c: In function `acx100_probe_pci':

drivers/net/wireless/acx/acx100.c:749: error: too many arguments to function `pci_save_state'

drivers/net/wireless/acx/acx100.c: In function `acx100_resume':

drivers/net/wireless/acx/acx100.c:1032: error: too many arguments to function `pci_restore_state'

make[4]: *** [drivers/net/wireless/acx/acx100.o] Error 1

make[3]: *** [drivers/net/wireless/acx] Error 2

make[2]: *** [drivers/net/wireless] Error 2

make[1]: *** [drivers/net] Error 2

make: *** [drivers] Error 2
```

[/quote]

----------

## Chaosite

 *feardapenguin wrote:*   

> I followed the "inside the kernel" path but I get this when I attempt to compile:

 

Kernel version?

----------

## Chaosite

 *megz wrote:*   

> hey ive manage dot get my wireless working but after every reboot gentoo 'forgets' my essid meaning i have to manually reset it and then restart /etc/init.d/net.wlan0 after every reboot...where can i set it to work on boot up??? i also dont appear to have a /etc/conf.d/wireless file??? is this bad???/ sorry for bein so ignorant:/
> 
> thanx

 

Get the latest maksed/keyworded baselayout, and look at /etc/conf.d/wireless.example. This is not related to getting the ACX card to work, anyway.

Theres a thread about wireless startup the Gentoo way, go there, they'll be able to help you more.

----------

## feardapenguin

 *Chaosite wrote:*   

> Kernel version?

 

Sorry I didn't include that.  I'm running ck-sources-2.6.10-r1.

```
# emerge info

Portage 2.0.51-r3 (default-linux/x86/2004.3, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.6.10-ck1 i686)

=================================================================

System uname: 2.6.10-ck1 i686 AMD Athlon(tm) XP 1800+

Gentoo Base System version 1.4.16

Autoconf: sys-devel/autoconf-2.59-r5

Automake: sys-devel/automake-1.8.5-r1

Binutils: sys-devel/binutils-2.15.90.0.1.1-r3

Headers:  sys-kernel/linux26-headers-2.6.8.1-r1

Libtools: sys-devel/libtool-1.5.2-r7

ACCEPT_KEYWORDS="x86"

AUTOCLEAN="yes"

CFLAGS="-march=athlon-xp -O3 -pipe"

CHOST="i686-pc-linux-gnu"

COMPILER=""

CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control"

CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"

CXXFLAGS="-march=athlon-xp -O3 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms"

GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY=""

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="x86 X acl alsa apm arts avi berkdb bitmap-fonts crypt cups encode esd fam foomaticdb fortran gdbm gif gnome gpm gstreamer gtk gtk2 ipv6 jpeg libwww mad mikmod motif mozilla mpeg ncurses nls oggvorbis opengl oss pam pdflib perl png python quicktime readline sdl spell ssl svga tcpd tiff truetype xml2 xmms xv zlib"
```

----------

## feardapenguin

Interesting.  Same error on another box.  Note that the kernel used is the same as the previous box.

```
[/usr/share/acx100]# ACX_IO_WIDTH="32" make && make install

Kernel version file: /lib/modules/2.6.10-ck1/build/include/linux/version.h

Kernel configuration file: /lib/modules/2.6.10-ck1/build/.config

Make damn sure these really match your currently running kernel!!

Kernel configuration found, performing sanity checks

All of the following items are required by the driver:

    Loadable modules support is enabled.

    Wireless LAN (non-hamradio) support is enabled.

    Wireless extensions support is enabled.

The following is needed for PCMCIA/CardBus cards:

    PCMCIA support is DISABLED.

    CardBus support is DISABLED.

The following is needed for USB card support:

    USB support is enabled.

The following is needed for PCI card support:

    PCI support is enabled.

Kernel configuration satisfies the minimum requirements, continuing.

Wireless header file is WIRELESS_EXT version 17.

Configured with: /var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/configure --enable-version-specific-runtime-libs --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.3 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.3 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.3/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.3/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/include/g++-v3 --host=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --enable-shared --enable-threads=posix --disable-multilib --disable-libgcj --enable-languages=c,c++,f77

gcc version 3.4.3 20041125 (Gentoo Linux 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7)

Running linux 2.6.10-ck1

Compile info: will choose to use code infrastructure for NEWER wireless extension interface version (>= 13)

Symmetric multiprocessing support (CONFIG_SMP) is disabled.

make -C src

make[1]: Entering directory `/usr/share/acx100/src'

if test -n ; then \

mkdir -p /usr/share/acx100/src/tmp; \

cp /lib/modules/2.6.10-ck1/build/.config /usr/share/acx100/src/tmp; \

fi

# use "make V=1" to see full compile execution

make -C /lib/modules/2.6.10-ck1/build SUBDIRS=/usr/share/acx100/src  \

        MODVERDIR=/usr/share/acx100/src WLAN_HOSTIF=WLAN_PCI modules

make[2]: Entering directory `/usr/src/linux-2.6.10-ck1'

  CC [M]  /usr/share/acx100/src/acx100.o

In file included from /usr/share/acx100/src/acx100.c:100:

/usr/share/acx100/src/../include/acx100.h:1453: warning: `packed' attribute ignored

In file included from /usr/share/acx100/src/acx100.c:105:

/usr/share/acx100/src/../include/idma.h:151: warning: `packed' attribute ignored

/usr/share/acx100/src/acx100.c: In function `acx100_probe_pci':

/usr/share/acx100/src/acx100.c:749: error: too many arguments to function `pci_save_state'

/usr/share/acx100/src/acx100.c: In function `acx100_resume':

/usr/share/acx100/src/acx100.c:1032: error: too many arguments to function `pci_restore_state'

make[3]: *** [/usr/share/acx100/src/acx100.o] Error 1

make[2]: *** [_module_/usr/share/acx100/src] Error 2

make[2]: Leaving directory `/usr/src/linux-2.6.10-ck1'

make[1]: *** [modules] Error 2

make[1]: Leaving directory `/usr/share/acx100/src'

make: *** [driver] Error 2
```

```
# emerge info

Portage 2.0.51-r8 (default-linux/x86/2004.0, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.10-ck1 i686)

=================================================================

System uname: 2.6.10-ck1 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz

Gentoo Base System version 1.6.8

Python:              dev-lang/python-2.2.3-r5,dev-lang/python-2.3.4 [2.3.4 (#1, Jun  5 2004, 00:28:26)]

dev-lang/python:     2.2.3-r5, 2.3.4

sys-devel/autoconf:  2.59-r6, 2.13

sys-devel/automake:  1.8.5-r2, 1.5, 1.4_p6, 1.6.3, 1.7.9, 1.9.3

sys-devel/binutils:  2.15.92.0.2-r2

sys-devel/libtool:   1.5.10-r2

virtual/os-headers:  2.6.8.1-r1

ACCEPT_KEYWORDS="x86 ~x86"

AUTOCLEAN="yes"

CFLAGS="-march=i686 -O3 -pipe"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/bind /var/qmail/control"

CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"

CXXFLAGS="-march=i686 -O3 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo"

LDFLAGS=""

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY=""

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="x86 X acl alsa apm arts avi berkdb bitmap-fonts cdr crypt cups emacs encode esd fam foomaticdb fortran gdbm gif gnome gphoto2 gpm gstreamer gtk gtk2 imagemagick imlib ipv6 java jpeg junit libwww mad mikmod motif mozilla mpeg mysql nas ncurses nls odbc oggvorbis opengl oss pam pdflib perl png postgres python quicktime readline ruby sdl session slang spell ssl svga tcltk tcpd tetex tiff truetype xml xml2 xmms xv zlib"
```

----------

## feardapenguin

Finally got this card working.  Had to revert to acx100-0.2.0pre6_plus_fixes_14.  Still don't know why pre8 wouldn't compile.

----------

## Mattwolf7

If you need WEP support you can download http://www.linuxant.com/driverloader/

TI has an agreement which lets TI Chipsets use the utility for free (no cost).

I know someone is going to complain about it not being GPL so if you want both kinds of free and are up for a challenge to try and get NdisWrapper working use http://ndiswrapper.sourceforge.net/

I couldn't get NdisWrapper working so good luck if you try.

----------

## nirax

hi guys, 

i just try to get this working on a notebook that has nothing but wireless support (over pcmcia)

i compiled the driver but it "does not work"

my guess is that i didnt compiled all needed stuff in kernel.

can someone tell me what is required on kernel side to get DWL-650+

working with acx100 ?

thanks in advance,

nirax

----------

## shinewu

I am using a Buffallo 54G card.

Under lspci, it is displayed as:

Network controller: Texas Instruments ACX 111 54Mbps Wireless Interface

And it is working flawlessly with NdisWrapper.

I urge everyone to give it a try!!!

----------

## Chaosite

What, give ndiswrapper a try? Don't do that.

Use the native drivers. Yes, its worth giving up WEP.

Anyway, its in Portage now! All thank yous should go to genstef for writing the ebuild.

USB isn't working yet, but for the rest, just `emerge acx100`  :Smile:  (Well, its ~x86, but you get the basic idea...)

----------

## nirax

thats really cool news.

i brought it also to life, but atm it still locks up with DWL-650+

sadly this is no single happening, i read in acx_pci bugbase of oterh dwl-650+ users with lockups and added also my information.

if you have informations how to solve this please tell 

- i followed craigs config guide

- i compiled the acx100_pci module

- i start_net -> it connects OK. i can ping my other

machines for 1000 times without lockup. 

- now that was strange because when i tried to download

software it crashed very soon. 

the normal ping size is 56 bytes. increasing to 640 it still

worked. when i increased to 6400 it locked up imediately

when sending the ping.

so my guess is that the bug is related to the packet size.

maybe we could trigger that by the MTU setting in the start_net

i was testing pre8_43 and pre8_44

hm no, it  was not affected. i can see debug information

when it hangs and i remove the pcmcia card:

```

oops: 0000[#1]

PREEMPT

Modules linked in: acx_pci

CPU: 0

EIP: 0060[<c59bc8a3>} Not tainted VLI

EFLAGS 00010206 (2.6.9)

EIP is at acx_handle_tx_error+0x83/0x1e0 [acx_pci]

eax: ffffffff ebx: c1370000 ecx: c0403f5c edx: c5868000

esi: c59c1f7d edi: c59eab80 ebp: c1370000 esp: c0403f64

ds: 007b es: 007b ss: 0068

Ürpcess wget(pid: 6539, threadinfo c0403000 task= c4a76020)

Stack: 00000006 c1372d3d c1370000 00000008b c59eab80

00000007 c1372d3c c59be855

c1370000 c59eab80 00000010 00000003 0000003 006eaf9c

0000007c 00000004

c58600002 c1370000 c58680000 00000013 c59ea056 c1370000

c4ffa000 c4e17bc0

Call Trace

Stack pointer is garbage, not printing trace

Code 93 dc 00 00 00 66 8b 40 0c 25 ff ff 00 00 01 d0 66 c7

00 04 00 31 c0 8a 47 26 a8 30 75 0a 83 c4 10 5b 5e 5f c3 8d

76 00 8b 47 18 <8b> 50 1c 8b 42 04 89 44 24 02 66 8b 42 08

66 89 44 24 06 6a 00

<0>Kernel panic - not syncing:  Fatal exception in interrupt
```

----------

## kebabkarli

Hi!

// solved

I am using a Netgear WG311v2 which I expected to work following this thread. 

It just seemed to work 'till i got to Step 6a. After typing modprobe acx_pci, modprobe doesn't give any message and there is no new card (wlan0) appearing. 

I'm using Dev-Sources 2.6.10 (Wireless extensions activated) and the acx100 0.2 pre8 plus fixes 45 drivers. I downloaded ACX111 firmware via the given script and saved it to /usr/share/acx. 

When trying to inject the driver into the kernel the script gives me the message 

```
Process successfully completed. Enjoy it!
```

But when going to my kernel sources and doing make menuconfig there is no new device in the menu. 

Do you have any idea what I could do to make it work?

...Don't ask me why, but after completely re-doing it seems to work. The AP can't be found, but that schould be solveable

----------

## jhgz1

really nice howto, i do get to the point where i get the wlan0 interface to show up correctly, but scanning fails with the following error message:

```
wlan0     Interface doesn't support scanning : Resource temporarily unavailable
```

Anybody experienced something likes this yet?

----------

## imesg

 *jhgz1 wrote:*   

> really nice howto, i do get to the point where i get the wlan0 interface to show up correctly, but scanning fails with the following error message:
> 
> ```
> wlan0     Interface doesn't support scanning : Resource temporarily unavailable
> ```
> ...

 

Yes. Try ifconfig wlan0 up. I have to do this to see the access point. Some times I have to reload the acx_pci module.

There is an ebuild now. I can see the access point but I cannot associate with it.

Ciao,

Gene

----------

## dreadhead

Hi!

first of all,thanks for that howto.

I habe a D-Link DWL-G520+ (Texas Instruments ACX111)

Since the driver acx100 is in portage now I installed the driver with emerge acx100. after loading the module acx_pci i am able to configure the device with iwconfig wlan0.

But I have one problem. I'm not able to connect to an access point. I tried it with the following command:

```
iwconfig wlan0 essid MYSSID mode managed channel 8 key s:MYKEY
```

iwconfig shows this:

```
IEEE 802.11b+/g+ ESSID:"MYSSID" Nickname:"acx100 v0.2.0pre8"

Mode:Managed Channel:8 Access Point: 00:00:00:00:00:00

Bit Rate=54Mb/s Tx-Power=15 dBm Sensitivity=1/3

Retry min limit:7 RTS thr:off

Encryption Key:MYKEYINHEX Security mode:open

Power Management:off

Link Quality:0 Signal Level:0 Noise Level:0
```

dhcpcd wlan0 doesn't get an IP.

If I set an IP maually it doesn't woork anyway.

Any Ideas?

thanks!

----------

## lmcogs

Hi all

This seems a pretty old thread.  Is it relevant today or is there a more up to date one?  Also how do you turn SMP off?  I noticed this warning but I don't know how to do it.  Also  I have a pcmcia safecom cardbus card.

My installation, following this thread went as far as the iwconfig wlan0 essid foo line and when I enter my details as far as I know, the system froze.

lmcogs

----------

## dreadhead

Hi!

You should just emerge acx100 and modprobe the module. I don't know exactly how it is called since I use pci. It should be something like acx_pcmcia.

To disable the smp:

```
cd /usr/src/linux

make menuconfig

Processor type and features -->

    [  ]Symmetric multi-processing support
```

If the system still freezes you could try to emerge the ~x86 version of acx100.

I also noticed, that the module doesn't compile with kernelversion 2.6.14.

If everything works you can set all settings in /etc/conf.d/wireless and make a symlink to /etc/init.d/net.lo called /etc/init.d/net.wlan0. Type 

```
rc-update add net.wlan0 default
```

 to start wireless networking at boot time.

Hope this helps!

----------

## dreadhead

I forgot:

When emerging acx100 add "pcmcia" to your use-flags!

----------

## lmcogs

Hi dreadhead and all

I have tried to follow this thread to the letter but can't get the access point up.  I have tried 2.6.14 but couldn't compile or emerge acx100.

Back to 2.6.13 and USE="pcmcia" emerge acx100 and that went ok and loaded the modules but still can't get the access point 

ifconfig wlan0

wlan0     Link encap:Ethernet  HWaddr 00:E0:98:FC:76:09

          UP BROADCAST MULTICAST  MTU:1500  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:1000

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

          Interrupt:5

laptop ~ # iwconfig wlan0

wlan0     IEEE 802.11b+/g+  ESSID:"SWART2-54125"  Nickname:"acx100 v0.2.0pre8"

          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:00:00:00:00:00

          Bit Rate:54 Mb/s   Tx-Power=15 dBm   Sensitivity=1/3

          Retry min limit:7   RTS thr:off

          Encryption key:6162-6364-6566-6700-0000-0000-00   Security mode:open

          Power Management:off

          Link Quality:0  Signal level:0  Noise level:0

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

I tried ifconfig wlan0 up and also dhcpcd wlan0 but didn't help.  

iwlist wlan0 scan

wlan0     Interface doesn't support scanning : Resource temporarily unavailable

I noticed when compiling or emerging acx100 that it was looking for a file called RADIO16, but there are no file by this name.  I fetched the firmware files.  Perhaps it's something to do with the firmware files because as far as I know I followed this how to to the T.  I also tried Craig's howto on another site but that had the same bother with access points using net-start.

Could someone tell me how to clean the system of all old driver including ndiswrapper stuff, perhaps it's this.  I tried to clean as much as possible but maybe some stuff left?  And lastly if I had an ethernet connection up as I had would that affect setting up wlan0?

Help!  but it's nearly time to give up.

lmcogs

----------

## dreadhead

iwconfig tellls me that the driver has loaded successfully.

I noticed that scanning doesn't work before an IP is set to the interface.

Try setting an IP with ifconfig (choose the one it would get from dhcp). After that retry scanning. It should work.

look at the output from dhclient. It tells if the card doesn't find any access points or is just unable to connect.

To remove all ndiswrapper stuff emerge -C ndiswrappper should be enough.

----------

## Seige36

 *jhgz1 wrote:*   

> really nice howto, i do get to the point where i get the wlan0 interface to show up correctly, but scanning fails with the following error message:
> 
> ```
> wlan0     Interface doesn't support scanning : Resource temporarily unavailable
> ```
> ...

 

i have the same issue and ive been workin on it for about a weeknow.. whats the verdict?

how do i solve this issue?!

----------

## dreadhead

 *dreadhead wrote:*   

> I noticed that scanning doesn't work before an IP is set to the interface.
> 
> 

 

So type 

```
ifconfig wlan0 192.168.0.1
```

 or any other IP.

----------

## Seige36

i can scan but i get no results.. im ike 3 feet away from AP

kwifi man says signal strength 100 

speed 1mb/s

accesspoint unknown

it only works if i type EVERYTHING else besides mac adress in

i dont know what my routers mac is so lol i dont put it in but it connects thats good  :Very Happy: 

EDIT:

i got it to work by typing this

dhcpcd wlan0 && iwconfig wlan0 nickname "Jers32" && CONFIG_NET_WIRELESS=y && CONFIG_NET_RADIO=y && ifconfig wlan0 up && iwconfig wlan0 mode Managed ESSID WLAN channel 11 && iwlist wlan0 scan && ifconfig wlan0 192.168.2.1

ONLY WORKS ON MINE WITH KWIFIMANAGER!!! i still cant start via command line.

hope this helps some people!

EDIT:2 

wellit no longer works... due to a failed emerge -e world update it was goin for 16 hours then power went out and now ill have to redo the ENTIRE 317 updates it was at 315 when it went out.. than i rebooted and NO MODULES LOADED then got that.. then mouse and nvidia didnt work JUST fixe that now its stuck at 1mb/s again... so help = good!

----------

## dave_deu

I also have the D-link DWL-G520+. I can get it connected to the internet fine if "emerge acx" I do the following everytime I boot:

```
ifconfig wlan0 up

iwconfig wlan0 essid MYWIRELESSROUTERESSID

dhcpcd wlan0
```

(If you don't know the ESSID of your wireless router, do "ifconfig wlan0 up" then "iwlist wlan0 scan"). There is no encryption.

Now, obviously I want Linux to automatically link me up with my router every time I boot, but I don't want to do it with a script as above. So I did this:

```
ln -s /etc/init.d/net.lo /etc/init.d/net.wlan0

rc-update add net.wlan0 default
```

Then I edited /etc/conf.d/net and added these lines to it:

```
modules=( "iwconfig" )

config_MYWIRELESSROUTERESSID=( "dhcp" )
```

But now on boot it doesn't connect!!! I just get these error messages:

```
Configuring wireless network for wlan0

no access points found

Couldn't find any access points on wlan0

Failed to configure wireless for wlan0
```

Can anyone help me out? What am I doing wrong??! Thanks.

----------

## ewaller

Hello Everybody,

There are two things I found buried deep in the documentation of this driver.

First, the interface must be up to do anything.  For those of us who use DCHP this is not generally the case.

As Dreadhead points out, set an address with ifconfig, or alternatively just specify up.

Secondly, (and the thing that was killing me) is that you must explicitly set the mode to Ad-hoc or Managed. 

Auto will cause the card to do nothing.

Good luck.

----------

## dave_deu

I got mine working on WEP   :Sad:   using a script in local.start that basically does the following:

```
ifconfig wlan0 up

iwconfig wlan0 essid MYESSID

iwconfig wlan0 key MY_WEP_KEY

dhcpcd wlan0
```

No WPA for the time being alas.

----------

## giantoo

Hello.

Does anyone run this card on 2.6.37 kernel?

----------

## gringo

 *Quote:*   

> Does anyone run this card on 2.6.37 kernel?

 

i dont but according to the summary in the git tree the acx-mac80211 should even work with 3.1 kernels and now even with WPA2 support.

Havent tested myself, source is here : http://acx100.git.sourceforge.net/git/gitweb.cgi?p=acx100/acx-mac80211;a=tree

Ebuild for latest "release" from sabayon overlay : http://gpo.zugaina.org/AJAX/Ebuild/2481035/View.

hope this helps, will try to test myself ( on arm though).

cheers

----------

