Linux kernel 将内核日志记录转到串行端口,但继续记录到oops ramlog

Linux kernel 将内核日志记录转到串行端口,但继续记录到oops ramlog,linux-kernel,console,linux-device-driver,embedded-linux,syslog,Linux Kernel,Console,Linux Device Driver,Embedded Linux,Syslog,我正在使用一个有一个外部串行端口的系统,它已经(并且仍然在使用相同内核的其他配置中使用)用于打印内核日志(和应用程序日志)。但是现在必须使用串行端口与外部设备通信 我找到了一种根据文件系统上配置文件上的文件进行getty引导的方法,但我无法将日志记录转到串行端口,并且仍然将日志记录到崩溃转储,崩溃转储使用存储在RAM中“持久”的oops日志(即,它们在软重启后仍然有效),并在下次引导时存储它们 如果我使用, dmesg——控制台关闭 它将同时记录串行端口和oops日志 目前我有bootargs=

我正在使用一个有一个外部串行端口的系统,它已经(并且仍然在使用相同内核的其他配置中使用)用于打印内核日志(和应用程序日志)。但是现在必须使用串行端口与外部设备通信

我找到了一种根据文件系统上配置文件上的文件进行getty引导的方法,但我无法将日志记录转到串行端口,并且仍然将日志记录到崩溃转储,崩溃转储使用存储在RAM中“持久”的oops日志(即,它们在软重启后仍然有效),并在下次引导时存储它们

如果我使用,
dmesg——控制台关闭
它将同时记录串行端口和oops日志

目前我有
bootargs=“console=ttyps0115200 loglevel=7…
引导参数与另一个产品共享,如果可能的话,该产品希望通过串行接口保持日志打印输出


有人对我如何防止日志打印在串行接口上,但仍然记录在oops日志中有任何建议吗?我可以编辑内核、内核模块/驱动程序和用户空间应用程序中的所有日志。

如果您想使用串行端口与外部设备通信,为什么要告诉我们内核是否将其用于输出?@Toto,引导参数有其遗留原因;我们对多个产品使用相同的内核和dts文件(并且更愿意继续使用相同的内核和配置)。我想另一个选择是,如果我为其他产品安装rootfs后可以添加控制台。据我所知,串行端口的内核输出干扰了使用串行端口与外围设备通信的目标。因此我想建议从引导参数中删除控制台。内核、dts可能是sa我。你的理解是正确的,问题是我正在为两个不同的应用程序运行同一个内核。其中一个应用程序希望将输出保持在串行端口上,而新应用程序希望为外围设备使用同一端口,在最好的情况下,我希望使用同一个内核,并在运行时选择是否应使用串行端口是否用于输出。如果删除
console=ttySx…
(其中
ttySx
是串行控制台的端口)它不会阻止您在其上使用
getty
。因此,您可以在需要时在第二个应用程序中获取端口。当然,两个应用程序不会同时工作。因此,您需要具有两个或更多物理串行接口的硬件。