【发布时间】:2018-03-12 19:03:56
【问题描述】:
我面临一个问题,即 BIOS 总是忽略我为 cmdline 设置的任何内容。它仅使用硬编码的 cmdline 发送错误的参数。 IN "console=ttys0" "S" 是小写的。我没有 BIOS 源代码,因此无法更改。我试图从内核本身将较低的“s”更改为上的“S”。但是到目前为止我还没有成功。这是我尝试过的。
void __init setup_arch(char **cmdline_p)
{
*cmdline_p = command_line; /* Tried to change command_line before this line */
}
进行了如下更改。
void __init setup_arch(char **cmdline_p)
{
{
char *ptr=NULL;
ptr=strstr(command_line,"ttys0");
if(ptr)
ptr[3]='S';
}
*cmdline_p = command_line;
}
当我尝试使用此更改启动时,内核似乎挂起。看起来我尝试修改命令行的那一刻,内核挂起。
command_line 声明如下。
static char __initdata command_line[COMMAND_LINE_SIZE];
__initdata 是否有任何限制? 任何建议我怎样才能实现我想要做的事情?
【问题讨论】:
-
我认为我的代码更改有效。但是,随着此更改终端日志记录停止。因此它看起来像挂起。
标签: linux-kernel