![Mediatek MT7630e 无法在 Linux 5.0.2 和 4.20 上运行](https://linux22.com/image/150788/Mediatek%20MT7630e%20%E6%97%A0%E6%B3%95%E5%9C%A8%20Linux%205.0.2%20%E5%92%8C%204.20%20%E4%B8%8A%E8%BF%90%E8%A1%8C.png)
在 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
您需要加载mt76x0e
和mt76xx
模块:
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。