All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] Xenomai 3.0.5 : RTIPC/XDDP protocol not supported by kernel
@ 2017-12-06  9:55 Vincent Berenz
  2017-12-07  9:46 ` Philippe Gerum
  0 siblings, 1 reply; 5+ messages in thread
From: Vincent Berenz @ 2017-12-06  9:55 UTC (permalink / raw)
  To: xenomai

Hi,

We are currently moving from xenomai 2 to xenomai 3.
I installed xenomai 3.0.5, and all seems to be working, with low latency.

I am now trying to get our legacy code to work on xenomai 3 using the transition kit.

Our program compiles, but at runtime, on call to rt_pipe_create :
     
     0"000.000| WARNING: [main] RTIPC/XDDP protocol not supported by kernel

Some info:

     cat .config | grep RPIPC

returns:

     CONFIG_XENO_DRIVERS_RTIPC=y
     CONFIG_XENO_DRIVERS_RTIPC_XDDP=y
     CONFIG_XENO_DRIVERS_RTIPC_IDDP=y
     CONFIG_XENO_DRIVERS_RTIPC_BUFP=y

Following call to xeno-config + adding some definition via add_definitions in cmake, we are using these flags:

     flags.make:CXX_FLAGS = -fPIC   -Wl,--no-as-needed -ltrank -Wl,@/usr/xenomai/lib/modechk.wrappers -lalchemy -lcopperplate /usr/xenomai/lib/xenomai/bootstrap.o -Wl,--wrap=main -Wl,--dynamic-list=/usr/xenomai/lib/dynlist.ld -L/usr/xenomai/lib -lcobalt -lmodechk -lpthread -lrt -I/usr/xenomai/include/trank -D__XENO_COMPAT__ -I/usr/xenomai/include/cobalt -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -D__COBALT__ -I/usr/xenomai/include/alchemy -pipe

and xeno-test starts with:

     arith OK
     bufp OK
     cpu_affinity skipped (no kernel support)
     iddp OK
     leaks OK
     net_packet_dgram skipped (no kernel support)
     net_packet_raw skipped (no kernel support)
     net_udp skipped (no kernel support)
     posix_clock OK
     posix_cond OK
     posix_fork OK
     mutex_trylock not supported
     posix_mutex OK
     posix_select OK
     rtdm skipped (no kernel support)
     sched_quota skipped (no kernel support)
     sched_tp skipped (no kernel support)
     setsched OK
     sigdebug skipped (no kernel support)
     timerfd OK
     tsc OK
     vdso_access OK
     xddp OK

Anything we are doing wrong ?

Many thanks

Vincent



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Xenomai] Xenomai 3.0.5 : RTIPC/XDDP protocol not supported by kernel
  2017-12-06  9:55 [Xenomai] Xenomai 3.0.5 : RTIPC/XDDP protocol not supported by kernel Vincent Berenz
@ 2017-12-07  9:46 ` Philippe Gerum
  2017-12-07 13:42   ` Vincent Berenz
  0 siblings, 1 reply; 5+ messages in thread
From: Philippe Gerum @ 2017-12-07  9:46 UTC (permalink / raw)
  To: Vincent Berenz, xenomai

On 12/06/2017 10:55 AM, Vincent Berenz wrote:
> Hi,
> 
> We are currently moving from xenomai 2 to xenomai 3.
> I installed xenomai 3.0.5, and all seems to be working, with low latency.
> 
> I am now trying to get our legacy code to work on xenomai 3 using the
> transition kit.
> 
> Our program compiles, but at runtime, on call to rt_pipe_create :
>         0"000.000| WARNING: [main] RTIPC/XDDP protocol not supported by
> kernel
> 

Do you observe the same issue with any of the native POSIX demo apps
available from <xenomai-install>/demo/xddp-*?

-- 
Philippe.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Xenomai] Xenomai 3.0.5 : RTIPC/XDDP protocol not supported by kernel
  2017-12-07  9:46 ` Philippe Gerum
@ 2017-12-07 13:42   ` Vincent Berenz
  2017-12-07 14:16     ` Philippe Gerum
  0 siblings, 1 reply; 5+ messages in thread
From: Vincent Berenz @ 2017-12-07 13:42 UTC (permalink / raw)
  To: Philippe Gerum, xenomai

Many thanks for the answer

The demos xddp-echo , xddp-label and xddp-stream seems all to be working ok.

As sanity check, I copied xddp-echo.c to my workspace and compiled it 
with the rest of our code.

Compilation goes ok, but execution fails with message:

     socket: Address family not supported by protocol

This brought my attention to this:

    http://xenomai.org/pipermail/xenomai/2014-February/030113.html

which says:

   "Your application is likely not wrapping POSIX symbols properly, calling
    regular socket() instead of the Xenomai implementation. "

We do things this way, possibly something is missing ?

   exec_program(${XENOMAI_ROOT}/bin/xeno-config ARGS "--skin=native 
--cflags"
                                                   OUTPUT_VARIABLE 
XENOMAI_C_FLAGS)
   exec_program(${XENOMAI_ROOT}/bin/xeno-config ARGS "--skin=native 
--ldflags"
     OUTPUT_VARIABLE XENOMAI_LD_FLAGS)

   set(CMAKE_C_FLAGS "${XENOMAI_C_FLAGS} ${CMAKE_C_FLAGS}")
   set(CMAKE_CPP_FLAGS "${XENOMAI_C_FLAGS} ${CMAKE_CPP_FLAGS}")

   # libraries / executable are linked against this later on
   set(LAB_STD_LIBS alchemy copperplate cobalt modechk trank pthread 
edit curses nsl glut GL GLU X11 Xmu m)

   link_directories(${XENOMAI_ROOT}/lib /usr/lib /usr/X11/lib64 
/usr/X11/lib /usr/lib64 ${CMAKE_LIBRARY_PATH})

   add_definitions(${XENOMAI_C_FLAGS})

   add_definitions(-D__XENO__)
   add_definitions(-pipe)
   add_definitions(-D_REENTRANT)
   add_definitions(-D_GNU_SOURCE)

Best

Vincent


On 07.12.2017 10:46, Philippe Gerum wrote:
> On 12/06/2017 10:55 AM, Vincent Berenz wrote:
>> Hi,
>>
>> We are currently moving from xenomai 2 to xenomai 3.
>> I installed xenomai 3.0.5, and all seems to be working, with low latency.
>>
>> I am now trying to get our legacy code to work on xenomai 3 using the
>> transition kit.
>>
>> Our program compiles, but at runtime, on call to rt_pipe_create :
>>          0"000.000| WARNING: [main] RTIPC/XDDP protocol not supported by
>> kernel
>>
> Do you observe the same issue with any of the native POSIX demo apps
> available from <xenomai-install>/demo/xddp-*?
>



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Xenomai] Xenomai 3.0.5 : RTIPC/XDDP protocol not supported by kernel
  2017-12-07 13:42   ` Vincent Berenz
@ 2017-12-07 14:16     ` Philippe Gerum
  2017-12-11 11:28       ` Vincent Berenz
  0 siblings, 1 reply; 5+ messages in thread
From: Philippe Gerum @ 2017-12-07 14:16 UTC (permalink / raw)
  To: Vincent Berenz, xenomai

On 12/07/2017 02:42 PM, Vincent Berenz wrote:
> Many thanks for the answer
> 
> The demos xddp-echo , xddp-label and xddp-stream seems all to be working
> ok.
> 
> As sanity check, I copied xddp-echo.c to my workspace and compiled it
> with the rest of our code.
> 
> Compilation goes ok, but execution fails with message:
> 
>     socket: Address family not supported by protocol
> 
> This brought my attention to this:
> 
>    http://xenomai.org/pipermail/xenomai/2014-February/030113.html
> 
> which says:
> 
>   "Your application is likely not wrapping POSIX symbols properly, calling
>    regular socket() instead of the Xenomai implementation. "
> 
> We do things this way, possibly something is missing ?
> 

Yes, but this is most likely a different issue than the one observed
with rt_pipe_create() in compat mode.

>        0"000.000| WARNING: [main] RTIPC/XDDP protocol not supported by
kernel

There is likely an error number following this message, what is it?

>   exec_program(${XENOMAI_ROOT}/bin/xeno-config ARGS "--skin=native
> --cflags"
>                                                   OUTPUT_VARIABLE
> XENOMAI_C_FLAGS)
>   exec_program(${XENOMAI_ROOT}/bin/xeno-config ARGS "--skin=native
> --ldflags"
>     OUTPUT_VARIABLE XENOMAI_LD_FLAGS)
> 

You need --posix as well in the ldflags. However, caveat: adding this
flag will wrap all calls libcobalt shadows from the glibc (see
lib/cobalt/cobalt.wrappers). Or, you may omit --posix, explicitly
marking real-time calls by enclosing them with __RT().

e.g. __RT(socket(....));

Ugly, but in some cases handy when full wrapping is not a practical option.

-- 
Philippe.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Xenomai] Xenomai 3.0.5 : RTIPC/XDDP protocol not supported by kernel
  2017-12-07 14:16     ` Philippe Gerum
@ 2017-12-11 11:28       ` Vincent Berenz
  0 siblings, 0 replies; 5+ messages in thread
From: Vincent Berenz @ 2017-12-11 11:28 UTC (permalink / raw)
  To: Philippe Gerum, xenomai

"You need --posix as well in the ldflags."

That worked, thanks a lot


On 07.12.2017 15:16, Philippe Gerum wrote:
> On 12/07/2017 02:42 PM, Vincent Berenz wrote:
>> Many thanks for the answer
>>
>> The demos xddp-echo , xddp-label and xddp-stream seems all to be working
>> ok.
>>
>> As sanity check, I copied xddp-echo.c to my workspace and compiled it
>> with the rest of our code.
>>
>> Compilation goes ok, but execution fails with message:
>>
>>      socket: Address family not supported by protocol
>>
>> This brought my attention to this:
>>
>>     http://xenomai.org/pipermail/xenomai/2014-February/030113.html
>>
>> which says:
>>
>>    "Your application is likely not wrapping POSIX symbols properly, calling
>>     regular socket() instead of the Xenomai implementation. "
>>
>> We do things this way, possibly something is missing ?
>>
> Yes, but this is most likely a different issue than the one observed
> with rt_pipe_create() in compat mode.
>
>>         0"000.000| WARNING: [main] RTIPC/XDDP protocol not supported by
> kernel
>
> There is likely an error number following this message, what is it?
>
>>    exec_program(${XENOMAI_ROOT}/bin/xeno-config ARGS "--skin=native
>> --cflags"
>>                                                    OUTPUT_VARIABLE
>> XENOMAI_C_FLAGS)
>>    exec_program(${XENOMAI_ROOT}/bin/xeno-config ARGS "--skin=native
>> --ldflags"
>>      OUTPUT_VARIABLE XENOMAI_LD_FLAGS)
>>
> You need --posix as well in the ldflags. However, caveat: adding this
> flag will wrap all calls libcobalt shadows from the glibc (see
> lib/cobalt/cobalt.wrappers). Or, you may omit --posix, explicitly
> marking real-time calls by enclosing them with __RT().
>
> e.g. __RT(socket(....));
>
> Ugly, but in some cases handy when full wrapping is not a practical option.
>



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-12-11 11:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-06  9:55 [Xenomai] Xenomai 3.0.5 : RTIPC/XDDP protocol not supported by kernel Vincent Berenz
2017-12-07  9:46 ` Philippe Gerum
2017-12-07 13:42   ` Vincent Berenz
2017-12-07 14:16     ` Philippe Gerum
2017-12-11 11:28       ` Vincent Berenz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.