Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用u-boot日志预编译内核日志_Linux_Logging_Embedded Linux_U Boot - Fatal编程技术网

Linux 使用u-boot日志预编译内核日志

Linux 使用u-boot日志预编译内核日志,linux,logging,embedded-linux,u-boot,Linux,Logging,Embedded Linux,U Boot,我们使用的是beaglebone黑色定制板 我正在尝试检查是否可以使用u-boot引导日志预处理内核日志。 这是必需的,因为在电路板的制造和编程过程中,我们运行一些测试,我们需要捕获u-boot引导日志以获取测试日志和串行端口上的测试结果。由于客户板上未填充串行端口,因此无法收集引导日志 我在google中找到了u-boot的CONFIG_LOGBUFFER选项,但我不知道如何使用它 我找到了以下链接,但“如何使用”不清楚 有人能帮助我理解我是否走上了正确的道路吗?对这些选项有什么简单的解释

我们使用的是beaglebone黑色定制板

我正在尝试检查是否可以使用u-boot引导日志预处理内核日志。
这是必需的,因为在电路板的制造和编程过程中,我们运行一些测试,我们需要捕获u-boot引导日志以获取测试日志和串行端口上的测试结果。由于客户板上未填充串行端口,因此无法收集引导日志

我在google中找到了u-boot的CONFIG_LOGBUFFER选项,但我不知道如何使用它

我找到了以下链接,但“如何使用”不清楚

有人能帮助我理解我是否走上了正确的道路吗?对这些选项有什么简单的解释吗


提前谢谢你

警告

我没有使用这个功能

CONFIG_LOGBUFFER是一个内核配置标志。因此,使用
CONFIG\u LOGBUFFER=y
编译内核。此外部日志记录支持将在内核中启用


确保内核具有该配置。如果没有,请将此修补程序应用到您的内核并尝试。

我记得,U-Boot logbuffer接口仅在5到10年前的DENX linux内核树上工作。它可能仅限于几个平台,上面有一些链接。linux内核端的补丁并没有进入主线,所以即使在那个时候也很难开始工作

然后,大约在3.5内核中,printk接口用于记录面向对象的输出。在我看来,这使得CONFIG_LOGBUFFER完全死掉了,没有进行大规模的总体重新设计


对于你描述的目标,应该有更好的选择。如果您的目标具有以太网,则U-Boot NETCONSOLE可以工作。如果您的目标公司有JTAG,那么制造测试可以使用它(您可以责怪硬件设计),这可能会打开许多黑客但有效的选项,例如U-Boot MEMCONSOLE。U-Boot POST没有得到任何喜爱,但您可以添加一些代码,这对我来说很有用

嗯,我无法实现我所问的问题,但我可以提取日志(测试日志,而不是完整的SPL日志)

测试日志对于我们在制造测试期间发现故障硬件单元的测试结果非常重要

所以我采取的解决方案是:

  • 除了在终端上打印结果外,我还将它们写在特定的RAM位置上,例如SPL的0x80900000(显然应该在RAM初始化之后完成)
  • 然后使用
    tftpput
    从u-boot读取并发送该RAM位置值。看
  • 为了日志文件名的唯一性,我使用macid作为u-boot环境变量中设置的文件名

  • 我相信我们可以实现我在问题中提出的要求,但目前我们对我实现的短期解决方案感到满意:)

    感谢您的回复,在我的内核中我没有配置日志缓冲区,我认为补丁很旧,主要用于powerpc arch。它不适用于:(谢谢你的回复Joe,你是对的LOGBUFFER补丁不适用。我们正在SPL中运行EEPROM、RAM和NAND测试,我不确定届时是否会分配IP,我们是否可以使用NETCONSOLE,我将检查NETCONSOLE。我们正在以EEPROM中的标志形式保存结果,但有时EEPROM会损坏,因此我们需要测试日志。)omehow.One问题,在加载u-boot之前,是否可以在SPL中写入文件并通过tftp将其发送到主机pc?标准u-boot tftp是文件接收。CONFIG_CMD_TFTPUT确实进入主线u-boot。但是,DHCP+NET+TFTPUT、创建文件等可能不符合通常激励使用SPL的约束条件。谢谢你的回复,乔,我同意如果我们使SPL变大,它甚至可能不适合内部RAM,但如果启用上述配置并使其变大(如果它适合内部RAM),我们需要在制造SPL时进行此配置。Mfg SPL将通过tftp加载,只是为了测试&首先引导板和闪存二进制文件,并在NAND上闪存SPL的较小副本。现在,我唯一的c首先,如何从SPL创建一个文件,因为我没有看到任何允许我在RAM上写文件的配置。那么有没有办法在SPL/U-Boot中创建一个文件呢?我可以在U-Boot中启用TFTPUT,并将RAM数据作为文件传输到PC,现在我唯一要做的事情就是将测试结果从SPL传输到RAM,我会不断更新这篇文章。请参阅r TFTPUT进度