Tuesday, July 24, 2012

Cisco Linksys AE3000 WiFi USB Dongle and Linux Driver Installation

So, back again with yet another geek niggle! This time its to do with drivers. 

[ Bored of the  crap that i  have written, jump to the bottom directly, to install the driver :). ]

I was wanting to experiment something with setting up a web server and was very excited to get to work right away! There goes, formatted my personal computer, and installed Ubuntu 12.04 Precise Pangolin. I have a 8GB RAM, good enough eh!, won't compromise with the 32 bit edition, so went for the 64 bit edition. Downloaded the live cd, installed, and was all thrilled to my desktop. Of course i installed it using wired ethernet that ran across my house much to the cribbing's from my wife. I installed ubuntu-desktop as well, for some reason known only to me, and unplugged my wired cable, plugged in my shinny new Cisco AE3000 just to find out that neither ndiswrapper nor compiling driver from the chip-set vendor would work. Mere frustration, without Internet. 

Finally decided to dig into the bare metal, and figured a working solution. Why ndiswrapper when you can get it working natively? So ventured into it, and after 30 minutes of trials and errands, got the "Blue LED" blinking!! and thought might as well share it here, so that someone could benefit from it.

First, why it won't work either way.

1. NDISWRAPPER 1.57(the default that ships with Ubuntu 12.04) needs the 64 bit windows driver, and cisco does not ship the driver with the CD that is included with the WiFi dongle or is it available in the CCO website. I tested using the ndiswrapper on a 32bit ubuntu and even then it complained and was not working. So if you use the "x86" driver under the Windows XP folder in the package cd (Don't use Windows Vista or Windows 7 drivers with ndiswrapper, they are not supported for any cards AFAIK) you could get an error saying "64 bit kernel detected by ndiswrapper". So bottom line it won't work.

2. Option 2, rt2800usb the default module for majority of Ralink chipsets, that comes included with the kernel does not support RT3573 (the chipset used in Cisco AE3000) chipsets. Why? rt3573 is a 3x3 chipset, a relatively new one to linux kernel, and development work is on-going.

3. So! why not go to the chipset vendor and ask for the driver? Thank god it is OPENSOURCE !! Problem, compilation works, module gets installed, but the "Blue LED" won't blink !!!  why ! because it still doesn't recognize the usb device as a WiFi dongle. The AE3000 is not part of the usb device table.

So solution!., start coding!

1. Download and extract the source (provided here). Extract it anywhere doesn't matter.

2. Navigate to the source folder.

3. Make sureyou have "g++", "build-essential" and "linux-headers" installed.

[The above steps are pretty basic, so i'm not posting the commands]

4. Navigate to the following folder and open the file below in your favorite editor.

cd <driver-source-folder>
vim common/rtusb_dev_id.c

5. Look for the following lines, and add the line highlighted in bold. 
[Note: the line highlighted in bold, is the only change you need to make. Its vendor id for Cisco AE3000.]

#ifdef RT3573
    {USB_DEVICE(0x148F,0x3573)}, /* Ralink 3573 */
    {USB_DEVICE(0x7392,0x7733)}, /* Edimax */
    {USB_DEVICE(0x0B05,0x17AD)}, /*ASUS */
    {USB_DEVICE(0x13B1,0x003B)}, /* Cisco LinkSys AE3000 */
#endif /* RT3573 */

6. Close the file, and compile and install the driver.

sudo make -j10 <------- "sudo" is needed
sudo make install

sudo depmod -a
sudo modprobe -v rt3573sta

Bingo !! LED will blink and your device is ready to use.

Easy Enough !! Please add a '+1' :p :) !!

47 comments:

  1. Thanks for the post I was able to get it working on backtrack 5r2. I am still working through one issue; the card works fine with wpa using tkip but can not authenticate to wpa2 using aes. Did you experience any similar issues? I am still working on it.

    Thanks Jim

    ReplyDelete
    Replies
    1. sorry for the late reply.. yes i was able to get it working using WPA2 AES. i use wpa_supplicant though.

      vim /etc/wpa_supplicant.conf

      network={
      priority=1
      ssid="HUMAN-NETWORK-5G"
      proto=RSN
      key_mgmt=WPA-PSK
      pairwise=CCMP TKIP
      group=CCMP TKIP
      psk="dingdong"
      }
      network={
      priority=2
      ssid="HUMAN-NETWORK-24G"
      proto=RSN
      key_mgmt=WPA-PSK
      pairwise=CCMP TKIP
      group=CCMP TKIP
      psk="dingdong"
      }


      Then in command line
      wpa_supplicant -B -c/etc/wpa_supplicant.conf -ira0 -Dwext
      ifconfig ra0 up
      dhclient ra0

      Delete
    2. I get prompted to enter password after restart...I type in password and it doesn't connect....I get prompted over and over again. I even tired the above method manually with same result. Any ideas on what is going on?

      Delete
    3. I guess I should clarify that by password I mean the pass-phrase for the network. Everything works just fine to the point of authenticating. I have typed the correct pass-phrase in the config file...even when prompted it still doesn't accept the pass-phrase and prompts me to type it in again.

      Delete
  2. Thank you so much, you just totally saved my ass with this!!!

    I desperately needed to connect and the thing just seemed dead. Phew!!!

    ReplyDelete
  3. i've followed these instructions to the letter, but i'm not having success. not sure if it makes any difference, but i'm trying this method out in VMs (tried Ubuntu 12.04, Backtrack 5, and Mint 13).

    after running the final command, my led does not light up and i do not see the device mentioned under 'ifconfig'. i have shut down windows from accessing the device, and dedicated it to my VirtualBox VM. any suggestions would be welcome

    ReplyDelete
    Replies
    1. could you please tell me what the output of lsusb is ? Is the device identified as a Wifi Dongle or is it plain Linksys.

      I'm not familiar with the architecture of VirtualBox USB. Does it do something like a passthrough?

      Assuming you have windows and Virtualbox, maybe you try installing the windows driver first on the host PC, then start VirtualBox so that VBox could identify the driver on the host and pass it on to the Guest OS. I'm not too familiar with virtual machines maybe i'm just totally blabbering.. Just a thought.

      Delete
  4. So I download the files to my pc, and unzipped everything. Copied it over on a flash drive.

    Went to the file and edited it:
    #endif /* RT35xx */
    #ifdef RT3573
    {USB_DEVICE(0x148F,0x3573)}, /* Ralink 3573 */
    {USB_DEVICE(0x7392,0x7733)}, /* Edimax */
    {USB_DEVICE(0x0B05,0x17AD)}, /*ASUS */
    {USB_DEVICE(0x13B1,0x003B)}, /* Cisco LinkSys AE3000 */
    #endif /* RT3573 */
    { }/* Terminating entry */
    };


    Saved


    Typed cd *the location* (DPO_RT3573_LinuxSTA_V2.5.0.0)

    and followed:



    sudo make -j10 <------- "sudo" is needed
    sudo make install

    sudo depmod -a
    sudo modprobe -v rt3573sta


    This is the info i get on it:

    root@bt:~# lsusb
    Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 006 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
    Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 13b1:003b Linksys
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    I have no blinking light.

    So What did i do wrong and can you upload the finished file and tell me how to install?

    ReplyDelete
  5. What kernel are you using? I'm getting kernel crashes with 3.6-rc6. What about using the 5572 drivers (v2.6)?

    ReplyDelete
    Replies
    1. sorry for late response, i run ubuntu 12.04 and is running 3.2 kernel

      Delete
  6. I got it to work on Backtrack 5r3 but not with backtrack 5r2.
    I rather it work on 5r2 since Ive had alot of issues with 5r3.
    I just want a copy of the finish file.

    ReplyDelete
  7. Ok so I figured out the issue with backtrack 5r2.

    In Wicd Network Manager
    Goto Preferences

    Under wireless interface type:
    ra0
    Then ok.

    Works fine after that besides aircrack is a little ify.

    ReplyDelete
  8. airodupm does not work with this driver, why?

    ReplyDelete
    Replies
    1. honestly no idea., but did you try capturing on the interface ra0?

      Delete
  9. The steps work for me, but every time I reboot, I have to repeat Step 6 in order for Ubuntu to recognize the dongle.

    Is there any way to make the driver permanent, so I don't have to recompile and install it whenever I reboot?

    ReplyDelete
    Replies
    1. No you wouldn't have to repeat entire step 6 every time you reboot.

      Create a WPA supplicant configuration (below) and edit your startup script with


      wpa_supplicant -B -c/etc/wpa_supplicant.conf -ira0 -Dwext
      ifconfig ra0 up
      dhclient ra0



      vim /etc/wpa_supplicant.conf

      network={
      priority=1
      ssid="HUMAN-NETWORK-5G"
      proto=RSN
      key_mgmt=WPA-PSK
      pairwise=CCMP TKIP
      group=CCMP TKIP
      psk="dingdong"
      }
      network={
      priority=2
      ssid="HUMAN-NETWORK-24G"
      proto=RSN
      key_mgmt=WPA-PSK
      pairwise=CCMP TKIP
      group=CCMP TKIP
      psk="dingdong"
      }

      Delete
  10. I have success connecting, but using kernel 3.5.0-17-generic, I get a kernel panic. I've tried using the 2.5 and 2.6 drivers from wikidev, along with the DR_USB hacked driver that you have appended.

    Advice you have would be helpful.

    ReplyDelete
  11. Hi, i'm getting this when trying to install:

    make -C /root/Desktop/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux -f Makefile.6 install
    mkdir: cannot create directory `/etc/Wireless': File exists
    make[1]: Entering directory `/root/Desktop/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux'
    rm -rf /etc/Wireless/RT2870STA
    mkdir /etc/Wireless/RT2870STA
    cp /root/Desktop/DPO_RT3573_LinuxSTA_V2.5.0.0/RT2870STA.dat /etc/Wireless/RT2870STA/.
    install -d /lib/modules/3.2.6/kernel/drivers/net/wireless/
    install -m 644 -c rt3573sta.ko /lib/modules/3.2.6/kernel/drivers/net/wireless/
    install: cannot stat `rt3573sta.ko': No such file or directory
    make[1]: *** [install] Error 1
    make[1]: Leaving directory `/root/Desktop/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux'
    make: *** [install] Error 2

    ReplyDelete
  12. I get a kernel panic when compiled for opensuse. See: https://forums.opensuse.org/english/get-technical-help-here/wireless/478303-linksys-ae3000-causes-kernel-panic.html#post2508829

    uname -r: 3.6.3-1-desktop

    ReplyDelete
  13. all ok until point 6.


    sudo modprobe -v rt3573sta
    FATAL: Module rt3573sta not found.


    What I do wrong?

    ReplyDelete
  14. 999ddd, did you put module to the proper location and create depmod -a ?

    The only problem with the ralink drivers - they do not implement nl80211, so you cant create software ap :(

    ReplyDelete
  15. Question: Will the opensource driver allow the AE3000 to operate in monitor mode? I am a WLAN engineer and looking to make a useful tool for troubleshooting wireless networks.

    ReplyDelete
  16. any chance this can be explained better for a newbie?..i love ubuntu, but im no rocket surgeon. im forced to use win8 without this workaround.

    ReplyDelete
  17. Wow awesome site..thanks you so much for sharing it..i am very impressed by reading this post.. keep it up..

    Useful link- Linksys Technical Support

    ReplyDelete
  18. These instructions worked for me. I'm using Linux Mint 13(maya) 64bit.
    It's so hard to find good wireless adapters for linux. The generic ones usually suck.

    ReplyDelete
  19. When I follow these instructions, I get an error 2 during the make process.

    pi@raspberrypi ~/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031 $ sudo make -j10
    make -C UTIL/ osutil
    make[1]: Entering directory `/home/pi/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031/UTIL'
    make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
    cp -f os/linux/Makefile.6.util /home/pi/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031/UTIL/os/linux/Makefile
    make -C /lib/modules/3.6.11+/build SUBDIRS=/home/pi/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031/UTIL/os/linux modules
    make: Entering an unknown directory
    make: *** /lib/modules/3.6.11+/build: No such file or directory. Stop.
    make: Leaving an unknown directory
    make[1]: *** [osutil] Error 2
    make[1]: Leaving directory `/home/pi/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031/UTIL'
    make: *** [all] Error 2

    I'm trying to install this on a debian install running on my raspberry pi. Could it be because the pi runs an arm processor?

    ReplyDelete
    Replies
    1. Guess so., i think the driver is for x86. I did not check though.,

      Delete
  20. Our team of skilled computer technicians is helping over clients and capable of providing you support just like your own internal help desk

    Linksys Router Setup

    ReplyDelete
  21. HELP!!!!

    root@bt://root/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031# sudo make install
    make -C UTIL/ install
    make[1]: Entering directory `/root/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031/UTIL'
    make -C /root/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031/UTIL/os/linux -f Makefile.6 install
    make[2]: Entering directory `/root/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031/UTIL/os/linux'
    make[2]: Makefile.6: No such file or directory
    make[2]: *** No rule to make target `Makefile.6'. Stop.
    make[2]: Leaving directory `/root/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031/UTIL/os/linux'
    make[1]: *** [install] Error 2
    make[1]: Leaving directory `/root/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031/UTIL'
    make: *** [install] Error 2

    ______________________________________
    AND

    root@bt://root/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031# sudo modprobe -v rt3573sta
    FATAL: Module rt3573sta not found.

    please help i tried every thing.

    ReplyDelete
    Replies
    1. Hi looks like you have not compiled the sources..

      from
      root@bt://root/Linux/DPA_RT3573_LinuxSTA_V2.5.0.0_20111031 directory do

      sudo make -j4

      then do

      sudo make install

      Delete
  22. I have tried these steps with a fresh 13.04 install, and after the installation and following the steps above to get wireless working, Ubuntu freezes at the login screen. I notice that I am able to connect to my wireless network right before everything freezes.

    I also noticed that the blue light on the adapter isn't appearing at all. Maybe 13.04 broke the driver?

    ReplyDelete
  23. I too am getting a kernel panic when following these instructions.

    uname -r
    3.8.8-1-ARCH

    Please help! I'm not sure how to go about fixing this..

    ReplyDelete
    Replies
    1. The kernel panic does not occur with ICMP packets (ping). I can ping machines on my local network all I want, but as soon as I try to access the router admin page or any external web server, I get a kernel panic.

      If you have any ideas, I'd greatly appreciate it!

      Delete
  24. Im using Linux Mint 13 XFCE. Following these Directions I was able to get Wireless working. But after a Reboot I get nothing. I have to give the "sudo modprobe -v rt3573sta" command to get it working. Any suggestions?

    ReplyDelete
    Replies
    1. My problem was solved by adding the Kernel Module to /etc/module. Works like a champ know. Thanks for this How-To.

      Delete
    2. when you say "moved module" what part of it all did you move to that dir?

      Delete
  25. Hi I followed your instructions and got the adapter to work just fine and enjoying the extra gain in speed compared to my older MediaLink adapter. There is only one small issue:
    I use this Ubuntu box as a NAS server. With this new Cisco adapter the videos freeze for a few seconds about once a minute, something that doesn't happen with the old adapter. Is there anything I can tweak to make the connection rock steady?

    Thanks

    ReplyDelete
  26. Hi Balaji

    I have downloaded loaded the source and extracted to my Pi home directory. I'm able to edit the common/rtusb_dev_id.c and add the Cisco AE3000 to the list.

    The question is which location/Directory do I run the commands from?

    2011_0707_RT3573_Linux_STA_v2.5.0.0_ReleaseNote.zip
    DPA_RT3573_LinuxSTA_V2.5.0.0.bz2
    DPA_RT3573_LinuxSTA_V2.5.0.0_20111031
    DPO_RT3573_LinuxSTA_V2.5.0.0
    DPO_RT3573_LinuxSTA_V2.5.0.0.tar.bz2
    Quick Start DPO.txt
    Quick Start.txt
    common/rtusb_dev_id.c

    When I run from here I get this problem! Any help would be appreciated?


    i@raspbmc:~/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0$ ls
    Makefile ate iwpriv_usage.txt sta_ate_iwpriv_usage.txt
    README_STA_usb chips os tools
    RT2870STA.dat common rate_ctrl
    RT2870STACard.dat include sta
    pi@raspbmc:~/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0$ sudo make -j10
    make -C tools
    make[1]: Entering directory `/home/pi/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/tools'
    gcc -g bin2h.c -o bin2h
    cp -f os/linux/Makefile.6 /home/pi/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux/Makefile
    make -C /lib/modules/3.6.11/build SUBDIRS=/home/pi/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux modules
    make[1]: Entering directory `/lib/modules/3.6.11/build'
    make[1]: *** No rule to make target `modules'. Stop.
    make[1]: Leaving directory `/lib/modules/3.6.11/build'
    make: *** [LINUX] Error 2
    make: *** Waiting for unfinished jobs....
    make[1]: Leaving directory `/home/pi/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/tools'
    /home/pi/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/tools/bin2h
    pi@raspbmc:~/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0$

    i@raspbmc:~/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0$ sudo make install
    make -C /home/pi/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux -f Makefile.6 install
    mkdir: cannot create directory `/etc/Wireless': File exists
    make[1]: Entering directory `/home/pi/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux'
    rm -rf /etc/Wireless/RT2870STA
    mkdir /etc/Wireless/RT2870STA
    cp /home/pi/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/RT2870STA.dat /etc/Wireless/RT2870STA/.
    install -d /lib/modules/3.6.11/kernel/drivers/net/wireless/
    install -m 644 -c rt3573sta.ko /lib/modules/3.6.11/kernel/drivers/net/wireless/
    install: cannot stat `rt3573sta.ko': No such file or directory
    make[1]: *** [install] Error 1
    make[1]: Leaving directory `/home/pi/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux'
    make: *** [install] Error 2
    pi@raspbmc:~/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0$

    pi@raspbmc:~/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0$ sudo depmod -a

    pi@raspbmc:~/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0$ sudo modprobe -v rt3573sta
    FATAL: Module rt3573sta not found.
    pi@raspbmc:~/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0$

    Please help a guy out!!

    Thanks

    Matt

    ReplyDelete
  27. This comment has been removed by the author.

    ReplyDelete
  28. Connection is very untable.
    It is disconnected intermedantly, and try to connect again... , disconnected and try connect to again... terrible.

    (Dell, Intel 2nd gen i3, RAM 6GB, Intel video driver)

    ReplyDelete
  29. A new version of this driver has been released on github: https://github.com/ashaffer/rt3573sta

    It fixes the kernel panic issue on 64 bit systems.

    ReplyDelete
    Replies
    1. Forgot to say; you must remove the previous driver before installing this one.

      Delete
  30. And what is the procedure for removing ?


    Thanks

    ReplyDelete
    Replies
    1. am looking for to testing the new build for a stable link on xbmcbuntu

      From the readmesta file

      7> unload driver
      $/sbin/ifconfig ra0 down
      $/sbin/rmmod rt3573sta

      Delete