• ramdisk 在android中的使用


          ramdisk中包含一些对于启动android的很重要的文件,比如内核启动完后,加载的第一个进程init,一些重要的配置文件等,总之它控制着整个android的启动。
     ramdisk的使用有两种方法:1,编译进内核;2,将ramdisk单独烧写
    1,编译进内核
    将ramdisk解压,可以看到它里面有很多文件和目录,如:data,dev,proc,sbin,sys,system,default.prop,init,init.rc等,有点像板子跑起来的根目录.将解压出来的文件夹重命名为root,放到linux内核代码的根目录下,并用make menuconfig配置启动这个root文件夹,配置保存后会生成如下项:
    CONFIG_BLK_DEV_INITRD=y
    CONFIG_INITRAMFS_SOURCE="root"
    CONFIG_INITRAMFS_ROOT_UID=0
    CONFIG_INITRAMFS_ROOT_GID=0
    这些也可以直接在xxxx_defconfig改,然后make xxxx_defconfig使其生效.
    这样做了以前,root将被编译进zImage,并随之一起烧进板子.
    2,将ramdisk单独烧写
    也可以将ramdisk作为一个单独的包烧写,就烧在zImage的后面.假如zImage烧在0x600000,那么ramdisk就烧在0x800000就好.值得注意的是,ramdisk在烧写之前要进行一次转换.因为bootloader在运行的时候,会将ramdisk从FLASH加载到RAM中,它会把FLASH上0x800000-0x880000的空间作为ramdisk读取,并检查其最后四个字节,这四个字节保存的是ramdisk.img的实际大小.所以我们要做的转换工作就是把原来的ramdisk.img(100多字节)转换成512字节,并在其最后四个字节写ramdisk.img的实际长度.最后在bootloader中写程序把ramdisk加载到RAM.同时.config中的配置项只要:
    CONFIG_BLK_DEV_INITRD=y

    CONFIG_INITRAMFS_SOURCE=""



  • 相关阅读:
    AtCoder Grand Contest 033
    Luogu P6620 [省选联考 2020 A 卷] 组合数问题
    Luogu P6631 [ZJOI2020] 序列
    Luogu P6630 [ZJOI2020] 传统艺能
    Luogu P6633 [ZJOI2020] 抽卡
    Luogu P6623 [省选联考 2020 A 卷] 树
    AtCoder Grand Contest 034
    Luogu P5445 [APIO2019] 路灯
    LOJ #6059. 「2017 山东一轮集训 Day1」Sum
    Luogu P3721 [AH2017/HNOI2017]单旋
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744949.html
Copyright © 2020-2023  润新知