The thing is, I really don't know what to do. I just installed Ubuntu. I have no internet connection now. I have a Ralink MT7601U Wireless Adapter. But it's not working.

lsusb detects it (I guess):

Bus 001 Device 060: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter

But nothing in that wifi icon. And also 'sudo lshw -C network' only shows Ethernet. Also in one of the post, I've read that Ubuntu 17.04 (which I have) contains it by default. If so why is it not working? Should I do something? By the way, the device was not plugged when installing Ubuntu. Is there a installing-driver-from-ubuntu-cd sort of thing??

Please help. I'm new to Ubuntu.

rfkill list all and sudo modprobe mt7601u returns nothing. The second one asked for password, though.

EDIT: So, I've managed to install driver from a source. Nowdmesg | grep mt76 gives 3 more lines at the beginning:

usbcore: registered new interface driver mt7601u
mt7601Usta: loading out-of-tree module taints kernel.
mt7601Usta: module verification failed: signature and/or required key missing - tainting kernel

Also iwconfig outputs:

ra0             Ralink STA

What should I do?

  • Please edit your question to add the result of the terminal commands: rfkill list all and also: sudo modprobe mt7601u Welcome to Ask Ubuntu. – chili555 Sep 30 '17 at 16:07
  • @chili555 Updated. – Mohamed Safeuq J Sep 30 '17 at 16:11
  • Now, let's take a look at the log: dmesg | grep mt76 As the output might be lengthy, paste the result here and give us the link: paste.ubuntu.com – chili555 Sep 30 '17 at 16:20
  • @chili555 Here it is: paste.ubuntu.com/25647080 – Mohamed Safeuq J Sep 30 '17 at 16:32
  • 1
    No, it certainly won't. – user692175 Sep 30 '17 at 18:19

I've finally found a working solution for this problem. The answer is from GitHub

  • Download corresponding kernel source from kernel.org. For example: if you have 4.4.0-104-generic download version 4.4. You can check the current kernel version by running uname --kernel-release

  • From archive unpack just folder drivers/net/wireless/mediatek/mt7601u

  • Edit phy.c. Find function mt7601u_init_cal and comment out call mt7601u_mcu_calibrate(dev, MCU_CAL_RXIQ, 0); like in code 1 below

  • Find function mt7601u_phy_recalibrate_after_assoc and comment out call mt7601u_mcu_calibrate(dev, MCU_CAL_DPD, dev->curr_temp); like in code 2 below

  • Build module:

    make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

  • Remove device

    sudo rmmod mt7601u sudo insmod ./mt7601u.ko

  • Insert device

  • Check there are no errors in dmesg and interface appeared in ip link, check connection stability.

  • To make change persistent till next kernel upgrade: backup original module and replace with compiled. To find out where is original module run modinfo mt7601u (view string filename: /lib/modules/_KERNEL_VERSION_/kernel/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko).

I've tried this method on Ubuntu 16.04 with kernel 4.10. Working flawlessly...

Code 1:

// ret = mt7601u_mcu_calibrate(dev, MCU_CAL_RXIQ, 0); 
// if (ret) 
// return ret;
// ret = mt7601u_mcu_calibrate(dev, MCU_CAL_DPD, dev->dpd_temp); 
// if (ret) 
// return ret;

Code 2:

void mt7601u_phy_recalibrate_after_assoc(struct mt7601u_dev *dev)
    // mt7601u_mcu_calibrate(dev, MCU_CAL_DPD, dev->curr_temp);

Hope it helps...

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.