我试图让 Wi-Fi USB 适配器正常工作,但无济于事。加密狗是TP-Link WN821N,具有Realtek rtl8192eu芯片。我无法更改它,并且由于雇主的选择,我很快就会失去有线连接。
插入后,我得到以下输出dmesg
:
[12881.857485] usb 1-1.6: new high-speed USB device number 7 using ehci-pci
[12881.970614] usb 1-1.6: New USB device found, idVendor=2357, idProduct=0107, bcdDevice= 2.00
[12881.970617] usb 1-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[12881.970618] usb 1-1.6: Product: 802.11n NIC
[12881.970619] usb 1-1.6: Manufacturer: Realtek
[12881.970620] usb 1-1.6: SerialNumber: 00e04c000001
这是相关输出usb-devices
:
$ usb-devices|grep -C 4 Realtek
T: Bus=01 Lev=02 Prnt=02 Port=05 Cnt=03 Dev#= 7 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=2357 ProdID=0107 Rev=02.00
S: Manufacturer=Realtek
S: Product=802.11n NIC
S: SerialNumber=00e04c000001
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I: If#=0x0 Alt= 0 #EPs= 5 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
但是没有网络接口出现
$ lspci -knn |grep -i net -A2
00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection [8086:1502] (rev 04)
Subsystem: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) [8086:2008]
Kernel driver in use: e1000e
Kernel modules: e1000e
另外,ip a
只显示以太网接口,iw dev
没有输出。
我不知情的猜测是系统找不到这个特定加密狗的驱动程序。我确实安装了非免费firmware-realtek
软件包:
$ dpkg -l|grep realtek
ii firmware-realtek 20190114-2 all Binary firmware for Realtek wired/wifi/BT adapters
里面应该有一些相关的东西rtl8192eu
:
$ dpkg -L firmware-realtek |grep rtl8192eu
/lib/firmware/rtl_bt/rtl8192eu_fw.bin
/lib/firmware/rtlwifi/rtl8192eu_nic.bin
/lib/firmware/rtlwifi/rtl8192eu_wowlan.bin
$ apt-cache show firmware-realtek|grep -i rtl8192eu
* Realtek RTL8192EU Bluetooth firmware (rtl_bt/rtl8192eu_fw.bin)
* Realtek RTl8192EU non-WoWLAN firmware (rtlwifi/rtl8192eu_nic.bin)
* Realtek RTl8192EU WoWLAN firmware (rtlwifi/rtl8192eu_wowlan.bin)
$ grep -r rtl8192eu /lib/modules/4.19.0-20-amd64/
Binary file /lib/modules/4.19.0-20-amd64/kernel/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko matches
但是我没有名为的模块rtl8192eu
:
$ sudo modprobe rtl8192eu
modprobe: FATAL: Module rtl8192eu not found in directory /lib/modules/4.19.0-20-amd64
虽然我可以加载rtl8xxxu
,但它仍然不会出现任何新界面,两者lspci
都只ip a
显示以太网,并且iw dev
什么也不显示。
我现在面临着一个艰难的选择:调试这个,用自己的钱购买另一个加密狗,或者换工作。
- 与从 github 编译驱动程序相比,我强烈更喜欢基于
firmware-realtek
或另一个维护的包的解决方案。 - 如果需要的话,我愿意升级到 Debian 11 bullseye,因为无论如何我都打算这样做。
- 我想知道是否有一些安装步骤我说过我永远不需要wifi。
你能帮我吗?
答案1
经过一段时间并完全升级到 Debian bullseye 之后,我认为最好的可用解决方案是从这个 github 仓库,这比叉提议于这个 Debian 维基页面(存档版本)。
根据回购协议中建议的说明自述文件,以下内容在 Debian 11.4 bullseye 中对我有用Linux 5.10.0-16-amd64 #1 SMP Debian 5.10.127-2 (2022-07-23) x86_64 GNU/Linux
:
sudo apt install git linux-headers-generic build-essential dkms
git clone https://github.com/Mange/rtl8192eu-linux-driver
cd rtl8192eu-linux-driver
sudo dkms add .
sudo dkms install rtl8192eu/1.0
echo "blacklist rtl8xxxu" | sudo tee /etc/modprobe.d/rtl8xxxu.conf
不确定最后一行是否需要将 rtl8xxxu 列入黑名单。重启后会自动加载驱动:
$ usb-devices|grep -C 4 Realtek
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=2357 ProdID=0107 Rev=02.00
S: Manufacturer=Realtek
S: Product=802.11n NIC
S: SerialNumber=00e04c000001
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I: If#=0x0 Alt= 0 #EPs= 5 Cls=ff(vend.) Sub=ff Prot=ff Driver=rtl8192eu
$ sudo iw dev
phy#0
Interface wlxd037458b4186
ifindex 3
wdev 0x1
addr d0:37:45:8b:41:86
ssid eduroam
type managed
txpower 12.00 dBm
在buster下,我还附加了以下内容
/etc/NetworkManager/NetworkManager.conf
:
[device]
wifi.scan-rand-mac-address=no
遵循Debian 维基指南,我不确定是否还有必要。