自从将唯一具有多个网络适配器的 Linux VM 升级到 Debian 11 以来,它的第二个适配器一直无法执行任何操作。
配置相当简单:两个 VMWare 网络适配器,每个都使用模拟的 E1000E。尝试一个简单的;
ping 10.0.26.5
10.0.26.201
VM 上的 IP在哪里,以及10.0.26.5
主机的 IP 在哪里,失败了。检查dmesg
发现问题是一个复杂的底层问题:
[ 5112.037590] e1000 0000:02:02.0 ens34: Detected Tx Unit Hang
Tx Queue <0>
TDH <0>
TDT <1>
next_to_use <1>
next_to_clean <0>
buffer_info[next_to_clean]
time_stamp <10012595a>
next_to_watch <0>
jiffies <100125b50>
next_to_watch.status <0>
[ 5113.895573] e1000 0000:02:02.0 ens34: Detected Tx Unit Hang
Tx Queue <0>
TDH <0>
TDT <1>
next_to_use <1>
next_to_clean <0>
buffer_info[next_to_clean]
time_stamp <10012595a>
next_to_watch <0>
jiffies <100125d20>
next_to_watch.status <0>
大约每 2 秒重复一次。虽然这是两个相同的软件模拟 e1000e 卡,但这种情况只适用于ens34
,不适用于 。ens32
重新启动、网络重置或更改卡配置的各个方面(例如将速度设置为 100 Mbit)、禁用各种卸载功能或在 VMware 中重新创建卡后,问题仍然存在。以前从未见过这样的情况,完全相同的驱动程序对一张卡完美运行,而对另一张卡却无法执行任何操作。
大多数谷歌搜索似乎都会出现与该芯片的实际物理版本有关的旧问题,这些问题很久以前就已解决。
事实上,所有模拟都排除了实际的硬件问题(除此之外,ens34 恰好映射到我远程访问 VMWare 的同一端口,而且我仍然可以连接)。
将调试级别设置得稍微高一点会给出非常详细的转储;简明扼要;
[ 5625.646265] e1000: Register dump
[ 5625.646270] e1000: CTRL 00c00249
[ 5625.646272] e1000: STATUS 0000cb83
[ 5625.646273] e1000: RCTL 00008002
[ 5625.646275] e1000: RDLEN 00001000
[ 5625.646277] e1000: RDH 00000001
[ 5625.646278] e1000: RDT 000000fe
[ 5625.646280] e1000: RDTR 00000000
[ 5625.646281] e1000: TCTL 0103f0fa
[ 5625.646283] e1000: TDBAL 35d13000
[ 5625.646284] e1000: TDBAH 00000000
[ 5625.646285] e1000: TDLEN 00001000
[ 5625.646286] e1000: TDH 00000000
[ 5625.646288] e1000: TDT 00000001
[ 5625.646289] e1000: TIDV 00000008
[ 5625.646290] e1000: TXDCTL 01010000
[ 5625.646292] e1000: TADV 00000020
[ 5625.646293] e1000: TARC0 00000000
[ 5625.646294] e1000: TDBAL1 00000000
[ 5625.646296] e1000: TDBAH1 00000000
[ 5625.646297] e1000: TDLEN1 00000000
[ 5625.646298] e1000: TDH1 00000000
[ 5625.646300] e1000: TDT1 00000000
[ 5625.646301] e1000: TXDCTL1 00000000
[ 5625.646302] e1000: TARC1 00000000
[ 5625.646304] e1000: CTRL_EXT 00000cc0
[ 5625.646305] e1000: ERT 00000000
[ 5625.646306] e1000: RDBAL 35d14000
[ 5625.646308] e1000: RDBAH 00000000
[ 5625.646309] e1000: TDFH 00000000
[ 5625.646310] e1000: TDFT 00000000
[ 5625.646312] e1000: TDFHS 00000000
[ 5625.646313] e1000: TDFTS 00000000
[ 5625.646314] e1000: TDFPC 00000000
[ 5625.646315] e1000: RDFH 00000000
[ 5625.646317] e1000: RDFT 00000000
[ 5625.646318] e1000: RDFHS 00000000
[ 5625.646319] e1000: RDFTS 00000000
[ 5625.646320] e1000: RDFPC 00000000
[ 5625.646322] e1000: TX Desc ring0 dump
[ 5625.646324] e1000: Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen] [bi->dma ] leng ntw timestmp bi->skb
[ 5625.646325] e1000: Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen] [bi->dma ] leng ntw timestmp bi->skb
[ 5625.646337] e1000: Tc[0x000] 00000000BCCFA800 000000008B00005A 00000000BCCFA800 005A 0 0000000100144D57 00000000fde394a8 NTC
[ 5625.646390] e1000: Tc[0x001] 0000000000000000 0000000000000000 0000000000000000 0000 0 0000000000000000 0000000000000000 NTU
[ 5625.646400] e1000: Tc[0x002] 0000000000000000 0000000000000000 0000000000000000 0000 0 0000000000000000 0000000000000000
[ 5625.646407] e1000: Tc[0x003] 0000000000000000 0000000000000000 0000000000000000 0000 0 0000000000000000 0000000000000000
(Remainder is all zeroes)
RX Desc ring dump
[ 5625.647449] e1000: R[desc] [address 63:0 ] [vl er S cks ln] [bi->dma ] [bi->skb]
[ 5625.647453] e1000: R[0x000] 00000000BCC7B000 00000003000000CA 00000000BCC7B000 00000000973ca48e NTC
[ 5625.647455] e1000: R[0x001] 00000000BCC7B800 0000000000000000 00000000BCC7B800 00000000dfca3cec
[ 5625.647457] e1000: R[0x002] 00000000BCC7C000 0000000000000000 00000000BCC7C000 0000000053a8edb6
[ 5625.647459] e1000: R[0x003] 00000000BCC7C800 0000000000000000 00000000BCC7C800 00000000a22e57ab
[ 5625.647461] e1000: R[0x004] 00000000BCC7D000 0000000000000000 00000000BCC7D000 000000002b2619b7
[ 5625.647463] e1000: R[0x005] 00000000BCC7D800 0000000000000000 00000000BCC7D800 0000000057cbfe1e
[ 5625.647465] e1000: R[0x006] 00000000BCC7E000 0000000000000000 00000000BCC7E000 00000000cc0b4642
[ 5625.647467] e1000: R[0x007] 00000000BCC7E800 0000000000000000 00000000BCC7E800 0000000005926f61
[ 5625.647469] e1000: R[0x008] 00000000BCC7F000 0000000000000000 00000000BCC7F000 0000000041b9d724
[ 5625.647471] e1000: R[0x009] 00000000BCC7F800 0000000000000000 00000000BCC7F800 000000003a463662
[ 5625.647473] e1000: R[0x00A] 00000000BCC80000 0000000000000000 00000000BCC80000 00000000cee2865a
[ 5625.647475] e1000: R[0x00B] 00000000BCC80800 0000000000000000 00000000BCC80800 00000000ce4b0575
[ 5625.647477] e1000: R[0x00C] 00000000BCC81000 0000000000000000 00000000BCC81000 00000000e1972cf2
[ 5625.647479] e1000: R[0x00D] 00000000BCC81800 0000000000000000 00000000BCC81800 000000006a14dab9
[ 5625.647481] e1000: R[0x00E] 00000000BCC82000 0000000000000000 00000000BCC82000 000000004e6d9e5b
[ 5625.647483] e1000: R[0x00F] 00000000BCC82800 0000000000000000 00000000BCC82800 00000000e4f9351b
[ 5625.647485] e1000: R[0x010] 00000000BCC83000 0000000000000000 00000000BCC83000 000000001c33caa3
[ 5625.647487] e1000: R[0x011] 00000000BCC83800 0000000000000000 00000000BCC83800 0000000045f1802c
(etc. stripped due to post size limit).
[ 5625.648320] e1000: R[0x0F0] 00000000BCCF3000 0000000000000000 00000000BCCF3000 0000000003287ca3
[ 5625.648323] e1000: R[0x0F1] 00000000BCCF3800 0000000000000000 00000000BCCF3800 00000000dec9e9d4
[ 5625.648325] e1000: R[0x0F2] 00000000BCCF4000 0000000000000000 00000000BCCF4000 00000000baa78be5
[ 5625.648327] e1000: R[0x0F3] 00000000BCCF4800 0000000000000000 00000000BCCF4800 000000002d8e36e0
[ 5625.648330] e1000: R[0x0F4] 00000000BCCF5000 0000000000000000 00000000BCCF5000 00000000d6828d9d
[ 5625.648332] e1000: R[0x0F5] 00000000BCCF5800 0000000000000000 00000000BCCF5800 000000008fd0876f
[ 5625.648334] e1000: R[0x0F6] 00000000BCCF6000 0000000000000000 00000000BCCF6000 0000000077d739be
[ 5625.648339] e1000: R[0x0F7] 00000000BCCF6800 0000000000000000 00000000BCCF6800 000000008ed1b539
[ 5625.648341] e1000: R[0x0F8] 00000000BCCF7000 0000000000000000 00000000BCCF7000 000000007f314645
[ 5625.648343] e1000: R[0x0F9] 00000000BCCF7800 0000000000000000 00000000BCCF7800 0000000042b3e5b8
[ 5625.648345] e1000: R[0x0FA] 00000000BCCF8000 0000000000000000 00000000BCCF8000 000000008e9183fc
[ 5625.648347] e1000: R[0x0FB] 00000000BCCF8800 0000000000000000 00000000BCCF8800 00000000bd73dcc4
[ 5625.648349] e1000: R[0x0FC] 00000000BCCF9000 0000000000000000 00000000BCCF9000 000000007c655b1e
[ 5625.648351] e1000: R[0x0FD] 00000000BCCF9800 0000000000000000 00000000BCCF9800 00000000f885d1d7
[ 5625.648353] e1000: R[0x0FE] 00000000BCCFA000 0000000000000000 00000000BCCFA000 0000000086bc0e6b
[ 5625.648355] e1000: R[0x0FF] 0000000000000000 0000000000000000 0000000000000000 0000000000000000 NTU
[ 5625.648356] e1000: Rx descriptor cache in 64bit format
[ 5625.648435] e1000: R6000: 00000000|00000000 00000000|00000000
[ 5625.648500] e1000: R6010: 00000000|00000000 00000000|00000000
[ 5625.648563] e1000: R6020: 00000000|00000000 00000000|00000000
(remainder is all zeroes)
[ 5625.652335] e1000: Tx descriptor cache in 64bit format
[ 5625.652397] e1000: T7000: 00000000|00000000 00000000|00000000
[ 5625.652458] e1000: T7010: 00000000|00000000 00000000|00000000
[ 5625.652518] e1000: T7020: 00000000|00000000 00000000|00000000
(remainder is all zeroes)
答案1
从那时起,我设法通过实施以下虽然不令人满意的“Microsoft 解决方案”来解决此问题。
- 关闭虚拟机。
- 从该虚拟机中移除有问题的网络适配器。
- 启动虚拟机
- 再次将其关闭。
- 为虚拟机添加新的网络适配器。相同类型,相同名称。
- 启动虚拟机。
- 检查新网络适配器是否与 Linux 中的旧网络适配器同名。如果不同,请调整配置文件
/etc/network/interfaces
,例如sed -i 's/ens33/ens34/g' /etc/network/interfaces