新闻  |   论坛  |   博客  |   在线研讨会
iTOP-RK3568开发板Uboot参数-内核启动参数cmdline
红李亚 | 2023-05-17 15:48:08    阅读:321   发布文章

目前 cmdline 参数有多个来源,由 U-Boot 进行拼接、过滤重复数据之后再
传给 kernel。U-Boot 阶段的 cmdline 被保存在 bootargs 环境变量中。U-Boot 最
终是通过修改的 kernel DTB 里的 /chosen/bootargs 实现 cmdline 传递。
cmdline 是 uboot 引导内核启动时传递给内核的,作用是指导内核启动,内
核启动阶段会去解析 cmdline,并根据 cmdline 去指导内核启动。
cmdline 格式是由很多个项目用空格隔开依次排列,每个项目中都是项目名= 项目值。整个 cmdline 会被内核启动时解析,解析成一个一个的项目名=项目值
的字符串。这些字符串又会被再次解析从而影响启动过程。
当内核启动之后,cmdline 命令在启动过程中如下所示:

我们也可以进入文件中,输入以下命令查看 cmdline。

su

cat /proc/cmdline

cmdline 参数说明

storagemedia=emmc

androidboot.storagemedia=emmc

表示存储介质使用的是 EMMC

androidboot.mode=normal

表示安卓系统的启动方式是正常启动方式。除了正常启动方式,还有 charger

(电源充电)启动模式。

androidboot.dtb_idx=0

androidboot.dtbo_idx=0

表示设置的是 dtb 和 dtbo 的索引值,表示在多个设备树中用第几个设备树。

androidboot.verifiedbootstate=orange

官方解释:

On Android, the boot loader must set the androidboot.verifiedbootstate parameter

on the kernel command-line to indicate the boot state. It shall use the following value:

green: If in LOCKED state and the key used for verification was not by the end user. yellow: If in LOCKED state and the key used for verification was setby the end user. orange: If in the UNLOCKED state

androidboot.serialno=67188a9846568f84

表示安卓序列号

androidboot.wificountrycode=CN

表示设置 wifi 的国家码为 CN

androidboot.veritymode=enforcing

表示验证固件的完整性

androidboot.slot_suffix= 表示用于 OTA 升级,选择指定是从 a 启动还是 b 启动

androidboot.baseband=N/A

基带是哪一个,rk 没有这个功能。

console=ttyFIQ0

定义串口

androidboot.hardware=rk30board

表示启动设备的名字

firmware_class.path=/vendor/etc/firmware

指定驱动放置的位置,一些不开源的驱动,如 wifi、bt、gpu 等

init=/init

祖先进程的权限和位置

rootwait ro

用于文件系统不能立即可用的情况,例如 emmc 初始化未完成,这个时候如

果不设置 root_wait 的话,就会 mount rootfs failed,而加上这个参数的话,则可以等

待 driver 加载完成后,在从存储设备中 copy 出 rootfs,再 mount 的话,就不会提

示失败了。ro:加载 rootfs 的属性,只读/读写

loop.max_part=7

用来设定每个 loop 的设备所能支持的分区数目

androidboot.selinux=permissive

有三种模式:

enforcing :强制模式

permissive :宽容模式,这种模式可以用来作为 selinux 的 debug 之用。

disabled: 关闭 selinux

buildvariant=userdebug

earlycon=uart8250,mmio32,0xfe660000

在串口节点未建立之前,指定串口及其配置

androidboot.boot_devices=fe310000.sdhci,fe330000.nandc

表示 emmc 和 nand 的基地址


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客