winapps-org / winapps

The winapps main project, forked from https://github.com/Fmstrat/winapps/
Other
998 stars 45 forks source link

Need to connect to VM via Remmina first #114

Open robotictacos opened 4 months ago

robotictacos commented 4 months ago

Hi, As the title indicates, to get Winapps to work I first have to connect to the Windows machine via Remmina. I have configured a docker VM per the README, and this works fine. If I connect to that VM via Remmina, then disconnect, WinApps works 100% perfectly. However, if I reboot (I am running Arch btw), then directly try to run any of the Windows apps (Excel for example), the app crashes. Here is what that looks like if I run bin/winapps check:

`

bin/winapps check [07:39:57:223] [5896:00001709] [WARN][com.freerdp.crypto] - [verify_cb]: Certificate verification failure 'self-signed certificate (18)' at stack position 0 [07:39:57:223] [5896:00001709] [WARN][com.freerdp.crypto] - [verify_cb]: CN = RDPWindows

[07:39:57:301] [5896:00001709] [WARN][com.freerdp.core.license] - [license_read_binary_blob_data]: license binary blob::type BB_ERROR_BLOB, length=0, skipping. [07:39:57:326] [5896:00001709] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Local framebuffer format PIXEL_FORMAT_BGRA32 [07:39:57:326] [5896:00001709] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Remote framebuffer format PIXEL_FORMAT_BGRA32 [07:39:57:329] [5896:00001749] [INFO][com.freerdp.channels.rdpdr.client] - [devman_load_device_service]: Loading device service drive [home] (static) [07:39:57:329] [5896:00001709] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [static] Loaded fake backend for rdpsnd [07:39:57:329] [5896:00001709] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel ainput [07:39:57:329] [5896:00001709] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpgfx [07:39:57:329] [5896:00001709] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel disp [07:39:57:329] [5896:00001709] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpsnd [07:39:57:387] [5896:0000174e] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [dynamic] Loaded fake backend for rdpsnd [07:39:57:429] [5896:00001709] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow [07:39:57:438] [5896:00001709] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:39:57:440] [5896:00001709] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:39:57:688] [5896:00001709] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:39:57:690] [5896:00001709] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:39:57:695] [5896:00001709] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:39:57:776] [5896:00001709] [INFO][com.freerdp.client.x11] - [xf_logon_error_info]: Logon Error Info LOGON_FAILED_OTHER [LOGON_MSG_BUMP_OPTIONS]

[07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 0: dli_fname=/usr/lib/libwinpr3.so.3 [0x74532fcb9000], dli_sname=winpr_backtrace [0x74532fd2ac10] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 1: dli_fname=/usr/lib/libwinpr3.so.3 [0x74532fcb9000], dli_sname=winpr_log_backtrace_ex [0x74532fd2b020] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 2: dli_fname=xfreerdp [0x5a3b8674d000], dli_sname=(null) [(nil)] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 3: dli_fname=/usr/lib/libX11.so.6 [0x74532fb7b000], dli_sname=_XError [0x74532fbba630] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 4: dli_fname=/usr/lib/libX11.so.6 [0x74532fb7b000], dli_sname=(null) [(nil)] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 5: dli_fname=/usr/lib/libX11.so.6 [0x74532fb7b000], dli_sname=(null) [(nil)] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 6: dli_fname=/usr/lib/libX11.so.6 [0x74532fb7b000], dli_sname=_XReply [0x74532fbbc120] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 7: dli_fname=/usr/lib/libX11.so.6 [0x74532fb7b000], dli_sname=XSync [0x74532fbbc640] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 8: dli_fname=xfreerdp [0x5a3b8674d000], dli_sname=(null) [(nil)] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 9: dli_fname=xfreerdp [0x5a3b8674d000], dli_sname=(null) [(nil)] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 10: dli_fname=/usr/lib/libwinpr3.so.3 [0x74532fcb9000], dli_sname=(null) [(nil)] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 11: dli_fname=/usr/lib/libc.so.6 [0x74532f882000], dli_sname=(null) [(nil)] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 12: dli_fname=/usr/lib/libc.so.6 [0x74532f882000], dli_sname=(null) [(nil)] [07:39:57:808] [5896:00001709] [ERROR][com.freerdp.client.x11] - [winpr_log_backtrace_ex]: 13: unresolvable, address=(nil) X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 62 (X_CopyArea) Serial number of failed request: 207 Current serial number in output stream: 210 `

And here is what it looks like after I connect and subsequently disconnect via Remmina (dont actually need to do anything): `

bin/winapps check [07:41:18:145] [6444:0000192d] [WARN][com.freerdp.crypto] - [verify_cb]: Certificate verification failure 'self-signed certificate (18)' at stack position 0 [07:41:18:145] [6444:0000192d] [WARN][com.freerdp.crypto] - [verify_cb]: CN = RDPWindows

[07:41:19:241] [6444:0000192d] [WARN][com.freerdp.core.license] - [license_read_binary_blob_data]: license binary blob::type BB_ERROR_BLOB, length=0, skipping. [07:41:19:269] [6444:0000192d] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Local framebuffer format PIXEL_FORMAT_BGRA32 [07:41:19:269] [6444:0000192d] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Remote framebuffer format PIXEL_FORMAT_BGRA32 [07:41:19:272] [6444:0000196d] [INFO][com.freerdp.channels.rdpdr.client] - [devman_load_device_service]: Loading device service drive [home] (static) [07:41:19:272] [6444:0000192d] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [static] Loaded fake backend for rdpsnd [07:41:19:272] [6444:0000192d] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel ainput [07:41:19:272] [6444:0000192d] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpgfx [07:41:19:272] [6444:0000192d] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel disp [07:41:19:272] [6444:0000192d] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpsnd [07:41:19:328] [6444:00001972] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [dynamic] Loaded fake backend for rdpsnd [07:41:19:371] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow [07:41:19:375] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:375] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:382] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:641] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:680] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:723] [6444:0000192d] [INFO][com.freerdp.client.x11] - [xf_logon_error_info]: Logon Error Info SESSION_ID [LOGON_MSG_SESSION_CONTINUE] [07:41:19:743] [6444:0000196d] [INFO][com.freerdp.channels.rdpdr.client] - [device_announce]: registered [ drive] device #1: home (type=8 id=1) [07:41:19:810] [6444:00001972] [WARN][com.freerdp.channels.drdynvc.client] - [check_open_close_receive]: {Microsoft::Windows::RDS::DisplayControl:11} OnOpen=(nil), OnClose=0x774aeb65a6e0 [07:41:19:857] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:979] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:028] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:076] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:113] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:19:160] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:20:188] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:21:490] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:21:543] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:21:590] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:21:638] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:21:685] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:21:732] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:21:782] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:22:339] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

[07:41:22:361] [6444:0000192d] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow

^C[07:41:37:372] [6444:0000192c] [ERROR][com.freerdp.utils.signal] - [term_handler]: Caught signal 'Interrupt' [2] [07:41:37:372] [6444:0000192c] [INFO][com.freerdp.core] - [sig_abort_connect]: Signal Interrupt [2], terminating session 0x5652f0e5b3e0 [07:41:37:372] [6444:0000192c] [ERROR][com.freerdp.core] - [freerdp_abort_connect_context]: ERRCONNECT_CONNECT_CANCELLED [0x0002000B] [07:41:37:372] [6444:0000192c] [INFO][com.freerdp.client.common.cliprdr.file] - [fuse_abort]: signal Interrupt [2] aborting session [07:41:37:372] [6444:0000192d] [INFO][com.freerdp.client.common] - [client_auto_reconnect_ex]: Network disconnect! [07:41:37:372] [6444:0000192d] [WARN][com.freerdp.client.common] - [client_auto_reconnect_ex]: Connection aborted by user fuse: writing device: Bad file descriptor [07:41:37:381] [6444:00001972] [WARN][com.freerdp.channels.drdynvc.client] - [check_open_close_receive]: {Microsoft::Windows::RDS::DisplayControl:11} OnOpen=(nil), OnClose=0x774aeb65a6e0 `

I have tried a couple of different versions of FreeRDP, and that does not seem to matter, but FWIW I am running the latest 3.5 from the git repository for that currently.

oskardotglobal commented 3 months ago

Are you running Wayland or X11?

robotictacos commented 3 months ago

I normally run Wayland, but I rebooted and started an X11 session and retried it. It acts exactly the same, including working fine after logging in via Remmina.

LDprg commented 3 months ago

@robotictacos does the new patch #108 fixes your problem?

robotictacos commented 3 months ago

No that did not make any appreciable difference that I can see.

eylenburg commented 3 months ago

Same problem here. If I open start an app I get a full-screen (spanning across both my monitors) empty black FreeRDP window. I can't close it, have to kill it with the task manager.

This is what bin/winapps check says:

[12:45:35:603] [6276:00001885] [INFO][com.freerdp.client.x11] - [xf_setup_x11]: Enabling X11 debug mode.
[12:45:36:968] [6276:00001885] [WARN][com.freerdp.crypto] - [verify_cb]: Certificate verification failure 'self-signed certificate (18)' at stack position 0
[12:45:36:968] [6276:00001885] [WARN][com.freerdp.crypto] - [verify_cb]: CN = MYWINDO-C0PCT0Q
[12:45:36:968] [6276:00001885] [ERROR][com.winpr.sspi.Kerberos] - [kerberos_AcquireCredentialsHandleA]: krb5_parse_name (Configuration file does not specify default realm [-1765328160])
[12:45:36:968] [6276:00001885] [ERROR][com.winpr.sspi.Kerberos] - [kerberos_AcquireCredentialsHandleA]: krb5_parse_name (Configuration file does not specify default realm [-1765328160])
[12:45:36:970] [6276:00001885] [INFO][com.winpr.timezone] - [winpr_detect_windows_time_zone]: tzid: Europe/London
[12:45:36:972] [6276:00001885] [WARN][com.freerdp.core.license] - [license_read_binary_blob_data]: license binary blob::type BB_ERROR_BLOB, length=0, skipping.
[12:45:36:999] [6276:00001885] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Local framebuffer format  PIXEL_FORMAT_BGRA32
[12:45:36:999] [6276:00001885] [INFO][com.freerdp.gdi] - [gdi_init_ex]: Remote framebuffer format PIXEL_FORMAT_BGRA32
[12:45:36:03] [6276:000018a1] [INFO][com.freerdp.channels.rdpdr.client] - [devman_load_device_service]: Loading device service drive [home] (static)
[12:45:36:03] [6276:00001885] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [static] Loaded fake backend for rdpsnd
[12:45:36:03] [6276:00001885] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel ainput
[12:45:36:03] [6276:00001885] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpgfx
[12:45:36:03] [6276:00001885] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel disp
[12:45:36:03] [6276:00001885] [INFO][com.freerdp.channels.drdynvc.client] - [dvcman_load_addin]: Loading Dynamic Virtual Channel rdpsnd
[12:45:36:160] [6276:00001885] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow
[12:45:36:170] [6276:00001885] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow
[12:45:36:170] [6276:00001885] [WARN][com.freerdp.client.x11] - [xf_Pointer_Set]: handle=0
[12:45:36:173] [6276:00001885] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow
[12:45:36:173] [6276:00001885] [WARN][com.freerdp.client.x11] - [xf_Pointer_Set]: handle=0
[12:45:36:222] [6276:000018a6] [INFO][com.freerdp.channels.rdpsnd.client] - [rdpsnd_load_device_plugin]: [dynamic] Loaded fake backend for rdpsnd
[12:45:36:248] [6276:00001885] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow
[12:45:36:248] [6276:00001885] [WARN][com.freerdp.client.x11] - [xf_Pointer_Set]: handle=0
[12:45:36:258] [6276:00001885] [WARN][com.freerdp.client.x11] - [xf_Pointer_get_window]: xf_Pointer: Invalid appWindow
[12:45:36:258] [6276:00001885] [WARN][com.freerdp.client.x11] - [xf_Pointer_Set]: handle=0
[12:45:37:816] [6276:00001885] [INFO][com.freerdp.client.x11] - [xf_logon_error_info]: Logon Error Info SESSION_ID [UNKNOWN]

Remmina connects just fine.

~edit: at first I was able to run Remmina and then use Winapps just fine, but after a restart I always get the black window, even when starting a previously created app like explorer.exe!~ this fixed itself for some reason

eylenburg commented 3 months ago

I think I found a regularity. After a reboot, if I start a Winapps app immediately, I get a huge black FreeRDP window spanning all monitors and with no window decorations. Have to start the task manager and kill the window. However, if after a reboot, I use Remmina to connect to the Windows VM, then close Remmina, and then start the same Winapps app, it works perfectly fine. It's really weird.

My system is Fedora Kinoite, Plasma 6 desktop, Wayland, freerdp 3.5.1, and I'm using the Docker image for the Windows VM.

LDprg commented 3 months ago

Seems like this weird wayland bugs. We probably cannot help with this until sdl-freerdp supports RAIL.

robotictacos commented 3 months ago

I don't think it's Wayland.  I can open a desktop session in X11 and have the same result.  

IshmaelBelghazi commented 3 months ago

Same issue on ubuntu 24.04

oskardotglobal commented 3 months ago

Can one of you try to report this on the FreeRDP issue tracker if the issue also occurs when running the freerdp commands outside of freerdp?

oskardotglobal commented 3 months ago

I think I know how to resolve this: after starting the VM go to http://localhost:8006 and make sure to sign out before connecting to freerdp

@IshmaelBelghazi @robotictacos

eylenburg commented 3 months ago

Is there a way to automate it with a bash script?

oskardotglobal commented 3 months ago

Try disabling autologin from within the VM, if that works we can include it in the image

robotictacos commented 3 months ago

EDIT: Got rid of autologin by defining a password for the Docker user. However, even with that setup, I still have to login via Remmina once before Winapps starts to work.

eylenburg commented 3 months ago

Have you found any solution? This is such an annoying bug and it's probably really easy to solve but I can't figure it out

LDprg commented 3 months ago

Maybe something is missing when configuring the vm. Remmina maybe just set those values temporarily when connecting and leaves them after reboot.

Does this also apply on a new vm whiteout using remmina? Maybe remmina changes som3 rdp related settings?

eylenburg commented 2 months ago

In the VM, I disabled auto-login:

  1. Win + R for the "run" dialogue
  2. Enter netplwiz
  3. Check the "Users must enter a user name and password to use this computer" option

Then I restarted my computer and could launch a program with Winapps without the black window I encountered before. I'll keep an eye on it but that's a potential solution.

cleanerspam commented 1 month ago

In the VM, I disabled auto-login: Check the "Users must enter a user name and password to use this computer" option Then I restarted my computer and could launch a program with Winapps without the black window I encountered before. I'll keep an eye on it but that's a potential solution.

It is not working . Possibly some other reason