[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH][RESEND]enable xm console for vmx guest
Enable xm console for vmx guest. When the serial port is redirect to pty, write the allocated device to xenstore, then xm console can get it. TODO:serial port by pty shall not block if there are no reading on the other end Signed-off-by: Xiaofeng Ling <xiaofeng.ling@xxxxxxxxx> # HG changeset patch # User Xiaofeng Ling <xiaofeng.ling@xxxxxxxxx> # Node ID 34d300132f3b4dc3944fbe980c97b84671c40e46 # Parent 1e82f5c841ac5cac5598040a5bc305835ff2965c Enable xm console for vmx guest. When the serial port is redirect to pty, write the allocated device to xenstore, then xm console can get it. TODO:serial port by pty shall not block if there are no reading on the other end Signed-off-by: Xiaofeng Ling <xiaofeng.ling@xxxxxxxxx> diff -r 25599e222c33 tools/examples/xmexample.vmx --- a/tools/examples/xmexample.vmx Mon Nov 7 18:14:45 2005 +0100 +++ b/tools/examples/xmexample.vmx Tue Nov 8 09:16:22 2005 +0800 @@ -117,6 +117,11 @@ #nographic=0 +#----------------------------------------------------------------------------- +# serial port re-direct to pty deivce, /dev/pts/n +# then xm console or minicom can connect +#serial='pty' + #---------------------------------------------------------------------------- # enable ne2000, default = 0(use pcnet) ne2000=0 diff -r 25599e222c33 tools/ioemu/target-i386-dm/Makefile --- a/tools/ioemu/target-i386-dm/Makefile Mon Nov 7 18:14:45 2005 +0100 +++ b/tools/ioemu/target-i386-dm/Makefile Tue Nov 8 09:16:22 2005 +0800 @@ -7,7 +7,7 @@ TARGET_PATH=$(SRC_PATH)/target-$(TARGET_ARCH) VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw:$(SRC_PATH)/audio DEFINES=-I. -I$(TARGET_PATH) -I$(SRC_PATH) -DEFINES+= -I$(XEN_ROOT)/tools/libxc +DEFINES+= -I$(XEN_ROOT)/tools/libxc -I$(XEN_ROOT)/tools/xenstore ifdef CONFIG_USER_ONLY VPATH+=:$(SRC_PATH)/linux-user DEFINES+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ARCH) @@ -188,7 +188,7 @@ ######################################################### DEFINES+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -LIBS+=-lm -L../../libxc -lxenctrl +LIBS+=-lm -L../../libxc -lxenctrl -L../../xenstore -lxenstore ifndef CONFIG_USER_ONLY LIBS+=-lz endif diff -r 25599e222c33 tools/ioemu/vl.c --- a/tools/ioemu/vl.c Mon Nov 7 18:14:45 2005 +0100 +++ b/tools/ioemu/vl.c Tue Nov 8 09:16:22 2005 +0800 @@ -76,6 +76,7 @@ #endif /* CONFIG_SDL */ #include "xenctrl.h" +#include "xs.h" #include "exec-all.h" //#define DO_TB_FLUSH @@ -1171,6 +1172,48 @@ return chr; } +int store_console_dev(int domid, char *pts) +{ + int xc_handle; + unsigned int len = 0; + struct xs_handle *xs; + char *path; + + xs = xs_daemon_open(); + if (xs == NULL) { + fprintf(logfile, "Could not contact XenStore\n"); + return -1; + } + + xc_handle = xc_interface_open(); + if (xc_handle == -1) { + fprintf(logfile, "xc_interface_open() error\n"); + return -1; + } + + path = xs_get_domain_path(xs, domid); + if (path == NULL) { + fprintf(logfile, "xs_get_domain_path() error\n"); + return -1; + } + path = realloc(path, strlen(path) + strlen("/console/tty") + 1); + if (path == NULL) { + fprintf(logfile, "realloc error\n"); + return -1; + } + strcat(path, "/console/tty"); + if (!xs_write(xs, NULL, path, pts, strlen(pts))) { + fprintf(logfile, "xs_write for console fail"); + return -1; + } + + free(path); + xs_daemon_close(xs); + close(xc_handle); + + return 0; +} + #if defined(__linux__) CharDriverState *qemu_chr_open_pty(void) { @@ -1182,6 +1225,7 @@ return NULL; } fprintf(stderr, "char device redirected to %s\n", slave_name); + store_console_dev(domid, slave_name); return qemu_chr_open_fd(master_fd, master_fd); } #else @@ -2701,7 +2745,9 @@ break; case QEMU_OPTION_nographic: pstrcpy(monitor_device, sizeof(monitor_device), "stdio"); - pstrcpy(serial_devices[0], sizeof(serial_devices[0]), "stdio"); + if(!strcmp(serial_devices[0], "vc")) + pstrcpy(serial_devices[0], sizeof(serial_devices[0]), + "stdio"); nographic = 1; break; #ifdef CONFIG_VNC _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |