Win VM network is inconsistent

Hello Garuda users.

So i have a somewhat complicated problem.
I have a VM for Windows 10 that i use for some tasks sometimes.
My problem is the network connection only is working sometimes.
When i try to ping it always works, when the ping first runs, but after that it than has a timeout about 2-4 times.
Sometimes it seems to get a other successful ping, but it seems inconsistent.
For some more context, reinstalling the VM did not work and the same issue seems to be on win 11, so this i very strange. This is inside the virt-manager over qemu btw.
Also the default qemu network is a nat network (that one worked on windows vm in the past on a other linux system). Oh i also tryed virtio (instead of e1000e) for the network type (virtio is installed on the vm of course, also virtio guest tools is installed).
If i try to load websites, it seems to load long and sometimes is displays something, but will be bare bones.
Here is my VM xml (for more context):

<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh edit win10
or other application using the libvirt API.
-->

<domain type='kvm'>
<name>win10</name>
<uuid>e7ed73fe-aad7-4732-a9f1-a9d45dae73a4</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://microsoft.com/win/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>4194304</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc-q35-8.1'>hvm</type>
</os>
<features>
<acpi/>
<apic/>
<hyperv mode='custom'>
<relaxed state='on'/>
<vapic state='on'/>
<spinlocks state='on' retries='8191'/>
</hyperv>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model>
</cpu>
<clock offset='localtime'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
<timer name='hypervclock' present='yes'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/mnt/Datentragermerory/Virtual-Machines/QEMU/win10.qcow2'/>
<target dev='vda' bus='virtio'/>
<boot order='2'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/marvin/Downloads/Win10_22H2_EnglishInternational_x64v1.iso'/>
<target dev='sda' bus='sata'/>
<readonly/>
<boot order='1'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/marvin/Downloads/virtio-win-0.1.229.iso'/>
<target dev='sdb' bus='sata'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='network'>
<mac address='52:54:00:32:12:53'/>
<source network='default'/>
<model type='e1000e'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes'>
<listen type='address'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<audio id='1' type='spice'/>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<watchdog model='itco' action='reset'/>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
</devices>
</domain>

And here is my garuda-inxi, but i don’t think this is relevant, but cant hurt i guess.

╰─λ garuda-inxi
System:
Kernel: 6.5.8-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc available: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=c62a671f-f4e6-450d-83b8-108e408311cd rw rootflags=subvol=@
quiet quiet rd.udev.log_priority=3 vt.global_cursor_default=0 loglevel=3
ibt=off
Desktop: KDE Plasma v: 5.27.9 tk: Qt v: 5.15.11 wm: kwin_x11 vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
Type: Desktop Mobo: ASUSTeK model: ROG STRIX Z370-F GAMING v: Rev X.0x
serial: <superuser required> UEFI: American Megatrends v: 3004
date: 07/12/2021
CPU:
Info: model: Intel Core i7-8700K bits: 64 type: MT MCP arch: Coffee Lake
gen: core 8 level: v3 note: check built: 2018 process: Intel 14nm family: 6
model-id: 0x9E (158) stepping: 0xA (10) microcode: 0xF4
Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 1.5 MiB desc: 6x256 KiB
L3: 12 MiB desc: 1x12 MiB
Speed (MHz): avg: 800 high: 801 min/max: 800/4700 scaling:
driver: intel_pstate governor: powersave cores: 1: 800 2: 800 3: 800 4: 800
5: 800 6: 800 7: 801 8: 801 9: 800 10: 800 11: 801 12: 800 bogomips: 88796
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: NVIDIA GA104 [GeForce RTX 3070 Ti] vendor: eVga.com.
driver: nvidia v: 535.113.01 alternate: nouveau,nvidia_drm non-free: 535.xx+
status: current (as of 2023-09) arch: Ampere code: GAxxx
process: TSMC n7 (7nm) built: 2020-23 pcie: gen: 3 speed: 8 GT/s lanes: 16
link-max: gen: 4 speed: 16 GT/s bus-ID: 01:00.0 chip-ID: 10de:2482
class-ID: 0300
Device-2: Logitech HD Pro Webcam C920 driver: snd-usb-audio,uvcvideo
type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-14:8
chip-ID: 046d:082d class-ID: 0102 serial: <filter>
Display: x11 server: X.Org v: 21.1.9 with: Xwayland v: 23.2.2
compositor: kwin_x11 driver: X: loaded: modesetting,nvidia
alternate: fbdev,nouveau,nv,vesa gpu: nvidia display-ID: :0.0 screens: 1
Screen-1: 0 s-res: 3840x2160 s-dpi: 159 s-size: 613x352mm (24.13x13.86")
s-diag: 707mm (27.83")
Monitor-1: HDMI-0 pos: primary res: 3840x2160 dpi: 160
size: 610x350mm (24.02x13.78") diag: 703mm (27.69") modes: N/A
Monitor-2: None-1-1 size-res: N/A modes: N/A
API: EGL v: 1.5 hw: drv: nvidia platforms: gbm: drv: nvidia
API: OpenGL v: 4.6.0 vendor: nvidia v: 535.113.01 glx-v: 1.4
direct-render: yes renderer: NVIDIA GeForce RTX 3070 Ti/PCIe/SSE2
memory: 7.81 GiB
API: Vulkan v: 1.3.269 layers: 5 device: 0 type: discrete-gpu name: NVIDIA
GeForce RTX 3070 Ti driver: nvidia v: 535.113.01 device-ID: 10de:2482
surfaces: xcb,xlib
Audio:
Device-1: Intel 200 Series PCH HD Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel alternate: snd_soc_avs bus-ID: 00:1f.3
chip-ID: 8086:a2f0 class-ID: 0403
Device-2: NVIDIA GA104 High Definition Audio vendor: eVga.com.
driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
link-max: gen: 4 speed: 16 GT/s bus-ID: 01:00.1 chip-ID: 10de:228b
class-ID: 0403
Device-3: Logitech HD Pro Webcam C920 driver: snd-usb-audio,uvcvideo
type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-14:8
chip-ID: 046d:082d class-ID: 0102 serial: <filter>
API: ALSA v: k6.5.8-zen1-1-zen status: kernel-api
tools: alsactl,alsamixer,amixer
Server-1: PipeWire v: 0.3.83 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel Ethernet I219-V vendor: ASUSTeK driver: e1000e v: kernel
port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15b8 class-ID: 0200
IF: enp0s31f6 state: up speed: 1000 Mbps duplex: full mac: <filter>
Device-2: Intel driver: N/A pcie: gen: 2 speed: 5 GT/s lanes: 1 port: N/A
bus-ID: 03:00.0 chip-ID: 8086:093c class-ID: 0280
IF-ID-1: nordlynx state: unknown speed: N/A duplex: N/A mac: N/A
IF-ID-2: virbr0 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
IF-ID-3: virbr1 state: down mac: <filter>
IF-ID-4: vnet6 state: unknown speed: 10000 Mbps duplex: full mac: <filter>
Bluetooth:
Device-1: Cambridge Silicon Radio Bluetooth Dongle (HCI mode) driver: btusb
v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-12:4
chip-ID: 0a12:0001 class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 4.0
lmp-v: 6 status: discoverable: no pairing: no class-ID: 7c0104
Drives:
Local Storage: total: 5.01 TiB used: 3.85 TiB (76.8%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 970 PRO 512GB
size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 1B2QEXP7 temp: 43.9 C
scheme: GPT
ID-2: /dev/sda maj-min: 8:0 vendor: Hitachi model: HUA723020ALA641
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: HDD rpm: 7200 serial: <filter> fw-rev: A840 scheme: MBR
ID-3: /dev/sdb maj-min: 8:16 vendor: Western Digital
model: WD30EZRZ-00GXCB0 size: 2.73 TiB block-size: physical: 4096 B
logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 5400 serial: <filter>
fw-rev: 0A80 scheme: GPT
Partition:
ID-1: / raw-size: 195.31 GiB size: 195.31 GiB (100.00%)
used: 20.92 GiB (10.7%) fs: btrfs dev: /dev/nvme0n1p7 maj-min: 259:7
ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%)
used: 576 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p4 maj-min: 259:4
ID-3: /home raw-size: 78.12 GiB size: 78.12 GiB (100.00%)
used: 4.39 GiB (5.6%) fs: btrfs dev: /dev/nvme0n1p6 maj-min: 259:6
ID-4: /var/log raw-size: 195.31 GiB size: 195.31 GiB (100.00%)
used: 20.92 GiB (10.7%) fs: btrfs dev: /dev/nvme0n1p7 maj-min: 259:7
ID-5: /var/tmp raw-size: 195.31 GiB size: 195.31 GiB (100.00%)
used: 20.92 GiB (10.7%) fs: btrfs dev: /dev/nvme0n1p7 maj-min: 259:7
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: partition size: 7.59 GiB used: 0 KiB (0.0%)
priority: -2 dev: /dev/nvme0n1p5 maj-min: 259:5
ID-2: swap-2 type: zram size: 31.28 GiB used: 116 MiB (0.4%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 12 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 43.0 C mobo: N/A gpu: nvidia temp: 51 C
Fan Speeds (rpm): N/A gpu: nvidia fan: 0%
Info:
Processes: 324 Uptime: 2h 24m wakeups: 0 Memory: total: 32 GiB
available: 31.28 GiB used: 8.74 GiB (28.0%) Init: systemd v: 254
default: graphical tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6
Packages: 1554 pm: pacman pkgs: 1529 libs: 443 tools: octopi,paru
pm: flatpak pkgs: 25 Shell: fish v: 3.6.1 default: Bash v: 5.1.16
running-in: konsole inxi: 3.3.30
Garuda (2.6.17-1):
System install date:     2023-10-26
Last full system update: 2023-11-15
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut nvidia-dkms
Windows dual boot:       Probably (Run as root to verify)
Failed units:

Any and all help wold be appreciated.

Hi @marvin1099 , Like always MS spyware need drivers for every thing so consider downloading drivers for your network adapter in the VM ,
Or just consider using VirtualBox for JUST windows VMs cause it have a way to install the drivers automatically , I will refer to this video to install it for Vbox , else ; you have to install drivers manually or use a drivers installer (make sure its not a malware).
Edit : You can use external wifi adapter and pass it through , so you can have a native access to the internet .

That would work. But first using a hyperviser type 0 would be nice (so that wold be qemu. Virtualbox would be type 1. I think that is how that worked). So yes drivers you can post a link if you know of webside with the drivers for e1000e or something like that (I will look too but cant hut ro have more people loking for it). driver installer might work if i had internet, I have to try that (maby that works). So passing a wifi adapter would work but that wold be a hacky solution. Would be nice if i can avoid that. Also its a desktop pc so a wifi adapter is not that great. Lastly, yep ms = spyware, but better to have a vm than to boot it barebones. Im still hoping for a easy solution that i have overlooked, so evryone that sees this feel free to suggest something.

I will do some research for this , hope that i find some type of solution for it .

So far that what i can find hope it does help :



download Windows VirtIO Driver ISO (‘Stable virtio-win ISO’ ) and attach to guest CD drive: virtio-win-pkg-scripts/README.md at master · virtio-win/virtio-win-pkg-scripts · GitHub

In Win 10 guest, open Device Manager and look for a network adapter with a yellow triangle. If it appears as ‘Ethernet Controller’, skip to step 3. Otherwise, if it’s recognized as ‘Red Hat VirtIO Ethernet Adapter’ with a yellow triangle: right-click → Remove Device and check ‘delete drivers’. Refresh Device Manager. Now it should appear as just “Ethernet Controller”, probably at the top.

Still in Device Manager, right-click “Ethernet Controller” → Update Update Driver → Search my computer. When asked for a path, navigate to your CD drive → NetKVM → w10 → whatever architecture you may have (in my case the full path was D:\NetKVM\w10\amd64).

Should now install the correct driver for virtio network adapter and give you internet access. For reference, see: Windows Guest Virtual Machines on Red Hat Enterprise Linux 7 - Red Hat Customer Portal


I reinstalled the virtio divers but, Same problem. The adapter shows up as working correctly, but if i try and ping a webside it works the first time, times out on the second try, works on the third try and times out on the forth.
Screenshot_20231118_131611

same thing happens on 8.8.8.8 and google.com
This is a screenshot of the desktop and windows shows what it works. but it only works half the time:

EDIT:
I found something interesting it seems all VMs are effected like this.
Here is a screenshot of my main pc (top no vm) and a garuad vm (bottom)

So there seems to be something wrong with qemu or someting like that.
The ping command looks different than on windows, but it also shows 50% packet loss.

very strange i didn’t face this problem yet and i got no idea what is going on, sorry cause my knowledge are limited when it comes to Virtualization , hope an update to Qemu can fix this as always does, Until then you can use as you labeled type 1 hypervisor Vbox.

Please, never post screenshots from terminal, copy, paste the text like you post the garuda-inxi.

1 Like

Yea, I guess. If there are no other ideas than I will do that.

So i found out vbox should be a hypervisor typ 2, qemu is typ 1. So yea vbox should be a bit slower. O well, it looks like vbox works.

1 Like

So i found a solution just now.
I removed all the virtual networks in virt-manager,
and i added then back making shure the have custum ip4 setups.
now i have 192.168.*.+ where * is 100-103 and + will be the device ip.
So the problem might have been 2 network adapters on the same ip4 address (so they had to share, that is my theory at least).

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.