我使用的是 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 新手。我无法自己修改任何源代码等。如果您能以简单的方式给出答案和建议,我将不胜感激!:-)
一些额外的信息:-
适配器插入但未设置后up
,ip 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
稍后,设置适配器后down
,ip 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