summaryrefslogblamecommitdiffstats
path: root/remote/modules/vmware/data/opt/openslx/vmchooser/vmware/includes/create_vmware_config_file_legacy.inc
blob: df6e6f393722961fc4c3e8677d6f2670b583b9c3 (plain) (tree)
































































































































































                                                                                
                                                                              
                                                                    
                                     
            
                             
                                    




                                                               




                                    











                                                   







































                                                                               
                                               




                                                                
                                         

                                               
                                               


































                                                             
                             





















                                                            
                                                               

















                                                                    
########################################
# Include: Create vmware startup files #
########################################

create_vmware_config_file_legacy() {
	echo "# This configuration file was generated by $0" > "$conffile"

	MAXMEM="9999999"
	MAXCORES="4"
	shfolders="TRUE"
	sound="es1371"

	# define hardware configuration depending on the guest OS used
	# this needs to be fixed and is the base for the creation of new VMs
	case "$vmostype" in
		win31*|windows31*)
			vmostype="win31"
			shfolders="FALSE"
			sound="sb16"
			MAXMEM="32"
			MAXCORES="1"
		;;
		winnt*|windowsnt*)
			vmostype="winnt"
			shfolders="FALSE"
			sound="sb16"
			MAXMEM="1000"
			MAXCORES="2"
		;;
		win95*|windows95*)
			vmostype="win95"
			shfolders="FALSE"
			MAXMEM="96"
			MAXCORES="1"
		;;
		win98*|windows98*)
			vmostype="win98"
			MAXMEM="256"
			MAXCORES="1"
		;;
		winme*|windowsme*)
			vmostype="winme"
			MAXMEM="384"
			MAXCORES="1"
		;;
		win2000|windows2000|win2000pro*)
			vmostype="win2000pro"
			MAXMEM="4000"
			MAXCORES="2"
		;;
		win2000srv*|windows2000srv*|win2000serv*|windows2000serv*)
			vmostype="win2000serv"
			shfolders="FALSE"
			MAXMEM="4000"
			MAXCORES="4"
		;;
		win2000adv*|windows2000adv*|win2000dat*|windows2000dat*)
			vmostype="win2000advserv"
			shfolders="FALSE"
			MAXMEM="8000"
			MAXCORES="8"
		;;
		winnet*64|win*2003*64|windowsnet*64)
			vmostype="winnetstandard-64"
			MAXMEM="8000"
		;;
		winnet*|win*2003*|windowsnet*)
			vmostype="winnetstandard"
			MAXMEM="4000"
		;;
		winxphome*|windowsxphome*)
			vmostype="winxphome"
			MAXMEM="4000"
			MAXCORES="1"
		;;
		winxp*64|windowsxp*64)
			vmostype="winxppro-64"
			MAXMEM="8000"
			MAXCORES="2"
		;;
		winxp*|windowsxp*)
			vmostype="winxppro"
			MAXMEM="4000"
			MAXCORES="1"
		;;
		winvista*64|windowsvista*64)
			vmostype="winvista-64"
			MAXMEM="16000"
			MAXCORES="2"
		;;
		winvista*|windowsvista*)
			vmostype="winvista"
			MAXMEM="8000"
			MAXCORES="2"
		;;
		win7*64|windows7*64)
			vmostype="windows7-64"
			MAXMEM="32000"
			MAXCORES="4"
		;;
		win7*|windows7*)
			vmostype="windows7"
			MAXMEM="8000"
			MAXCORES="4"
		;;
		win8*64|windows8*64)
			vmostype="windows8-64"
			MAXMEM="32000"
			MAXCORES="4"
		;;
		win8*|windows8*)
			vmostype="windows8"
			MAXMEM="8000"
			MAXCORES="4"
		;;
		win*64)
			MAXMEM="16000"
			MAXCORES="4"
		;;
		win*)
			MAXMEM="8000"
		;;
		dos|msdos*|ms-dos*)
			vmostype="dos"
			shfolders="FALSE"
			MAXMEM="128"
		;;
		macos*64)
			vmostype="freebsd-64"
			MAXMEM="4000"
			MAXCORES="2"
		;;
		macos*)
			vmostype="freebsd"
			MAXMEM="4000"
			MAXCORES="1"
		;;
		beos*)
			vmostype="other"
			shfolders="FALSE"
		;;
		# Unknown guestOS setting in .xml - use conservative defaults
		*64)
			vmostype="other-64"
			shfolders="FALSE"
			MAXMEM="123456"
			MAXCORES="4"
		;;
		*)
			vmostype="other"
			shfolders="FALSE"
			MAXMEM="8000"
			MAXCORES="1"
		;;
	esac
	real_core_count="$cpu_cores"
	[ "$cpu_cores" -gt "$MAXCORES" ] && cpu_cores="$MAXCORES"
	# It currently makes no sense to set the virtual number of cores
	# to a different value than the virtual number of cores per virtual CPU.
	cores_per_socket="$cpu_cores"

	if [ "x$shfolders" != "xFALSE" ] && [ "$SHARE_REMAP_MODE" != 1 ]; then
		enable_share='sharedFolder.option = "alwaysEnabled"'
		HGFS_DISABLED="FALSE"
	else
		enable_share=
		HGFS_DISABLED="TRUE"
	fi

	[ "$mem" -ge "$MAXMEM" ] && mem="$MAXMEM"
	[ "$hwver" -lt "7" -a "$mem" -gt "3500" ] && mem="3500"

	if [ -n "$FLOPPYIMG" ]; then
		floppy1="TRUE"
	else
		floppy1="FALSE"
	fi

	cat >> "$conffile" <<-HEREEND
		.encoding = "UTF-8"
		config.version = "8"

		# general hardware (ehci, 3d accel)
		ehci.present = "TRUE"
		$FORCE3D
		mks.enable3d = "$enable3d"

		monitor.virtual_mmu = "automatic"
		monitor.virtual_exec = "automatic"

		# id
		virtualHW.version = "$hwver"
		displayName = "$displayname"
		guestOS = "$vmostype"

		# CPU/MEM
		numvcpus = "$cpu_cores"
		cpuid.coresPerSocket = "$cores_per_socket"
		maxvcpus = "$real_core_count"
		memsize = "$mem"
		MemAllowAutoScaleDown = "FALSE"
		MemTrimRate = "-1"

		# ide-disks
		ide0:0.present = "$ide"
		ide0:0.fileName = "$vm_diskfile"
		## Edited for persistent mode.
		ide0:0.mode = "independent-${diskmode}"
		##
		ide1:0.present = "$cdrom0"
		ide1:0.autodetect = "TRUE"
		ide1:0.fileName = "auto detect"
		ide1:0.deviceType = "cdrom-raw"
		ide1:1.present = "$cdrom1"
		ide1:1.autodetect = "TRUE"
		ide1:1.fileName = "auto detect"
		ide1:1.deviceType = "cdrom-raw"

		# scsi-disks
		scsi0.present = "$scsi"
		scsi0:0.present = "$scsi"
		scsi0:0.fileName = "$vm_diskfile"
		scsi0.virtualDev = "$hddrv"
		## Edited for persistent mode.
		scsi0:0.mode = "independent-${diskmode}"$stateFileConfiguration
		##

		# floppies
		floppy0.present = "$floppy0"
		floppy0.startConnected = "TRUE"
		floppy0.autodetect = "TRUE"
		floppy0.fileName = "auto detect"

		# we need floppy b: for the client configuration
		floppy1.present = "$floppy1"
		floppy1.readonly = "TRUE"
		floppy1.startConnected = "TRUE"
		floppy1.fileType = "file"
		floppy1.fileName = "$FLOPPYIMG"

		# nics
		ethernet0.present = "TRUE"
		ethernet0.addressType = "static"
		$network_virtualDev
		#ethernet0.connectionType = "hostonly"
		ethernet0.connectionType = "custom"
		ethernet0.vnet = "$hostdev"
		ethernet0.address = "00:50:56:$macaddrsuffix"
		ethernet0.wakeOnPcktRcv = "FALSE"

		# sound
		sound.present = "TRUE"
		$sound_fileName
		sound.virtualdev = "$sound"
		pciSound.enableVolumeControl = "FALSE"
		sound.enableVolumeControl = "FALSE"

		# svga
		svga.autodetect = "TRUE"

		# usb
		usb.present = "TRUE"
		usb.generic.autoconnect = "TRUE"

		# pci configuration
		usb.pciSlotNumber = "16"
		ethernet0.pciSlotNumber = "17"
		sound.pciSlotNumber = "18"
		ehci.pciSlotNumber = "19"
		scsi0.pciSlotNumber = "20"

		$PCIE

		# shared folders
		$enable_share
		sharedFolder0.present = "$shfolders"
		sharedFolder0.enabled = "$shfolders"
		sharedFolder0.expiration = "never"
		sharedFolder0.guestName = "$homesharename"
		sharedFolder0.hostPath = "$homesharepath"
		sharedFolder0.readAccess = "TRUE"
		sharedFolder0.writeAccess = "TRUE"
		sharedFolder1.present = "$shfolders"
		sharedFolder1.enabled = "$shfolders"
		sharedFolder1.expiration = "never"
		sharedFolder1.guestName = "$commonsharename"
		sharedFolder1.hostPath = "$commonsharepath"
		sharedFolder1.readAccess = "TRUE"
		sharedFolder1.writeAccess = "TRUE"
		sharedFolder.maxNum = "2"

		# dirs/configs
		tmpDirectory = "$redodir"
		redoLogDir = "$redodir"
		mainMem.useNamedFile = "TRUE"
		snapshot.disabled = "TRUE"
		tools.syncTime = "TRUE"
		isolation.tools.hgfs.disable = "$HGFS_DISABLED"
		hgfs.mapRootShare = "TRUE"
		isolation.tools.dnd.disable = "FALSE"
		isolation.tools.copy.enable = "TRUE"
		isolation.tools.paste.enabled = "TRUE"

		# serial port
		serial0.present = "$serial"
		$serialdev

		# parallel port
		parallel0.present = "$parallel"
		parallel0.bidirectional = "$paralbidi"
		$paraldev
	HEREEND

	# set the appropriate permissions for the vmware config file
	chmod u+rwx "${conffile}" >/dev/null 2>&1
}