<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
<BR> <BR>
> Date: Wed, 6 Jan 2010 10:09:55 -0500<BR>> From: crobinso@redhat.com<BR>> To: x_k_123@hotmail.com<BR>> CC: berrange@redhat.com; libvirt-list@redhat.com<BR>> Subject: Re: [libvirt] [virt-tools-list] Questions about virt-manager running on Arch of Itanium 64<BR>> <BR>> On 01/04/2010 08:27 PM, Dustin Xiong wrote:<BR>> > <BR>> > <BR>> > <BR>> > <BR>> >> Date: Mon, 4 Jan 2010 11:46:06 -0500<BR>> >> From: crobinso@redhat.com<BR>> >> To: x_k_123@hotmail.com<BR>> >> CC: berrange@redhat.com; libvirt-list@redhat.com<BR>> >> Subject: Re: [libvirt] [virt-tools-list] Questions about virt-manager running on Arch of Itanium 64<BR>> >><BR>> >> On 12/25/2009 03:48 AM, Dustin Xiong wrote:<BR>> >><BR>> >>>>> If i want to update qemu_conf.c to handle ia64 , which files or <BR>> >>>>> datastruct needs to update ? Only the qemu_conf.c ?<BR>> !
 >>>><BR>> >>>> If you search for the table <BR>> >>>><BR>> >>>> static const struct qemu_arch_info const arch_info_hvm[] = {<BR>> >>>><BR>> >>>> It is probably (hopefully?) sufficient to just add <BR>> >>>><BR>> >>>> { "ia64", 64, NULL, "/usr/bin/qemu-system-ia64", NULL, NULL, 0 },<BR>> >>>><BR>> >>>> The key test is that when you later run<BR>> >>>><BR>> >>>> virsh capabilities<BR>> >>>><BR>> >>>> it should show the /usr/bin/qemu-system-ia64 binary, and also report that<BR>> >>>> KVM is present. <BR>> >>>><BR>> >>>> I have a feeling you might also need to add code to the src/nodeinfo.c<BR>> >>>> file, since I think that /proc/cpuinfo on ia64 is in a different format<BR>> >>>> to that on x86_64. i!
 e, change the linuxNodeInfoCPUPopulate() method so<BR>> &gt!
 ;>&gt
;> it can also parse the ia64 format. This is used by the command<BR>> >>>><BR>> >>>> virsh nodeinfo<BR>> >>>><BR>> >>>><BR>> >>>> So once 'capabilities' and 'nodeinfo' are working on ia64, then it should<BR>> >>>> be possible to use virt-manager properly<BR>> >>>><BR>> >>> I modify the src, and build it to rpm. The libvirt could work.<BR>> >>><BR>> >>> And as you said, i add ia64 info into the qemu_conf.c. The result as below:<BR>> >>><BR>> >>><BR>> >>><BR>> >>> [root@kvm bin]# virsh capabilities<BR>> >>> <capabilities><BR>> >>><BR>> >>> <host><BR>> >>> <cpu><BR>> >>> <arch>ia64</arch><BR>> >>> </cpu><BR>> >>> <topology><BR>> >>> <cells num='1'&gt!
 ;<BR>> >>> <cell id='0'><BR>> >>> <cpus num='16'><BR>> >>> <cpu id='0'/><BR>> >>> <cpu id='1'/><BR>> >>> <cpu id='2'/><BR>> >>> <cpu id='3'/><BR>> >>> <cpu id='4'/><BR>> >>> <cpu id='5'/><BR>> >>> <cpu id='6'/><BR>> >>> <cpu id='7'/><BR>> >>> <cpu id='8'/><BR>> >>> <cpu id='9'/><BR>> >>> <cpu id='10'/><BR>> >>> <cpu id='11'/><BR>> >>> <cpu id='12'/><BR>> >>> <cpu id='13'/><BR>> >>> <cpu id='14'/><BR>> >>> <cpu id='15'/><BR>> >>> </cpus><BR>> >>> </cell><BR>> >>> </cells><BR>> >>> </topology><BR>> >>> </host><BR>> >>><BR>> >>> <guest><BR>&!
 gt; >>> <os_type>hvm</os_type><BR>> &g!
 t;>&g
t; <arch name='ia64'><BR>> >>> <wordsize>64</wordsize><BR>> >>> <emulator>/usr/bin/qemu-system-ia64</emulator><BR>> >>> <machine>ia64</machine><BR>> >>> <machine>xenner</machine><BR>> >>> <domain type='qemu'><BR>> >>> </domain><BR>> >>> <domain type='kvm'><BR>> >>> <emulator>/usr/bin/kvm</emulator><BR>> >>> </domain><BR>> >>> </arch><BR>> >>> <features><BR>> >>> <acpi default='on' toggle='yes'/><BR>> >>> <apic default='on' toggle='no'/><BR>> >>> </features><BR>> >>> </guest><BR>> >>><BR>> >>> </capabilities><BR>> >>><BR>> >>><BR>> >>><BR>> >>> [root@kvm bin]# virsh nodeinfo<BR>> >>> CPU!
  model: ia64<BR>> >>> CPU(s): 16<BR>> >>> CPU frequency: 1330 MHz<BR>> >>> CPU socket(s): 16<BR>> >>> Core(s) per socket: 1<BR>> >>> Thread(s) per core: 1<BR>> >>> NUMA cell(s): 1<BR>> >>> Memory size: 8252480 kB<BR>> >>><BR>> >>><BR>> >>><BR>> >>> But the virt-manager still can't work. When i create a new vm. <BR>> >>><BR>> >>> The error as below:<BR>> >>><BR>> >>><BR>> >>><BR>> >>> Unable to complete install 'libvirt.libvirtError internal error Domain ad didn't show up<BR>> >>><BR>> >>> Traceback (most recent call last):<BR>> >>> File "/usr/share/virt-manager/virtManager/create.py", line 718, in do_install<BR>> >>> dom = guest.start_install(False, meter = meter)<BR>> >>> File "/usr/lib/python2.4/site-packages/vir!
 tinst/Guest.py", line 660, in start_install<BR>> >>&g!
 t; retur
n self._do_install(consolecb, meter, removeOld, wait)<BR>> >>> File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 758, in _do_install<BR>> >>> self.domain = self.conn.createLinux(install_xml, 0)<BR>> >>> File "/usr/lib/python2.4/site-packages/libvirt.py", line 974, in createLinux<BR>> >>> if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)<BR>> >>> libvirtError: internal error Domain ad didn't show up<BR>> >>><BR>> >>><BR>> >>> I don't know how to resolve this error.<BR>> >>><BR>> >>> Thank you for your advice.<BR>> >>><BR>> >><BR>> >> What is the output in /var/log/libvirt/qemu/$vmname.log ?<BR>> > <BR>> > <BR>> > The output in /var/log/libvirt/qemu/vm10.log is :<BR>> > <BR>> > LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin HOME=/ /usr/bin/kvm -S -M ia64 -m 512 !
 -smp 1 -name vm10 -uuid 8adb1d1d-147f-710a-6d13-c71ba185f811 -monitor pty -pidfile /var/run/libvirt/qemu//vm10.pid -no-reboot -boot d -drive file=/var/lib/libvirt/images/vm10.img,if=ide,index=0,format=raw -drive file=/var/lib/libvirt/images/rhel-server-5.4-ia64-disc1.iso,if=ide,media=cdrom,index=2,format=raw -net nic,macaddr=52:54:00:59:bb:26,vlan=0 -net tap,fd=16,script=,vlan=0,ifname=vnet0 -serial pty -parallel none -usb -vnc 127.0.0.1:0 -k en-us <BR>> > Supported machines are:<BR>> > itanium Itanium Platform (default)<BR>> > <BR>> > <BR>> > <BR>> > -dustin<BR>> > <BR>> <BR>> Hmm, not sure why libvirt is passing '-M ia64' when the kvm binary only<BR>> expects '-M itanium'. Can you attach the diff you applied to the code?<BR>> Make sure you are building the latest code (either from tar.gz or git<BR>> checkout).<BR>> <BR>> What's the output of 'kvm -M ?' and 'qemu-system-ia64 -M ?'<BR>> <BR>> - Cole<BR>
 <BR>
I sloved the problem. I modify the libvirt /src/qemu_conf.c. Add the arch ia64 into the<BR>
static const struct qemu_arch_info const arch_info_hvm[] = {}<BR>as berrange said. So the libvirt passing -M ia64.<BR>
But the kvm binary only experts '-M itanium'.<BR>
So i replaced the ia64 by itanium in the file /src/qemu_conf.c. <BR>
Then the virt-manager finally could work on the arch of Itanium.<BR>
 <BR>
Thank you for your help.<BR>
Thank you, everyone here.<BR><BR>
-Dustin<BR>                                         <br /><hr />Keep your friends updated¡ª <a href='http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_5:092010' target='_new'>even when you¡¯re not signed in.</a></body>
</html>