linux内核如何解析uboot传入的bootargs

时间: 2023-10-03 12:02:57 浏览: 71
当-Boot 启动内核时,会将一些参数传递给内核,这些参数被称为 "bootargs",它们包含了 U-Boot 和内核之间的通信信息,例如内核启动时需要的命令行参数,root文件系统的位置,以及其他的一些配置信息。 在 Linux 内核启动过程中,它会解析这些参数并将其存储在一个名为 `struct boot_params` 的结构体中。这个结构体定义在文件 `include/linux/bootparam.h` 中,其中的 `setup_data` 成员保存了传递给内核的所有参数。 具体的解析过程是在 `arch/x86/boot/header.S` 中完成的,该文件定义了一个名为 `setup_header` 的结构体,其中包含了 Boot Protocol 的头部信息和 U-Boot 传递的参数。内核启动时,会先检查 `setup_header` 是否有效,然后将参数传递给内核。 在 `setup_header` 中,`cmdline_ptr` 指向了 `bootargs` 的起始地址,内核会解析 `bootargs` 中的命令行参数,并将其传递给相应的模块进行处理。例如,如果 `bootargs` 中指定了 root 文件系统的位置,内核会使用相应的驱动程序挂载 root 文件系统。 总的来说,通过解析 U-Boot 传递的 `bootargs` 参数,Linux 内核可以获取启动时的配置信息,从而正确地初始化系统环境。
相关问题

uboot添加bootargs结点

为了在U-Boot中添加bootargs节点,你需要编辑U-Boot配置文件并重新编译U-Boot。按照以下步骤进行操作: 1. 打开U-Boot源代码目录,并找到`include/configs`目录。 2. 在该目录下找到与你的目标板型号相关的配置文件,通常以`<board_name>.h`的形式命名。 3. 打开该配置文件,找到`#define CONFIG_BOOTARGS`行。如果不存在该行,请在文件的合适位置添加以下内容: ``` #define CONFIG_BOOTARGS <your_bootargs> ``` `<your_bootargs>`是你要添加的bootargs参数。 4. 保存并关闭配置文件。 5. 在U-Boot源代码根目录,运行以下命令重新编译U-Boot: ``` make clean make <board_name>_config make ``` `<board_name>`是你的目标板型号。 6. 编译完成后,在U-Boot源代码根目录会生成更新后的U-Boot镜像文件(通常以`u-boot.bin`命名)。 7. 将生成的U-Boot镜像文件烧录到目标设备中。 完成以上步骤后,你的U-Boot就会包含你添加的bootargs节点了。请确保在添加bootargs之前,你已经了解并熟悉了U-Boot的配置和编译过程。

uboot删除bootargs参数

在uboot中删除bootargs参数,可以通过以下步骤: 1. 进入uboot命令行界面,使用printenv命令查看当前的bootargs参数。 2. 使用setenv命令将bootargs参数清空,即: setenv bootargs "" 3. 使用saveenv命令保存修改后的环境变量。 4. 重启设备,此时bootargs参数已经被删除。 需要注意的是,删除bootargs参数可能会影响设备的启动和运行,建议在删除之前先备份bootargs参数,并在删除后进行测试和验证。

相关推荐

最新推荐

recommend-type

bootargs参数解析2020-08-26.pdf

本文档编写于2020-08-24,PDF带标签。主要介绍bootargs参数的各个参数的含义,举例说明,最后给出几种常见的bootargs参数的形式。
recommend-type

uboot nfs 启动内核环境搭建及实现.pdf

本文档编写于2020-08-22,主要讲述了uboot通过nfs启动内核(kernel)的Uboot和kernel的配置,以及nfs服务的搭建,最后成功的启动kernel。
recommend-type

嵌入式Linux学习引导-Uboot移植之添加自定义命令

我们使用uboot的时候,大多数都是直接编译再移植了,很少改动里面的具体内容,特别是其中包含的命令等。
recommend-type

linux sd卡启动uboot

详细介绍ubantu环境下的sd卡启动uboot的过程,详细介绍uboot源码分析
recommend-type

linux下为SD卡烧写uboot.bin的原理与方法

本次对linux下为SD卡烧写uboot.bin的原理与方法进行一个讲解 自己归纳总结的linux下将uboot.bin文件烧写到SD卡的方法与原理,其中包含了对dd命令的分析,和tiny210对SD卡启动的要求,针对SD卡进行分区管理的原理。...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。