向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

Android定位权限全解析:从基础配置到后台持续定位的完整解决方案

本文全面解析Android定位权限体系,从基础配置到后台持续定位的完整解决方案。涵盖LocationManager和FusedLocationProviderClient等主流API的对比选型,详细讲解动态权限申请、精确定位与模糊定位的智能切换,以及Android 10+的后台定位适配策略。帮助开发者构建兼顾精准度与电量友好的定位方案,适用于导航、运动轨迹记录等多种场景。

weixin_29310605的博客 608

用Python实现斗地主游戏(终端版)

马上就要过年了 大家也都放假了吧 过年必不可少的活动 打牌! 今天带大家来写一份斗地主 (又是好多天没怎么更新,忙成狗啊) 那么实现一个斗地主呢 我们肯定要先完善卡牌系统 from collections import Counter import numpy as np import itertools def cmp_to_key(mycmp): 'Convert a cmp= function into a key= function' class K: def _

Miku_wx的博客 9856

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

GD32F303定时器配置:实现两路互补PWM输出与相位控制

本文详细解析了基于GD32F303定时器实现两路互补PWM输出与精确相位控制的方法。通过配置TIMER2的中间对齐模式,结合REMAP功能解决引脚复用问题,从硬件层面稳定生成相位差180度的互补PWM信号,适用于电机驱动、开关电源等对时序要求苛刻的应用场景。

weixin_29182481的博客 306

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万+

STM32F401RET6寄存器手册阅读标记

对于时钟树配置,可参考STM32CubeMX中的时钟树配置,STM32CubeMX将基础配置图像化,较为简单。RCC_CR寄存器的HSIRDY位为只读位,当读取值为1时,表示HSI振荡器准备就绪,当HSION位被设置时,HSIRDY会自动设置为低电平。//问题标记:USART配置寄存器信息是如何与USART1/2/3建立联系的(为什么不是三个分别配置)查阅寄存器手册可知,需要配置时钟的模块有:USART1,IO port A。(2)TX配置方法(寄存器手册512页)(4)配置寄存器(寄存器手册548页)

m0_72615170的博客 1468

VIPER22A实战:从零搭建15W非隔离电源,附BUCK电路调试心得

本文详细介绍了使用VIPER22A芯片从零搭建15W非隔离电源的全流程,重点解析BUCK电路设计与调试技巧。通过核心参数计算、PCB布局优化和效率提升方案,帮助工程师快速掌握DC-DC电源设计要点,实现高效稳定的电源转换。

redis7keeper的博客 669

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万+

【探秘】二维异形件重叠移除算法:从度量到消除的实战解析

本文深入解析二维异形件重叠移除算法的核心技术与实战应用,涵盖重叠度量、零件扰动策略及消除方法。通过NFP(临界多边形)技术、空间分区加速等优化手段,有效解决异形件排版中的重叠问题,提升材料利用率和计算效率。适合制造业、CAD软件开发者及算法工程师参考。

weixin_28698059的博客 252

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

TI单芯片毫米波雷达1642代码走读(〇)——总纲

前言 近年来,自动驾驶行业发展如火如荼,雷达技术也逐渐从军工封闭圈走向了开放的市场。 毫米波雷达具有全天候探测能力,特别是在雨雪雾天气以及夜间都能可靠工作,并且探测距离相对其他车载传感器非常远,对运动目标非常敏感,价格还低廉,这些特性都使其成为自动驾驶感知层面不可或缺的一环。 现如今的雷达已经不仅仅局限于测距测速测角等传统的功能,雷达技术正在从感知走向认知、从宽带走向超宽带、从二维走向三维四维、从相控阵走向数字阵列、从单通道走向MIMO、从独立工作走向分布式协同、从分立组件走向射频数字一体化。MIMO

3万+

Python 爬虫实战:知网论文数据爬取(题录 / 摘要 / 引用提取 + Excel 结构化)

在学术研究中,获取准确且全面的文献数据是至关重要的。知网(CNKI)作为国内最大的学术文献数据库,拥有海量的论文资源。通过 Python 爬虫技术,我们可以高效地从知网爬取论文数据,包括题录、摘要和引用信息,并将这些数据结构化存储到 Excel 文件中,方便后续的学术分析和研究。

yansideyucsdn的博客 1749

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

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

嵌入山脊的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

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

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

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

weixin_41028159的博客 902

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【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、付费专栏及课程。

余额充值