2

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?

1 Answers1

1

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);
       mt7601u_rxdc_cal(dev); 
    }

Hope it helps...