找不到命令行标记

时间:2017-10-06 05:14:59

标签: linux command-line openwrt

构建openwrt时出现此问题:

Command line marker not found!
make[5]: *** [kernel_prepare] Error 255

分析后我发现问题来自tools/patch-image/src/patch-cmdline.c

for (p = ptr; p < (ptr + search_space); p += 4) {
    if (memcmp(p, "CMDLINE:", 8) == 0) {
        found = 1;
        p += 8;
        break;
    }
}
if (!found) {
    fprintf(stderr, "Command line marker not found!\n");
    goto err3;
}

memset(p, 0, CMDLINE_MAX - 8);
strcpy(p, argv[2]);
msync(p, CMDLINE_MAX, MS_SYNC|MS_INVALIDATE);
ret = 0;

我所理解的是patch-cmdline.c尝试在CMDLINE中找到属性tmp/vmlinux-alfa-nx,并在命令行找到“补丁”。

问题:

  • vmlinux-alfa-nx的目的是什么,它不是内核映像:

    file vmlinux-alfa-nx vmlinux-alfa-nx:data

  • 显然问题来自tmp / vmlinux-alfa-nx,如何更改它以使其包含“CMDLINE”

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,很可能你没有正确定义构建OpenWRT的目标。 CMDLINE是一个变量,它包含用于加载内核的命令行。

您可能希望在OpenWRT论坛中阅读this documentation articlethis post