问题是,我真的不知道该怎么办。我刚刚安装了 Ubuntu。我现在没有互联网连接。我有一个 Ralink MT7601U 无线适配器。但它不起作用。
lsusb 检测到它(我猜):
Bus 001 Device 060: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
但是那个 wifi 图标上什么都没有。而且“sudo lshw -C network”只显示以太网。另外在其中一篇文章中,我读到 Ubuntu 17.04(我有)默认包含它。如果是这样,为什么它不起作用?我应该做些什么吗?顺便说一句,安装 Ubuntu 时没有插入设备。有没有从 ubuntu-cd 安装驱动程序之类的东西??
请帮忙。我是 Ubuntu 新手。
rfkill list all
并且sudo modprobe mt7601u
什么也没有返回。但是第二个却要求输入密码。
编辑:因此,我已成功从源代码安装了驱动程序。现在dmesg | grep mt76
开头又多了 3 行:
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
还iwconfig
输出:
ra0 Ralink STA
我应该怎么办?
答案1
我终于找到了解决这个问题的办法。答案来自GitHub
从 kernel.org 下载相应的内核源。例如:如果你
4.4.0-104-generic
下载的是 4.4 版本。你可以运行以下命令检查当前内核版本uname --kernel-release
从存档中解压仅文件夹
drivers/net/wireless/mediatek/mt7601u
编辑 phy.c。找到函数
mt7601u_init_cal
并注释掉调用,mt7601u_mcu_calibrate(dev, MCU_CAL_RXIQ, 0);
如下所示下面的代号 1查找函数
mt7601u_phy_recalibrate_after_assoc
并注释掉调用,mt7601u_mcu_calibrate(dev, MCU_CAL_DPD, dev->curr_temp);
如下所示下面的代号 2构建模块:
制作-C / lib / modules / $(uname -r)/ build M = $(pwd)模块
删除设备
sudo rmmod mt7601u sudo insmod ./mt7601u.ko
插入设备
dmesg
检查ip link中和接口没有出现错误,检查连接稳定性。使变革持久直到下一次内核升级:备份原始模块并用编译的模块替换。要找出原始模块的位置,请运行
modinfo mt7601u
(查看字符串文件名:/lib/模块/_KERNEL_VERSION_/内核/驱动程序/net/wireless/mediatek/mt7601u/mt7601u.ko)。
我已经在内核为 4.10 的 Ubuntu 16.04 上尝试过此方法。运行正常...
代码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;
代码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);
}
希望能帮助到你...