All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3 of 5] xend support for multiple consoles
@ 2009-06-11 15:07 Stefano Stabellini
  0 siblings, 0 replies; only message in thread
From: Stefano Stabellini @ 2009-06-11 15:07 UTC (permalink / raw)
  To: xen-devel

This patch adds support for secondary serials in xend.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

---

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 15:38:06 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/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 15:38:06 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 15:38:06 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 15:38:06 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"):

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-06-11 15:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-11 15:07 [PATCH 3 of 5] xend support for multiple consoles Stefano Stabellini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.