Eliminate --disable-gfx-check and make VNC default when SDL not available
--disable-gfx-check predates VNC server support. It made sense back then because the only thing you could do without SDL was use -nographic mode or similar tricks. Since this is a very advanced mode of operation, gfx-check provided a good safety net for casual users. A casual user is very likely to use VNC to interact with a guest. In fact, it's often frustrating to install QEMU on a server and have to specify disable-gfx-check when you only want to use VNC. This patch eliminates disable-gfx-check and makes SDL behave like every other optional dependency. If SDL is not available, instead of failing ungracefully if no special options are specified, we default to -vnc localhost:0,to=99. When we do default to VNC, we also print a message to tell the user that we've done this include which port we're currently listening on. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									eb0b64f7aa
								
							
						
					
					
						commit
						f92f8afebe
					
				
							
								
								
									
										19
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @ -172,7 +172,6 @@ solaris="no" | ||||
| kqemu="no" | ||||
| profiler="no" | ||||
| cocoa="no" | ||||
| check_gfx="yes" | ||||
| softmmu="yes" | ||||
| linux_user="no" | ||||
| darwin_user="no" | ||||
| @ -191,6 +190,7 @@ kerneldir="" | ||||
| aix="no" | ||||
| blobs="yes" | ||||
| fdt="yes" | ||||
| sdl="yes" | ||||
| sdl_x11="no" | ||||
| xen="yes" | ||||
| pkgversion="" | ||||
| @ -438,8 +438,6 @@ for opt do | ||||
|       sdl="no" ; | ||||
|       audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`" | ||||
|   ;; | ||||
|   --disable-gfx-check) check_gfx="no" | ||||
|   ;; | ||||
|   --disable-system) softmmu="no" | ||||
|   ;; | ||||
|   --enable-system) softmmu="yes" | ||||
| @ -835,7 +833,7 @@ fi | ||||
| 
 | ||||
| sdl_too_old=no | ||||
| 
 | ||||
| if test -z "$sdl" ; then | ||||
| if test "$sdl" = "yes" ; then | ||||
|     sdl_config="sdl-config" | ||||
|     sdl=no | ||||
|     sdl_static=no | ||||
| @ -1346,10 +1344,6 @@ echo "preadv support    $preadv" | ||||
| if test $sdl_too_old = "yes"; then | ||||
| echo "-> Your SDL version is too old - please upgrade to have SDL support" | ||||
| fi | ||||
| if [ -s $TMPSDLLOG ]; then | ||||
|   echo "The error log from compiling the libSDL test is: " | ||||
|   cat $TMPSDLLOG | ||||
| fi | ||||
| #if test "$sdl_static" = "no"; then | ||||
| #  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output" | ||||
| #fi | ||||
| @ -1772,15 +1766,6 @@ case "$target" in | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \ | ||||
|         -a "$sdl" = "no" -a "$cocoa" = "no" ; then | ||||
|     echo "ERROR: QEMU requires SDL or Cocoa for graphical output" | ||||
|     echo "To build QEMU without graphical output configure with --disable-gfx-check" | ||||
|     echo "Note that this will disable all output from the virtual graphics card" | ||||
|     echo "except through VNC or curses." | ||||
|     exit 1; | ||||
| fi | ||||
| 
 | ||||
| #echo "Creating $config_mak, $config_h and $target_dir/Makefile" | ||||
| 
 | ||||
| test -f $config_h && mv $config_h ${config_h}~ | ||||
|  | ||||
| @ -320,6 +320,7 @@ void vnc_display_close(DisplayState *ds); | ||||
| int vnc_display_open(DisplayState *ds, const char *display); | ||||
| int vnc_display_password(DisplayState *ds, const char *password); | ||||
| void do_info_vnc(Monitor *mon); | ||||
| char *vnc_display_local_addr(DisplayState *ds); | ||||
| 
 | ||||
| /* curses.c */ | ||||
| void curses_display_init(DisplayState *ds, int full_screen); | ||||
|  | ||||
							
								
								
									
										41
									
								
								vl.c
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								vl.c
									
									
									
									
									
								
							| @ -203,7 +203,7 @@ enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB; | ||||
| static DisplayState *display_state; | ||||
| int nographic; | ||||
| static int curses; | ||||
| static int sdl; | ||||
| static int sdl = 1; | ||||
| const char* keyboard_layout = NULL; | ||||
| int64_t ticks_per_sec; | ||||
| ram_addr_t ram_size; | ||||
| @ -5952,25 +5952,36 @@ int main(int argc, char **argv, char **envp) | ||||
|         } | ||||
|     } else {  | ||||
| #if defined(CONFIG_CURSES) | ||||
|             if (curses) { | ||||
|                 /* At the moment curses cannot be used with other displays */ | ||||
|                 curses_display_init(ds, full_screen); | ||||
|             } else | ||||
|         if (curses) { | ||||
|             /* At the moment curses cannot be used with other displays */ | ||||
|             curses_display_init(ds, full_screen); | ||||
|         } else | ||||
| #endif | ||||
|             { | ||||
|                 if (vnc_display != NULL) { | ||||
|                     vnc_display_init(ds); | ||||
|                     if (vnc_display_open(ds, vnc_display) < 0) | ||||
|                         exit(1); | ||||
|                 } | ||||
| #if defined(CONFIG_SDL) || defined(CONFIG_COCOA) | ||||
|         if (sdl) { | ||||
| #if defined(CONFIG_SDL) | ||||
|                 if (sdl || !vnc_display) | ||||
|                     sdl_display_init(ds, full_screen, no_frame); | ||||
|             sdl_display_init(ds, full_screen, no_frame); | ||||
| #elif defined(CONFIG_COCOA) | ||||
|                 if (sdl || !vnc_display) | ||||
|                     cocoa_display_init(ds, full_screen); | ||||
|             cocoa_display_init(ds, full_screen); | ||||
| #endif | ||||
|         } else | ||||
| #endif | ||||
|         { | ||||
|             int print_port = 0; | ||||
| 
 | ||||
|             if (vnc_display == NULL) { | ||||
|                 vnc_display = "localhost:0,to=99"; | ||||
|                 print_port = 1; | ||||
|             } | ||||
| 
 | ||||
|             vnc_display_init(ds); | ||||
|             if (vnc_display_open(ds, vnc_display) < 0) | ||||
|                 exit(1); | ||||
| 
 | ||||
|             if (print_port) { | ||||
|                 printf("VNC server running on `%s'\n", vnc_display_local_addr(ds)); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     dpy_resize(ds); | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										8
									
								
								vnc.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								vnc.c
									
									
									
									
									
								
							| @ -86,7 +86,6 @@ char *vnc_socket_local_addr(const char *format, int fd) { | ||||
|     return addr_to_string(format, &sa, salen); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| char *vnc_socket_remote_addr(const char *format, int fd) { | ||||
|     struct sockaddr_storage sa; | ||||
|     socklen_t salen; | ||||
| @ -2101,6 +2100,13 @@ int vnc_display_password(DisplayState *ds, const char *password) | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| char *vnc_display_local_addr(DisplayState *ds) | ||||
| { | ||||
|     VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display; | ||||
|      | ||||
|     return vnc_socket_local_addr("%s:%s", vs->lsock); | ||||
| } | ||||
| 
 | ||||
| int vnc_display_open(DisplayState *ds, const char *display) | ||||
| { | ||||
|     VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anthony Liguori
						Anthony Liguori