Re: caps->nguests == 0?
|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]|
2012/6/19 Alex Jia <ajia@xxxxxxxxxx>: > On 06/19/2012 02:56 PM, Zhihua Che wrote: >> >> hi, >> >> I compiled the libvirt-0.9.10 and started the libvirtd with sudo. >> Unfortunately, I got an Error, saying 'virDomainDefParseXML unknown OS >> type hvm'. I debugged it and found in function >> virCapabilitiesSupportsGuestOSType, the parameter caps->nguests is 0. >> On the other hand, I tried start the libvirtd with common user, and >> creating domain with virsh, i found the caps->ngusts is 2 and had one >> value 'hvm', so it didn't complain the error above, instead, it >> complained could not load PC BIOS bios.bin. >> >> I'd say I searched a lot and people say it's caused by without loading >> kvm and kvm-intel module. So, I checked and it is loaded. Any tips >> here? > > Please check libvirtd.log further, if you saw the following similar error: > > xxxx : xxxx : error : qemuCapsComputeCmdFlags:1209 : unsupported > configuration: this qemu binary requires libvirt to be compiled with yajl > xxxx : xxxx : error : virDomainDefParseXML:8312 : internal error No guest > options available for arch 'x86_64' > > It means you need to install yajl-devel rpm package, for more, you may run > './configure -h': > > # ./configure -h | grep yajl > --with-yajl use YAJL for JSON parsing/formatting > [default=check] > > BTW, If you're compiling a current libvirt upstream, you will get a friendly > reminder, so suggest to try latest libvirt upstream. >> I hack the code and I guess find the bug... But I wonder how this happened. First, I'm sorry I forgot to mention that I installed my qemu-system-x86_64 in a non-default path, that is, NOT in /usr/bin, /usr/local/bin etc. In this case, if I started up libvirtd with sudo, qemuCapsInitGuest failed to add hvm guest os type to driver->capabilities because it can't find qemu-system-x86_64 by searching environmental variable PATH!. But, the most confusing thing happened here. I've added the qemu-system-x86_64 in PATH by editing the /etc/bash.bashrc. Why can't it still find the qemu?. I found in qemuCapsInitGuest->virFindFileInPath(info->binary) that the call to getenv("PATH") didn't return the path I added myself! _______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users
[Virt Tools] [Lib OS Info] [Fedora Users] [Fedora Maintainers] [Fedora Desktop] [Fedora SELinux] [Big List of Linux Books] [Yosemite News] [Yosemite Photos] [KDE Users] [Fedora Tools]