Linux内核强制使用自配置的cmdline

来源:互联网 发布:ipad pro还是mac pro 编辑:程序博客网 时间:2024/06/05 07:20

开发过程中遇到一些问题,需要改cmdline。cmdline在不同的平台上有不同的改法,有的单独存在于一个分区中,有的使用的是uboot,需要在启动过程中中断启动并进行手动修改,也有的平台上使用的是uboot的变种读取配置文件获取cmdline,更甚至还有一些平台在sdcard中跑系统和在emmc中跑系统的修改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 string
  • 1
  • 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这个选项会更友善一些,下次有时间再作测试,这里就不作讨论了。


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米电脑死机了怎么办 小米8手机死机怎么办 oppa7开不了机怎么办 oppo手机wlan打不开怎么办 三星s6进水黑屏怎么办 银行卡不支持快捷支付怎么办 路由器忘记管理员密码怎么办 云付没有推荐人怎么办 牛呗审核不通过怎么办 华硕笔记本很卡怎么办 淘宝换货没有货怎么办 用手机怎么办网银 手机销号支付宝怎么办 黑狗狗毛发红怎么办 裤子洗掉色了怎么办 没买快递收到怎么办 淘宝介入卖家不举证怎么办 买家拒收快递货怎么办 买家到付拒收怎么办 买家发顺丰到付又拒收怎么办 到付快递骗局怎么办 一年级学生上课走神怎么办 网购出现质量问题怎么办 小米分期没额度怎么办 小米预约错了怎么办 小米商城缺货要怎么办 LG显示器不满屏怎么办 网页页面放大了怎么办 JSP样式失效了怎么办? 客户故意不结账怎么办 面对刁难的顾客怎么办 万家乐燃气灶具不好打火怎么办 垃圾处理器堵了怎么办 银赫入伍金俊秀怎么办 孕妇被蜈蚣咬了怎么办 苹果id密码忘了怎么办 苹果6触屏失灵怎么办 阴道里长尖锐疣怎么办 毛笔笔尖泡弯了怎么办 长智齿了很疼怎么办 买彩票中大奖了怎么办