构建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”
答案 0 :(得分:0)
如果我理解你的问题,很可能你没有正确定义构建OpenWRT的目标。 CMDLINE
是一个变量,它包含用于加载内核的命令行。
您可能希望在OpenWRT论坛中阅读this documentation article或this post。