diff options
Diffstat (limited to 'results/classifier/118/all/1543163')
| -rw-r--r-- | results/classifier/118/all/1543163 | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/results/classifier/118/all/1543163 b/results/classifier/118/all/1543163 new file mode 100644 index 000000000..89303509c --- /dev/null +++ b/results/classifier/118/all/1543163 @@ -0,0 +1,96 @@ +register: 0.981 +peripherals: 0.967 +network: 0.967 +device: 0.964 +architecture: 0.963 +performance: 0.957 +PID: 0.954 +socket: 0.953 +boot: 0.953 +assembly: 0.946 +graphic: 0.944 +KVM: 0.940 +vnc: 0.938 +debug: 0.935 +kernel: 0.931 +permissions: 0.916 +virtual: 0.915 +arm: 0.914 +user-level: 0.913 +ppc: 0.909 +files: 0.906 +VMM: 0.893 +semantic: 0.892 +hypervisor: 0.879 +mistranslation: 0.873 +TCG: 0.863 +risc-v: 0.851 +i386: 0.835 +x86: 0.773 + +VMs unable to boot from network with e1000 since 2.2 + +With KVM/QEMU version 1.4, using e1000 NIC, virtual machines boot from network alright; they get an IP from DHCP server (machine A), then connect to Microsoft System Center (machine B) and proceed to boot into Windows PE, install images etc. + +However, with versions at least 2.2 and 2.5, using same NIC, virtual machines fail to boot from network; they still get an IP from A, but then fail "contacting B using gateway (0.0.0.0). Different NICs do not help except for i82551, which however causes problems further down the road (presumably because there is no driver for that card in PE (based on Windows 7/8/10)). + +Note that actual physical machines work. + +Wireshark reveals this: + +QEMU 1.4 + Intel e1000 +********************** +1) client sends DHCP discover +2) machine A answers, offers an IP, gateway and itself as next server +3) machine B answers, offers no IP, but gateway and itself as next server +4) client requests the IP +5) machine A ACKs +6) client sends unicast request for ??? to B +7) B offers (unicast) a boot file (some .com) +8) client sends another unicast request for ??? to B +9) B again offers the boot file +(then they chat a bit, B offers another file, client downloads some stuff via TFTP etc.) + + +QEMU 2.2/2.5 + Intel e1000 +************************** +1) client sends DHCP discover +2) machine A answers, offers an IP, gateway and itself as next server +3) machine B answers, offers no IP, but gateway and itself as next server +4) client requests the IP +5) machine A ACKs +6) client sends _broadcast_ request for ??? to B +7) B offers (likewise broadcast) a boot file +8) client sends another request, this time unicast and claims "Client IP address = 0.0.0.0" +(and it basically hangs) + + +So, since some time after 1.4, QEMUlated machines with otherwise trusty e1000 can no longer boot from network and it might be due to different behaviour. + +Probably the same issue in different scenario: DHCP server is running on the host machine (VMs use virtual NICs connected to a bridge) and is also configured to do PXE, which works, but only when VMs are launched in BIOS mode. When launched in UEFI mode using Tianocore, they fail. Now the interesting bit is again provided by Wireshark: + + +BIOS mode +********* +1) VM sends DHCP discover, flag 0x0000 (Unicast) +2) DHCP replies with an offer, also 0x0000 (Unicast) +3) normal process continues + + +UEFI MODE +******** +1) VM sends DHCP discover, flag 0x8000 (Broadcast) +2) DHCP replies with an offer, also 0x8000 (Broadcast) +3) VM ignores the offer +4) goto 1) + +The UEFI PXE issue was caused by a typo in DHCP server config file; the server then did not send DHCP option, if I remember correctly, 67. +Nevertheless, that inspired me and I will further investigate the original issue with SCCM and focus on DHCP options. + +Looking through old bug tickets... can you still reproduce this issue with the latest version of QEMU? Or could we close this ticket nowadays? + +I have 3.10 and I managed to boot with e1000 at least in BIOS mode. I am not sure about UEFI mode, because I get no output on "screen" for whatever, perhaps unrelated reason. +Anyway, I think we may close it for now. + +Ok, thanks for checking. Closing now. + |