开源改变世界!!

加载失败 #1653

推推 grbl 2年前 (2023-01-30) 199次浏览
关闭
周冠兴 开了这个issue 2022 年 3 月 9 日 · 9条评论
关闭

加载失败#1653

周冠兴 开了这个issue 2022 年 3 月 9 日 · 9条评论

注释

加载失败 #1653

亲们,
我在使用loadrt命令加载realtime组件时,发现在“halcmd_commands.c”文件中,“do_loadusr_cmd”函数将realtime组件加载到用户空间,详细信息如下:

  1. 版本信息:
    LinuxCNC版本:master
    内核版本:4.19.163
    xenomai版本:3.1.0
    Ubuntu18.04
  2. 配置步骤:
    $ cd src/
    $ ./autogen.sh
    $ ./configure –with-realtime=uspace
    $ make
    $ sudo make setuid
    $ source ../script/rip-enviroment
  3. 问题描述:
    通过命令“./configure –with-realtime=uspace”进行配置,在“config.h”文件中定义了“RTAPI_USPACE”宏,具体如下:
    /* Realtime system is userspace * /
    #define RTAPI_USPACE /**/
    函数“do_loadusr_cmd”的详细信息如下:
    int do_loadrt_cmd(char *mod_name, char *args[])
    {
    char arg_string[MAX_CMD_LEN+1];
    int m=0, n=0, retval;
    hal_comp_t *comp;
    字符 *argv[MAX_TOK+3];
    字符cp1;
    #if defined(RTAPI_USPACE)
    argv[m++] = “-Wn”;
    argv[m++] = 模组名称;
    argv[m++] = EMC2_BIN_DIR “/rtapi_app”;
    argv[m++] = “加载”;
    argv[m++] = 模组名称;
    /
    遍历剩余参数 */
    while ( args[n] && args[n][0] != ‘\0’ ) {
    argv[m++] = args[n++];
    }
    argv[m++] = NULL;
    retval = do_loadusr_cmd(argv);
    #else
    ….
    }
    是“./configure”的命令不正确?
    那么,如何配置“./configure”命令的参数才能正确执行loadrt指令呢?
    @vmiklos 你能给我一些建议吗?非常感谢!
加载失败 #1653
合作者

您要加载哪个实时组件?

配置脚本似乎在寻找 Xenomai 吗?

加载失败 #1653
作者

亲爱的安迪普,
在我通过命令’./configure …’配置实时环境之后,在’do_loadrt_cmd’函数中,它进入’#if defined(RTAPI_USPACE)’分支而不是’#else’分支,是这个意思是我配置成功?或不?
int do_loadrt_cmd(char *mod_name, char *args[])
{
char arg_string[MAX_CMD_LEN+1];
int m=0, n=0, retval;
hal_comp_t *comp;
字符 *argv[MAX_TOK+3];
字符 cp1;
#if defined(RTAPI_USPACE)
argv[m++] = “-Wn”;
argv[m++] = 模组名称;
argv[m++] = EMC2_BIN_DIR “/rtapi_app”;
argv[m++] = “加载”;
argv[m++] = 模组名称;
/ 遍历剩余的参数 */
while ( args[n] &&
argv[m++] = args[n++];
}
argv[m++] = NULL;
retval = do_loadusr_cmd(argv);

#其他
….
}

加载失败 #1653
贡献者

我假设你想标记其他人:-)

加载失败 #1653
作者

我假设你想标记其他人:-)

好,谢谢!

加载失败 #1653
合作者

您正在配置 –with-realtime=uspace 所以我希望定义 RTAPI_USPACE 。

如果您查看启动配置,您会看到 CONFIG_IPIPE 和 CONFIG_XENO 中的哪一个?

def detect_kernel_flavor ( uname ):

 

加载失败 #1653
作者

您正在配置 –with-realtime=uspace 所以我希望定义 RTAPI_USPACE 。

如果您查看启动配置,您会看到 CONFIG_IPIPE 和 CONFIG_XENO 中的哪一个?

def detect_kernel_flavor ( uname ):

 

亲爱的安迪普,谢谢!
检查后发现“def detect_kernel_flavor(uname):”函数返回值为“vanilla”,是不是说我的实时环境设置不正确?

加载失败 #1653
合作者

uname -a 说什么?这是否表示 Xenomai 内核?

然后查看内核配置 (/boot/config-{name-of-the-kernel-you-are-actually-running} 并查看文件是否包含 CONFIG_XENO 和 CONFIG_IPIPE

加载失败 #1653
合作者

这个问题还存在吗?或者你解决了吗?

加载失败 #1653
作者

抱歉回复晚了,我已经解决了。谢谢你!