Linux kernel 从内核用户空间访问u-boot变量

Linux kernel 从内核用户空间访问u-boot变量,linux-kernel,yocto,u-boot,Linux Kernel,Yocto,U Boot,我试图从logo.c(/drivers/video/logo/logo.c)获取一个u-boot变量。请让我知道如何从logo.c文件访问变量。我想得到控制台的值。如果使用“fw_printenv console”命令,则输出为console=ttys0。我想从u-boot中的logo.c.获取u-boot变量(fw_printenv console)的输出值。:将console=ttys0添加到bootargs setenv bootargs console=ttys0 在内核文件中:Ke

我试图从logo.c(/drivers/video/logo/logo.c)获取一个u-boot变量。请让我知道如何从logo.c文件访问变量。我想得到控制台的值。如果使用“fw_printenv console”命令,则输出为console=ttys0。我想从u-boot中的logo.c.获取u-boot变量(fw_printenv console)的输出值。

:将console=ttys0添加到bootargs

setenv bootargs console=ttys0

在内核文件中:Kernel\u source/init/main.c

添加早期参数:

char MyConsole[32]={0};
static int __init myconsole(char *str)
{
    printk("%s\n", str);
    memcpy(MyConsole, str, strlen(str));
}
early_param("myconsole", myconsole);

在logo.c中,访问此变量

extern char MyConsole[];
u-boot中的
:将console=ttys0添加到bootargs

setenv bootargs console=ttys0

在内核文件中:Kernel\u source/init/main.c

添加早期参数:

char MyConsole[32]={0};
static int __init myconsole(char *str)
{
    printk("%s\n", str);
    memcpy(MyConsole, str, strlen(str));
}
early_param("myconsole", myconsole);

在logo.c中,访问此变量

extern char MyConsole[];


当前U-Boot中不存在drivers/video/logo/logo.c。你所说的是什么版本你说的内核用户空间是什么意思?来自Linux程序?U-Boot代码内部?|可以通过env_get()访问U-Boot代码内部的环境变量。@Xypron,这是一个Linux内核源代码。请参见
fw_printenv
的工作原理。我打赌它从文件系统读取文件。这对于内核来说并不容易,尤其是在许多子系统尚未初始化的早期阶段。不能改用内核命令行吗?当前U-Boot中不存在drivers/video/logo/logo.c。你所说的是什么版本你说的内核用户空间是什么意思?来自Linux程序?U-Boot代码内部?|可以通过env_get()访问U-Boot代码内部的环境变量。@Xypron,这是一个Linux内核源代码。请参见
fw_printenv
的工作原理。我打赌它从文件系统读取文件。这对于内核来说并不容易,尤其是在许多子系统尚未初始化的早期阶段。你不能改用内核命令行吗?谢谢你的建议。请告诉我哪个日志或如何查看“printk”(“%s\n”,str)的输出。我试图查看输出。我在开机时登录到设备,但它只显示内核消息。我应该调用“early_param(“console”,myconsole)”?还是early_param(“myconsole,myconsole)”是正确的;这一条是正确的:early_param(“控制台”,myconsole)感谢您的建议。请告诉我哪个日志或如何查看“printk”(“%s\n”,str)的输出。我试图查看输出。我在开机时登录到设备,但它只显示内核消息。我应该调用“early_param(“console”,myconsole)”?还是early_param(“myconsole,myconsole)”是正确的;这一个是正确的:早期参数(“控制台”,myconsole)