关于initramfs

initramfs在编译内核的同时被编译并与内核连接成一个文件,它被链接到地址__initramfs_start处,与内核同时被加载到ram中。initramfs被解析处理后原始的cpio包(压缩或非压缩)所占的空间(&__initramfs_start- &__initramfs_end)是作为系统的一部分直接保留在系统中,不会被释放掉。

由于initramfs使用cpio包格式,所以很容易将一个单一的文件、目录、node编译链接到系统中去,这样很简单的系统中使用起来很方便,不需要另外挂接文件系统。

但是因为cpio包实际是文件、目录、节点的描述语言包,为了描述一个文件、目录、节点,要增加很多额外的描述文字开销,特别是对于目录和节点,本身很小额外添加的描述文字却很多,这样使得cpio包比相应的image文件大很多。

关于内核配置和编译

内核配置:make menuconfig进入配置

进入General setup  --->

选择内核压缩为LZMA压缩

Kernelcompression mode (LZMA)  --->

然后选择

[*]Initial RAM filesystem and RAM disk (initramfs/initrd) support

(/rootfs_dir) Initramfs source file(s)

其中rootfs_dir就是我们需要压缩的rootfs的路径。

1、  修改压缩包在内存中的存放位置:(mips芯片)

arch/mips/boot/compressed/calc_vmlinuz_load_addr.c中的

vmlinuz_load_addr =0x81a00000;(此地址可根据需要,自己调节)

2、修改rootfs的busybox链接, 在rootfs的目录下执行:

ln –sbin/busybox init

3、修改CMDLINE:

“console=ttySAC0,115200 init/init rw kgdbttySAC0,115200kgdboc=ttySAC0
mem=32M”

4、最后make编译

make vmlinuz.bin

之后在当前目录下就会生成vmlinuz.bin的压缩包。

5、可能编译会有问题,此时一般是由于rootfs是root权限,用户组也是root,需要修改用户组,之后便可以编译通过。

最新文章

  1. 如何进行python性能分析?
  2. java 编码
  3. 5G扫盲
  4. Windows Live Writer技巧
  5. JavaScript面向对象简介
  6. 【Android开发经验】ViewHolder到底用什么修饰?static?final?static final?
  7. 如何升级nodejs版本
  8. (Inno setup打包)检测系统是否已安装程序,若已安装则弹出卸载提示的代码
  9. 【linux】U-BOOT与linux kernel通信: struct tag
  10. redis源码分析之发布订阅(pub/sub)
  11. 不root手机的情况下查看Android数据库
  12. python-初始化函数
  13. golang:send mail using smtp package
  14. table-layout 显示规则以及其他一些零碎的东西
  15. 2017-2018-2 20155315《网络对抗技术》免考五:Windows提权
  16. Struts2环境搭建及实例解析
  17. Android [VP]视频播放器播放本地视频时收到短信/彩信,需要界面提示 M
  18. 转载:从程序员的角度看ASCII, GB2312, UNICODE, UTF-8
  19. alert 多语言的处理
  20. h5中video的一些坑

热门文章

  1. sql中奇怪的sum(1),sum(2),count(1),count(6),count(*):统计总数
  2. listview下拉刷新上拉加载扩展(一)
  3. 【VSTS 日志 15/11/18】 – 插件应用市场,RM,包管理器等
  4. Tomcat中定制阀门
  5. 【一天一道LeetCode】#87. Scramble String
  6. Chapter 2 User Authentication, Authorization, and Security(5):使用固定服务器角色
  7. pig limit 少于10行,会返回所有记录
  8. EBS 信用检查(二)
  9. python爬虫 - Urllib库及cookie的使用
  10. AngularJS进阶(三十四)Angular数据更新不及时问题探讨