[CentOS-virt] CentOS 7 Xen 4.12 libvirt/virt-manager wrong path for qemu-system-i386

Mon May 27 17:17:16 UTC 2019
Pasi Kärkkäinen <pasik at iki.fi>

Hi,

On Wed, May 22, 2019 at 10:46:25AM +0100, Anthony PERARD wrote:
> On Sun, May 05, 2019 at 02:23:22PM +0300, Pasi Kärkkäinen wrote:
> > Hello,
> 
> Thanks for the bug report.
> 
> > While testing Virt-SIG Xen 4.12 rpms on CentOS7 I noticed the following problem with libvirt/virt-manager when manually installing a new HVM guest from virt-manager GUI.. basicly the VM installation won't start, because libvirt/virt-manager is not able to start the VM, due to "missing" qemu-system-i386 binary:
> > 
> > Unable to complete install: 'unsupported configuration: emulator '/usr/lib/xen/bin/qemu-system-i386' not found'
> > 
> > Traceback (most recent call last):
> >   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
> >     callback(asyncjob, *args, **kwargs)
> >   File "/usr/share/virt-manager/virtManager/create.py", line 2553, in _do_async_install
> >     guest.start_install(meter=meter)
> >   File "/usr/share/virt-manager/virtinst/guest.py", line 498, in start_install
> >     doboot, transient)
> >   File "/usr/share/virt-manager/virtinst/guest.py", line 434, in _create_guest
> >     domain = self.conn.createXML(install_xml or final_xml, 0)
> >   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3725, in createXML
> >     if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
> > libvirtError: unsupported configuration: emulator '/usr/lib/xen/bin/qemu-system-i386' not found
> 
> Starting a guest with libvirt works fine, libvirt is able to find the
> qemu binary. (Well, libxl can...)
> 
> Here is an osstest flight starting an HVM guest with libvirt:
> http://logs.test-lab.xenproject.org/osstest/logs/136701/test-amd64-amd64-libvirt-qemuu-debianhvm-amd64/info.html
> 
> Maybe the issue is that I need to rebuild `libvirt-python' and
> `virt-manager' packages?
> 

Hmm.. maybe. I guess we need to investigate a bit more where the directory path is actually coming from..


> > Quick'n'dirty fix is to create a symlink:
> > 
> > 	ln -s /usr/lib64/xen/bin/qemu-system-i386 /usr/lib/xen/bin/qemu-system-i386
> > 
> > .. after creating that symlink the VM can be started just fine and works OK.
> > 
> > We need to fix that default directory path for qemu-system-i386 to be correct out-of-the-box..
> 
> I can certainly move the binary from "/usr/lib64" to "/usr/lib", and
> hope it doesn't break anything, with Xen 4.10 packages the qemu binary
> is in /usr/lib64. But to be honest I don't know which is best for CentOS
> between "lib64" and "lib".
> 

I think /usr/lib64/ is the correct location, as the qemu-system-i386 binary is 64bit:

# file /usr/lib64/xen/bin/qemu-system-i386
/usr/lib64/xen/bin/qemu-system-i386: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=12576991824bc1611d8630aaa30df9b00f175980, stripped



> -- 
> Anthony PERARD


Thanks,

-- Pasi