LINUX在嵌入式系統上的實踐和探討
1. 實踐目的
向一個成熟的嵌入式硬件平臺移植KERNEL 2.6版本的LINUX核心;
以實踐一個嵌入式系統的初步開發要求和進一步的應用程序移植。
2. 硬件平臺
VIA公司的EmCore-V611V12r/E533
其平臺主要應用于瘦客戶機、機頂盒、查詢機、網關防火墻、服務器等。相對硬件配置高,條件也不苛刻,但對軟件的擴展、升級等要求高。
VIA公司的VEPD是X86架構在Embedded系統的延伸,所以軟件的可移殖利用性強,開發周期短等特點。
3。安裝LINUX
A. 初始化CF卡
將CF卡插在宿主機的ID1上。格式化CF卡,建立文件系統。CF卡出廠的時候分區一般如下:
0....Bootloader
1....Factory configuration
2
.
. 內核和根文件
.
.
N
分區0....放置Bootloader
分區1....放置Factory configuration
分區2...N放置 內核、根文件系統 等
一般不同的硬件和LINUX的Bootloader 也不盡相同。如UCLinux 一般用COLILO等。
嵌入式系統所用的文件格式一般有JFFS、JFFS2、EXT2。而我們現在的系統可以支持EXT3。
1)fdisk /dev/sda
2)mkfs.ext3 /dev/sda1
當然也可以用圖形化工具完成1)2)步驟。
B. 在CF卡上建立和CP相關的必要文件
1)mount CF卡
2)建立/mnt/cf/boot、/mnt/cf/boot/grub 等目錄。
3)CP grub下的文件到/mnt/cf/boot/grub,CP 其他的根系統文件。
C. 編譯針對目標機的2.6內核
我的源文件目錄為/data/linux-2.6.6,輸出目錄設置為/data/cf
1)cd /data/linux-2.6.6
2)make mrproper
3)make O=/data/cf gconfig
這里主要是對目標機的硬件選相關的硬件選項,舍去不要的選項。CPU選VIA FAMILY、FLASH驅動選在MTD里,還有網卡、USB、聲卡等
4)make O=/data/cf
5)cp /data/cf/arch/i386/boot下的vlimuz、initrid.img 到 /mnt/cf/boot下
D. install grub
1) 按目標機修改grub.conf
2) 執行grub,進入grub的命令模式
3) grub > root (hd1,0)
由于我們現在的CF卡不是當前啟動硬盤,所以我們要注意,這里的硬盤參數是hd1而不是hd0.
4) grub > setup (hd1)
同上,我們現在是在CF卡上安裝 grub.
5) grub > quit
OK,系統安置完成。
E. 關機,取嚇CF卡,插到目標機上,開機,引導........成功!!!
我們可以進入到bash狀態了.
下面,我們可以進一步移植安裝GUI和其他的應用程序.
4。 比較其他的嵌入式系統開發
和其它的系統比較,少實踐了交叉編譯,交叉鏈接,stub調試,規劃FLASH在內存里的位置分配,燒寫FLASH的Bootloader等。
但是一個良好的開端是成功的開始。
5。 探討
隨著硬件的發展,嵌入式系統的開發也會更加成熟和容易。而且,隨著硬件的發展,容量,體積不在是問題,嵌入式系統的硬件配制也會越來越高,相對的軟件的開發,在開發周期,可升級等方面會要求越來越高.早期的嵌入式系統甚至沒有OS只有簡單的循環和可編程邏輯陣列,程序很難再利用和移植。后來,有了一些專用的OS。所以,工業計算機+OS是以后Embedded 系統的發展方向。但除了在軍事等一些特殊領域會使用專有系統外,大部分的Embedded系統都會轉入開放式系統或者是其他的有豐富的軟件資源的操作系統. 對于一些新的開發人員來說可以把更多的精力放在應用軟件開發上,而不用太多的考慮硬件了,降低了開發難度,縮短了嵌入式系統的開發周期。在以后的信息家電里,工業計算機將會得到大大地應用。當然,可編程邏輯陣列也會發展,在一個遙控器里也只可能用可編程邏輯陣列來完成的。
Linux系統在嵌入式系統上的實踐和探討
更新時間: 2006-03-20 11:17:08來源: 粵嵌教育瀏覽量:2526