Bug 1264331
Summary: | Unbale to find suitable driver for vport0p2 device | ||
---|---|---|---|
Product: | [Community] Virtualization Tools | Reporter: | Jean-Pierre Ribeauville <jpribeauville> |
Component: | virtio-win | Assignee: | Amnon Ilan <ailan> |
Status: | CLOSED NOTABUG | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | medium | Docs Contact: | |
Priority: | unspecified | ||
Version: | unspecified | CC: | bcao, crobinso, ghammer, virt-maint, vrozenfe, yvugenfi |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Windows | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-09-18 14:31:26 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
vioserial exposes ports as RAW PDOs. No additional device driver is required to handle requests addressed to such kind of device objects. Best regards, Vadim. Hi, Fine. So, I,don't worry about setupapi.dev.log complaint. My concern is to retrieve vportp02 device path name of to be able to issue a CreateFile on it. I try to get it with thing such as : SetupDiGetClassDevs(&GUID_DEVINTERFACE_COMPORT, , by no way up to now. Any hint ? What should vportp02 device path look like ? Thanks for help. Regards, J.P. (In reply to Jean-Pierre Ribeauville from comment #2) > Hi, > > Fine. > > So, I,don't worry about setupapi.dev.log complaint. > > My concern is to retrieve vportp02 device path name of to be able to issue a > CreateFile on it. > > > I try to get it with thing such as : > > SetupDiGetClassDevs(&GUID_DEVINTERFACE_COMPORT, > , by no way up to now. > you need to use GUID_VIOSERIAL_PORT defined in sys/public.h as DEFINE_GUID(GUID_VIOSERIAL_PORT, 0x6fde7521, 0x1b65, 0x48ae, 0xb6, 0x28, 0x80, 0xbe, 0x62, 0x1, 0x60, 0x26); // {6FDE7521-1B65-48ae-B628-80BE62016026} Cheers, Vadim. > > Any hint ? > What should vportp02 device path look like ? > > Thanks for help. > Regards, > > J.P. (In reply to Vadim Rozenfeld from comment #3) > (In reply to Jean-Pierre Ribeauville from comment #2) > > Hi, > > > > Fine. > > > > So, I,don't worry about setupapi.dev.log complaint. > > > > My concern is to retrieve vportp02 device path name of to be able to issue a > > CreateFile on it. > > > > > > I try to get it with thing such as : > > > > SetupDiGetClassDevs(&GUID_DEVINTERFACE_COMPORT, > > , by no way up to now. > > > > > you need to use GUID_VIOSERIAL_PORT > > defined in sys/public.h as > > DEFINE_GUID(GUID_VIOSERIAL_PORT, > 0x6fde7521, 0x1b65, 0x48ae, 0xb6, 0x28, 0x80, 0xbe, 0x62, 0x1, 0x60, 0x26); > // {6FDE7521-1B65-48ae-B628-80BE62016026} > > > Cheers, > Vadim. > > > > Any hint ? > > What should vportp02 device path look like ? > > something like L"\\\\.\\Global\\omnivision_123.agent" > > Thanks for help. > > Regards, > > > > J.P. Hi, Now, I found it . By using SetupDiGetDeviceInterfaceDetail(), I got this device path : Device Path = \\?\{6fde7547-1b65-48ae-b628-80be62016026}#vioserialport#4&7e8053e &4&02#{6fde7521-1b65-48ae-b628-80be62016026} Surely, I miss something ??? J.P. (In reply to Jean-Pierre Ribeauville from comment #5) > Hi, > > Now, I found it . > > By using SetupDiGetDeviceInterfaceDetail(), I got this device path : > > Device Path = > \\?\{6fde7547-1b65-48ae-b628-80be62016026}#vioserialport#4&7e8053e > &4&02#{6fde7521-1b65-48ae-b628-80be62016026} > > Surely, I miss something ??? > > > > J.P. You should be able to use symbolic link name. The port name, specified when adding a new port, should also be visible inside of the guest. Try using winobj from sysinternals to inspect symbolic names under Global?? directory. You should be able to see "omnivision_123.agent" there. Hi, Effectively, I found it via winobj. I notice that , if the host side has not open the socket, then write issued by the guest fails with following error : C:\>copy omv_bdc_var "\\.\Global\omnivision_123.agent" Used to indicate that an operation cannot continue without blocking for I/O. 0 file(s) copied. Is it the waited behavior ? On another hand, I realize that this thread is not really related to a "bug" but it's more "calrification" on how to use this channel to exchange datas between host and guest. It should be held in libvirt-users mailing list , isn't? I potsed on bugzilla-redhat cos I hoped to have faster answer , and this is the case. Is it a problem to use it instead of libvirt-users? Or do you survey both sites ? Thanks for help. Regards, J.P. In the future, questions about how to use virtio-win drivers should be directed to a public mailing list. I think qemu-devel is probably best. |
Description of problem: No Windows class installer for 'vport0p2' Version-Release number of selected component (if applicable): virtio-win-0.1.109.iso qemu-kvm-0.12.1.2-2.415.el6.x86_64 host : Linux 2.6.32-431.el6.x86_64 guest : W2008R2 How reproducible: Steps to Reproduce: 1. Add a channel device within Windows Guest configuration such as : <channel type='unix'> <source mode='bind' path='//var/lib/libvirt/qemu/omnivision_123.agent'/> <target type='virtio' name='omnivision_123.agent'/> <address type='virtio-serial' controller='0' bus='0' port='2'/> </channel> 2. Restart guest 3. Check, within setupapi.dev.log, wether the vport0p2 is correctly installed Actual results: The vioser driver is correctly installed. I presume that the new vportp02 device is detected because within registry followiny key appears : Key Name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\{6FDE7547-1B65-48ae-B628-80BE62016026}\VIOSerialPort\4&7e8053e&4&02 Class Name: <NO CLASS> Last Write Time: 9/18/2015 - 6:30 AM Value 0 Name: DeviceDesc Type: REG_SZ Data: vport0p2 Value 1 Name: Capabilities Type: REG_DWORD Data: 0xe6 Value 2 Name: UINumber Type: REG_DWORD Data: 0x2 Value 3 Name: ConfigFlags Type: REG_DWORD Data: 0 Value 4 Name: HardwareID Type: REG_MULTI_SZ Data: {6FDE7547-1B65-48ae-B628-80BE62016026}\VIOSerialPort Value 5 Name: CompatibleIDs Type: REG_MULTI_SZ Data: Value 6 Name: ContainerID Type: REG_SZ Data: {52d75f0b-5d50-11e5-9ef7-525400b48527} Value 7 Name: LocationInformation Type: REG_SZ Data: RedHat VIOSerial Port Key Name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\{6FDE7547-1B65-48ae-B628-80BE62016026}\VIOSerialPort\4&7e8053e&4&02\LogConf Class Name: <NO CLASS> Last Write Time: 9/18/2015 - 6:30 AM Key Name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\{6FDE7547-1B65-48ae-B628-80BE62016026}\VIOSerialPort\4&7e8053e&4&02\Control Class Name: <NO CLASS> setupapi.dev.log shows this error : >>> [Device Install (Hardware initiated) - {6FDE7547-1B65-48ae-B628-80BE62016026}\VIOSerialPort\4&7e8053e&4&02] >>> Section start 2015/09/17 17:39:39.343 ump: Creating Install Process: DrvInst.exe 17:39:39.343 ndv: Retrieving device info... ndv: Setting device parameters... ndv: Searching Driver Store and Device Path... dvi: {Build Driver List} 17:39:39.359 dvi: Searching for hardware ID(s): dvi: {6fde7547-1b65-48ae-b628-80be62016026}\vioserialport cpy: Policy is set to make all digital signatures equal. dvi: Enumerating INFs from path list 'C:\Windows\inf' inf: Searched 0 potential matches in published INF directory inf: Searched 36 INFs in directory: 'C:\Windows\inf' dvi: {Build Driver List - exit(0x00000000)} 17:39:39.406 ndv: Selecting best match from Driver Store (including Device Path)... dvi: {DIF_SELECTBESTCOMPATDRV} 17:39:39.406 dvi: No class installer for 'vport0p2' dvi: No CoInstallers found dvi: Default installer: Enter 17:39:39.406 dvi: {Select Best Driver} ! dvi: Selecting driver failed(0xe0000228) dvi: {Select Best Driver - exit(0xe0000228)} ! dvi: Default installer: failed! ! dvi: Error 0xe0000228: There are no compatible drivers for this device. dvi: {DIF_SELECTBESTCOMPATDRV - exit(0xe0000228)} 17:39:39.421 ndv: {Core Device Install} 17:39:39.421 ! ndv: Installing NULL driver! dvi: Set selected driver complete. dvi: {DIF_ALLOW_INSTALL} 17:39:39.453 dvi: No class installer for 'vport0p2' dvi: Default installer: Enter 17:39:39.453 dvi: Default installer: Exit dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 17:39:39.453 dvi: {DIF_INSTALLDEVICE} 17:39:39.453 dvi: No class installer for 'vport0p2' dvi: Default installer: Enter 17:39:39.453 ! dvi: Installing NULL driver! dvi: Writing common driver property settings. dvi: {Restarting Devices} 17:39:39.468 dvi: Restart: {6FDE7547-1B65-48AE-B628-80BE62016026}\VIOSERIALPORT\4&7E8053E&4&02 dvi: Restart complete. dvi: {Restarting Devices exit} 17:39:39.546 dvi: Default installer: Exit dvi: {DIF_INSTALLDEVICE - exit(0x00000000)} 17:39:39.546 ndv: Device install status=0xe0000203 ndv: Performing device install final cleanup... ! ndv: Queueing up error report since device installation failed... ndv: {Core Device Install - exit(0xe0000203)} 17:39:39.546 ump: Server install process exited with code 0xe0000203 17:39:39.562 <<< Section end 2015/09/17 17:39:39.562 <<< [Exit status: FAILURE(0xe0000203)] Expected results: Expects that channel device will be correctly installed Additional info: Thanks for help.