Saturday, September 15, 2012

D-Link DWA-525 A2 on Ubuntu 12.04

Trying to make a newly bought D-Link Wireless N 150 PCI Desktop Adapter DWA-525 A2 work under Ubuntu 12.04 (precise). References like this blog post that refer to drivers from the Ralinktech website do not work for the A2 version of the device. You can find out, what version you have through

lspci |grep -i ralink

which for the A2 should give:

05:03.0 Network controller: Ralink corp. Device 5360 

Wikidevi references a patch to the rt2800pci module (part of the rt2x00 driver) but I found no explanation on how to apply this to a Ubuntu 12.04, and it took some time to find out. The patch seems to apply to Kernel 3.4, but Precise uses 3.2. Ubuntuforums has a thread on the topic and one posting explains how to patch a download of compat-wireless for kernel 2.6 manually.

Instead of going that route, I wanted to give the patch for the 3.4. version a try, and on the way document a solution that would be easier to reproduce. The compat-wireless releases can be found at http://wireless.kernel.org/en/users/Download/stable/ , the patch is linked from http://rt2x00.serialmonkey.com/pipermail/users_rt2x00.serialmonkey.com/2012-May/004942.html . Putting that together:

wget http://rt2x00.serialmonkey.com/pipermail/users_rt2x00.serialmonkey.com/attachments/20120507/e2072201/attachment.bin
wget http://www.orbit-lab.org/kernel/compat-wireless-3-stable/v3.4/compat-wireless-3.4-rc3-1.tar.bz2
tar -xjf compat-wireless-3.4-rc3-1.tar.bz2
cd  compat-wireless-3.4-rc3-1
patch -p1 <../attachment.bin
./scripts/driver-select rt2x00
make
sudo make install
sudo make unload
sudo modprobe rt2800pci

With this, the card should be recognized and start to work. I suspect that the compilation of the module has to be redone each time, the kernel is upgraded.

9 comments:

  1. Thanks so much for this! I just bought this card yesterday and have been trying to get it to work for the last two hours, and this is the only thing that has worked! Thanks again for your help!

    ReplyDelete
  2. Thx for the help,
    D-Link DWA-525 A2 on Ubuntu 12.04
    is working.

    I didnt tried if WPA2 method is supported,
    i let you known soon...

    ReplyDelete
  3. Many thanks for your help! Good job!

    ReplyDelete
  4. Big thanks for the help, now my wireless access on ubuntu 12.04 is working, Thanks Michael

    ReplyDelete
  5. Hello,

    I am on ubuntu server 12.04 and I have an error when I do make.

    make -C /lib/modules/3.5.0-23-generic/build M=/home/laprise/DRIVER2/compat-wireless-3.4-rc3-1 modules
    make[1]: Entering directory `/usr/src/linux-headers-3.5.0-23-generic'
    CC [M] /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.o
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c: In function ânl80211_msg_put_channelâ:
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:359:2: error: implicit declaration of function âNLA_PUT_U32â [-Werror=implicit-function-declaration]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:363:3: error: implicit declaration of function âNLA_PUT_FLAGâ [-Werror=implicit-function-declaration]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:376:2: warning: label ânla_put_failureâ defined but not used [-Wunused-label]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c: In function ânl80211_send_wiphyâ:
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:716:2: error: implicit declaration of function âNLA_PUT_STRINGâ [-Werror=implicit-function-declaration]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:721:2: error: implicit declaration of function âNLA_PUT_U8â [-Werror=implicit-function-declaration]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:735:2: error: implicit declaration of function âNLA_PUT_U16â [-Werror=implicit-function-declaration]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:755:2: error: implicit declaration of function âNLA_PUTâ [-Werror=implicit-function-declaration]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c: In function ânl80211_send_ifaceâ:
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:1503:2: warning: label ânla_put_failureâ defined but not used [-Wunused-label]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c: In function ânl80211_send_bssâ:
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:4170:3: error: implicit declaration of function âNLA_PUT_U64â [-Werror=implicit-function-declaration]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c: In function â__cfg80211_testmode_alloc_skbâ:
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:5038:2: warning: label ânla_put_failureâ defined but not used [-Wunused-label]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c: In function ânl80211_remain_on_channelâ:
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:5416:2: warning: label ânla_put_failureâ defined but not used [-Wunused-label]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c: In function ânl80211_tx_mgmtâ:
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:5705:2: warning: label ânla_put_failureâ defined but not used [-Wunused-label]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c: In function ânl80211_get_power_saveâ:
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:5807:2: warning: label ânla_put_failureâ defined but not used [-Wunused-label]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c: In function ânl80211_probe_clientâ:
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless/nl80211.c:6261:2: warning: label ânla_put_failureâ defined but not used [-Wunused-label]
    /home/laprise/DRIVER2/compat-wireless-3.4-rc3-


    ...............

    1/net/wireless/nl80211.o] Error 1
    make[2]: *** [/home/laprise/DRIVER2/compat-wireless-3.4-rc3-1/net/wireless] Error 2
    make[1]: *** [_module_/home/laprise/DRIVER2/compat-wireless-3.4-rc3-1] Error 2
    make[1]: Leaving directory `/usr/src/linux-headers-3.5.0-23-generic'
    make: *** [modules] Error 2


    I don't know if you would have an idea ?

    Thank you !

    ReplyDelete
  6. Hello, the solution I have documented applies to a 3.2 kernel. Your kernel seems to be 3.5. You could try to use a release of compat-wireless for 3.5,
    but I am not sure if the patch is needed there, or can be applied.

    ReplyDelete
  7. Thankyou very much for this - it worked

    ReplyDelete