From e79ddcf985910078a2f27414240d2c1e0a883848 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Mon, 10 Jun 2013 14:56:07 +0200 Subject: [vmplayer] enable sound and 3D in vmplayer --- remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'remote/modules/vmplayer') diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include index 837513d2..d3fa9981 100644 --- a/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include +++ b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include @@ -174,8 +174,7 @@ ethernet0.address = \"00:50:56:${VM_ID}:${machostpart}\" ethernet0.wakeOnPcktRcv = \"FALSE\" # sound -#TODO: enable sound -sound.present = \"FALSE\" +sound.present = \"TRUE\" sound.fileName = \"-1\" sound.autodetect = \"TRUE\" sound.virtualdev = \"${sound}\" @@ -343,8 +342,7 @@ sound="es1371" # check for 3D configuration setting case "${enable3d}" in *true*|*yes*) - #TODO: enable 3D - enable3d="FALSE" + enable3d="TRUE" ;; *) enable3d="FALSE" -- cgit v1.2.3-55-g7522 From 27732611c8a6b3e7aeae47b98927e1a23d20b1a6 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 11 Jun 2013 15:21:19 +0200 Subject: [vmplayer] clean up run-virt.include: drop support for old player versions [vmplayer] limit RAM to 3800MB on 32bit [xorg] include libglx on openSUSE [rootfs-stage32] add gfx driver loading service - currently not actually loading them, but checking for i915 gfx to enable 3D support in VMWare Player --- .../data/etc/openslx/vmware/run-virt.include | 448 +++++++++++---------- .../modules/vmplayer/data/opt/openslx/bin/vmplayer | 4 + remote/modules/xorg/xorg.conf.zypper | 1 + .../etc/systemd/system/load-gfx-driver.service | 9 + .../sysinit.target.wants/load-gfx-driver.service | 1 + .../data/opt/openslx/bin/load-gfx-driver | 16 + remote/rootfs/rootfs-stage32/rootfs-stage32.conf | 7 +- .../rootfs-stage32/rootfs-stage32.conf.zypper | 7 +- remote/targets/stage32-opensuse/alsa | 1 + 9 files changed, 274 insertions(+), 220 deletions(-) create mode 100644 remote/rootfs/rootfs-stage32/data/etc/systemd/system/load-gfx-driver.service create mode 120000 remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/load-gfx-driver.service create mode 100755 remote/rootfs/rootfs-stage32/data/opt/openslx/bin/load-gfx-driver create mode 120000 remote/targets/stage32-opensuse/alsa (limited to 'remote/modules/vmplayer') diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include index d3fa9981..9b0fea91 100644 --- a/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include +++ b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include @@ -20,7 +20,7 @@ runvmwareconfheader () { -echo "# This configuration file was generated by $0" >${conffile} +echo "# This configuration file was generated by $0" > "$conffile" # check for the ostype case "${vmostype}" in @@ -48,6 +48,7 @@ case "${vmostype}" in ;; windows7*) shfolders="TRUE" + enable3d="TRUE" ;; windows8*) shfolders="TRUE" @@ -71,120 +72,104 @@ case "${vmostype}" in shfolders="FALSE" ;; esac -case "$vmversion" in - *) - svga_autodetect="TRUE" - numvcpus="1" - echo ".encoding = \"UTF-8\" -# version specific stuff - all versions -config.version = \"8\"" >>${conffile} - ;; -esac -case "$vmversion" in - 2.*|3.*|4.*|5.*|6.*|7.*|8.*|9.*) - [ ${shfolders} == FALSE ] || echo " -# version specific stuff - ver. 2.*|3.*|6.*|7.*|8.*|9.* -sharedFolder.option = \"alwaysEnabled\"" >>${conffile} - ;; -esac -case "$vmversion" in - 2.5|3.*|4.*|5.*|6.5|7.*|8.*|9.*) - if [ "${cpu_cores}" -ge "2" 2>/dev/null ]; then - numvcpus="2" - fi - if [ "${mem}" -ge "8000" 2>/dev/null ]; then - mem=8000 - fi - cap3d="TRUE" # helper var for loging output - echo " -# version specific stuff - ver. 2.5|3.*|6.5|7.* -ehci.present = \"TRUE\" -mks.enable3d = \"${enable3d}\"" >>${conffile} - ;; -esac -case "$vmversion" in - 3.*|4.*|7.*|8.*|9.*) - numvcpus="${cpu_cores}" - if [ "${cpu_cores}" -ge "4" 2>/dev/null ]; then - numvcpus="4" - fi - # svga_autodetect="FALSE" # if defined manual, see below - echo " + +svga_autodetect="TRUE" + +numvcpus="${cpu_cores}" +[ "${cpu_cores}" -ge "4" 2>/dev/null ] && numvcpus="4" + +if [ "x$shfolders" != "xFALSE" ]; then + ENABLE_SHARE='sharedFolder.option = "alwaysEnabled"' +else + ENABLE_SHARE='' +fi + +[ "${mem}" -ge "8000" ] && mem=8000 + +cap3d="WHAT IS THIS VAR USED FOR?" # helper var for loging output + +cat >> "$conffile" <>${conffile} - ;; -esac +cpuid.coresPerSocket = "$cpu_cores" +maxvcpus = "4" +monitor.virtual_mmu = "automatic" +monitor.virtual_exec = "automatic" +floppy1.clientDevice = "FALSE" +floppy1.readonly = "TRUE" -echo " # id -virtualHW.version = \"${hwver}\" -displayName = \"${displayname}\" -guestOS = \"${vmostype}\" +virtualHW.version = "$hwver" +displayName = "$displayname" +guestOS = "$vmostype" # CPU/MEM -numvcpus = \"${numvcpus}\" -memsize = \"${mem}\" -MemAllowAutoScaleDown = \"FALSE\" -MemTrimRate = \"-1\" +numvcpus = "$numvcpus" +memsize = "$mem" +MemAllowAutoScaleDown = "FALSE" +MemTrimRate = "-1" # ide-disks -ide0:0.present = \"${ide}\" -ide0:0.fileName = \"${diskfile}\" -ide0:0.mode = \"independent-nonpersistent\" -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\" +ide0:0.present = "$ide" +ide0:0.fileName = "$diskfile" +ide0:0.mode = "independent-nonpersistent" +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 = \"${diskfile}\" -scsi0.virtualDev = \"${hddrv}\" -scsi0:0.mode = \"independent-nonpersistent\" +scsi0.present = "$scsi" +scsi0:0.present = "$scsi" +scsi0:0.fileName = "$diskfile" +scsi0.virtualDev = "$hddrv" +scsi0:0.mode = "independent-nonpersistent" # floppies -floppy0.present = \"${floppy0}\" -floppy0.startConnected = \"FALSE\" -floppy0.autodetect = \"TRUE\" -floppy0.fileName = \"auto detect\" +floppy0.present = "$floppy0" +floppy0.startConnected = "FALSE" +floppy0.autodetect = "TRUE" +floppy0.fileName = "auto detect" + # we need floppy b: for our windows client configuration -floppy1.present = \"${floppy1}\" -floppy1.startConnected = \"TRUE\" -floppy1.fileType = \"file\" -floppy1.fileName = \"${floppy1name}\" +floppy1.present = "$floppy1" +floppy1.startConnected = "TRUE" +floppy1.fileType = "file" +floppy1.fileName = "$floppy1name" # nics -ethernet0.present = \"TRUE\" -ethernet0.addressType = \"static\" -${network_virtualDev} -ethernet0.connectionType = \"${network_kind}\" -#ethernet1.connectionType = \"custom\" -#ethernet1.vnet = \"/dev/vmnet2\" -ethernet0.address = \"00:50:56:${VM_ID}:${machostpart}\" -ethernet0.wakeOnPcktRcv = \"FALSE\" +ethernet0.present = "TRUE" +ethernet0.addressType = "static" +$network_virtualDev +ethernet0.connectionType = "$network_kind" +#ethernet1.connectionType = "custom" +#ethernet1.vnet = "/dev/vmnet2" +ethernet0.address = "00:50:56:$VM_ID:$machostpart" +ethernet0.wakeOnPcktRcv = "FALSE" # sound -sound.present = \"TRUE\" -sound.fileName = \"-1\" -sound.autodetect = \"TRUE\" -sound.virtualdev = \"${sound}\" +sound.present = "TRUE" +sound.fileName = "-1" +sound.autodetect = "TRUE" +sound.virtualdev = "$sound" # svga -svga.autodetect = \"${svga_autodetect}\" +svga.autodetect = "$svga_autodetect" # usb -usb.present = \"TRUE\" -usb.generic.autoconnect = \"TRUE\" +usb.present = "TRUE" +usb.generic.autoconnect = "TRUE" # pci configuration usb.pciSlotNumber = "16" @@ -194,35 +179,37 @@ ehci.pciSlotNumber = "19" scsi0.pciSlotNumber = "20" # shared folders -sharedFolder0.present = \"${shfolders}\" -sharedFolder0.enabled = \"${shfolders}\" -sharedFolder0.expiration = \"never\" -sharedFolder0.guestName = \"${sharename}\" -sharedFolder0.hostPath = \"${sharepath}\" -sharedFolder0.readAccess = \"TRUE\" -sharedFolder0.writeAccess = \"TRUE\" -sharedFolder.maxNum = \"1\" +$ENABLE_SHARE +sharedFolder0.present = "$shfolders" +sharedFolder0.enabled = "$shfolders" +sharedFolder0.expiration = "never" +sharedFolder0.guestName = "$sharename" +sharedFolder0.hostPath = "$sharepath" +sharedFolder0.readAccess = "TRUE" +sharedFolder0.writeAccess = "TRUE" +sharedFolder.maxNum = "1" # dirs/configs -tmpDirectory = \"${redodir}\" -redoLogDir = \"${redodir}\" -mainMem.useNamedFile = \"TRUE\" -snapshot.disabled = \"TRUE\" -tools.syncTime = \"TRUE\" -isolation.tools.hgfs.disable = \"FALSE\" -hgfs.mapRootShare = \"TRUE\" -isolation.tools.dnd.disable = \"FALSE\" -isolation.tools.copy.enable = \"TRUE\" -isolation.tools.paste.enabled = \"TRUE\" +tmpDirectory = "$redodir" +redoLogDir = "$redodir" +mainMem.useNamedFile = "TRUE" +snapshot.disabled = "TRUE" +tools.syncTime = "TRUE" +isolation.tools.hgfs.disable = "FALSE" +hgfs.mapRootShare = "TRUE" +isolation.tools.dnd.disable = "FALSE" +isolation.tools.copy.enable = "TRUE" +isolation.tools.paste.enabled = "TRUE" # serial port -serial0.present = \"${serial}\" -${serialdev} +serial0.present = "$serial" +$serialdev # parallel port -parallel0.present = \"${parallel}\" -parallel0.bidirectional = \"${paralbidi}\" -${paraldev}" >>${conffile} +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 @@ -230,67 +217,72 @@ chmod u+rwx ${conffile} >/dev/null 2>&1 preferencesheader () { -echo ".encoding = \"UTF-8\" + cat > "$vmhome/preferences" <${vmhome}/preferences +HEREEND # different eula parameters from Workstation 9+/ Player 5+ -case "$vmversion" in + case "$vmversion" in 3.*|4.*|7.*|8.*) - echo " -pref.eula.size = \"2\" -pref.eula.0.appName = \"VMware Player\" -pref.eula.0.buildNumber = \"${vmbuild}\" -pref.eula.1.appName = \"VMware Workstation\" -pref.eula.1.buildNumber = \"${vmbuild}\"" >>${vmhome}/preferences + cat >> "$vmhome/preferences" <>${vmhome}/preferences + cat >> "$vmhome/preferences" </dev/null 2>&1 -mkdir -p ${confdir} >/dev/null 2>&1 -mkdir -p ${vmhome}/dndlogs >/dev/null 2>&1 -touch ${vmhome}/dndlogs/dndlog.conf >/dev/null 2>&1 +mkdir -p "$redodir" >/dev/null 2>&1 +mkdir -p "$confdir" >/dev/null 2>&1 +mkdir -p "$vmhome/dndlogs" >/dev/null 2>&1 +touch "$vmhome/dndlogs/dndlog.conf" >/dev/null 2>&1 # create preferences preferencesheader # create VMware startup file runvmwareconfheader + # link to conffile if confdir != redodir -ln -s ${conffile} ${redodir}/run-vmware.conf >/dev/null 2>&1 +ln -s "$conffile" "$redodir/run-vmware.conf" >/dev/null 2>&1 # sync is needed to ensure that data is really written to virtual disk sync @@ -423,7 +439,7 @@ sync # own nvram. We need it for floppy drive b, default nvram has just drive a # TODO: optimize, currently kinda inefficient, too much copys, but we # don't know which one is installed... -cp /etc/openslx/vmware/nvram ${confdir}/nvram 2>/dev/null +cp "/etc/openslx/vmware/nvram" "$confdir/nvram" 2>/dev/null # logging and stdout diff --git a/remote/modules/vmplayer/data/opt/openslx/bin/vmplayer b/remote/modules/vmplayer/data/opt/openslx/bin/vmplayer index 030e9175..147f514f 100755 --- a/remote/modules/vmplayer/data/opt/openslx/bin/vmplayer +++ b/remote/modules/vmplayer/data/opt/openslx/bin/vmplayer @@ -1,6 +1,10 @@ #!/bin/sh # radically simplified version of the original script vmplayer by VMware Inc. PREFIX=/usr/lib/vmware # depends on the vmware location + +# HACK: Let the OpenGL driver report s3tc capability even if not present, so 3D will be enabled +export force_s3tc_enable=true + exec "$PREFIX"'/lib/wrapper-gtk24.sh' \ "$PREFIX"'/lib' \ "$PREFIX"'/bin/vmplayer' \ diff --git a/remote/modules/xorg/xorg.conf.zypper b/remote/modules/xorg/xorg.conf.zypper index e0636dd7..33aba5eb 100644 --- a/remote/modules/xorg/xorg.conf.zypper +++ b/remote/modules/xorg/xorg.conf.zypper @@ -23,6 +23,7 @@ REQUIRED_CONTENT_PACKAGES=" xorg-x11 xkeyboard-config xkbcomp dejavu-fonts + libxcb-glx0 kdm-branding-openSUSE" REQUIRED_BINARIES=" Xorg gtf diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/load-gfx-driver.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/load-gfx-driver.service new file mode 100644 index 00000000..bdf3258c --- /dev/null +++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/load-gfx-driver.service @@ -0,0 +1,9 @@ +[Unit] +Description=Load DRM GFX driver and 3D +Before=sysinit.target shutdown.target +DefaultDependencies=no + +[Service] +Type=oneshot +ExecStart=/opt/openslx/bin/load-gfx-driver +RemainAfterExit=yes diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/load-gfx-driver.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/load-gfx-driver.service new file mode 120000 index 00000000..b72d0453 --- /dev/null +++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/load-gfx-driver.service @@ -0,0 +1 @@ +../load-gfx-driver.service \ No newline at end of file diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/load-gfx-driver b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/load-gfx-driver new file mode 100755 index 00000000..04fbea6e --- /dev/null +++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/load-gfx-driver @@ -0,0 +1,16 @@ +#!/bin/bash + +PCIFILE=/tmp/lspci-output + +if ! lspci -n > "$PCIFILE"; then + echo "lspci -n failed..." + exit 1 +fi + +if grep -E ' 8086:0152( |$)' "$PCIFILE" > /dev/null; then + echo "i915 - enable 3D" + echo -e "# Written by load-gfx-driver\nSLX_VMWARE_3D=yes" >> "/opt/openslx/config" +fi + +exit 0 + diff --git a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf index a2dd3987..5437621d 100644 --- a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf +++ b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf @@ -50,7 +50,8 @@ REQUIRED_LIBRARIES=" libcap libresolv libau" REQUIRED_DIRECTORIES="/lib/xtables" -REQUIRED_FILES=" /etc/issue +REQUIRED_FILES=" + /etc/issue /etc/inputrc /etc/localtime /etc/login.defs @@ -61,7 +62,9 @@ REQUIRED_FILES=" /etc/issue /etc/netconfig /etc/modprobe.d/blacklist.conf /etc/fonts/fonts.conf - /etc/X11/app-defaults/Xvidtune" + /etc/X11/app-defaults/Xvidtune + /etc/ld.so.cache +" REQUIRED_KERNEL_MODULES=" kernel/drivers/cpufreq kernel/drivers/memstick kernel/drivers/mfd diff --git a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf.zypper b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf.zypper index 89ffb6a1..70fa2a2f 100644 --- a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf.zypper +++ b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf.zypper @@ -20,7 +20,8 @@ REQUIRED_LIBRARIES=" libcap libtinfo libresolv libau" -REQUIRED_FILES=" /etc/issue +REQUIRED_FILES=" + /etc/issue /etc/inputrc /etc/localtime /etc/login.defs @@ -29,7 +30,9 @@ REQUIRED_FILES=" /etc/issue /etc/services /etc/networks /etc/netconfig - /usr/share/X11/app-defaults/Xvidtune" + /usr/share/X11/app-defaults/Xvidtune + /etc/ld.so.cache +" REQUIRED_KERNEL_MODULES=" kernel/drivers/cpufreq kernel/drivers/memstick kernel/drivers/mfd diff --git a/remote/targets/stage32-opensuse/alsa b/remote/targets/stage32-opensuse/alsa new file mode 120000 index 00000000..7e13d263 --- /dev/null +++ b/remote/targets/stage32-opensuse/alsa @@ -0,0 +1 @@ +../../modules/alsa \ No newline at end of file -- cgit v1.2.3-55-g7522