Linux内核强制使用自配置的cmdline
2017-08-11 14:25
1906 查看
开发过程中遇到一些问题,需要改cmdline。cmdline在不同的平台上有不同的改法,有的单独存在于一个分区中,有的使用的是uboot,需要在启动过程中中断启动并进行手动修改,也有的平台上使用的是uboot的变种读取配置文件获取cmdline,更甚至还有一些平台在sdcard中跑系统和在emmc中跑系统的修改cmdline的方法都不一样,或许厂家还没有考虑到用户有改cmdline的需求。
一些方法是不可用的:
1. 需要改uboot源码才可以改cmdline的不可用;
2. 需要手动中断uboot启动并手动改cmdline的不可用;
可用的方法:
1. 将cmdline放到Android固件中,烧写android固件的同时cmdline也已经设置好,不需要再操作,这样就可以量产设备。
综上所述,如果厂家没有将cmdline放到一个单独的存储空间中且在烧写固件时就把cmdline设置好的话,目标就锁定在了kernel上,内核是第一个拿到cmdline的,也只有它主要在用,内核的配置项中有一个配置内核启动参数的选项
1. 强制内核使用自配置的cmdline
现在需要因地制宜,内核强制使用
2
3
4
5
6
1
2
3
4
5
6
将
2. 设置需要的CMDLINE
比如下图我的CMDLINE中添加了
另:
可能使用
一些方法是不可用的:
1. 需要改uboot源码才可以改cmdline的不可用;
2. 需要手动中断uboot启动并手动改cmdline的不可用;
可用的方法:
1. 将cmdline放到Android固件中,烧写android固件的同时cmdline也已经设置好,不需要再操作,这样就可以量产设备。
综上所述,如果厂家没有将cmdline放到一个单独的存储空间中且在烧写固件时就把cmdline设置好的话,目标就锁定在了kernel上,内核是第一个拿到cmdline的,也只有它主要在用,内核的配置项中有一个配置内核启动参数的选项
CONFIG_CMDLINE,但是它只是一个备胎,一般情况下还是主要使用bootloader传递过来的cmdline。
1. 强制内核使用自配置的cmdline
现在需要因地制宜,内核强制使用
CONFIG_CMDLINE不使用bootloader传递过来的cmdline,具体配置如下:
make menuconfig -> Boot options -> Kernel command line type (***) ( ) Use bootloader kernel arguments if available ( ) Extend bootloader kernel arguments (X) Always use the default kernel command string1
2
3
4
5
6
1
2
3
4
5
6
将
Kernel command line type (***)配置成
Always use the default kernel command string。这样内核就会使用自己的命令行参数。
2. 设置需要的CMDLINE
比如下图我的CMDLINE中添加了
androidboot.selinux=permissive
另:
可能使用
Extend bootloader kernel arguments这个选项会更友善一些,下次有时间再作测试,这里就不作讨论了。
相关文章推荐
- Linux内核强制使用自配置的cmdline
- 配置和使用linux内核调试环境(基于虚拟机)
- 如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE
- windows下配置mysql环境变量 - 使用cmd访问mysql(图)
- 解决使用强制配置文件后无法使用远程协助
- 使用Sconfig.cmd 配置ServerCore
- 浮点类型强制转换会丢弃小数部分(linux内核中一般不要使用浮点数,解决方法是放大为整数操作)
- 如何从linux内核--ubuntu系统cmdline上预留DDR物理内存DMA
- 使用 Sconfig.cmd 配置服务器核心服务器
- 安装完exe版本jdk之后未配置java_home和path环境变量仍然可以在cmd中使用java命令原因解释
- 配置串口使用KDB调试Linux内核
- 配置java开发环境,使用cmd编译java文件
- window cmd 下面使用命令行的配置方法
- Python使用eval强制转换字符串为字典时报错:File "<string>", line 1, in <module> NameError: name 'nan' is not defined
- JAVA环境变量配置与配置后CMD的使用
- 用于将.cs文件 编译成dll文件(补充),如何配置在cmd中使用csc命令
- linux内核关于uart2配置为RTS引脚时,串口无法使用的问题
- JAVA环境变量配置与配置后CMD的使用
- 使用cgroup中访问 /proc/pid/cmdline 卡死
- JAVA环境变量配置与配置后CMD的使用