RE: Can't make virtio block driver work on Windows 2003
Maybe you can find some useful hints in this thread: http://www.proxmox.com/forum/showthread.php?t=1990 Best Regards, Martin -Original Message- From: kvm-ow...@vger.kernel.org [mailto:kvm-ow...@vger.kernel.org] On Behalf Of Asdo Sent: Mittwoch, 14. Oktober 2009 19:52 To: kvm@vger.kernel.org Subject: Can't make virtio block driver work on Windows 2003 Hi all I have a new installation of Windows 2003 SBS server 32bit which I installed using IDE disk. KVM version is QEMU PC emulator version 0.10.50 (qemu-kvm-devel-86) compiled by myself on kernel 2.6.28-11-server. I have already moved networking from e1000 to virtio (e1000 was performing very sluggishly btw, probably was losing many packets, virtio seems to work) Now I want to move the disk to virtio... This is complex so I thought that first I wanted to see virtio installed and working on another drive. So I tried adding another drive, a virtio one, (a new 100MB file at host side) to the virtual machine and rebooting. A first problem is that Windows does not detect the new device upon boot or Add Hardware scan. Here is the kvm commandline (it's complex because it comes from libvirt): /usr/local/kvm/bin/qemu-system-x86_64 -S -M pc -m 4096-smp 4 -name winserv2 -uuid -monitor pty -boot c -drive file=/virtual_machines/kvm/nfsimport/winserv2.raw,if=ide,index=0,boot=o n -drive file=/virtual_machines/kvm/nfsimport/zerofile,if=virtio,index=1 -net nic,macaddr=xx:xx:xx:xx:xx:xx,vlan=0,model=virtio -net tap,fd=25,vlan=0 -serial none -parallel none -usb -vnc 127.0.0.1:4 Even if Windows couldn't detect the new device I tried to install the driver anyway. On Add Hardware I go through to -- SCSI and RAID controllers -- Have Disk .. and point it to the location of viostor files (windows 2003 x86) downloaded from: http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers http://people.redhat.com/~yvugenfi/24.09.2009/viostor.zip Windows does install the driver, however at the end it says: The software for this device is now installed, but may not work correctly. This device cannot start. (Code 10) and the new device gets flagged with a yellow exclamation mark in Device Manager. I don't know if it's the same reason as before, that the device is not detected so the driver cannot work, or another reason. Any idea? Thanks for your help -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Can't make virtio block driver work on Windows 2003
Vadim Rozenfeld wrote: On 10/14/2009 07:52 PM, Asdo wrote: ... So I tried adding another drive, a virtio one, (a new 100MB file at host side) to the virtual machine and rebooting. A first problem is that Windows does not detect the new device upon boot or Add Hardware scan. Check PCI devices with info pci. You must have SCSI controller: PCI device 1af4:1001 device reported. It's not there. Does this make it a KVM bug? I'm attaching the PCI32.EXE output at the bottom of this email BTW I would probably be able to switch to virtio anyway on this installation of Windows 2003, if I knew the way to insert the viostor driver into the windows boot image (windows's initrd), because if I set the first disk hda as virtio then kvm really makes it virtio (so maybe it's a configuration with one IDE and one virtio that does not work in KVM) and Windows bluescreens at boot. However I don't know how to insert the viostor driver in the windows boot image. Any suggestions? Here is the kvm commandline (it's complex because it comes from libvirt): /usr/local/kvm/bin/qemu-system-x86_64 -S -M pc -m 4096-smp 4 -name winserv2 -uuid -monitor pty -boot c -drive file=/virtual_machines/kvm/nfsimport/winserv2.raw,if=ide,index=0,boot=on -drive file=/virtual_machines/kvm/nfsimport/zerofile,if=virtio,index=1 -net nic,macaddr=xx:xx:xx:xx:xx:xx,vlan=0,model=virtio -net tap,fd=25,vlan=0 -serial none -parallel none -usb -vnc 127.0.0.1:4 Craig Hart's PCI+AGP bus sniffer, Version 1.6, freeware made in 1996-2005. Searching for Devices using CFG Mechanism 1 [OS: Win 2003 Service Pack 1] Bus 0 (PCI), Device Number 0, Device Function 0 Vendor 8086h Intel Corporation Device 1237h 82441FX 440FX (Natoma) System Controller Rev 2 (SU053) Command h (Bus Access Disabled!!) Status h Revision 02h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to HOST Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Bus 0 (PCI), Device Number 1, Device Function 0 Vendor 8086h Intel Corporation Device 7000h 82371SB PIIX3 ISA Bridge Command 0007h (I/O Access, Memory Access, BusMaster) Status 0200h (Medium Timing) Revision 00h, Header Type 80h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to ISA Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Bus 0 (PCI), Device Number 1, Device Function 1 Vendor 8086h Intel Corporation Device 7010h 82371SB PIIX3 EIDE Controller Command 0007h (I/O Access, Memory Access, BusMaster) Status 0280h (Supports Back-To-Back Trans., Medium Timing) Revision 00h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Storage, type IDE (ATA) PCI EIDE Controller Features : BusMaster EIDE is supported Primary Channel is at I/O Port 01F0h and IRQ 14 Secondary Channel is at I/O Port 0170h and IRQ 15 Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Address 4 is an I/O Port : C000h Bus 0 (PCI), Device Number 1, Device Function 2 Vendor 8086h Intel Corporation Device 7020h 82371SB PIIX3 USB Controller Rev 1 (SU093) Command 0007h (I/O Access, Memory Access, BusMaster) Status h Revision 01h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Serial, type USB (UHCI) Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Address 4 is an I/O Port : C020h System IRQ 11, INT# D Bus 0 (PCI), Device Number 1, Device Function 3 Vendor 8086h Intel Corporation Device 7113h 82371MB PIIX4M Power Management Controller Command h (Bus Access Disabled!!) Status 0280h (Supports Back-To-Back Trans., Medium Timing) Revision 03h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to Other Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown System IRQ 9, INT# A Bus 0 (PCI), Device Number 2, Device Function 0 Vendor 1013h Cirrus Logic Device 00B8h CL-GD5446 PCI Command 0007h (I/O Access, Memory Access, BusMaster) Status h Revision 00h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Display, type VGA Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Address 0 is a Memory Address (anywhere in 0-4Gb, Prefetchable) : F000h Address 1 is a Memory Address (anywhere in 0-4Gb) : F200h Bus 0 (PCI), Device Number 3, Device Function 0 Vendor 1AF4h Unknown Device 1000h Unknown Command 0007h (I/O Access, Memory Access, BusMaster) Status h Revision 00h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Network, type Ethernet Subsystem ID 00011AF4h Unknown Subsystem Vendor 1AF4h Unknown Address 0 is an I/O Port : C040h System IRQ 10, INT# A Bus 0 (PCI), Device Number 4, Device Function 0 Vendor 1AF4h Unknown Device 1002h Unknown Command 0001h (I/O Access) Status h Revision 00h, Header Type
Re: Can't make virtio block driver work on Windows 2003
On 10/15/2009 01:42 PM, Asdo wrote: Vadim Rozenfeld wrote: On 10/14/2009 07:52 PM, Asdo wrote: ... So I tried adding another drive, a virtio one, (a new 100MB file at host side) to the virtual machine and rebooting. A first problem is that Windows does not detect the new device upon boot or Add Hardware scan. Check PCI devices with info pci. You must have SCSI controller: PCI device 1af4:1001 device reported. It's not there. Does this make it a KVM bug? Looks like virtio-blk device wasn't initialized. Otherwise I cannot explain why 0x1100 device is here. Try to start block device without index=1 Anyway, if you can, please send info pci output from QEMU monitor console. Thank you, Vadim. I'm attaching the PCI32.EXE output at the bottom of this email BTW I would probably be able to switch to virtio anyway on this installation of Windows 2003, if I knew the way to insert the viostor driver into the windows boot image (windows's initrd), because if I set the first disk hda as virtio then kvm really makes it virtio (so maybe it's a configuration with one IDE and one virtio that does not work in KVM) and Windows bluescreens at boot. However I don't know how to insert the viostor driver in the windows boot image. Any suggestions? Here is the kvm commandline (it's complex because it comes from libvirt): /usr/local/kvm/bin/qemu-system-x86_64 -S -M pc -m 4096-smp 4 -name winserv2 -uuid -monitor pty -boot c -drive file=/virtual_machines/kvm/nfsimport/winserv2.raw,if=ide,index=0,boot=on -drive file=/virtual_machines/kvm/nfsimport/zerofile,if=virtio,index=1 -net nic,macaddr=xx:xx:xx:xx:xx:xx,vlan=0,model=virtio -net tap,fd=25,vlan=0 -serial none -parallel none -usb -vnc 127.0.0.1:4 Craig Hart's PCI+AGP bus sniffer, Version 1.6, freeware made in 1996-2005. Searching for Devices using CFG Mechanism 1 [OS: Win 2003 Service Pack 1] Bus 0 (PCI), Device Number 0, Device Function 0 Vendor 8086h Intel Corporation Device 1237h 82441FX 440FX (Natoma) System Controller Rev 2 (SU053) Command h (Bus Access Disabled!!) Status h Revision 02h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to HOST Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Bus 0 (PCI), Device Number 1, Device Function 0 Vendor 8086h Intel Corporation Device 7000h 82371SB PIIX3 ISA Bridge Command 0007h (I/O Access, Memory Access, BusMaster) Status 0200h (Medium Timing) Revision 00h, Header Type 80h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to ISA Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Bus 0 (PCI), Device Number 1, Device Function 1 Vendor 8086h Intel Corporation Device 7010h 82371SB PIIX3 EIDE Controller Command 0007h (I/O Access, Memory Access, BusMaster) Status 0280h (Supports Back-To-Back Trans., Medium Timing) Revision 00h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Storage, type IDE (ATA) PCI EIDE Controller Features : BusMaster EIDE is supported Primary Channel is at I/O Port 01F0h and IRQ 14 Secondary Channel is at I/O Port 0170h and IRQ 15 Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Address 4 is an I/O Port : C000h Bus 0 (PCI), Device Number 1, Device Function 2 Vendor 8086h Intel Corporation Device 7020h 82371SB PIIX3 USB Controller Rev 1 (SU093) Command 0007h (I/O Access, Memory Access, BusMaster) Status h Revision 01h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Serial, type USB (UHCI) Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Address 4 is an I/O Port : C020h System IRQ 11, INT# D Bus 0 (PCI), Device Number 1, Device Function 3 Vendor 8086h Intel Corporation Device 7113h 82371MB PIIX4M Power Management Controller Command h (Bus Access Disabled!!) Status 0280h (Supports Back-To-Back Trans., Medium Timing) Revision 03h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Bridge, type PCI to Other Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown System IRQ 9, INT# A Bus 0 (PCI), Device Number 2, Device Function 0 Vendor 1013h Cirrus Logic Device 00B8h CL-GD5446 PCI Command 0007h (I/O Access, Memory Access, BusMaster) Status h Revision 00h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Display, type VGA Subsystem ID 11001AF4h Unknown Subsystem Vendor 1AF4h Unknown Address 0 is a Memory Address (anywhere in 0-4Gb, Prefetchable) : F000h Address 1 is a Memory Address (anywhere in 0-4Gb) : F200h Bus 0 (PCI), Device Number 3, Device Function 0 Vendor 1AF4h Unknown Device 1000h Unknown Command 0007h (I/O Access, Memory Access, BusMaster) Status h Revision 00h, Header Type 00h, Bus Latency Timer 00h Self test 00h (Self test not supported) PCI Class Network, type
Re: Can't make virtio block driver work on Windows 2003
Vadim Rozenfeld wrote: On 10/15/2009 01:42 PM, Asdo wrote: Vadim Rozenfeld wrote: On 10/14/2009 07:52 PM, Asdo wrote: ... So I tried adding another drive, a virtio one, (a new 100MB file at host side) to the virtual machine and rebooting. A first problem is that Windows does not detect the new device upon boot or Add Hardware scan. Check PCI devices with info pci. You must have SCSI controller: PCI device 1af4:1001 device reported. It's not there. Does this make it a KVM bug? Looks like virtio-blk device wasn't initialized. Otherwise I cannot explain why 0x1100 device is here. Try to start block device without index=1 Anyway, if you can, please send info pci output from QEMU monitor console. Owh! Ok THAT was info pci Ok I am copying by hand before removing index=1 (qemu) info pci Bus 0, device 0, function, 0: Host bridge: PCI device 8086:1237 Bus 0 device 1, function 0: ISA ridge: PCI device 8086:7000 Bos 0 device 1 function 1: IDE controller: PCI device 8086:7010 BAR4: I/O at 0xc000 [0xc00f]. Bus 0 device 1 function 3: Bridge: PCI device 8086:7133 IRQ 9 Bus 0 device 2 function 0: VGA controller: PCI device 1013:00b8 BAR0: 32 but memory at 0xf000 [0xf1ff] BAR1: 32 but memory at 0xf200 [0xf2000fff] Bus 0 device 3 function 0: Ethernet controller PCI device 1af4:1000 IRQ 11 BAR0: I/O at 0xc020 [0xc03f] Bus 0 device 4 function 0 RAM controller: PCI device 1af4:1002 IRQ 11 BAR0 : I/O at 0xc040 (qemu) so it's not there Now I remove index=1: WOW it's there now! ... Bus 0 device 4 function 0: Storage controller: PCI device 1af4:1001 IRQ 11 BAR0: I/O at 0xc040 [0xc07f] (just before the 1002 device) So now windows sees it and I was able to install the viostor drivers (btw Windows was not happy with the previously installed viostor drivers, I had to reinstall those and I got two devices, and the previous one still had the yellow exclamation mark, so I had to uninstall that one. After the procedure I was able to boot on virtio too! Yeah!). Great so yes, I'd say you *DO* have a KVM bug: one has to remove index=1 for the second disk to appear. How did you know that, Vadim, is it a known issue with kvm? It's better to fix that because libvirt puts index=n for all drives so it's impossible to workaround the problem if one uses libvirt. I had to launch manually... Thanks a lot Vadim. Asdo -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Can't make virtio block driver work on Windows 2003
On 10/15/2009 04:23 PM, Asdo wrote: Vadim Rozenfeld wrote: On 10/15/2009 01:42 PM, Asdo wrote: Vadim Rozenfeld wrote: On 10/14/2009 07:52 PM, Asdo wrote: ... So I tried adding another drive, a virtio one, (a new 100MB file at host side) to the virtual machine and rebooting. A first problem is that Windows does not detect the new device upon boot or Add Hardware scan. Check PCI devices with info pci. You must have SCSI controller: PCI device 1af4:1001 device reported. It's not there. Does this make it a KVM bug? Looks like virtio-blk device wasn't initialized. Otherwise I cannot explain why 0x1100 device is here. Try to start block device without index=1 Anyway, if you can, please send info pci output from QEMU monitor console. Owh! Ok THAT was info pci Ok I am copying by hand before removing index=1 (qemu) info pci Bus 0, device 0, function, 0: Host bridge: PCI device 8086:1237 Bus 0 device 1, function 0: ISA ridge: PCI device 8086:7000 Bos 0 device 1 function 1: IDE controller: PCI device 8086:7010 BAR4: I/O at 0xc000 [0xc00f]. Bus 0 device 1 function 3: Bridge: PCI device 8086:7133 IRQ 9 Bus 0 device 2 function 0: VGA controller: PCI device 1013:00b8 BAR0: 32 but memory at 0xf000 [0xf1ff] BAR1: 32 but memory at 0xf200 [0xf2000fff] Bus 0 device 3 function 0: Ethernet controller PCI device 1af4:1000 IRQ 11 BAR0: I/O at 0xc020 [0xc03f] Bus 0 device 4 function 0 RAM controller: PCI device 1af4:1002 IRQ 11 BAR0 : I/O at 0xc040 (qemu) so it's not there Now I remove index=1: WOW it's there now! ... Bus 0 device 4 function 0: Storage controller: PCI device 1af4:1001 IRQ 11 BAR0: I/O at 0xc040 [0xc07f] (just before the 1002 device) So now windows sees it and I was able to install the viostor drivers (btw Windows was not happy with the previously installed viostor drivers, I had to reinstall those and I got two devices, and the previous one still had the yellow exclamation mark, so I had to uninstall that one. After the procedure I was able to boot on virtio too! Yeah!). Great so yes, I'd say you *DO* have a KVM bug: one has to remove index=1 for the second disk to appear. How did you know that, Vadim, is it a known issue with kvm? I don't know. I think, I've seen it once or twice while debugging viostor on old qemu-kvm. But it definitely works with the recent versions. Regards, Vadim It's better to fix that because libvirt puts index=n for all drives so it's impossible to workaround the problem if one uses libvirt. I had to launch manually... Thanks a lot Vadim. Asdo -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Can't make virtio block driver work on Windows 2003
Hi all I have a new installation of Windows 2003 SBS server 32bit which I installed using IDE disk. KVM version is QEMU PC emulator version 0.10.50 (qemu-kvm-devel-86) compiled by myself on kernel 2.6.28-11-server. I have already moved networking from e1000 to virtio (e1000 was performing very sluggishly btw, probably was losing many packets, virtio seems to work) Now I want to move the disk to virtio... This is complex so I thought that first I wanted to see virtio installed and working on another drive. So I tried adding another drive, a virtio one, (a new 100MB file at host side) to the virtual machine and rebooting. A first problem is that Windows does not detect the new device upon boot or Add Hardware scan. Here is the kvm commandline (it's complex because it comes from libvirt): /usr/local/kvm/bin/qemu-system-x86_64 -S -M pc -m 4096-smp 4 -name winserv2 -uuid -monitor pty -boot c -drive file=/virtual_machines/kvm/nfsimport/winserv2.raw,if=ide,index=0,boot=on -drive file=/virtual_machines/kvm/nfsimport/zerofile,if=virtio,index=1 -net nic,macaddr=xx:xx:xx:xx:xx:xx,vlan=0,model=virtio -net tap,fd=25,vlan=0 -serial none -parallel none -usb -vnc 127.0.0.1:4 Even if Windows couldn't detect the new device I tried to install the driver anyway. On Add Hardware I go through to -- SCSI and RAID controllers -- Have Disk .. and point it to the location of viostor files (windows 2003 x86) downloaded from: http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers http://people.redhat.com/~yvugenfi/24.09.2009/viostor.zip Windows does install the driver, however at the end it says: The software for this device is now installed, but may not work correctly. This device cannot start. (Code 10) and the new device gets flagged with a yellow exclamation mark in Device Manager. I don't know if it's the same reason as before, that the device is not detected so the driver cannot work, or another reason. Any idea? Thanks for your help -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Can't make virtio block driver work on Windows 2003
On 10/14/2009 07:52 PM, Asdo wrote: Hi all I have a new installation of Windows 2003 SBS server 32bit which I installed using IDE disk. KVM version is QEMU PC emulator version 0.10.50 (qemu-kvm-devel-86) compiled by myself on kernel 2.6.28-11-server. I have already moved networking from e1000 to virtio (e1000 was performing very sluggishly btw, probably was losing many packets, virtio seems to work) Now I want to move the disk to virtio... This is complex so I thought that first I wanted to see virtio installed and working on another drive. So I tried adding another drive, a virtio one, (a new 100MB file at host side) to the virtual machine and rebooting. A first problem is that Windows does not detect the new device upon boot or Add Hardware scan. Check PCI devices with info pci. You must have SCSI controller: PCI device 1af4:1001 device reported. Here is the kvm commandline (it's complex because it comes from libvirt): /usr/local/kvm/bin/qemu-system-x86_64 -S -M pc -m 4096-smp 4 -name winserv2 -uuid -monitor pty -boot c -drive file=/virtual_machines/kvm/nfsimport/winserv2.raw,if=ide,index=0,boot=on -drive file=/virtual_machines/kvm/nfsimport/zerofile,if=virtio,index=1 -net nic,macaddr=xx:xx:xx:xx:xx:xx,vlan=0,model=virtio -net tap,fd=25,vlan=0 -serial none -parallel none -usb -vnc 127.0.0.1:4 Even if Windows couldn't detect the new device I tried to install the driver anyway. On Add Hardware I go through to -- SCSI and RAID controllers -- Have Disk .. and point it to the location of viostor files (windows 2003 x86) downloaded from: http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers http://people.redhat.com/~yvugenfi/24.09.2009/viostor.zip Windows does install the driver, however at the end it says: The software for this device is now installed, but may not work correctly. This device cannot start. (Code 10) and the new device gets flagged with a yellow exclamation mark in Device Manager. I don't know if it's the same reason as before, that the device is not detected so the driver cannot work, or another reason. Yes, it must be the same problem. Code 10 means that device driver was not able to find or initialize hardware. Regards, Vadim Any idea? Thanks for your help -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html