我使用的是OpenWRT,我尝试使用netconsole而不是串行电缆来调试内核消息。默认情况下,OpenWRT中未定义netconsole,我无法通过menuconfig添加它。任何地方都没有相关文档。任何有关将netconsole添加到内核的帮助都将非常感谢!感谢
答案 0 :(得分:1)
运行:make kernel_menuconfig 并选择选项。 但仅此一点对您没有帮助。 Netconsole 需要设置内核启动参数,最重要的是,发送控制台消息的目标地址。您需要修改引导加载程序以将该参数传递给内核。
答案 1 :(得分:0)
我找到了一种方法。 首先,您需要查看 .config 文件,该文件位于linux文件夹中,其中包含您使用的版本。 例如,我正在使用qca / src / linux-3.14。 这个 .config 正在编译中构建。 你可以看到这个领域
# CONFIG_NETCONSOLE is not set
此文件中的配置将定义要构建的内容和不构建的内容。
所以为了构建这个模块,转到你的目标文件夹,在linux / generic /中有另一个configs文件,我的是 config-3.14 。你的将是你使用的linux版本。
将CONFIG_NETCONSOLE is not set
更改为CONFIG_NETCONSOLE=m
并添加CONFIG_NETCONSOLE_DYNAMIC=y
'。
现在在编译中,第一个 .config 文件将使用正确的配置,并将创建netconsole.ko模块。
这对于将任何受.config文件影响的模块添加到内核是有效的。
当然,您需要手动添加此模块,或将模块添加为内核CONFIG_NETCONSOLE=y
的一部分,但我对此有一些问题。