向linux kernel中添加cmdline的四种方式

kernel cmdline 添加位置 cmdline 阅读详情
AI摘要

本文详细介绍了在Linux启动过程中,如何在不同阶段添加cmdline参数。从设备树(dts)的bootargs,到BoardConfig文件,再到U-Boot以及Android的Makefile,逐一阐述了每个步骤的作用和配置方法。在启动完成后,cmdline参数可以在/proc/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 initrd=/recoveryrc boot_reason=0x2000 ota_status=0x1001

1

在linux启动完成后,通过 cat /proc/cmdline也是可以看到cmdline. 那么cmdline是如何添加的呢?

1、 在dts中的bootargs中添加

/ {

    model = "xxx yyyyyyy FPGA";

    compatible = "xxx ,yyyyy-fpga", "xxx ,yyyyyy";



    chosen {

        /*

         * initrd parameters not set in dts file since the ramdisk.img size

         * need to check in uboot, and the initrd load address and size will

         * set in uboot stage.

         */

        bootargs = "earlycon androidboot.selinux=permissive uart_dma keep_dbgclk_on clk_ignore_unused";

        stdout-path = "serial0:115200";

    };

......

}

2、在BoardConfig中添加

vim device/xxx/xxx_evb/BoardConfigCommon.mk



BOARD_KERNEL_CMDLINE += androidboot.selinux=enforcing androidboot.hardware=xxxxx_phone androidboot.dtbo_idx=0

1

3、在uboot中添加

vim u-boot/common/cmd_bootm.c

append_bootargs("recovery=1");

sprintf(dm_buf,"init=/init skip_initramfs rootwait root=/dev/dm-0 dm=\"system none ro,0 1 android-verity /dev/mmcblk0p%d\"",ret);

append_bootargs((const char *)dm_buf);

4、在android的Makefile中添加

vim build/core/Makefile



INTERNAL_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE) buildvariant=$(TARGET_BUILD_VARIANT) $(VERITY_KEYID))

ifdef INTERNAL_KERNEL_CMDLINE

INTERNAL_BOOTIMAGE_ARGS += --cmdline "$(INTERNAL_KERNEL_CMDLINE)"

endif

cmdline(二):uboot cmdline怎么传?&&cmdline kernel怎么用? 阅读详情

相关推荐

uboot读取adc,通过cmdline传给kernel解析数值,不同硬件模块进行处理

(1)kernel编译链接,利用.__param .init.setup段将kernel所需参数(driver及通用)和对应处理函数的映射表(obs_kernel_param kernel_param结构体)存放起来。1.首先kernel已经做了cmdline得解析,start_kernel中setup_arch中解析tags获取cmdline,拷贝到boot_command_line中。将cmdline拷贝2份,放在saved_command_line static_command_line。

hxHardway的博客 1789

树莓派boot分区cmdline.txt

修改树莓派boot分区cmdline.txt,指定输出特定级别内核调试信息 转载自: http://smilejay.com/2011/10/kernel_parameters/ 备用链接https://blog.youkuaiyun.com/sdcxyz/article/details/22760151 Console和kernel log相关启动参数: co...

阿群的笔记(同步备份自简书) 5220

Linux: Kernel: boot cmdline, grub;参数解释;降级

/arch/x86/kernel/apic/apic.c 这个文件里定义了一些early_param的参数,以及相应的处理函数。 kernel支持的参数: https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

mzhan017的博客 2227

is not enclose code

因为没有添加  static

qq906786621的专栏 501

STM32H750实战:如何用CubeMX配置NAND Flash时序(附常见问题排查)

本文详细解析了STM32H750通过CubeMX配置NAND Flash时序的实战技巧,包括硬件连接、时序参数计算与优化策略,以及常见问题如RGB屏幕干扰、多片选冲突的解决方案。特别针对NAND Flash的时序配置和抗干扰设计提供了实用代码示例和优化建议,帮助开发者提升系统稳定性和性能。

weixin_29176179的博客 363

ESP-IDF下载配合MQTT协议接入云平台实例

通过ESP-IDF下载环境搭建,结合MQTT协议实现设备与云平台通信,详解从配置到连接的完整流程,助力物联网应用开发。重点涵盖espidf下载和MQTT集成关键步骤。

weixin_28913879的博客 454

linux 内核 增加串口,[other]-向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...

weixin_31302227的博客 444

三极管简单振荡电路实现:从零开始的实战示例

通过一个基础实例,手把手教你如何利用三极管构建简单的振荡电路,深入理解三极管在实际电路中的工作原理与应用技巧。

weixin_32836713的博客 1202

linux kernel中的cmdline的详细介绍

cmdline1、跳转linux kernel之前-准备cmdline2、kernel启动-解析cmdline 1、跳转linux kernel之前-准备cmdline 在跳转linux kernel之前(如uboot中),将cmdline数据放到了FDT中,然后将FDT的地址写入到了X0中。然后再跳转linux kernel. 别问我怎么知道的,请看kernel-4.14/Documentation/arm64/booting.txt Before jumping into the kernel, the

baron-周贺贺-代码改变世界ctw 2万+

基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制与龙伯格观测器设计​

本文介绍了基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制方法,重点讲解了龙伯格观测器的设计与实现。主要内容包括:1)系统架构与数学推导,通过静止坐标系状态方程和极点配置构建观测器;2)Simulink建模步骤,从电机模型搭建到观测器核心代码实现;3)仿真结果对比分析,显示龙伯格观测器相比滑模观测器具有更好的平滑性和抗噪能力;4)工程部署建议,包括参数在线辨识、低速补偿策略和代码生成优化。该方法实现了全速域无感运行,稳态转速误差小于1%,为低成本高可靠性电机控制提供了有效解决方案。

amy_mhd的博客 161

离心泵级间导叶的设计计算

离心泵级间导叶的设计计算高速离心泵级间流道的作用是将第一级复合叶轮流出的高速液流收集起来并送入第二级复合叶轮。级间流道的设计应考虑降低液体的流速,实现动能向压力能转化,减小液体的水力损失。级间流道主要有蜗壳形流道和导叶两种结构形...

cqzc55322的博客 2566

linux kernel的cmdline参数解析原理分析

依据我的思路(时间顺序,如何开始,如何结束),首先看kernel下2种参数的注册。 第一种是kernel通用参数,如console=ttyS0,115200 root=/rdinit/init等。这里以console为例。 第二种是kernel下各个driver中需要的参数,在写driver中,如果需要一些启动时可变参数。 可以在driver最后加入module_param()来注册一个参数,kernel启动时由cmdline指定该参数的值。 这里以drivers/usb/gadget/serial.c中

做一个有技术追求的人 5万+

软考中级-软件设计师 知识点整理(一篇就过了 建议收藏)

软考中级-软件设计师上午题知识点总结

片言可决讼,半纸能缚龙 17万+

linux kernel CMDLINE初始化

Cmdline是由bootloader传给kernel,如uboot,将需要传给kernel的参数做成一个tags链表放在ram中,将首地址传给kernel,kernel解析tags来获取cmdline等信息。 向linux kernel中添加cmdline有下面三种方式: 1、 在dts中的bootargs中添加,CONFIG_MIPS_CMDLINE_FROM_DTB / { chosen { name = "chosen"; bootargs = "rd_...

man9953212的博客 958

最大面积验证码通用解法

最大面积验证码、面积验证通用解法

九月镇灵将的博客 1044

高通GAIA V3命令参考手册的研读学习(15):自定制命令的详细工作描述

里的示例一样,手机APP发出这个GetManuFacturer的命令发0x0000,那么耳机回复:0x8000, 同时在回复的playload部分,用最多15个字节的ACSII码来表达制造商信息(因此最多15个字母)。那么这个APP在通过GAIA协议控制这个耳机时,不仅可以通过前面讲过的vendor ID来识别,也可以更进一步通过这个命令来识别这个耳机,到底是不是本公司的。通过这个可变长度的playload,真的是可以传达极多的事先约定的信息,相当的灵活,真是不错!这个命令用来得到设备的制造商信息。

qq_37191547的博客 398

Linux杂项:Linux内核cmdline详解(如何通过bootload给kernel传递参数)

Linux学习笔记:Linux内核cmdline详解(如何通过bootload给kernel传递参数)

嵌入山脊的博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

cmdline(一):cmdline是什么?&&cmdline怎么添加?

cmdline(一):cmdline是什么?&&cmdline怎么添加?

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 6908

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Linux kernel】linux kernel中的cmdline (二)

在linux启动完成后,通过 cat /proc/cmdline也是可以看到cmdline. 那么cmdline是如何添加的呢?

weixin_41028159的博客 902

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【Linux kernel】linux kernel中的cmdline (一)

\ }该段放在.rodata段中。那该段中存放的是什么样的数据呢?saveenv或者通过insmod传入moal.mod_para中的moal代表模块的名字。跟.init.setup段一样,kernel链接时会根据链接顺序将定义的kernel_param放在__param段中。

weixin_41028159的博客 2519

在linux kernel或android中解析cmdline参数

Kernel command line: earlycon androidboot.selinux=permissive uart_dma keep_dbgclk_on clk_ignore_unused initrd=0xd0000000,38711808 rw crash_page=0x8f040000 initrd=/recoveryrc boot_reason=0x2000 ota_sta...

baron-周贺贺-代码改变世界ctw 6398

linux kernel 从cmdline 提取值

1 // 从cmdline 提取 rootfsname= 的值到 val_buf 2 char val_buf[64]; 3 #define ROOTFS_CMDLINE "rootfsname=" 4 5 static void __init gluebi_read_cmdline...

awks4002的博客 670
上一篇: 如何打开LK打印信息
下一篇: MTK平台创建Vendor方法-v1.4
fight for survive
博客等级 码龄15年 25粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值