[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Enable xm console for vmx guest.
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 74737286e9f5156c44fb202edaae9dc900697f38 # Parent d5775d0bcf1e5bc1b076aa55ca5e92eecd053784 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 d5775d0bcf1e -r 74737286e9f5 tools/examples/xmexample.vmx --- a/tools/examples/xmexample.vmx Thu Nov 10 11:01:15 2005 +++ b/tools/examples/xmexample.vmx Thu Nov 10 11:04:29 2005 @@ -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 d5775d0bcf1e -r 74737286e9f5 tools/ioemu/target-i386-dm/Makefile --- a/tools/ioemu/target-i386-dm/Makefile Thu Nov 10 11:01:15 2005 +++ b/tools/ioemu/target-i386-dm/Makefile Thu Nov 10 11:04:29 2005 @@ -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 -lxenguest +LIBS+=-lm -L../../libxc -lxenctrl -lxenguest -L../../xenstore -lxenstore ifndef CONFIG_USER_ONLY LIBS+=-lz endif diff -r d5775d0bcf1e -r 74737286e9f5 tools/ioemu/vl.c --- a/tools/ioemu/vl.c Thu Nov 10 11:01:15 2005 +++ b/tools/ioemu/vl.c Thu Nov 10 11:04:29 2005 @@ -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-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |