On 28 June 2016 at 02:23, Cole Robinson <crobi...@redhat.com> wrote: > On 06/27/2016 09:05 AM, Kevin Zhao wrote: > > Hi Cole, > > > > On 24 June 2016 at 19:35, Cole Robinson <crobi...@redhat.com> wrote: > > > >> On 06/24/2016 12:58 AM, Kevin Zhao wrote: > >>> Hi Peter, > >>> Follow your advice, I have complied the Qemu v2.6. > >>> stack@u202158:~$ kvm --version > >>> QEMU emulator version 2.6.50 (v2.6.0-1280-g6f1d2d1-dirty), Copyright > (c) > >>> 2003-2008 Fabrice Bellard > >>> With this newest version, I use virt-manager to create the guest , > >> the > >>> xml file is in the attachment. But the Qemu return error when creating: > >>> *error: internal error: process exited while connecting to > monitor: > >>> qemu-system-aarch64: -device > >>> pci-bridge,chassis_nr=2,id=pci,bus=pci,addr=0x1: Duplicate ID 'pci' for > >>> device* > >>> > >> > >> That's probably this libvirt issue fixed in 1.3.4 and later: > >> > >> https://www.redhat.com/archives/libvirt-users/2016-April/msg00030.html > >> > >> I suggest testing with libvirt.git as well, there's been aarch64 related > >> patches trickling in regularly > >> > >> - Cole > >> > >> Thanks for your valuable advice. Follow your advice, I have build > the > > upstream vesion > > of libvirt. The libvirt version is : > > root@u202158:/opt/stack/kevin/libvirt/daemon# ./libvirtd > > 2016-06-27 12:11:03.501+0000: 28044: info : libvirt version: > 2.0.0 > > I stopped the system libvirtd-bin and libvirt-guests , then using > libvirtd > > above. > > > > Also I have replace the system Qemu with the Qemu 2.6.50 which I have > built > > from upstream : > > root@u202158:/opt/stack/kevin/libvirt# qemu-system-aarch64 > --version > > QEMU emulator version 2.6.50 (v2.6.0-1280-g6f1d2d1-dirty), > > Copyright (c) 2003-2008 Fabrice Bellard > > Using this XML in the attachment: > > Then Run virsh command to create guest: > > root@u202158:/opt/stack/kevin/libvirt/tools# ./virsh create > > /opt/stack/f23.xml --console > > error: Failed to create domain from /opt/stack/f23.xml > > error: internal error: process exited while connecting to > monitor: > > 2016-06-27T12:45:23.807405Z qemu-system-aarch64: -drive > > file=/var/lib/libvirt/qemu/nvram/f23_VARS.fd,if=pflash,format=raw,unit=1: > > Could not open '/var/lib/libvirt/qemu/nvram/f23_VARS.fd': > > Permission denied > > > > Here I met the permission problem and I'm not sure where is wrong. If I > use > > origin qemu-system-aarch64(installed by apt-get),I will not meet the > > problem of permission..Kindly need your help, you will be really > > appreciated,,, :D > > $ls -l /usr/bin/qemu-system-aarch64 > > -rwxr-xr-x 1 root root 26935520 Jun 27 10:56 /usr/bin/qemu-system-aarch64 > > $ls -l /var/lib/libvirt/qemu/nvram/f23_VARS.fd > > -rw------- 1 root root 67108864 Jun 20 07:27 > > /var/lib/libvirt/qemu/nvram/f23_VARS.fd > > > > > > > > Depending on how you compiled libvirt, it may run qemu as the unprivileged > qemu:qemu user. Perhaps that VM was created with the default compilation > options to run qemu as root:root, and whatever you are trying to run it > with > now is using qemu:qemu >
Yeah it really the problem with privilege. I change the /var/lib/libvirt/qemu/nvram/f23_VARS.fd to another directory so that qemu can access it,and no permission denied error again. Thank Cole. All: With the Qemu 2.6.50 and libvirt(commit 03ce1328086d6937d2647d616efff29941a3e80a): *I find that the problem that I have met before occurs again. I can reproduce it.* 1. After launching a VM with fedora23(for example), the xml is f23.xml in attachment. 2. Then use qemu-img command to generate a qemu disk f23-2.qcow2 and f23-3.qcow2 3. Add f23-2.qcow2 as sdc. $ ./virsh attach-device f23 /root/sdc.xml sdc.xml : <disk type="file" device="disk"> <driver name="qemu" type="qcow2"/> <source file="/var/lib/libvirt/images/f23-2.qcow2"/> <target dev="sdc" bus="scsi"/> </disk> Then in the Guest f23, we can see it takes effect immediately. 4. Add f23-3.qcow2 as sdh , also add virtio-scsi controller for sdh. $ ./virsh edit f23 add this below <controller type="scsi" index="1" model="virtio-scsi"/> <disk type="file" device="disk"> <driver name="qemu" type="qcow2"/> <source file="/var/lib/libvirt/images/f23-4.qcow2"/> <target dev="sdh" bus="scsi"/> </disk> $ ./virsh destory f23 && ./.virsh start f23 Got the error: 2016-06-28 11:37:17.017+0000: 6329: warning : qemuDomainObjTaint:3227 : Domain id=15 name='f23' uuid=e2de65f4-5d9a-4b90-a56a-ae40f4763aec is tainted: high-privileges 2016-06-28 11:37:17.017+0000: 6329: warning : qemuDomainObjTaint:3227 : Domain id=15 name='f23' uuid=e2de65f4-5d9a-4b90-a56a-ae40f4763aec is tainted: host-cpu 2016-06-28 11:37:28.546+0000: 6313: error : qemuMonitorIORead:583 : Unable to read from monitor: Connection reset by peer 2016-06-28 11:37:28.546+0000: 6313: error : qemuProcessReportLogError:1815 : internal error: qemu unexpectedly closed the monitor: qemu-system-aarch64: /opt/stack/kevin/qemu/migration/savevm.c:615: vmstate_register_with_alias_id: Assertion `!se->compat || se->instance_id == 0' failed. *So this bug seems exist with new qemu and new libvirt. * > > - Cole > >
<domain type="kvm"> <name>f23</name> <uuid>bf74479b-76da-4a84-962a-576394901f3a</uuid> <memory>1048576</memory> <currentMemory>1048576</currentMemory> <vcpu>1</vcpu> <os> <type arch="aarch64" machine="virt">hvm</type> <loader readonly="yes" type="pflash">/usr/share/AAVMF/AAVMF_CODE.fd</loader> <nvram>/var/lib/libvirt/images/f23_VARS.fd</nvram> <boot dev="cdrom"/> <boot dev="hd"/> </os> <cpu mode="host-passthrough"/> <clock offset="utc"/> <on_poweroff>destroy</on_poweroff> <on_reboot>destroy</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <disk type="file" device="disk"> <driver name="qemu" type="qcow2"/> <source file="/var/lib/libvirt/images/f23.qcow2"/> <target dev="sda" bus="scsi"/> </disk> <disk type="file" device="cdrom"> <driver name="qemu" type="raw"/> <source file="/var/lib/libvirt/images/Fedora-Server-DVD-aarch64-23.iso"/> <target dev="sdb" bus="scsi"/> <readonly/> </disk> <controller type="scsi" index="0" model="virtio-scsi"/> <interface type="network"> <source network="default"/> <mac address="52:54:00:ce:48:26"/> <model type="virtio"/> </interface> <console type="pty"/> </devices> </domain>