D-Link DWA-127

Specification
typeD-Link DWA-127
manufacturerRalink
modelDWA-127 A1
chipsetRalink RT3070
ID2001:3c1b

kernel driver module: rt2800usb

All the information specified above is confirmed. The model is engraved into the card. The chipset can be found in the dmesg log when the rt2800usb module is loaded into the 3.2.0 kernel which was built with the CONFIG_RT2X00_DEBUG option. The relevant line looked as follows in my case:

  • 15.912547] phy1 -> rt2x00_set_chip: Info - Chipset detected - rt: 3070, rf: 0005, rev: 0201.

The id is printed by lsusb and it is part of the rt2800usb.c kernel source code file. And finally the rt2800usb kernel module is automatically detected and loaded by squeeze with the 3.2.0 Debian kernel when the card is inserted into some USB port. Most importantly, it works fine with this kernel.

Installation into Debian squeeze

The D-Link DWA-127 network card works fine with Debian, but not with the stock 2.6.32 kernel included in squeeze which doesn't contain the driver yet. Fortunately, newer kernels contain the correct driver, it's sufficient to install the stock 3.2.0 kernel included in Debian wheezy, i.e. in the testing distribution at the time of this writing. You can do so by editing /etc/apt/sources.list so that wheezy is temporarily used instead of squeeze:

  • deb http://ftp.cz.debian.org/debian/ wheezy main contrib non-free
  • deb-src http://ftp.cz.debian.org/debian/ wheezy main contrib non-free

And by invoking the following sequence of commands:

  • apt-get update
  • apt-get install linux-image-3.2.0-2-amd64
  • apt-get install firmware-ralink

Note that the firmware-ralink package is not part of Debian and is included in the non-free section of the Debian archive. You must therefore specify the non-free section in the file /etc/apt/sources.list. Also note that the major version of the new kernel changed from 2 to 3. Luckily, this change doesn't indicate extensive changes in the kernel as it was in the past when the kernel version changed. In fact, the version 2.6.40 was only renamed to 3.0.0 and 3.2.0 is therefore compatible with squeeze which originally uses 2.6.32.

After the new kernel is installed, /etc/apt/sources.list might be edited into its original state and the apt index files should be resynchronized again by invoking:

  • apt-get update

The system should be rebooted so that the new kernel is loaded. The wireless card should be automatically detected, the rt2800usb kernel module should be loaded and new wlan interface should appear in the ifconfig output.

I noticed that the new kernel prints and logs an error that the radeon video adapter cannot load its firmware which is contained in the firmware-linux-non-free non-free package of Debian squeeze and I therefore temporarily added the non-free section to /etc/apt/sources.list:

  • deb http://ftp.cz.debian.org/debian/ squeeze main contrib non-free
  • deb-src http://ftp.cz.debian.org/debian/ squeeze main contrib non-free

And installed the missing package.

  • apt-get update
  • apt-get install firmware-linux-non-free

I finally removed the contrib and non-free sections from /etc/apt/sources.list, ran apt-get update once again and rebooted too so that the new firmware could have been loaded by the kernel.

 

Inserted: 2016-09-29 21:58:03
Last updated: 2016-09-29 21:58:03