我在构建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的用途是什么,它不是内核映像:
vmlinux alfa nx文件
vmlinux alfa nx:数据
显然,问题来自tmp/vmlinux alfa nx,我如何更改它以使其包含“命令行”

最佳答案

如果我正确地理解了您的问题,很可能您没有正确地定义构建OpenWRT的目标。CMDLINE是一个变量,保存用于加载内核的命令行。
您可能想在OpenWRT论坛中阅读this documentation articlethis post

关于linux - 找不到命令行标记,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46598674/

10-11 05:02