[libvirt] The console can't capture user's input. Is it readonly or read/write?

Yin Olivia-R63875 r63875 at freescale.com
Fri Feb 22 09:21:47 UTC 2013


Hi Daniel,

Since there's no machine serial port for FSL PowerPC board, I just use '-serial' option for ppc architecture.

libvirt-0.10.1/src/qemu/qemu_command.c:
@@ -5491,7 +5491,8 @@

             /* Use -chardev with -device if they are available */
             if (qemuCapsGet(qemuCaps, QEMU_CAPS_CHARDEV) &&
-                qemuCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) {
+                qemuCapsGet(qemuCaps, QEMU_CAPS_DEVICE) &&
+                !STREQ(def->os.arch, "ppc")) {
                 virCommandAddArg(cmd, "-chardev");
                 if (!(devstr = qemuBuildChrChardevStr(&serial->source,
                                                       serial->info.alias,



The QEMU command is:
# /usr/bin/qemu-system-ppc -name demo -M ppce500v2 -enable-kvm -m 256 -nographic -kernel /media/ram/uImage -initrd /media/ram/ramdisk -append "root=/dev/ram rw console=ttyS0,115200" -serial pty -serial tcp::4445,server

Use virsh to generate XML file as below:
<domain type='kvm'>
  <name>demo</name>
  <uuid>83014cf3-40c8-4a79-ed2a-71fa1767bb4e</uuid>
  <memory unit='KiB'>262144</memory>
  <currentMemory unit='KiB'>262144</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='ppc' machine='ppce500v2'>hvm</type>
    <kernel>/media/ram/uImage</kernel>
    <initrd>/media/ram/ramdisk</initrd>
    <cmdline>root=/dev/ram rw console=ttyS0,115200</cmdline>
  </os>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-ppc</emulator>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <serial type='tcp'>
      <source mode='bind' host='' service='4445'/>
      <protocol type='raw'/>
      <target port='1'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <memballoon model='virtio'/>
  </devices>
</domain>

# virsh -c qemu:///system define demo.xml
# virsh -c qemu:///system start demo
# virsh -c qemu:///system console demo


It could print the booting message now but still can't capture user's input.
Otherwise users could not login and operate on the guest rootfs or run user space application on guest VM.

Exactly if reset the domain, the console could display the kernel reboot message on domain.
# virsh -c qemu:///system reset dome

It seemed that the console is readonly instead of read/write.
Do you have any suggestion about this issue?

Best Regards,
Olivia




More information about the libvir-list mailing list