Skip to main content

Installing EDUP EP-AC1605 on Ubuntu Linux (14.04 LTS)

I recently bought a few EDUP EP-AC1605 USB 3.0 AC1200M Dual Band WiFi Adapters for a project and then had a few problems getting them installed on Linux.



I got them from AliExpress.com here:

https://www.aliexpress.com/item/EDUP-USB-3-0-Wireless-Wifi-Adapter-Dual-Band-2-4GHz-5GHz-1200Mbps-802-11AC-IEEE/32655418931.html?spm=2114.01010208.8.3.pkUTZH

The CD that came with them was pretty much useless for recent Linux distros.

The readme says:
Supporting Kernel:
===================
linux kernel 2.4 and 2.6 series.
Tested in Redhat 7.3 or later.

It turns out that the MediaTek chipset they use MT7612U <- the U=USB
has downloadable Linux driver src but it is the same as the CD version useless for anything with a more recent kernel than 2.6.

After a lot of searching I found a lot of people who gave up and returned the device.

After realising that Netgear used the same chipset in their A6210 I did some more searching and
I eventually found a solution here:  https://www.reddit.com/r/linux/comments/3wtawx/netgear_ac1200_a6210_support_drivers/

# git clone https://github.com/jurobystricky/Netgear-A6210
# cd Netgear-A6210


Or from a browser use this online tool here:
http://kinolien.github.io/gitzip/
To get the GIT files from
https://github.com/jurobystricky/Netgear-A6210

Then expand the ZIP into your home folder on Linux.

Before you can compile and install you must first edit and add the EDUP product USB vendor/ID codes to a file called: ~/Netgear-A6210/common/rtusb_dev_id.c

sudo gedit ~/Netgear-A6210/common/rtusb_dev_id.c

The codes can be checked with the USB device connected using:
lsusb

Look for MediaTek or whatever mine was 
Bus 006 Device 003: ID 0e8d:7612 MediaTek Inc. 

So I added:

{USB_DEVICE(0x0e8d, 0x7612), .driver_info = RLT_MAC_BASE}, /* MT7612U, EDUP EP-AC1605 from Aliexpress.com*/


as shown below

/****************************************************************************

 * Ralink Tech Inc.

 * 4F, No. 2 Technology 5th Rd.

 * Science-based Industrial Park

 * Hsin-chu, Taiwan, R.O.C.

 * (c) Copyright 2002, Ralink Technology, Inc.

 *

 * All rights reserved. Ralink's source code is an unpublished work and the

 * use of a copyright notice does not imply otherwise. This source code

 * contains confidential trade secret material of Ralink Tech. Any attemp

 * or participation in deciphering, decoding, reverse engineering or in any

 * way altering the source code is stricitly prohibited, unless the prior

 * written consent of Ralink Technology, Inc. is obtained.

 ****************************************************************************


    Module Name:

    rtusb_dev_id.c


 */


#define RTMP_MODULE_OS


#include "rtmp_comm.h"

#include "rt_os_util.h"

#include "rt_os_net.h"


/* module table */

USB_DEVICE_ID rtusb_dev_id[] = {

#ifdef MT76x2

{USB_DEVICE(0x0846, 0x9014), .driver_info = RLT_MAC_BASE}, /* Netgear WNDA3100v3 */

{USB_DEVICE(0x0B05, 0x180B), .driver_info = RLT_MAC_BASE}, /* ASUS USB-N53 */

{USB_DEVICE(0x0846, 0x9053), .driver_info = RLT_MAC_BASE}, /* MT7612U, Netgear A6210 */

{USB_DEVICE(0x0B05, 0x17EB), .driver_info = RLT_MAC_BASE}, /* 

ASUS USB-AC55 */

{USB_DEVICE(0x0e8d, 0x7612), .driver_info = RLT_MAC_BASE}, /* MT7612U, EDUP EP-AC1605 from Aliexpress.com*/

{USB_DEVICE(0x045e, 0x02e6), .driver_info = RLT_MAC_BASE}, /* Microsoft XBox One Wireless Adapter */

{USB_DEVICE(0x0E8D, 0x7612), .driver_info = RLT_MAC_BASE},

{USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7632, 0xff, 0xff, 0xff), .driver_info = RLT_MAC_BASE},

{USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7662, 0xff, 0xff, 0xff), .driver_info = RLT_MAC_BASE},

#endif

{ }/* Terminating entry */

};


MODULE_DEVICE_TABLE(usb, rtusb_dev_id);

Now you can compile and install.
NOTE: # sudo make (defaults to leaves debug code in driver)

# sudo make release
# sudo make install

I then did a reboot to get the drivers loaded.

PROBLEM SOLVED!

However when kernel updates are applied then the kernel drivers need to be recompiled or they stop working, you can repeat above manually or...

This is where DKMS is used to do this automatically
Refer to https://help.ubuntu.com/community/DKMS

Install DKMS

# sudo apt-get install dkms

Configure DKMS for the adapter

# cd ~/Netgear-A6210
~/Netgear-A6210# touch dkms.conf #create dkms.conf file
~/Netgear-A6210# gedit dkms.conf


~/Netgear-A6210# find /lib/modules/$(uname -r)/kernel/drivers/ | grep mt7662
/lib/modules/4.4.0-47-generic/kernel/drivers/net/wireless/mt7662u_sta.ko



Inside dkms.conf add the lines: 

MAKE[0]="make release"
CLEAN="make clean"
BUILT_MODULE_NAME[0]=mt7662u_sta
BUILT_MODULE_LOCATION[0]=/os/linux/
DEST_MODULE_LOCATION[0]=/kernel/drivers/net/wireless/
PACKAGE_NAME=Netgear-A6210
PACKAGE_VERSION=1.1
REMAKE_INITRD=no
AUTOINSTALL="yes"

# cd ~/Netgear-A6210
~/Netgear-A6210 # ls

ate         eeprom            mgmt              RT2870AP.dat
chips       History.txt       os                RT2870STACard.dat
common      include           phy               RT2870STA.dat
conf        iwpriv_usage.txt  rate_ctrl         sta
dkms.conf   mac               README.md         sta_ate_iwpriv_usage.txt
dkms.conf~  Makefile          README_STA_usb    tx_rx
doc         mcu               RT2870APCard.dat

~/Netgear-A6210# gedit Makefile

search for $(shell uname -r) and replace with ${kernelver} instead
....
MAKE = make

#LINUX_SRC = /lib/modules/$(shell uname -r)/build #USE FOLLOWING FOR DKMS

LINUX_SRC = /lib/modules/${kernelver}/build
....

explained here: http://stackoverflow.com/questions/8925062/problems-adding-dkms-support-to-kernel-module


~/Netgear-A6210# sudo cp -R . /usr/src/Netgear-A6210-1.1
~/Netgear-A6210# sudo dkms add -m Netgear-A6210 -v 1.1

Creating symlink /var/lib/dkms/Netgear-A6210/1.1/source ->
                 /usr/src/Netgear-A6210-1.1

DKMS: add completed.

TO FORCE A DKMS BUILD DO THIS:

~/Netgear-A6210# sudo dkms build -m Netgear-A6210 -v 1.1
Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
make KERNELRELEASE=4.4.0-47-generic.......................

If you get an error look in make.log
# sudo gedit /var/lib/dkms/Netgear-A6210/1.1/build/make.log


UPDATE: 10 DEC 2016
=================
Performance seems to be flakey especialy on 2.4 GHz band.

I think I will try this WiFi card instead....



Comments

davi.diniz said…
Thanks a lot!
network-manager crashed on boot.
sudo service network-manager restart was necessary.
dual-band is ok!
Rod Dines said…
People might want to also try these drivers from chipset manufacturer at this page:
https://www.mediatek.com/products/broadbandWifi/mt7612u
Which were not available when I initially wrote this blog post.
Rod Dines said…
Please also note that the Linux and Mac drivers are linked under transposed icons on that page
galinesaah said…
Caesars Casino & Hotel - Mapyro
Find 청주 출장샵 your way around the casino, find the perfect spot for you and start playing for real money! You're always going 춘천 출장마사지 to find the best 파주 출장마사지 slots 나주 출장샵 and 군산 출장마사지 table

Popular posts from this blog

Thin Mini-ITX Motherboard Overview [Updated APR 2022]

THIN MINI-ITX Primarily the Thin Mini-ITX form-factor and its motherboards are targeted at the business-oriented All-in-One (AIO) market but are also used in embedded systems, digital signage and the like.  They typically have LVD/eDP/LCD panel drivers built-in also and have slightly higher pricing because of this and other embedded features such as a single DC power supply input (which facilitates a smaller case). BACKGROUND The Intel Q series motherboard chipsets support the Intel vPro/AMT remote management with KVM over IP (or iKVM) functionality built into the CPU/chipset combination.  This is very convenient for administrators.  For example, with the correct configuration, you can watch a full reboot and manage the BIOS, install a new OS all remotely. http://www.wikiwand.com/en/Intel_Active_Management_Technology CASE Typically Thin Mini-ITX cases are smaller based on the thinness of the motherboard, its low profile components and the requirement to use an external power supp

Removing the WLAN / WiFi pcie card whitelist on Lenovo IdeaPad u410 Touch with BIOS update

WARNING! PLEASE READ THE ENTIRE POST BEFORE USING / DOING ANYTHING! BACKGROUND I recently (early 2016) acquired a 2013 Lenovo IdeaPad u410 Touch. It was not my first choice but still useful but I wanted to upgrade it to more recent tech and make it more usable as it is not the fastest CPU around, i.e. an i5-3337U dual core (quad thread) at 1.8GHz. http://ark.intel.com/products/72055/Intel-Core-i5-3337U-Processor-3M-Cache-up-to-2_70-GHz First thing I did was upgrade the BIOS to latest (as anyone would/should do really) version 65CN99WW (8/28/2014) available here: http://support.lenovo.com/au/en/products/laptops-and-netbooks/ideapad-u-series-laptops/ideapad-u410?beta=false I then added 2 x Kingston SO-DIMM KVR16LS11/8 1.35V (Low Voltage) 8G DDR3 1600 Notebook Ram SODIMM's despite the specs I could find all saying it would only take 8GB and it works fine with the 16GB as the Intel i5-3337U CPU (says 32GB) & Mobile Intel HM77 Express Chipset specifications suggest. 

Setting up the HOOK mechanism in libvirt for KVM/QEMU to manage customized networking requirements

This post is a belated follow-up to a post I did 3 years ago about configuring Linux KVM networking to use IP forwarding when IP spoofing is disallowed by your dedicated Linux server provider.  Such as 1and1 in my case. For further context and reference please refer to the original post here: http://roddines.blogspot.com/2014/09/how-to-configure-dedicated-server.html Refer to: https://www.libvirt.org/hooks.html A small bash script file that can be used to test the more complex hook script below #!/bin/bash # Location/File: ~/fixnet #Quick Fix IP Tables echo 'default' is usually 'virbr0' and this is assumed! sudo /etc/libvirt/hooks/network default started end Content of the bash script file located at /etc/ libvirt /hooks/network #!/bin/bash # Location/File: /etc/libvirt/hooks/network # Sep2014 Created by Rod Dines rod<at>roddines.com # Feb2016 edited by Rod Dines to refine scripting # July2017 edited by Rod Dines to setup for new server IPs