根据我之前写的博文可知,start_kernel中setup_arch中解析tags获取cmdline,拷贝到boot_command_line中。我们接着往下看start_kernel。 调用setup_command_line,将cmdline拷贝2份,放在saved_command_line static_command_line。 下面调用parse_early_param(),如下: 代码语言:javascript 复制 void__initparse_early_options(...
(2)、kernel启动-解析cmdline 1、向linux kernel添加cmdline的四种方式 在linux启动时候,串口log中会打印cmdline [ 0.000000] c0 0 (swapper) Kernel command line: earlycon androidboot.selinux=permissive uart_dma keep_dbgclk_on clk_ignore_unused initrd=0xd0000000,38711808 rw crash_page=0x8f040000 in...
依据我之前写的博文可知,start_kernel中setup_arch中解析tags获取cmdline,复制到boot_command_line中。我们接着往下看start_kernel。 调用setup_command_line,将cmdline拷贝2份,放在saved_command_line static_command_line。 以下调用parse_early_param(),例如以下: void __init parse_early_options(char *cmdline) {...
刚才只是初始化了cpu相关的,而具体和板子相关的由start_arch执行 3 kernel 参数分析:kernel command line。注意,这个参数是由BL传递给kernel的,不过这个参数又是谁设置的呢?又存在什么地方呢?这个line放在一个global的地方, 另外,kernel如何处理这些参数呢?有一个比较好的办法,__set_up宏,将一些参数和对应的函数指...
还有一种方法是将内核命令写入内核参数表中,然后通过start_kernel()->setup_arch()->parse_tags()的过程进行解析和使用。 值得注意的是,有时可能需要强制内核使用自配置的cmdline,而不是使用bootloader传递过来的cmdline。这可以通过在内核配置中设置“Kernel command line type”为“Always use the default kernel co...
(2)、kernel启动-解析cmdline linux kernel从stext开始启动,整个流程大概就是读取X0(FDT地址)保存到X21中,又将X21保存到__fdt_pointer全局变量中 然后再将__fdt_pointer解析处cmdline数据到boot_command_line全局变量中。 /** The following callee saved general purpose registers are used on the* primary low...
解析start_kernel函数 上次我们写过了Linux启动详细流程,这次单独解析 start_kernel 函数。 如下请参考注释: Linux kernel-6.1/init/main.c __visible无效__init __no_sanitize_address start_kernel(无效) { 字符*command_line; 字符*after_dashes; set_task_stack_end_magic(&init_task);/*设置任务栈结束...
(2)setup_command_line、parse_early_param以及parse_args函数 这些函数都是在完成命令行参数的解析、保存。譬如,cmdline = console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3;解析为一下四个参数: console=ttySAC2,115200 //指定控制台的串口设备号,及其波特率 ...
这里首先获取了原来的cmdline参数,然后判断是否有用户自定义数据的环境变量,如果有,就把它们拼接到cmdline参数中,然后重新设置bootargs环境变量,并传递给commandline指针。这样,当u-boot启动kernel时,就会把这些用户自定义数据作为cmdline参数传递给kernel。 4. 在kernel中解析cmdline参数,并获取用户自定义数据 ...