mvogt1's Posts

I see this behaviour in a pooled Linux Install, with RHEL 7.8: Sometimes I get a desktop with an already logged in user or a  session with a running "screensaver" by some user. I found out... See more...
I see this behaviour in a pooled Linux Install, with RHEL 7.8: Sometimes I get a desktop with an already logged in user or a  session with a running "screensaver" by some user. I found out, that "horizon" loses the information, that the host is in use. (disconneted or active) I'm using: - VMware-horizonagent-linux-x86_64-7.9.0-13916467 And I have host1,..,hostN in the pool. On the horizon server I can use the horizon admin API https://horizon.domain/admin/ with this I can check which sessions are in use by "user1" If I enter some the username "user1" the api shows: - no active/disconneted sessions for user1 (it shows no session) Now, when I connect with the the horizon client I get a logged session by user1 on hostX My conclusion: Some horizon component loses the information that the host is in use and serves a still running desktop environment/session as "available" I wrote a python script, which gets the active session in the pool: - who | grep tty | cut -d " " -f 1 | sort -u - and compares this with the state of the horizon api. I can see, that this scenario is not uncommon. Question: - Is this already fixed?
This needs debugging. You should connect from a windows client to the VDI host, and then start pcscd on the VDI VM not over the service, but by hand in a separate window with pcscd -d -a -f Th... See more...
This needs debugging. You should connect from a windows client to the VDI host, and then start pcscd on the VDI VM not over the service, but by hand in a separate window with pcscd -d -a -f Then you can see what pcscd is printing, when you logon. This should get you an idea, whats wrong.
You can check my posting to make it work: state of smartcard support on Linux (RHEL 7.6) Trouble with VMware Smartcard support
Smartcard works now. *More or less.* If the workaround from: https://communities.vmware.com/message/2871344 is applied, a new problem will come up. The system will break down slowly, if n... See more...
Smartcard works now. *More or less.* If the workaround from: https://communities.vmware.com/message/2871344 is applied, a new problem will come up. The system will break down slowly, if no one is logged in with vmware-view. - processes hangs - no (security) updates are applied Reproduce: ========== ssh into the system, make sure no one is logged in with vmware-view. Then start: /usr/bin/certwatch cerwatch will hang forever. cerwatch is part of "crypto-utils" and is used by the cron job is in "/etc/cron.daily/certwatch". The same will happen for yum updates, because yum in RHEL uses libpcsclite. Reason ====== The reason is the vmware pcscd, which will block any call, until a user "logs in". pcscd writes in this case: 00000011 bora/apps/rde/scrediragent/pcscd/pcscdaemon.c:100:SVCServiceRunLoop() A new context thread creation is requested: 6 00001192 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:405:ContextThread() Thread is started: dwClientID=6, threadContext @558826152590 00000064 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:420:ContextThread() Received command: CMD_VERSION from client 6 00000014 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:431:ContextThread() Client is protocol version 4:2 00000008 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:440:ContextThread() CMD_VERSION rv=0x0 for client 6 00000151 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:420:ContextThread() Received command: ESTABLISH_CONTEXT from client 6 00000034 bora/apps/rde/scrediragent/pcscd/pcscd-ipc.c:290:IPCRequest() ipc socket is 0, wait for connection from plugin This will only happen, of course, if no user is logged in with vmware-view, and only the system process are working. Workaround ========== You can apply an obvious fix in libpcsclite.so.1.0.0. The real solution is a fix in the vmware pcscd binary: - it should not block
Okay, after I checked the setup I found an older link: # ls -la /lib64/libpcsclite.so.1 lrwxrwxrwx. 1 root root 24 Jul 11 14:20 /lib64/libpcsclite.so.1 -> libpcsclite.so.1.0.0.org This i... See more...
Okay, after I checked the setup I found an older link: # ls -la /lib64/libpcsclite.so.1 lrwxrwxrwx. 1 root root 24 Jul 11 14:20 /lib64/libpcsclite.so.1 -> libpcsclite.so.1.0.0.org This is the lib from RHEL, and does not worked. After replacing it with my own build libpcsclite it works again. (libpcsclite is build with API TRACE and a few printf) # pkcs11-tool -L < [7F5578E36740] SCardEstablishContext 0, (nil), (nil) > [7F5578E36740] SCardEstablishContext 1874136285 < [7F5578E36740] SCardListReaders 1874136285 reading waiting for: 2944 > [7F5578E36740] SCardListReaders 32 < [7F5578E36740] SCardListReaders 1874136285 reading waiting for: 2944 > [7F5578E36740] SCardListReaders 32 < [7F5578E36740] SCardGetStatusChange 1874136285 0 1 < [7F5578E36740] SCardGetStatusChange [0] Generic EMV Smartcard Reader 0 0 0 reading waiting for: 2944 > [7F5578E36740] SCardGetStatusChange [0] Generic EMV Smartcard Reader 0 0 B0012 < [7F5578E36740] SCardConnect 1874136285 Generic EMV Smartcard Reader 0 3 3 > [7F5578E36740] SCardConnect 0 < [7F5578E36740] SCardGetStatusChange 1874136285 0 1 < [7F5578E36740] SCardGetStatusChange [0] Generic EMV Smartcard Reader 0 B0012 B0012 reading waiting for: 2944 reading waiting for: 2944
>The solution is to replace /lib64/libpcsclite.so.1.0.0. No. Yesterday it directly worked, after I replaced libpcsclite. It worked for linux and windows clients. Not only the  pkcs11-tool -L... See more...
>The solution is to replace /lib64/libpcsclite.so.1.0.0. No. Yesterday it directly worked, after I replaced libpcsclite. It worked for linux and windows clients. Not only the  pkcs11-tool -L but the whole pkcs11 stack(including smartcard login, firefore, thunderbird, email decrypt,...) Today it does not work anymore. The behaviour is the same, the whole chain works, but today it blocks again in libpcsclite read(3,Gemalto PC Twin Reader 00 00...",5888)=2944
The solution is to replace /lib64/libpcsclite.so.1.0.0. It seems pcsd by vmware is build with different compiler options, than the libpcsclite on RHEL and libpcsclite expects maybe some padding... See more...
The solution is to replace /lib64/libpcsclite.so.1.0.0. It seems pcsd by vmware is build with different compiler options, than the libpcsclite on RHEL and libpcsclite expects maybe some padding. I downloaded pcsc-lite-1.8.8 an build it with: ./configure --enable-usbdropdir=/usr/lib64/pcsc/drivers/ and then copied: cp src/.libs/libpcsclite.so.1.0.0 /lib64/ This works here.
It does work partially (!). For me it looks like, that the "back channel" in the vmware pcscd does not working correctly and libpsclite in RHEL drops the result, or waits for more data, to come.... See more...
It does work partially (!). For me it looks like, that the "back channel" in the vmware pcscd does not working correctly and libpsclite in RHEL drops the result, or waits for more data, to come. For debugging I'm using the command: >pkcs11-tool -L The output should be (depending on the reader type): >Slot 0 (0x0): Gemalto PC Twin Reader 00 00 When I strace the different components I can see, that the following works: But first, the setup: On the VDI host "v110" (the host to which I connect with vmware-view 4.10), I strace the pcscd from vmware. On the client "e120" (the host which starts vmware-wire and connects to "v110", I strace pcsd (from redhat) too. The sequence is: I connect from e120 with vmware-view and log into v110. There I open a terminal and start: >pkcs11-tool -L The strace on "v110" shows: 7700  write(1, "\33[36m00001019\33[0m bora/apps/rde/scrediragent/pcscd/winscard_svc.c::420:ContextThread() Received command: CMD_GET_READERS_STATE from client 9\n", 140) = 140 7700  write(1, "\33[36m00000201\33[0m \33[01;31mbora/apps/rde/scrediragent/pcscd/pcscd-ipc.c:337:IPCRequest() has received the connection from plugin\33[0m\n", 132) = 132 7700  select(8, NULL, [7], NULL, NULL)  = 1 (out [7]) The important part is the CMD_GET_READERS_STATE, which is the command to list the readers. ("-L option") This is actually forwarded to "e120". There the pcscd log shows: [pid  7942] write(1, "\33[36m00010040\33[0m winscard_svc.c:317:ContextThread() Receive command: CMD_GET_READERS_STATE from client 12\n", 108) = 108 [pid  7942] select(13, NULL, [12], NULL, NULL) = 1 (out [12]) [pid  7942] sendto(12, "Gemalto PC Twin Reader 00 00............. And this is seen on the "v110" too: 4536  read(7, "\277\16M*\0\0\0\0\0\0\0\0\0\0\0\0\36\0\0\0Gemalto PC Twin Reader 00 00..." 7700  write(1, "\33[36m00001391\33[0m \33[01;31mbora/apps/rde/scrediragent/pcscd/pcscd-ipc.c:337:IPCRequest() has received the connection from plugin\33[0m\n", 132) = 132 7700  sendto(7, "\277\16M*\0\0\0\0\2\0\0\0\\\\?PnP?\\Notification\0%s:%d:%s() calloc failed.\0%s:%d:%s() return value 0x%x\n\0%s:%d:%s() rv = 0X%08X.\0\0\0\0\0\0\0\0\1\0 The answer "PNP\\Notification" looks suspicious, mostly because it contains the "calloc failed". PNP Notification is a part ofthe PCSC Protocoll for Status change messages, but it may be ok. When I now strace the binary pkcs11-tool I see [1]: read(3,Gemalto PC Twin Reader 00 00...",5888)=2944 Thus it ends in libpcsclite. But the binary does not "exit". Maybe this can be debugged with libpcscspy.so. As a result: pkcs11-tool -L issues a CMD_GET_READERS_STATE in libpcsclite [1], which forward it to the local pcscd on v110, which forward it to libscrediragent, which is part of the agent process and this paket is forwared to the vmware-view client on host "e120", which writes it into the local libpcsclite and this forwards it to the pcscd on e120. This daemon really knows whats going on, and its answer "Gemalto PC Twin Reader 00 00". This is passed the whole chain back, and end up in the pcscd on "v110". Then pcscd even writes it back into [1], but the binary does not exit and blocks forever. Edit: added missing colums (80+) from strace 
With Horizon release 7.8.0 the SmartCard support still does not work. Update : With Horizon release 7.9.0 the SmartCard support still does not work. A year+ ago I debugged this here: htt... See more...
With Horizon release 7.8.0 the SmartCard support still does not work. Update : With Horizon release 7.9.0 the SmartCard support still does not work. A year+ ago I debugged this here: https://communities.vmware.com/message/2739746#2739746 Horizon 7.8.0 now contains the binaries for rhel (pcsd 1.8.8), which should support the newer wire format of rhel: [VMware-horizonagent-linux-x86_64-7.8.0-12610615]$ ll scredir/ total 26312 -rwxr-xr-x. 1 201 201 9507192 Mar  4 19:07 libscrediragent_188.so -rwxr-xr-x. 1 201 201 9507184 Mar  4 19:07 libscrediragent.so -rwxr-xr-x. 1 201 201 3959144 Mar  4 19:07 pcscd -rwxr-xr-x. 1 201 201 3959168 Mar  4 19:07 pcscd_188 The install_viewagent.sh binary - installs pcscd_188 in /usr/sbin/pcscd - install libscrediragent_188.so in /usr/lib/vmware/vchan_plugins When I reboot the machine, I can see in the pcsd log file: 00000000 bora/apps/rde/scrediragent/pcscd/debuglog.c:252:DebugLogSetLevel() debug level=debug 00000675 bora/apps/rde/scrediragent/pcscd/pcscdaemon.c:484:main() pcsc-lite daemon ready. 00001063 bora/apps/rde/scrediragent/pcscd/pcscd-ipc.c:500:IPCReaderThread() Entry IPCReaderThread. 00004455 bora/apps/rde/scrediragent/pcscd/utils.c:276:getUserID() uid: 979 gid: 970 00000511 bora/apps/rde/scrediragent/pcscd/pcscd-ipc.c:196:IPCAcceptConnection() Entry IPCAcceptConnection in bora/apps/rde/scrediragent/pcscd/pcscd-ipc.c. 02782719 bora/apps/rde/scrediragent/pcscd/winscard_msg_srv.c:232:ProcessEventsServer() Common channel packet arrival 00000040 bora/apps/rde/scrediragent/pcscd/winscard_msg_srv.c:242:ProcessEventsServer() ProcessCommonChannelRequest detects: 6 00000010 bora/apps/rde/scrediragent/pcscd/pcscdaemon.c:100:SVCServiceRunLoop() A new context thread creation is requested: 6 00000148 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:405:ContextThread() Thread is started: dwClientID=6, threadContext @55E8C7A96590 00000446 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:420:ContextThread() Received command: CMD_VERSION from client 6 00000299 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:431:ContextThread() Client is protocol version 4:2 00000017 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:440:ContextThread() CMD_VERSION rv=0x0 for client 6 00000620 bora/apps/rde/scrediragent/pcscd/winscard_svc.c:420:ContextThread() Received command: ESTABLISH_CONTEXT from client 6 00000306 bora/apps/rde/scrediragent/pcscd/pcscd-ipc.c:290:IPCRequest() ipc socket is 0, wait for connection from plugin Then it blocks in a simply call, ESTABLISH_CONTEXT, for example, when starting: - pkcs11-tool -I And when I look into the log file of vmware-mks-<pid>.log: 2019-07-08T09:57:21.232+02:00| main| I125: VVC: (DEBUG) Added plugin to list libscrediragent.so fileName=/usr/lib/vmware/vchan_plugins/libscrediragent.so 2019-07-08T09:57:21.277+02:00| libscrediragent.so| I125: VTHREAD 140082588464896 "libscrediragent.so" tid 5873 2019-07-08T09:57:21.278+02:00| main| I125: VVC: LoadVvcPlugin: Started plugin 1: libscrediragent.so, filename:"/usr/lib/vmware/vchan_plugins/libscrediragent.so" 2019-07-08T09:57:21.278+02:00| main| I125: VVC: VVCLDR_LoadPlugins: Plugin entries found:1, loaded:1 2019-07-08T09:57:21.278+02:00| main| I125: VVC: VVC loader initialised Result: The situation is the same: Windows and linux smartcard redirection does not work.
Hello, I'm using vmware-view 4.10 to connect to a remote linux (or windows) system from a RHEL 7.6 desktop. ==> I only get a black screen. I enabled the debug log for libva /vmware-view:... See more...
Hello, I'm using vmware-view 4.10 to connect to a remote linux (or windows) system from a RHEL 7.6 desktop. ==> I only get a black screen. I enabled the debug log for libva /vmware-view: export VDPAU_VIDEO_DEBUG=1 export VDPAU_VIDEO_TRACE=1 export VDPAU_VIDEO_GL_INTEROP=1 libva info: VA-API version 0.40.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib64/dri/nvidia_drv_video.so libva info: Found init function __vaDriverInit_0_40 vdpau_video: NVIDIA VDPAU Driver Shared Library 418.43 Tue Feb 19 01:03:14 CST 2019 libva info: va_openDriver() returns 0 Thus vmware-view uses  NVIDIA VDPAU, for H264, but it does not work, the workaround is to disable H264 in vmware-view: File->Configure VMWare Blast: [  ]  H.264 regards, Martin PS: https://docs.vmware.com/en/VMware-Horizon-Client-for-Linux/4.10/horizon-client-linux-installation/GUID-5CFDC05A-2A93-40D9-B618-52399ADF346E.html https://docs.vmware.com/en/VMware-Horizon-Client-for-Linux/4.9/horizon-client-linux-installation/GUID-75F6046C-D43A-4264-80AC-B150524CEC71.html do not work.
Hello, I have installed: VMware-horizonagent-linux-x86_64-7.7.0-10973212/ VMware-Horizon-Client-4.10.0-11053294.x64.bundle in that order.(RHEL 7.5) Result: Horzinot Agent segfaults... See more...
Hello, I have installed: VMware-horizonagent-linux-x86_64-7.7.0-10973212/ VMware-Horizon-Client-4.10.0-11053294.x64.bundle in that order.(RHEL 7.5) Result: Horzinot Agent segfaults In particular in the log file: 2018-12-21T10:29:52+01:00[+0.000]| libvdpservice.so| W115: Caught signal 6 -- tid 21177 (addr 3D300005201) The log shows that the Agent loads the libraries from: 2018-12-21T10:29:52+01:00[+0.000]| libvdpservice.so| I125: SymBacktrace[16] 00007f1a64a09390 rip=00007f1a64a6e73a in function (null) in object /usr/lib/pcoip/vchan_plugins/libvdpservice.so loaded at 00007f1a64a0c000 which are installed by "Client". Removing the directory "pcoip" removes the segfault. Installing the Client first, and then the agent, works too, because the agent deletes the directory /usr/lib/pcoip/vchan_plugins/, which is installed by the client. regards, Martin
Hello, the horizon agent 7.6.0 script : "install_viewagent.sh" assumes that the usb redirection modules are a certain location. This assumption is wrong, when integrating the the modules w... See more...
Hello, the horizon agent 7.6.0 script : "install_viewagent.sh" assumes that the usb redirection modules are a certain location. This assumption is wrong, when integrating the the modules with dkms. Using dkms allows to support every RHEL kernel, and the directories for these modules are defined by the vendor (On RHEL this is "extra"). The attached patch fixes this. regards, Martin
Hello, today I tried horizon agent 7.6 on Linux, without any useful results. The situation has not improved since Horizon Agent 7.4 (Januar 2018) - USB redirection does not work - Smartca... See more...
Hello, today I tried horizon agent 7.6 on Linux, without any useful results. The situation has not improved since Horizon Agent 7.4 (Januar 2018) - USB redirection does not work - Smartcard does not work usb redirection on RHEL 7.4  [1] state of smartcard support on Linux (RHEL 7.5) After installing the vhci modules [1] I can confirm that the windows client works fine. (USB redirect, Smartcard works) I tried to figure out, why it does not work with Linux. After starting /etc/rc.d/init.d/vmware-USBArbitrator, it looks to me that  some component is missing? Can someone confirm, that USB redirection is not available for linux clients? VMware Knowledge Base "This issue occurs because USB Redirection functionality for the Linux View Client is an additional download available to thin client partners only." "This functionality is not available for the public version of the VMware Horizon View Client for Linux." regards, Martin
Hello forum, since my last posting: https://communities.vmware.com/thread/580816 the situation has not improved. Smartcard does not work on RHEL 7.5 and USB redirection is not available... See more...
Hello forum, since my last posting: https://communities.vmware.com/thread/580816 the situation has not improved. Smartcard does not work on RHEL 7.5 and USB redirection is not available, now tested with Vmware Horizon 7.5. Is anyone at vmware working on this? Maybe we can celebrate in a few month the first birthday of this bug. . regards, Martin
>For the "USB Initializing", please double check client version and broker version. LinuxVDI's USB Redirection requires: >client 4.5 or later I checked the installed version: - linux client 4.... See more...
>For the "USB Initializing", please double check client version and broker version. LinuxVDI's USB Redirection requires: >client 4.5 or later I checked the installed version: - linux client 4.6 from Help->About >broker 7.2 or later Broker is 7.4, the current version. So it should already work with the Linux client. Windows clients works, Linux client is "USB initializing.."
I tried to replace pcscd and libpcsclite on RHEL 7.4 with the ones from fc16, but I was not able to get the linux vmware-view client to access the smartcard. On the server side I can see an E... See more...
I tried to replace pcscd and libpcsclite on RHEL 7.4 with the ones from fc16, but I was not able to get the linux vmware-view client to access the smartcard. On the server side I can see an ESTABLISH_CONTEXT and that's it, although it should have worked. (in therory) But maybe there are other issues as well. ==> I would say, that vmware should release a new pcscd, compatible with RHEL 7.4.
When using libpcsclite from fedora core 16 (1.7.4) I can use my smartcard from the windows client. (And fixing some socket path with some symbolic links) But not from a RHEL 7.4 workstation. ... See more...
When using libpcsclite from fedora core 16 (1.7.4) I can use my smartcard from the windows client. (And fixing some socket path with some symbolic links) But not from a RHEL 7.4 workstation. Most likely because of the the same problem, that the pcscd daemon on the workstation (client from which I run vmware-view) is incompatible with the 1.7.4 protocol.
Ok, smartcards seem to be handled differently from other USB devices. For my understanding, this work as follows in Horizon agent: pcscd speaks with smartcardreades and uses a socket for co... See more...
Ok, smartcards seem to be handled differently from other USB devices. For my understanding, this work as follows in Horizon agent: pcscd speaks with smartcardreades and uses a socket for communication with pcsclite, a library which gives access to smardcard readers. The socket is used to activate pcscd. The Linux Horizon Agent comes with its own pcscd in version 1.7.4 (rather old, and has stability problems). If you hook the pcscd into the socket you can forward the calls over the network. The protocol over the socket has its own major,minor version numbering (between daemon and libpcsclite) ans should be tested, but its seem not to be the case. If I fix the wrong access to the socket, from pcsclite in RHEL 7.4 I can see that pcscd, startet with -d -f (debug, foreground) reacts to the first reader commands (EXTABLISH_CONTEXT, for example). Most likely this is send over the wire and then some component crashes because libpcsclite in RHEL is not version 1.7.4.
First interesting finding: - When using the windows Horizon view client the USB devices are forwarded, they are listed in the top menu bar. - Except my smartcard reader, which is not forwar... See more...
First interesting finding: - When using the windows Horizon view client the USB devices are forwarded, they are listed in the top menu bar. - Except my smartcard reader, which is not forwarded (which is the only one I'm really interested in)
Hello, today I tried to get USB redirection working on a RHEL 7.4 VM, with NVidia Grid. But without success so far. I downgrade the kernel to 7.3 and used the usb_vhci_iocifc,usb_vhci_hcd ... See more...
Hello, today I tried to get USB redirection working on a RHEL 7.4 VM, with NVidia Grid. But without success so far. I downgrade the kernel to 7.3 and used the usb_vhci_iocifc,usb_vhci_hcd kernel drivers. I see many log files in "debug" mode, "everything" is doing "something" but the vmware-view gui only shows "USB Initializing". The same vmware-view works (and redirects the smartcard reader) when connecting to a "Windows 10" instead. The problem is: I don't see any errors, so the debug log on the RHEL VM is not really helpfull. How can I figure out, what's wrong with my setup? regards, Martin