Index: src/skins/rtdm/core.c =================================================================== --- src/skins/rtdm/core.c (Revision 292) +++ src/skins/rtdm/core.c (Arbeitskopie) @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -27,19 +28,25 @@ int rt_dev_open(const char *path, int oflag, ...) { - return XENOMAI_SKINCALL2( __rtdm_muxid, - __rtdm_open, - path, - oflag); + if (__rtdm_muxid < 0) + return -ENODEV; + + return XENOMAI_SKINCALL2( __rtdm_muxid, + __rtdm_open, + path, + oflag); } int rt_dev_socket(int protocol_family, int socket_type, int protocol) { - return XENOMAI_SKINCALL3( __rtdm_muxid, - __rtdm_socket, - protocol_family, - socket_type, - protocol); + if (__rtdm_muxid < 0) + return -EAFNOSUPPORT; + + return XENOMAI_SKINCALL3( __rtdm_muxid, + __rtdm_socket, + protocol_family, + socket_type, + protocol); } int rt_dev_close(int fd) Index: src/skins/rtdm/init.c =================================================================== --- src/skins/rtdm/init.c (Revision 292) +++ src/skins/rtdm/init.c (Arbeitskopie) @@ -53,9 +53,9 @@ case -ENOSYS: case -ESRCH: - fprintf(stderr,"Xenomai: RTDM skin or CONFIG_XENO_OPT_PERVASIVE disabled.\n"); - fprintf(stderr,"(modprobe xeno_rtdm.ko?)\n"); - exit(1); + /* we ignore this and fail later when the user tries to open + a device or socket. */ + break; default: