So I bought this device (DWA171 revC) but the manuf. seems to have been too smart and inserted a memory stick controller in the device to store the windows drivers.

I have compiled and modprobe'd the drivers from here https://github.com/diederikdehaas/rtl8812AU and all seems well, but I still only get the memory stick showing up in dmesg

The vendor and product id's seem to be the wifi module, but it is written "Product: DISK".

Edit1 - Additional info

<username>@<username>-MS-7A70:~$ sudo dpkg -s usb-modeswitch
[sudo] password for <username>:
Package: usb-modeswitch
Status: install ok installed
Priority: optional
Section: comm
Installed-Size: 158
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Version: 2.5.2+repack0-2ubuntu1
Depends: libc6 (>= 2.27), libpipeline1 (>= 1.0.0), libusb-1.0-0 (>= 2:1.0.9), usb-modeswitch-data (>= 20140529)
Suggests: comgt, wvdial
Breaks: usb-modeswitch-data (<< 20100127)
 /etc/usb_modeswitch.conf b7f857804762b4a81a71c93a2fe1207f
Description: mode switching tool for controlling "flip flop" USB devices
 Several new USB devices have their proprietary Windows drivers onboard,
 especially WAN dongles. When plugged in for the first time, they act
 like a flash storage and start installing the driver from there. If
 the driver is already installed, the storage device vanishes and
 a new device, such as an USB modem, shows up. This is called the
 "ZeroCD" feature.
 On Debian, this is not needed, since the driver is included as a
 Linux kernel module, such as "usbserial". However, the device still
 shows up as "usb-storage" by default. usb-modeswitch solves that
 issue by sending the command which actually performs the switching
 of the device from "usb-storage" to "usbserial".
 This package contains the binaries and the brother scripts.
Original-Maintainer: Didier Raboud <odyx@debian.org>
Homepage: http://www.draisberghof.de/usb_modeswitch/
<username>@<username>-MS-7A70:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0bda:1a2b Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

after manually running the usb_modeswitch I now have this in dmesg:-

[133898.810951] usb 1-2: USB disconnect, device number 2
[133899.193566] usb 1-2: new high-speed USB device number 5 using xhci_hcd
[133899.341961] usb 1-2: New USB device found, idVendor=2001, idProduct=331d
[133899.341967] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[133899.341971] usb 1-2: Product: DWA-171
[133899.341975] usb 1-2: Manufacturer: D-Link Corporation
[133899.341978] usb 1-2: SerialNumber: 123456

The product ID seems to not be true and the serial number looks sketchy as anything.

ip link show only shows my ethernet and the loopback device

Thanks, Sahil

  • 1
    Is usb-modeswitch installed? Check: sudo dpkg -s usb-modeswitch May we see the exact details? lsusb Please edit your question to show the result of these terminal commands. – chili555 Aug 8 at 15:52
  • @chili555 thanks for the help. the mode is switched but the dmesg looks strange (inserted into question). any ideas what i should look into next? – sahilp Aug 11 at 7:54
  • I have also tried this driver in case it is "CU" instead of "AU" [github.com/whitebatman2/rtl8821CU] – sahilp Aug 11 at 8:40
  • The usb.id of 2001:331d is quite correct. – chili555 Aug 11 at 13:41
  • Sorry. When I said it is not true I should have said that I couldn't find 331d as a product ID online. – sahilp Aug 12 at 14:07

The whitebatman2 version of the correct driver 8821cu, doesn't explicitly cover your 2001:331d device. However, there is a method to install the driver. From the terminal:

sudo apt update
sudo apt install build-essential git dkms
git clone https://github.com/brektrou/rtl8821CU.git
cd rtl8821CU
chmod +x dkms-install.sh
sudo ./dkms-install.sh

It builds successfully, albeit with a few possibly harmless warnings, on my 5.0.0-23 system

Next, do:

sudo modprobe 8821cu

Your wireless should now be working.

  • wireless is now working... – sahilp Aug 12 at 18:09


Problem of not being able to use D-Link AC600 (DWA 171 Revision C) as WiFi USB as it is recognised as USB Flush Memory (storing Windows driver files). Note that this is NOT about DWA 171 revision A.


As per Problem with Wi-Fi USB Adapter D-Link DWA-171:

A DWA-171 Revision C became available in 2018, and is marked as such on the dongle label. The revA is a straightforward wifi dongle -- with the correct Linux driver installed, plug in the dongle and you're off to the races. But the revC first enumerates as USB Storage, and as such contains a Setup.exe to install Windows drivers.

lsusb shows the DWA 171 Revision C as Realtek flash drive.

Bus 003 Device 005: ID 0bda:1a2b Realtek Semiconductor Corp.    <----- USB Flash memory mode of DWA 171


As per Automatically use usb_modeswitch for Wifi USB, run usb_modeswitch as below (after , and confirm with lsusb and ip commands.

$ lsusb
Bus 003 Device 005: ID 0bda:1a2b Realtek Semiconductor Corp.

$ /usr/sbin/usb_modeswitch -K -v 0bda -p 1a2b
$ lsusb
Bus 003 Device 006: ID 2001:331d D-Link Corp.  <--- Changed from Realtek

$ ip link show
3: wlx58d56e015102: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 58:d5:6e:01:51:02 brd ff:ff:ff:ff:ff:ff


The REFERENCE document included in the usb-modeswitch-data package says -K means ejecting the device.

  • StandardEject <0/1> -K

Sends a specific bulk message sequence representing the SCSI commands "ALLOW MEDIUM REMOVAL" and "START STOP UNIT", basically an eject action. Many modems are using this for mode switching. Can be combined with one additional 'MessageContent'


To use the D-Link AC 600 (DWA 171 Revision C) as USB WiFi.

  1. Compile, install, and load the 8821cu module (NOT 8821au).
  2. Verify the module is loaded with lsmod.
  3. Eject the USB flash drive with usb_modeswitch -K.
  4. Verify the USB WiFi D-Link is displayed with lsusb.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.