LE_NOT_PERMITTED connecting to service


I am trying to use the posCtrl service in a legacy application, however running le_posCtrl_TryConnectService() returns LE_NOT_PERMITTED.

The program is being run on a FX30S as user root. I checked the SMACK permissions on the binary with getfattr -dm- which yields security-SMACK64="admin". I’m not sure how to check what other permissions apply, if any. Could anybody help me diagnose this?

Update: I am using “legacy” above in the sense used in the Legato docs here. That means I am using interfaces generated with ifgen, my program has a main function, and I am using my own build system.

The Legato version I am using is 19.01.0-323-gf37d71d6. The firmware level of the device, as reported by fwupdate, is:

Firmware Version: SWI9X06Y_02.22.12.00 eaf79c jenkins 2019/04/24 18:48:27
Bootloader Version: SWI9X06Y_02.22.12.00 eaf79c jenkins 2019/04/24 18:48:27
Linux Version: 3.18.44 #2 PREEMPT Wed Apr 24 20:48:03 UTC 2019


Added some extra info in the OP.

Hi, we have been in contact with Sierra support and updated to the right firmware version:

Legato Ver: 18.06.1_03c5394b4c271c054ae58a494f160e37
Yocto Ver:  SWI9X06Y_02.18.05.00 2019-01-29_11:20:10
OS Ver: Linux version 3.18.44 (jenkins@CAKEL-EV-ALBLD2) (gcc version 6.2.0 (GCC) ) #2 PREEMPT Tue Jan 29 11:21:07 PST 2019
LK Ver: 1.3.0_838aec2863
RootFS Ver: SWI9X06Y_02.18.05.00 2019-01-29_11:20:10
UserFS Ver: unknown
MCU Ver: 002.009

Unfortunately after the update the issue persists. Any ideas?

Possibly try to execute the tool using app runProc. That way you can execute in the context of an application, which appropriate parameters/bindings, while when executing as root it is easy to mess things up (especially in term of bindings and/or of files creates).

Problem solved by packaging our binary with an application definition file and creating the correct API bindings. The problem was that these APIs were unbound.