WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 2 of 5] xenconsole support for multiple consoles

To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH 2 of 5] xenconsole support for multiple consoles
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: Thu, 11 Jun 2009 16:07:55 +0100
Delivery-date: Thu, 11 Jun 2009 08:13:07 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.14 (X11/20080505)
This patch adds a new command line argument to xenconsole to specify to
which console to connect to in case a domain has more than one.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

---

diff -r 9d09062e0562 stubdom/stubdom-dm
--- a/stubdom/stubdom-dm        Thu Jun 11 15:24:27 2009 +0100
+++ b/stubdom/stubdom-dm        Thu Jun 11 16:06:16 2009 +0100
@@ -52,6 +52,10 @@
                 keymap=$2
                 shift
                 ;;
+           -serial)
+               serial="$2"
+               shift
+               ;;
        esac
     fi
     case "$1" in
@@ -100,6 +104,7 @@
 vncpasswd=`xenstore-read /local/domain/0/backend/vfb/$domid/0/vncpasswd 
2>/dev/null`
 test "$vncpasswd" && vfb="$vfb, vncpasswd=$vncpasswd"
 test "$keymap" && vfb="$vfb, keymap=$keymap"
+test "$serial" && vfb="$vfb, serial=$serial"
 echo "vfb = ['$vfb']" >> /etc/xen/stubdoms/$domname-dm
 
 echo -n "disk = [ " >> /etc/xen/stubdoms/$domname-dm
diff -r 9d09062e0562 tools/examples/xmexample.hvm-stubdom
--- a/tools/examples/xmexample.hvm-stubdom      Thu Jun 11 15:24:27 2009 +0100
+++ b/tools/examples/xmexample.hvm-stubdom      Thu Jun 11 16:06:16 2009 +0100
@@ -177,10 +177,12 @@
 
 #-----------------------------------------------------------------------------
 #   serial port re-direct to pty deivce, /dev/pts/n 
-#   then xm console or minicom can connect
+#   then xm console or minicom can connect.
+#   In the stubdoms case this option adds a secondary console to the
+#   stubdom because there is always one for logging.
+#   To connect to the guest serial you can use "xm console -n 1"
+#   followed by the domain name of the stubdom.
 # 
-# STUBDOM: always disable as the stub domain doesn't have access to dom0's
-# ptys
 #serial='pty'
 
 
diff -r 9d09062e0562 tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py       Thu Jun 11 15:24:27 2009 +0100
+++ b/tools/python/xen/xend/XendConfig.py       Thu Jun 11 16:06:16 2009 +0100
@@ -1433,6 +1433,16 @@
                    del dev_info['type']
                    log.debug("iwj dev_type=%s vfb setting dev_info['%s']" %
                                (dev_type, vfb_type))
+                if dev_info.get('serial') is not None :
+                    # Create two serial backends now, the location value is 
bogus, but does not matter
+                    cfg = self.console_add('vt100', '0')
+                    c_uuid = uuid.createString()
+                    target['devices'][c_uuid] = ('console', cfg)
+                    target['console_refs'].append(c_uuid)
+                    cfg = self.console_add('vt100', '1')
+                    c_uuid = uuid.createString()
+                    target['devices'][c_uuid] = ('console', cfg)
+                    target['console_refs'].append(c_uuid)
                 
             elif dev_type == 'console':
                 if 'console_refs' not in target:
diff -r 9d09062e0562 tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py    Thu Jun 11 15:24:27 2009 +0100
+++ b/tools/python/xen/xend/image.py    Thu Jun 11 16:06:16 2009 +0100
@@ -286,6 +286,9 @@
             if dev_type == 'vfb':
                 if 'keymap' in dev_info:
                     keymap = dev_info.get('keymap',{})
+                if 'serial' in dev_info:
+                    ret.append("-serial")
+                    ret.append(dev_info.get('serial',{}))
                 if int(dev_info.get('vnc', 0)) != 0 :
                     has_vnc = True
                 if int(dev_info.get('sdl', 0)) != 0 :
@@ -746,12 +749,10 @@
 
         if not self.display :
             self.display = ''
-        # Do not store sdl, opengl and serial related qemu cli options
+        # Do not store sdl and opengl qemu cli options
         self.vm.storeVm(("image/dmargs", " ".join([ x for x in self.dmargs
                         if x != "-sdl"
-                        and x != "-disable-opengl"
-                        and x != "-serial"
-                        and x != "pty" ])),
+                        and x != "-disable-opengl" ])),
                         ("image/device-model", self.device_model),
                         ("image/display", self.display))
         self.vm.permissionsVm("image/dmargs", { 'dom': self.vm.getDomid(), 
'read': True } )
diff -r 9d09062e0562 tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py     Thu Jun 11 15:24:27 2009 +0100
+++ b/tools/python/xen/xm/create.py     Thu Jun 11 16:06:16 2009 +0100
@@ -352,7 +352,7 @@
          For example 'irq=7'.
          This option may be repeated to add more than one IRQ.""")
 
-gopts.var('vfb', 
val="vnc=1,sdl=1,vncunused=1,vncdisplay=N,vnclisten=ADDR,display=DISPLAY,xauthority=XAUTHORITY,vncpasswd=PASSWORD,opengl=1,keymap=FILE",
+gopts.var('vfb', 
val="vnc=1,sdl=1,vncunused=1,vncdisplay=N,vnclisten=ADDR,display=DISPLAY,xauthority=XAUTHORITY,vncpasswd=PASSWORD,opengl=1,keymap=FILE,serial=FILE",
           fn=append_value, default=[],
           use="""Make the domain a framebuffer backend.
           Both sdl=1 and vnc=1 can be enabled at the same time.
@@ -364,7 +364,8 @@
           For sdl=1, a viewer will be started automatically using the
           given DISPLAY and XAUTHORITY, which default to the current user's
           ones.  OpenGL will be used by default unless opengl is set to 0.
-          keymap overrides the XendD configured default layout file.""")
+          keymap overrides the XendD configured default layout file.
+         Serial adds a second serial support to qemu.""")
 
 gopts.var('vif', 
val="type=TYPE,mac=MAC,bridge=BRIDGE,ip=IPADDR,script=SCRIPT," + \
           "backend=DOM,vifname=NAME,rate=RATE,model=MODEL,accel=ACCEL",
@@ -827,7 +828,7 @@
         for (k,v) in d.iteritems():
             if not k in [ 'vnclisten', 'vncunused', 'vncdisplay', 'display',
                           'videoram', 'xauthority', 'sdl', 'vnc', 'vncpasswd',
-                          'opengl', 'keymap' ]:
+                          'opengl', 'keymap', 'serial' ]:
                 err("configuration option %s unknown to vfbs" % k)
             config.append([k,v])
         if not d.has_key("keymap"):

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>