和菜鳥一起學linux之initramfs方式啟動
關於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,需要修改使用者組,之後便可以編譯通過。
相關文章
- 和菜鳥一起學linux之linux效能分析工具oprofile移植Linux
- 和菜鳥一起學linux之DBUS基礎學習記錄Linux
- 和菜鳥一起學產品之產品經理的工作職責
- 和菜鳥一起學android4.0.3原始碼之硬體gps簡單移植Android原始碼
- 菜鳥學習計劃淺談之Linux系統Linux
- 菜鳥學Python之 _, __ 和 __xx__的區別Python
- 歪批IT之六:顧問菜鳥和老鳥(轉)
- Linux 發行版不使用 initramfs,直接啟動Linux
- 菜鳥學Python之雜湊表Python
- 菜鳥學網路之 —— 長連線和短連線
- 菜鳥入門:Linux之Makefile概述(轉)Linux
- Linux“菜鳥”到“菜鳥的一些建議Linux
- 菜鳥學堂之破解Sessioncookie的方法(轉)SessionCookie
- linux-鳥哥私房菜學習筆記Linux筆記
- linux學習導讀_鳥哥的私房菜Linux
- Linux菜鳥到老鳥的那些建議Linux
- IT菜鳥的學習生活
- 菜鳥學php擴充套件 之 hello world(一)PHP套件
- 菜鳥也玩mysql之學習筆記篇MySql筆記
- 菜鳥學SSH(九)——Hibernate——Session之save()方法Session
- 菜鳥也裝Linux(轉)Linux
- 鳥哥的 Linux 私房菜Linux
- 菜鳥自學之——SRA Toolkit 的下載和使用
- React菜鳥入門之setStateReact
- 一個菜鳥管理的學習和思考(一)
- 一個菜鳥管理的學習和思考(二)
- 菜鳥學Java(五)——JSP內建物件之requestJavaJS物件
- 跟著菜鳥學pythonPython
- 菜鳥學Java(十七)——Jboss瘦身Java
- 菜鳥學Java(十八)——異常Java
- 菜鳥學習SQL注射(轉)SQL
- 菜鳥經驗:oracle與weblogic自動啟動與停止(轉)OracleWeb
- 菜鳥學Linux 第111篇筆記 MemoryLinux筆記
- 菜鳥學Linux第055篇筆記php基礎Linux筆記PHP
- 菜鳥學Linux命令:bg fg jobs命令 任務管理Linux
- 菜鳥學Java(三)——JSTL標籤之核心標籤JavaJS
- 菜鳥的資訊保安學習之路
- 菜鳥學Java(十六)——Jboss簡介Java