无法删除 WiFi 适配器内核模块;Linux 挂起

无法删除 WiFi 适配器内核模块;Linux 挂起

我使用的是 openSUSE Leap 15.0(64 位,内核版本 4.12.14-lp150.12.25-default)和 KDE Plasma Desktop(版本 5.12.6),安装后应用了所有更新。我使用的是 TP-Link T2U 无线适配器,据说它有 mt7650 芯片组。

对于无线适配器,我已经安装了驱动程序。TP-Link 网站上的驱动程序无法编译(有代码错误);其他社区驱动程序显然是为 mt7610 芯片组构建的,因此,只要插入适配器,计算机就会完全挂起。

无论如何,我已经编译并安装了上述驱动程序,并且可以成功使用无线适配器并连接到接入点并上网。

以下是我的使用方法:-

1)我插入适配器并运行,顺序如下:

sudo ip link set ra0 up
sudo systemctl restart NetworkManager.service

(该适配器被识别为;除非重新启动,ra0否则系统托盘工具无法使用)NetworkManager

2)我单击并打开NetworkManager系统托盘中的工具并连接到我选择的热点。

现在我可以正常上网了。一切都很好!

完成后,我断开与热点的连接(从NetworkManager系统托盘中的工具),然后运行:

sudo ip link set ra0 down

真正的乐趣从这里开始:当我在此之后关闭计算机时,无论适配器是否仍插入或拔出,​​计算机都会挂在启动屏幕上!我的意思是,它会永远这样。如果我按下Esc,显示后面的文本消息,它会显示:

...
...
...
[FAILED] Failed unmounting /var
...
...
...
Reached target Shutdown

唯一的方法是按住电源按钮将其关闭。

如果在断开与热点的连接(从NetworkManager系统托盘中的工具)并设置后ra0 down,我没有关闭,而是运行:

sudo modprobe -r mt7650u_sta

或者

sudo modprobe -rf mt7650u_sta

或者

rmmod mt7650u_sta

或者

rmmod -f mt7650u_sta

控制台窗口挂起,即,我没有收到提示。但是,系统的其余部分没有挂起。(此驱动程序的内核模块是mt7650u_sta)。

有趣的是,在全新启动后,如果我只是插入设备但不设置它up,我可以轻松删除内核模块mt7650u_sta和/或计算机正常关闭。如果我从未插入适配器,计算机也会正常关闭。

基本上,mt7650u_sta仅当适配器已设置时,它才会卡在移除模块up处(无论此后我是否连接到任何热点)

如何防止这种情况发生,mt7650u_sta即使适配器已被“使用”,也能成功移除模块?请注意,我只是一名 Linux 新手。我无法自己修改任何源代码等。如果您能以简单的方式给出答案和建议,我将不胜感激!:-)



一些额外的信息:-

适配器插入但未设置后upip a给出

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: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 00:22:4d:9f:89:65 brd ff:ff:ff:ff:ff:ff
3: ra0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff

lsmod | grep mt给出

mt7650u_sta          1024000  0
usbcore               286720  6 usbhid,ehci_hcd,xhci_pci,mt7650u_sta,xhci_hcd,ehci_pci

设置适配器up并连接到热点后ip a

...
...
...
3: ra0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 50:3e:aa:89:00:e0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.225.23/24 brd 192.168.225.255 scope global noprefixroute dynamic ra0
       valid_lft 43191sec preferred_lft 43191sec
    inet6 2405:204:42a4:8696:b83c:6cc9:98a4:17ea/64 scope global temporary dynamic 
       valid_lft 604788sec preferred_lft 85878sec
    inet6 2405:204:42a4:8696:f7c8:b248:7d11:fdc7/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::db2c:9df4:4de5:1031/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

lsmod | grep mt给出

mt7650u_sta          1024000  1
usbcore               286720  6 usbhid,ehci_hcd,xhci_pci,mt7650u_sta,xhci_hcd,ehci_pci

稍后,设置适配器后downip a给出

...
...
...
3: ra0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 50:3e:aa:89:00:e0 brd ff:ff:ff:ff:ff:ff

lsmod | grep mt给出

mt7650u_sta          1024000  0
usbcore               286720  6 usbhid,ehci_hcd,xhci_pci,mt7650u_sta,xhci_hcd,ehci_pci

相关内容