Linux kernel 在内核内编辑内核命令行参数
U-boot传递内核命令行参数。在我的需求中,我想在内核源代码树中编辑这些参数,而不想更改U-boot代码。我使用的是2.6.35内核 所以请指导我检查内核源代码的哪一部分 遵循以下步骤:Linux kernel 在内核内编辑内核命令行参数,linux-kernel,embedded-linux,u-boot,Linux Kernel,Embedded Linux,U Boot,U-boot传递内核命令行参数。在我的需求中,我想在内核源代码树中编辑这些参数,而不想更改U-boot代码。我使用的是2.6.35内核 所以请指导我检查内核源代码的哪一部分 遵循以下步骤: 输入内核配置,方法是键入makemenuconfig 输入“处理器类型和功能”菜单 启用内置内核命令行 通过单击内置内核命令字符串指定命令行 如果希望忽略bootargs,请选择内置命令行覆盖引导加载程序参数 遵循以下步骤: 输入内核配置,方法是键入makemenuconfig 输入“处理器类型和功能”菜
- 输入内核配置,方法是键入
makemenuconfig
- 输入“处理器类型和功能”菜单
- 启用内置内核命令行
- 通过单击内置内核命令字符串指定命令行
- 如果希望忽略
,请选择内置命令行覆盖引导加载程序参数bootargs
- 输入内核配置,方法是键入
makemenuconfig
- 输入“处理器类型和功能”菜单
- 启用内置内核命令行
- 通过单击内置内核命令字符串指定命令行
- 如果希望忽略
,请选择内置命令行覆盖引导加载程序参数bootargs
+CONFIG_CMDLINE="foo=1"
+CONFIG_CMDLINE_EXTEND=y
Check runtime:-
$cat /proc/cmdline
如果从内核配置:-
+CONFIG_CMDLINE="foo=1"
+CONFIG_CMDLINE_EXTEND=y
Check runtime:-
$cat /proc/cmdline
谢谢你的回复。似乎默认配置文件中定义的CONFIG_CMDLINE显示在make menuconfig(选择启动选项)中。我必须根据GPIO值在运行时进行更改。什么是“在运行时更改”?内核配置中有一个编译时选项。如果您需要运行时更改,最好了解如何更改bootargs参数(例如,让U-boot通过适当的运行时脚本检查GPIO),在内核运行时,我必须修改内核命令行。示例:假设“console=ttyS0”是在CONFIG\u CMDLINE中定义的,那么如果gpio值为1,我必须更改为“console=ttyS1”,否则为“console=ttyS0”。一旦内核启动,就不能更改引导命令行。你需要找到一个不同的策略。U-boot允许运行脚本(即程序)。您可以在RAM中加载U-boot中的程序,该程序检查GPIO,然后更改bootargs参数。这很简单,不需要你修改U-Boot的源代码。谢谢你的回复。似乎默认配置文件中定义的CONFIG_CMDLINE显示在make menuconfig(选择启动选项)中。我必须根据GPIO值在运行时进行更改。什么是“在运行时更改”?内核配置中有一个编译时选项。如果您需要运行时更改,最好了解如何更改bootargs参数(例如,让U-boot通过适当的运行时脚本检查GPIO),在内核运行时,我必须修改内核命令行。示例:假设“console=ttyS0”是在CONFIG\u CMDLINE中定义的,那么如果gpio值为1,我必须更改为“console=ttyS1”,否则为“console=ttyS0”。一旦内核启动,就不能更改引导命令行。你需要找到一个不同的策略。U-boot允许运行脚本(即程序)。您可以在RAM中加载U-boot中的程序,该程序检查GPIO,然后更改bootargs参数。这很容易,而且不需要您修改U-Boot的源代码。