Mediatek MT7630e 无法在 Linux 5.0.2 和 4.20 上运行

Mediatek MT7630e 无法在 Linux 5.0.2 和 4.20 上运行

在 Elementary OS Juno 下,我尝试使用 Mediatek M7630e WiFi,但不起作用。我知道在具有官方支持的 Linux 4.20 的 Fedora 29 中,它确实如此,即使不是完美 - 我之前尝试过。的输出lshw -C network是:

*-network                 
       description: Ethernet interface
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: enp2s0
       version: 10
       serial: 14:dd:a9:05:d1:dc
       size: 100Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 duplex=full firmware=rtl8168g-3_0.0.1 04/23/13 ip=192.168.1.132 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
       resources: irq:18 ioport:e000(size=256) memory:f7204000-f7204fff memory:f7200000-f7203fff
  *-network UNCLAIMED
       description: Network controller
       product: MT7630e 802.11bgn Wireless Network Adapter
       vendor: MEDIATEK Corp.
       physical id: 0
       bus info: pci@0000:03:00.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: cap_list
       configuration: latency=0
       resources: memory:f7100000-f71fffff

其中之一lspci是:

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
03:00.0 Network controller: MEDIATEK Corp. MT7630e 802.11bgn Wireless Network Adapter

我之前使用标准 Linux 内核 4.15.0.*-generic,Mediatek M7630e WiFi 无法工作。所以我使用了这个驱动程序https://github.com/neurobin/MT7630E

然而,由于某个版本的Linux是通过安装的apt-get upgrade,该驱动程序只会损坏内核,因此我停止使用它。

在驱动程序问题页面上https://github.com/neurobin/MT7630E/issues/90,我知道该驱动程序将正式发布用于 Linux 4.20。因此我下载了它 - 甚至是我现在正在使用的 Linux 5.0.2。我用以下命令编译了 Linux 5.0.2:

cd ~/linux-5.0.2
cp config-4.15.0-46-generic .config # doesn't support MT7630e; the rest works fine, even Ethernet does
make menuconfig # and mark Network device support -> Wireless LAN -> Mediatek MT76x0E (PCIe) support as module (the tool suggested so)

make
sudo make modules_install
sudo make install

我重新启动了机器并给出了lsmod | grep mt.输出是:

mt76x0e                20480  0
mt76x0_common          45056  1 mt76x0e
mt76x02_lib            61440  2 mt76x0e,mt76x0_common
mt76                   49152  3 mt76x0e,mt76x02_lib,mt76x0_common
mac80211              819200  4 mt76,mt76x0e,mt76x02_lib,mt76x0_common
cfg80211              675840  2 mt76x02_lib,mac80211

的输出dmesg | grep mt是:

[    0.119358] Performance Events: PEBS fmt2+, Broadwell events, 16-deep LBR, full-width counters, Intel PMU driver.
[   15.286109] mt76x0e 0000:03:00.0: ASIC revision: 76300002
[   15.286204] mt76x0e 0000:03:00.0: Direct firmware load for mediatek/mt7650e.bin failed with error -2
[   15.286816] mt76x0e: probe of 0000:03:00.0 failed with error -2

最后,输出ip a不显示 WiFi,它是:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:05:d1:dc brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.x.xxx/xx brd xxx.xxx.x.xxx scope global dynamic noprefixroute enp2s0
       valid_lft 86082sec preferred_lft 86082sec
    inet6 xxxx:xxx:xxx:1616:c68:6e4d:dfb4:1218/64 scope global temporary dynamic 
       valid_lft 604483sec preferred_lft 85495sec
    inet6 xxxx:xxx:xxx:xxxx:8559:3aae:e9:5bc0/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 xxxx::xxxx:xxxx:9b1a:99a2/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

如果我单击 WingPanel 上的网络图标,则不会触发 WiFi 网络扫描。因此我认为仍然存在问题。

我不明白如何解决它。

答案1

您需要加载mt76x0emt76xx模块:

sudo modprobe mt76x0e mt76xx

要在挂起模式后自动重新启动 Wifi,请创建/lib/systemd/system-sleep/wifi-wakeup包含以下内容的脚本:

#!/bin/sh

# Wake up the Wifi !

case $1/$2 in
    pre/*)
        modprobe -r mt76x0e mt76xx
        sleep 1
        ;;
    post/*)
        modprobe mt76x0e mt76xx
        ;;
esac

使其可执行:

sudo chmod a+x /lib/systemd/system-sleep/wifi-wakeup

然后,重新启动计算机。下次睡眠后,Wifi会自行重启!

答案2

我刚刚解决了,我希望这可以避免其他人发疯,就像这几天发生在我身上一样。

您需要使用当前配置(在 /boot/ 中找到)编译 Linux 内核 >= 4.20,从而按照问题中所述启用 MT76x0e。

然后,您需要执行以下操作:

sudo mkdir /lib/firmware/mediatek/ sudo ln -s /lib/firmware/mt7650.bin /lib/firmware/mediatek/mt7650e.bin sudo rmmod mt76x0e sudo modprobe mt76x0e

感谢卢卡的支持! :)

编辑:正如@jawker所说,我也遇到了问题。 WiFi 工作得很好,但如果你暂停机器,它就会停止工作,你需要重新启动(或使用以太网电缆)

答案3

我在使用 MT7630E 时也遇到了问题,尽管我已经设法让它与运行 Linux 5.0.5 的 Arch 一起工作。我没有使用神经宾驱动程序。它仍然非常不稳定,对于使用网络来说很有用,但是一旦我尝试速度测试,WiFi就会消失并且不会回来,除非关闭然后再次开机,正常的重新启动将不起作用。

dmesg | grep mt76关机和开机后:

[    3.626362] mt76x0e 0000:03:00.0: Firmware Version: 1.0.07
[    4.591683] mt76x0e 0000:03:00.0: EEPROM ver:01 fae:05
[    4.591689] mt76x0e 0000:03:00.0: driver does not support HW RF ctrl
[    4.610301] mt76x0e 0000:03:00.0 wlp3s0f0: renamed from wlan0

iwconfig比特率在 72.2 和 1 Mb/s 之间交替

wlp3s0f0  IEEE 802.11  ESSID:"xxxxx"  
          Mode:Managed  Frequency:2.412 GHz  Access Point: xx:xx:xx:xx:xx:xx   
          Bit Rate=72.2 Mb/s   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=57/70  Signal level=-53 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:16   Missed beacon:0

此时一切似乎都正常,我可以上网并做其他不费力的事情,但如果我尝试速度测试,它就会失败

dmesg | grep mt76尝试速度测试后:

[    3.623044] mt76x0e 0000:03:00.0: ASIC revision: 76300002
[    3.626362] mt76x0e 0000:03:00.0: Firmware Version: 1.0.07
[    4.591683] mt76x0e 0000:03:00.0: EEPROM ver:01 fae:05
[    4.591689] mt76x0e 0000:03:00.0: driver does not support HW RF ctrl
[    4.610301] mt76x0e 0000:03:00.0 wlp3s0f0: renamed from wlan0
[  561.724974] mt76x0e 0000:03:00.0: TX DMA did not stop
[  579.407772] mt76x0e 0000:03:00.0: TX DMA did not stop
[  610.954214] mt76x0e 0000:03:00.0: TX DMA did not stop

dmesg | grep mt76正常重启后:

[    3.707099] mt76x0e 0000:03:00.0: ASIC revision: 76300002
[    3.711256] mt76x0e 0000:03:00.0: Firmware Version: 1.0.07
[    3.737071] mt76x0e: probe of 0000:03:00.0 failed with error -5

如此下去,直到关机、重启都不起作用。

答案4

一个月来,我在多个发行版中都遇到了 Wi-Fi、关机和挂起功能的问题。最后,我发现这个帖子来自解决我的 Wi-Fi 问题的“Pilot 6”:

更好的解决方案是使用 DKMS 安装驱动程序。这样你就不需要在内核升级后重新安装它。这样做:

sudo apt-get install git dkms build-essential
git clone https://github.com/neurobin/MT7630E.git
cd MT7630E/
sudo make dkms

我使用的是 Asus X750L 笔记本电脑,笔记本电脑上有 Mediatek MT7630E 802.11bgn Wi-Fi 适配器,运行 Debian 11。

相关内容