WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: TC4 + Citrix Receiver 12.1 + USB passthrough?  (Read 9511 times)

Offline mbrijun

  • Newbie
  • *
  • Posts: 16
TC4 + Citrix Receiver 12.1 + USB passthrough?
« on: June 29, 2012, 02:37:27 PM »
Fellow TC users,

I have a working TC4 + Citrix Receiver 12.1 client setup. One thing is missing though - the USB passthrough. When Citrix Receiver is installed it places a custom rule under "/etc/udev/rules.d" which is supposed to intercept USB devices before HAL has a chance to process them. This setup relies on several Citrix binaries: "/opt/Citrix/ICAClient/ctx_usb_isactive" (which is called from the udev rule) and "/opt/Citrix/ICAClient/ctxusbd" (which runs as a daemon in the background).

The problem is that the USB interception does not happen. When I put udev in debug mode, I can see that "ctx_usb_isactive" is called by udev, but always returns code "1" which presumably means an error.

I have "udev-lib" and "libcap" installed.

Has anyone managed to successfully configure the USB passthrough on TinyCore? I can understand that the Citrix Receiver is probably geared towards Ubuntu or Fedora, but it would be great if I did not have to go the way of these heavy distros.

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11619
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #1 on: June 29, 2012, 04:25:02 PM »
Hi mbrijun
Have you looked through dmesg for messages about this device? You could also try running:
Quote
ldd opt/Citrix/ICAClient/ctx_usb_isactive
ldd /opt/Citrix/ICAClient/ctxusbd
to check for any missing dependencies. You could also try the  syslog  bootcode to see if it logs anything
interesting in  /var/log/messages.

Offline mbrijun

  • Newbie
  • *
  • Posts: 16
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #2 on: July 03, 2012, 08:12:30 AM »
Hi Rich,

thank you for your reply. I  have performed the steps prescribed by you and below are the results. I am still getting that "ctx_usb_isactive" ends with a "return code 1". I do not see any problems with missing library dependencies.

Firstly, the udev rule "/etc/udev/rules.d/85-ica-usb.rules" in question:

Code: [Select]
# Don't allow HAL to handle devices that ICA client is remoting

SUBSYSTEM=="usb", \
ACTION=="add", \
PROGRAM="/opt/Citrix/ICAClient/ctx_usb_isactive", \
    OPTIONS+="last_rule", \
    RUN+="/usr/bin/logger -t ica-usb.rules suppressing HAL action for %k"

This is what "dmesg" reports once a USB stick is inserted:

Code: [Select]
usb 1-8: new high speed USB device number 5 using ehci_hcd
scsi5 : usb-storage 1-8:1.0
scsi 5:0:0:0: Direct-Access     Integral Courier          PMAP PQ: 0 ANSI: 0 CCS
sd 5:0:0:0: Attached scsi generic sg3 type 0
sd 5:0:0:0: [sdc] 7831552 512-byte logical blocks: (4.00 GB/3.73 GiB)
sd 5:0:0:0: [sdc] Write Protect is off
sd 5:0:0:0: [sdc] Mode Sense: 23 00 00 00
sd 5:0:0:0: [sdc] No Caching mode page present
sd 5:0:0:0: [sdc] Assuming drive cache: write through
sd 5:0:0:0: [sdc] No Caching mode page present
sd 5:0:0:0: [sdc] Assuming drive cache: write through
 sdc: sdc1
sd 5:0:0:0: [sdc] No Caching mode page present
sd 5:0:0:0: [sdc] Assuming drive cache: write through
sd 5:0:0:0: [sdc] Attached SCSI removable disk

Here is the output from /var/log/messages:

Code: [Select]
Jul  3 12:42:26 box daemon.info udevd[78]: worker [6313] exit
Jul  3 12:42:26 box daemon.info udevd[78]: worker [6313] cleaned up
Jul  3 12:42:26 box daemon.info udevd[78]: worker [6314] exit
Jul  3 12:42:26 box daemon.info udevd[78]: worker [6314] cleaned up
Jul  3 12:42:53 box user.info kernel: usb 1-8: new high speed USB device number 5 using ehci_hcd
Jul  3 12:42:53 box daemon.info udevd[78]: seq 14184 queued, 'add' 'usb'
Jul  3 12:42:53 box daemon.info udevd[78]: seq 14184 forked new worker [6517]
Jul  3 12:42:53 box daemon.info udevd[6517]: seq 14184 running
Jul  3 12:42:53 box daemon.info udevd[6517]: device 0x87217f0 has devpath '/devices/pci0000:00/0000:00:1d.7/usb1/1-8'
Jul  3 12:42:53 box daemon.info udevd[6517]: no db file to read /run/udev/data/c189:4: No such file or directory
Jul  3 12:42:53 box daemon.info udevd[6517]: PROGRAM '/opt/Citrix/ICAClient/ctx_usb_isactive' /etc/udev/rules.d/85-ica-usb.rules:7
Jul  3 12:42:53 box daemon.info udevd[6518]: starting '/opt/Citrix/ICAClient/ctx_usb_isactive'
Jul  3 12:42:53 box daemon.info udevd[6517]: '/opt/Citrix/ICAClient/ctx_usb_isactive' [6518] exit with return code 1

And finally, the output of the "ldd" command:

Code: [Select]
sudo ldd /opt/Citrix/ICAClient/ctx_usb_isactive
linux-gate.so.1 =>  (0xb7784000)
libc.so.6 => /lib/libc.so.6 (0xb766d000)
/lib/ld-linux.so.2 (0xb7785000)

sudo ldd /opt/Citrix/ICAClient/ctxusb
linux-gate.so.1 =>  (0xb7785000)
libdl.so.2 => /lib/libdl.so.2 (0xb7775000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb775f000)
libc.so.6 => /lib/libc.so.6 (0xb7654000)
/lib/ld-linux.so.2 (0xb7786000)

sudo ldd /opt/Citrix/ICAClient/ctxusbd
linux-gate.so.1 =>  (0xb7741000)
libdl.so.2 => /lib/libdl.so.2 (0xb7731000)
libc.so.6 => /lib/libc.so.6 (0xb7626000)
/lib/ld-linux.so.2 (0xb7742000)

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11619
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #3 on: July 03, 2012, 09:33:43 AM »
Hi mbrijun
I'm afraid I don't have much advice to offer except according to the docs:
Quote
Citrix provides a script, hdxcheck.sh, as part of the Receiver installation package that checks whether or not your device meets the system requirements necessary to utilize all the functionality provided by Receiver for Linux. The script is located in the Utilities directory of the installation package.
Have you tried running that script?

Offline mbrijun

  • Newbie
  • *
  • Posts: 16
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #4 on: July 03, 2012, 09:52:43 AM »
Yes, I have run the "hdxcheck.sh" which fails to see both the UDEV and LIBCAP which are installed. This script seems a little flawed in that respect.

I have also posted a question on the Citrix forum, will see what they say.

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11619
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #5 on: July 03, 2012, 02:26:34 PM »
Hi mbrijun
When the script says it can't find libcap, does it say where it expects to find it, or which version it wants?

Offline mbrijun

  • Newbie
  • *
  • Posts: 16
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #6 on: July 03, 2012, 04:10:00 PM »
I do not have access to the script right now, but if memory serves me well, it looks in "/lib". I think TC puts the libcap in "/usr/lib". I tried creating links in "/lib" but it did not make a difference. Maybe I should try once again in case I missed something.

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11619
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #7 on: July 03, 2012, 04:43:29 PM »
Hi mbrijun
Tc puts libcap in /usr/local/lib/.

Offline tsaukpaetra

  • Newbie
  • *
  • Posts: 10
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #8 on: August 17, 2012, 03:59:48 PM »
I'm having issues just getting Citrix to run properly. Apparently, iconv doesn't support translating from IS0-8895-1 to UTF-16. I find this odd, since I have the latest libiconv from the repo...

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #9 on: August 17, 2012, 04:34:32 PM »
See glibc-gconv, IIRC it was named that.
The only barriers that can stop you are the ones you create yourself.

Offline tsaukpaetra

  • Newbie
  • *
  • Posts: 10
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #10 on: August 19, 2012, 03:04:19 AM »
See glibc-gconv, IIRC it was named that.
Thanks! It was glibc_gconv, but that worked beautifully after I installed the required certs. As for the OP's issue, sorry, I got nothing, since my USB stick is also not transferring over. It still recognizes in TinyCore (I see the sdb1 entry in fstab when I plug it), but I have not actually tried to modify the udev rules....

Offline dlsnow97

  • Newbie
  • *
  • Posts: 9
Re: TC4 + Citrix Receiver 12.1 + USB passthrough?
« Reply #11 on: January 15, 2013, 05:05:28 PM »
Sorry to BUMP this
Any luck getting the USB Passthrough to work?
I noticed it returns [fail] is udevd and libcap are missing.
Also it seems you have to "export ICAROOT=[your path to ICAClient]"
I now have the ctxusbd reporting [OK] when starting but it is not functional.
I have this setup working on Various other linux distro's (RH, Fedora, openSuse) although it seems to depend on something in Gnome