快速业务通道

精通init ramfs构建step by step (九)

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-11

二十七、直接把cpio打包文件编译进内核

  如果我们有一个已经做好的cpio格式的init ramfs,可以在内核编译时直接编译进内核.回忆一下第一节的内容,我们在内核配置参数中的init ramfs sources配置项下输入构建init ramfs的目录路径.其实我们也可以直接输出现成的init ramfs的文件名,这样在内核编译时,就可以把它编译进内核了.

  使用这种方法,有两点需要注意:

  (1)cpio文件不能压缩.一般作为initrd的cpio文件都经过了压缩,编译前需要先把压缩过的文件解压.

  (2)cpio文件的后缀名是 .cpio.内核编译通过 .cpio的后缀名来识别此文件是cpio打包文件,而其他文件后缀名则会被认为是init ramfs构建的描述文件(关于描述文件,下面后详细说明).

  二十八、用描述文件构建init ramfs

  用内核编译工具构建init ramfs的第三种方法是使用描述文件.在内核配置参数中的init ramfs sources配置项下可以输入init ramfs构建描述文件的文件名,内核编译工具根据描述文件完成init ramfs的构建.

  描述文件的语法格式的说明如下:


例子:

  我们用描述文件的方式,构建第一节中的hello world的init ramfs.

  hello-init.desp:

  dir /dev 0755 0 0

  nod /dev/console 0600 0 0 c 5 1

  file /init /home/wyk/init ramfs-test/hello_static 0755 0 0

  在内核配置项init ramfs sources中指定描述文件hello-init.desp,编译内核时就会生成hello world的init ramfs,运行效果与第一节用指定构建目录的方法构建的init ramfs的完全相同.

  注意:在内核帮助文件中,提到init ramfs sources配置项可以指定多个目录或描述文件,内核会汇集这些目录或文件生成一个init ramfs.但从我的试验来看,init ramfs sources只接受单一的目录名或文件名,输出多个目录名或文件名(之间用空格分隔),内核编译时就会出错.也许是我的方法有误,还望读者指正.


凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号