/mt7601u

MT7601U Driver for Linux kernel 4.19

Primary LanguageC

Forked from https://github.com/kuba-moo/mt7601u Thanks for @kuba-moo ;)

Tested work on my machine :)
OS: Debian 10 Linux version 4.19.0-8-amd64

Building and using

To use this driver you need to upgrade your kernel to at least Linux 3.19. You also have to grab a copy of the firmware from the vendor driver. Download the vendor driver (see section below) and copy file MT7601U.bin to /lib/firmware:

# cd where-you-put-the-vendor-driver
# cp src/mcu/bin/MT7601.bin /lib/firmware/mt7601u.bin

Note that name of the file in /lib/firmware is in lowercase.

After that make sure you have installed all packages required by your distro to build kernel modules (apt-get install linux-headers-$(uname -r) or yum install kernel-devel etc). Build the driver and load it:

$ git clone https://github.com/AlvifSandana/mt7601u.git
$ cd mt7601u
$ sudo make
$ sudo modprobe mac80211
$ sudo insmod ./mt7601u.ko

Now when you connect your device a new network interface should be created. Something like this should appear in your kernel logs:

[ 5515.098424] mt7601u 1-6:1.0: ASIC revision: 76010001  MAC revision: 76010500
[ 5515.100954] mt7601u 1-6:1.0: Firmware Version: 0.1.00 Build: 7640 Build time: 201302052146____
[ 5515.466817] mt7601u 1-6:1.0: Warning: unsupported EEPROM version 0d
[ 5515.466876] mt7601u 1-6:1.0: EEPROM ver:0d fae:00
[ 5515.467561] mt7601u 1-6:1.0: EEPROM country region 01 (channels 1-13)
[ 5515.713155] ieee80211 phy26: Selected rate control algorithm 'minstrel_ht'
[ 5515.718977] usbcore: registered new interface driver mt7601u

The warning about EEPROM version is harmless but keep an eye on the logs and if you spot any errors please report them here.

If you want the driver to load automatically you can do the following:

$ make && sudo make install && depmod

However, please remember that this installs the driver only for your current kernel and you will have to redo this every time your kernel is updated!

*PS
Edit NetworkManager.conf :

$ sudo nano /etc/NetworkManager/NetworkManager.conf

add this at end of line:

[device]
wifi.scan-rand-mac-address=no

Finally, restart NetworkManager service

$ sudo service network-manager restart

Supported hardware

The driver was tested for devices with USB ID of 148f:7601. Specifically I tested it with:

  • TP-LINK TL-WN727N v4;
  • Xiaomi Mini USB;
  • the no-name black&red device from ebay with small detachable antenna.

Also tested with USB ID of 148f:760b wich has MT7601UM chip and works fine with this driver.

But in principle it should work with any device supported by the vendor driver.

Vendor driver

The original vendor driver can be downloaded from MediaTek's website (http://www.mediatek.com/en/downloads1/downloads/mt7601u-usb/). However, version 3.0.0.4 is broken on recent kernels so you may want to grab one of the improved versions which people put up on GH (like this one: https://github.com/porjo/mt7601u).