基于S3C2410的嵌入式Linux系統構建
(3)執行make bzlmage,成功編譯后將在arch/arm/boot/下生成需要的文件zimage。
(4)在vivi提示符下,輸入load flash kernel x命令通過(guò)串口下載內核映像到nand flash的kernel分區中。
2.3 文件系統
linux采用文件系統組織系統中的文件和設備,為設備和用戶(hù)程序提供統一接口。他支持cramfs,jffs2.ramdisk等多種文件系統。本系統使用可讀寫(xiě)的yaffs2根文件系統。
2.3.1 yaffs2文件系統簡(jiǎn)介
yaffs2是yaffs(yet another flash file sys tem)的升級版,能更好地支持nand flash,是一種類(lèi)似于jffs的專(zhuān)門(mén)為flash設計的嵌入式文件系統。與jffs相比,他減少了一些功能,因此速度更快、占用內存更少。nand flash大多采用mtd+yaffs的模式,通過(guò)yaffs文件系統,可以像操作硬盤(pán)上的文件一樣操作flash中的數據,在系統斷電后數據仍然存儲在flash芯片中.
2.3.2 根文件制作
(1)建立根文件系統目錄root,在root目錄下建訌子日錄bin,sbin,dev,etc,proc,lib,user;
/bin:保存大多數如init.busybox,shell.文件管理實(shí)用程序等二進(jìn)制文件;
/sbin:保存系統啟動(dòng)過(guò)程通常需要的命令;
/dev:包含用在設備中的所有沒(méi)備節點(diǎn);
/etc:包含系統的所有配置文件;
/proc:這是一個(gè)必須設置的特殊目錄,在系統運行之后他下面有許多內容,在某些情況下,可以通過(guò)他進(jìn)行系統設置,許多工具能從這里獲得信息。在編譯內核時(shí)要選擇文件系統proc的支持; /lib:包含所有必要的庫;
/user:存放用戶(hù)程序。
(2)編譯busybox.busyh。x足一個(gè)著(zhù)名的開(kāi)源軟件.他以極小型的應用程序集成了一百多個(gè)最常用的linux命令,閃此享有嵌入式linux的瑞士軍刀的美臀。首先,從網(wǎng)上下載busybox源碼.該系統使用的是1.1.3版本;其次,執行nlakemenuconfig命令.根據實(shí)際需求進(jìn)行功能配置,該系統將busybox編詳為靜態(tài)連接;最后:執行filakc a11 install進(jìn)行編譯、安裝;編譯器為:arm-linux-gcc一3.4.1,安裝路徑與上述root為同一路徑。這樣在root目錄下將有腳本linuxrc.在/bin,/sbin日錄下將訂busvbox提供的指向busybox的符號連接命令集。
(3)編寫(xiě)啟動(dòng)腳本:一般系統啟動(dòng)時(shí)都會(huì )按要求執行相應的初始化操作。寫(xiě)住命令仃的init=/liunxrc·這個(gè)linuxrc足指向/etc/init.d/rcs文件的一個(gè)符號連接。在rcs文件中列出了 linux仞始化要執行的文件.例如.初始化進(jìn)程init、掛載根系統、掛載模塊化設備驅動(dòng)等。rcs的作用相當于windows中的autocxec.bat文什,由于對于不同的應用rcs的內容變化很大,因此應根據實(shí)際需要編寫(xiě)rcs的內容。
(4)制作yaffs2映象:利用實(shí)用程序nlkyaffsinlage(mkvaffmage與root 目錄在同一路徑下)制作yaffs2映像root.img命令為:
#./inkyaffsimage root root. inlgroot.img就是所需要的yaffs2文件系統;
(5)文件系統映像下載:在vivi提示符下,執仃loadyaffs root x選擇root.inlg將文件通過(guò)串口下載到nand flash的root分區中.然后復化或重啟開(kāi)發(fā)板,就可以啟動(dòng)linux系統。
3 結 語(yǔ)
通過(guò)對嵌入式系統arni平臺的構建,分析bootloadervivj的功能.闡述了linux內核的移植,同時(shí)也解釋r制作yaffs2文件系統的步驟和方法.意在給嵌入式系統平臺的搭建有個(gè)整體的把握和認識,以降低進(jìn)入arm嵌入式開(kāi)發(fā)應用領(lǐng)域的門(mén)檻,進(jìn)一步推進(jìn)嵌入式軟硬件開(kāi)發(fā)的進(jìn)程。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論