I’m running Tizen Studio 5.0 on a Windows 11 Pro PC. When I try to launch the TV emulator, I receive a popup error message “-enable-whpx: invalid option” and the emulator does not launch.
I've been following instructions from these links:
Installing TV SDK | Samsung Developers
Quick-start Guide | Samsung Developers
I am able to connect to a physical Samsung TV and deploy my app there, but I simply cannot get the emulator to run.
So far, I've verified:
I've tried running the emulator via the command line. I receive the same "-enable-whpx: invalid option" message box, and a bunch of console output. Here is the output:
C:\tizen-studio\tools\emulator\bin> .\em-cli.bat -v launch -n t-0214-1
[2023.2.14 17:59:47.86][WARNING][ProfileList.get] cannot find profile
[2023.2.14 17:59:47.89][WARNING][EMLogger.printStackTrace] java.lang.NoClassDefFoundError: org/tizen/emulator/manager/ui/item/CommonViewItemFactoryV3
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:757)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
at org.tizen.emulator.manager.plugin.EMPlugin.prepareLegacyEndpoint(EMPlugin.java:327)
at org.tizen.emulator.manager.plugin.EMPlugin.initEMPlugin(EMPlugin.java:171)
at org.tizen.emulator.manager.platform.Preparer.initializePlugin(Preparer.java:172)
at org.tizen.emulator.manager.platform.Preparer.initPlatformList(Preparer.java:139)
at org.tizen.emulator.manager.platform.Preparer.execute(Preparer.java:66)
at org.tizen.emulator.manager.EmulatorManager.initialize(EmulatorManager.java:61)
at org.tizen.emulator.manager.console.Main.startConsoleProcessor(Main.java:21)
at org.tizen.emulator.manager.console.Main.main(Main.java:65)
Caused by: java.lang.ClassNotFoundException: org.tizen.emulator.manager.ui.item.CommonViewItemFactoryV3
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
... 19 more
[2023.2.14 17:59:47.215][INFO][VMWorkerCommon.<init>] called VMWorkerCommon.
[2023.2.14 17:59:47.215][INFO][VMWorkerCommon.initLauncher] called initLauncher of VMWorkerCommon.
[2023.2.14 17:59:47.220][INFO][HelperClass.runProcess] Try to run external process: [C:\tizen-studio\tools\emulator\bin\check-gl.exe]
[2023.2.14 17:59:47.220][INFO][HelperClass.runProcess] -- Working dir : C:\tizen-studio\tools\emulator\bin
[2023.2.14 17:59:47.458][INFO][CheckGPU.work] Support GPU: true
[2023.2.14 17:59:47.458][INFO][CheckGPU.work] Gallium: false
[2023.2.14 17:59:47.458][INFO][HelperClass.runProcess] Try to run external process: [C:\tizen-studio\tools\emulator\bin\check-whpx.exe, hyper-v]
[2023.2.14 17:59:47.459][INFO][HelperClass.runProcess] -- Working dir : C:\tizen-studio\tools\emulator\bin
[2023.2.14 17:59:47.489][INFO][HelperClass.runProcess] Try to run external process: [C:\tizen-studio\tools\emulator\bin\check-hax.exe]
[2023.2.14 17:59:47.489][INFO][HelperClass.runProcess] -- Working dir : C:\tizen-studio\tools\emulator\bin
[2023.2.14 17:59:47.521][INFO][CheckVT.work] Support HW virtualization: true
[2023.2.14 17:59:47.521][INFO][CheckVT.work] non-UG: false
[2023.2.14 17:59:47.525][INFO][HelperClass.runProcess] Try to run external process: [C:\tizen-studio\tools\emulator\bin\check-whpx.exe, hyper-v]
[2023.2.14 17:59:47.525][INFO][HelperClass.runProcess] -- Working dir : C:\tizen-studio\tools\emulator\bin
[2023.2.14 17:59:47.554][INFO][HelperClass.runProcess] Try to run external process: [C:\tizen-studio\tools\emulator\bin\check-net.exe, --proxy]
[2023.2.14 17:59:47.554][INFO][HelperClass.runProcess] -- Working dir : C:\tizen-studio\tools\emulator\bin
[2023.2.14 17:59:47.584][INFO][NetworkProxy.getHostProxy] check-net result : MODE:None
[2023.2.14 17:59:47.584][WARNING][NetworkProxy.getHostProxy] Can't find host proxy setting.
Launch command : "C:\tizen-studio\platforms/tizen-7.0/tv-samsung/emulator\bin\emulator.cmd" --conf "C:\tizen-studio-data\emulator\vms\t-0214-1\vm_launch.conf" -j "C:\tizen-studio\jdk\bin\java"
[2023.2.14 17:59:47.584][INFO][VMLauncher.getCommand] Starting Emulator Command :
[2023.2.14 17:59:47.585][INFO][VMLauncher.getCommand] "C:\tizen-studio\platforms/tizen-7.0/tv-samsung/emulator\bin\emulator.cmd" --conf "C:\tizen-studio-data\emulator\vms\t-0214-1\vm_launch.conf" -j "C:\tizen-studio\jdk\bin\java"
[2023.2.14 17:59:47.585][INFO][VMLauncher.launchInternal] Command list for ProcessBuilder
[2023.2.14 17:59:47.585][INFO][VMLauncher.launchInternal] [C:\tizen-studio\platforms/tizen-7.0/tv-samsung/emulator\bin\emulator.cmd, --conf, C:\tizen-studio-data\emulator\vms\t-0214-1\vm_launch.conf, -j, C:\tizen-studio\jdk\bin\java]
[2023.2.14 17:59:47.770][WARNING][LaunchingMonitor.executeInternal] Emulator has been terminated in 8seconds.
The VM is launched
[2023.2.14 17:59:47.772][INFO][Main$EMShutdownHook.run] EMShutdownHook called
Any advice on what to try next?
==== UPDATE AFTER FOLLOWING ADVICE ====
After following advice from @Sangwook Lee, I no longer receive the "-enable-whpx: invalid option" error. However, my emulator still does not start. Trying to start it produces two log files, emulator.log
and emulator.klog
. The .klog
file is empty, and here is the content of the .log
file:
21:06:32.817|32784|I| osutil| 396|Running with elevated integrity level. Try to respawn.
21:06:32.821|32784|I| osutil| 427|Respawning success. Waiting for child process.
21:06:32.832|20244|I| main| 345|Start emulator...
qemu args: =========================================
"C:\tizen-studio\platforms\tizen-7.0\tv-samsung\emulator\bin\\emulator-x86_64" "-drive" "file=C:\tizen-studio-data\emulator\vms\T-samsung-7.0-x86\emulimg-T-samsung-7.0-x86.x86,if=none,index=0,cache.no-flush=on,id=drive" "-device" "virtio-blk-pci,drive=drive" "-drive" "file=C:\tizen-studio-data\emulator\vms\T-samsung-7.0-x86\swap-T-samsung-7.0-x86.img,if=none,index=1,id=swap" "-device" "virtio-blk-pci,drive=swap" "-enable-hax" "-device" "vigs,backend=gl,wsi=vigs_wsi" "-device" "yagl,wsi=vigs_wsi" "-smp" "4" "-m" "1024" "-device" "maru-virtual-tuner,system=ATSC,country=USA,table=C:\tizen-studio-data\emulator\vms\T-samsung-7.0-x86\tuner_default.cfg,stillimg=C:\tizen-studio\platforms\tizen-7.0\tv-samsung\emulator-resources\images,wsi=vigs_wsi" "-net" "nic,model=virtio" "-net" "user" "-chardev" "file,path=C:\tizen-studio-data\emulator\vms\T-samsung-7.0-x86\logs\emulator.klog,id=con0" "-device" "isa-serial,chardev=con0" "-device" "virtio-serial" "-L" "C:\tizen-studio\platforms/tizen-7.0/tv-samsung/emulator\data\bios" "-kernel" "C:\tizen-studio\platforms/tizen-7.0/tv-samsung/emulator\data\kernel\bzImage.x86" "-append" "vm_name=T-samsung-7.0-x86 video=LVDS-1:1920x1080-32@60 dpi=72 clocksource=hpet consoleblank=0 host_ip=10.0.2.2 console=ttyS0 model=4ksero yagl=1 force_pat" "-device" "virtio-maru-touchscreen-pci,max_point=10" "-nodefaults" "-device" "virtio-maru-esm-pci" "-device" "virtio-maru-hwkey-pci" "-device" "virtio-maru-evdi-pci" "-device" "virtio-maru-motor-pci" "-device" "virtio-maru-keyboard-pci" "-rtc" "base=utc" "-M" "maru-x86-machine" "-soundhw" "all" "-usb" "-vga" "none" "-device" "maru-external-input-pci,stillimg=C:\tizen-studio\platforms\tizen-7.0\tv-samsung\emulator-resources\images,wsi=vigs_wsi" "-display" "maru_qt,rendering=onscreen,resolution=1920x1080,dpi=72"
====================================================
21:06:32.835|20244|I| main| 348|qemu main start...
21:06:32.835|20244|I|emul_state| 733|initial display resolution: 1920x1080
21:06:32.835|20244|I|qt5_consol| 171|display density: 72
21:06:33.009|20244|I|qt5_supple| 515|* Qt version (compile time): 5.6.0
21:06:33.009|20244|I|qt5_supple| 516|* Qt version (runtime): 5.6.0
21:06:33.009|20244|I|qt5_supple| 517|* working path: "C:/tizen-studio/platforms/tizen-7.0/tv-samsung/emulator/bin"
21:06:33.009|20244|I|qt5_supple| 518|* binary path: "C:/tizen-studio/platforms/tizen-7.0/tv-samsung/emulator/bin"
21:06:33.009|20244|I|qt5_supple| 519|* Qt plugin library path: ("C:/tizen-studio/platforms/tizen-7.0/tv-samsung/emulator/bin")
21:06:33.009|20244|I|qt5_consol| 153|Display Type: QT5 Onscreen
ram_size 0x40000000
device fd:000000000000068c
21:06:33.019|20244|I| main| 157|* Board name : Maru
21:06:33.019|20244|I| main| 158|* Package Version: 2.8.0.26
21:06:33.019|20244|I| main| 159|* Package Maintainer: Jingjing geng <jingjin.geng@samsung.com>
21:06:33.019|20244|I| main| 160|* Git Head :
21:06:33.019|20244|I| main| 161|*
21:06:33.019|20244|I| main| 162|* User name : paulf
21:06:33.019|20244|I| main| 163|* Host name : TURING
21:06:33.019|20244|I| main| 166|* Build date : 2022-12-09 10:28:33 IST
21:06:33.019|20244|I| main| 175|* Current time : 2023-02-21 21:06:33
21:06:33.019|20244|I| main| 179|* Host Qt version : 5.6.0
21:06:33.019|20244|I| main| 192|* Host SDL version : 2.0.4
21:06:33.020|20244|I| osutil| 165|* Windows
21:06:33.020|20244|I| osutil| 166|* LibPNG Version : 1.6.21
21:06:33.020|20244|I| osutil| 173|* MajorVersion : 6, MinorVersion : 2, BuildNumber : 9200, PlatformId : 2, CSDVersion :
21:06:33.020|20244|I| osutil| 193|* Total Ram : 66807272 kB, Free: 50237628 kB
21:06:33.020|20244|I|net_helper| 178|Emulator base port is 26100.
21:06:33.020|20244|I|net_helper| 715|start sdb noti server thread.
21:06:33.020|20244|I|net_helper| 740|success to bind port[127.0.0.1:26103/udp] for sdb noti server in host
21:06:33.020|20244|I| main| 239|kernel commandline : vm_name=T-samsung-7.0-x86 video=LVDS-1:1920x1080-32@60 dpi=72 clocksource=hpet consoleblank=0 host_ip=10.0.2.2 console=ttyS0 model=4ksero yagl=1 force_pat sdb_port=26100, vm_resolution=1920x1080
dsound: Registering endpoint notification callback succeeded.
dsound: (dsound_create_thread) Done
dsound: (dsound_initialization_thread) CoInitializeEx succeeded
dsound: (dsound_audio_in_init) success
dsound: (dsound_audio_init) finished
Failed to sync vcpu reg
Failed to sync vcpu reg
Failed to sync vcpu reg
Failed to sync vcpu reg
Failed to sync vcpu reg
Failed to sync HAX vcpu context
dsound: (dsound_audio_fini)
dsound: (dsound_initialization_thread)thread exiting ...
dsound: (dsound_audio_fini)end uninitialize to free
21:06:33.081|20244|I|net_helper| 704|shutdown sdb notification server.
21:06:33.081|20244|I| main| 91|Exit emulator...
Thanks to Sangwook Lee and Jianhua Bi for their assistance. Here is what worked for me.
Environment
Steps
dism /Online /Disable-Feature:Microsoft-Hyper-V-All
bcdedit /set hypervisorlaunchtype Off
sc config vmickvpexchange start= disabled
sc config vmicguestinterface start= disabled
sc config vmicshutdown start= disabled
sc config vmicheartbeat start= disabled
sc config vmicvmsession start= disabled
sc config vmicrdv start= disabled
sc config vmictimesync start= disabled
sc config vmicvss start= disabled
reg add HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity /v Enabled /t REG_DWORD /d 0 /f