mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
xend: support multiple consoles per domain
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
This commit is contained in:
1 parent
c811d0d548
commit
7e03843de6
4 files changed
+24
-7
No files matched your search
@@ -1432,6 +1432,16 @@ class XendConfig(dict):
|
||||
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:
|
||||
|
||||
@@ -286,6 +286,9 @@ class ImageHandler:
|
||||
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 @@ class HVMImageHandler(ImageHandler):
|
||||
|
||||
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 } )
|
||||
|
||||
@@ -352,7 +352,7 @@ gopts.var('irq', val='IRQ',
|
||||
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 @@ gopts.var('vfb', val="vnc=1,sdl=1,vncunused=1,vncdisplay=N,vnclisten=ADDR,displa
|
||||
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 @@ def configure_vfbs(config_devs, vals):
|
||||
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"):
|
||||
|
||||