嵌入式Linux在IOP331上的移植實現(xiàn)
2.3 制作Ramdisk根文件系統(tǒng)
嵌入式系統(tǒng)通常不自帶磁盤,這對于要使用文件系統(tǒng)的真正文件的情況來說是一個需要解決的問題。文件是需要存儲介質(zhì)的,所以需要以其它介質(zhì)來充當磁盤。使用一部分內(nèi)存空間來代替磁盤的方法就是所謂的“Ramdisk”技術。對此,Linux內(nèi)核中有相關的支持。
本文使用Busybox工具制作Ramdisk根文件系統(tǒng)映像。首先下載壓縮工具包busybox-1.01.tar.tar,解壓后進行配置,使能Build BusyBox as a static binary (no shared libs)并配置交叉編譯工具鏈的路徑后編譯,編譯得到的文件在_install文件夾下。配合內(nèi)核參數(shù)0x00800000,0x01000000使用下列命令創(chuàng)建16M的基本Ramdisk映像文件:
dd if=/dev/zero of=ramdisk.img bs=1k count=16k
mke2fs ramdisk.img
編寫腳本文件在文件系統(tǒng)中生成基本的目錄結(jié)構(gòu)和設備節(jié)點。使用mount命令將其掛載到一個文件夾下,將busybox編譯得到的全部文件復制到該文件夾下后根據(jù)實際需求加入其它內(nèi)容后卸載映像文件,壓縮該映像文件即可得到需要的Ramdisk根文件系統(tǒng)映像。
2.4 內(nèi)核啟動
嵌入式系統(tǒng)跟普通PC機的啟動流程不同。PC機啟動流程為:系統(tǒng)加電或復位à啟動BIOS完成系統(tǒng)硬件啟動并將硬盤(或軟盤、光盤等)上的有關操作系統(tǒng)啟動的系統(tǒng)軟件調(diào)入內(nèi)存à bootloader將系統(tǒng)代碼讀入內(nèi)存à操作系統(tǒng)初始化àbootloader將控制權交給操作系統(tǒng)à操作系統(tǒng)啟動。
圖2 Linux移植流程圖
評論