From 1b48f7af13a72569696614a57526b49b37274f68 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Tue, 3 Nov 2009 14:42:12 +0100 Subject: [PATCH] Revert "kvm console: use socat raw mode with escape" This reverts commit ce0eb6694e3fb2510035501539c7acc92a0f174e, since it depends on 37fc2cf5ba8919cef407199ee540aad4b1a9a2b6 which will be reverted too. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/constants.py | 2 -- lib/hypervisor/hv_kvm.py | 23 +++++++++-------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/lib/constants.py b/lib/constants.py index 35cf2adac..eeba79b55 100644 --- a/lib/constants.py +++ b/lib/constants.py @@ -165,8 +165,6 @@ XEN_INITRD = _autoconf.XEN_INITRD KVM_PATH = _autoconf.KVM_PATH SOCAT_PATH = _autoconf.SOCAT_PATH -SOCAT_ESCAPE = _autoconf.SOCAT_ESCAPE -SOCAT_ESCAPE_CODE = "0x1d" KVM_MIGRATION_PORT = _autoconf.KVM_MIGRATION_PORT VALUE_DEFAULT = "default" diff --git a/lib/hypervisor/hv_kvm.py b/lib/hypervisor/hv_kvm.py index 4b09edd12..aada45bc7 100644 --- a/lib/hypervisor/hv_kvm.py +++ b/lib/hypervisor/hv_kvm.py @@ -114,18 +114,6 @@ class KVMHypervisor(hv_base.BaseHypervisor): """ return '%s/%s.serial' % (cls._CTRL_DIR, instance_name) - @staticmethod - def _SocatUnixConsoleParams(): - """Returns the correct parameters for socat - - If we have a new-enough socat we can use raw mode with an escape character. - - """ - if constants.SOCAT_ESCAPE: - return "raw,echo=0,escape=%s" % constants.SOCAT_ESCAPE_CODE - else: - return "echo=0,icanon=0" - @classmethod def _InstanceKVMRuntime(cls, instance_name): """Returns the instance KVM runtime filename @@ -690,8 +678,15 @@ class KVMHypervisor(hv_base.BaseHypervisor): """ if hvparams[constants.HV_SERIAL_CONSOLE]: - shell_command = ("%s STDIO,%s UNIX-CONNECT:%s" % - (constants.SOCAT_PATH, cls._SocatUnixConsoleParams(), + # FIXME: The socat shell is not perfect. In particular the way we start + # it ctrl+c will close it, rather than being passed to the other end. + # On the other hand if we pass the option 'raw' (or ignbrk=1) there + # will be no way of exiting socat (except killing it from another shell) + # and ctrl+c doesn't work anyway, printing ^C rather than being + # interpreted by kvm. For now we'll leave it this way, which at least + # allows a minimal interaction and changes on the machine. + shell_command = ("%s STDIO,echo=0,icanon=0 UNIX-CONNECT:%s" % + (constants.SOCAT_PATH, utils.ShellQuote(cls._InstanceSerial(instance.name)))) else: shell_command = "echo 'No serial shell for instance %s'" % instance.name -- GitLab