基于MPC8245的嵌入式VPN的研究與開發(fā)
2.2 HHPPC8245-4ETH-R1嵌入式開發(fā)平臺結構
HHPPC8245-4ETH-R1是華恒公司推出的一款嵌入式高性能網(wǎng)絡開發(fā)平臺,開發(fā)板硬件系統(tǒng)由核心板和底板兩部分組成[1],功能模塊圖如圖2所示。核心板采用musenki板,板上集成了處理器MPC8245、NOR FLASH(4M)、SDRAM等設備,采用PCI 2.2總線,并引出多種功能接口;底板上配置4個Davicom10/100M自適應以太網(wǎng)口,一個串口,并將FLASH擴展到32M,便于將來的功能擴展。FLASH上的軟件主要由引導裝載程序PPCboot、Linux內(nèi)核映象和RAMDISK文件系統(tǒng)三部分構成,其中RAMDISK中包含了 BusyBox Shell、IPsec-Tools、模塊操作工具等上層應用程序。
圖2 核心板(上)和底板(下)的硬件功能模塊圖 |
3 基于HHPPC8245平臺的嵌入式Linux VPN網(wǎng)關設備的開發(fā)與設計
3.1 Linux交叉開發(fā)環(huán)境的分析與實現(xiàn)
HHPPC8245-4ETH-R1目標板與PC宿主機有不同的POWER結構,需要在PC宿主機上建立交叉開發(fā)工具鏈,包括binutils、 gcc和glibc庫三大部件。本系統(tǒng)采用Linux-2.6.10內(nèi)核,網(wǎng)上的二進制代碼大多版本太低,僅能編譯Linux-2.4系列內(nèi)核,因此從源代碼開始建立開發(fā)環(huán)境,本系統(tǒng)選擇的源代碼版本為binutils-2.13.90.0,10、gcc-3.3.1、glibc-2.3.2;由于 MPC8245支持altivec,因此編譯平臺目標名為powerpc-linux-gnualtivec-。交叉開發(fā)環(huán)境建立后將包含有 powerpc-linux-gnualtivec-gcc等交叉開發(fā)工具的目錄加入$PATH環(huán)境變量,并交叉編譯、安裝OpenSSL和Flex庫,用于安裝IPsec-Tools。
3.2 Linux 2.6.10內(nèi)核移植的分析與實現(xiàn)
內(nèi)核移植包括CPU Core移植、硬件平臺移植和系統(tǒng)外圍驅動程序開發(fā)[4]。Linux-2.6內(nèi)核支持MPC8245 處理器和開發(fā)板上大部分硬件,因此移植的主要任務是核心板硬件平臺的移植。內(nèi)核代碼入口點為arch/ppc/kernel/head.S,在完成查找 processor和architecture類型,建立內(nèi)核初始化堆棧、建立臨時頁表等工作后,調用platform_init函數(shù),用于在 start_kernel函數(shù)中初始化中斷、陷阱、控制臺等各個模塊時調用。平臺相關的初始化函數(shù)在arch/ppc/platform/中實現(xiàn)。因此在該目錄下創(chuàng)建musenki_setup.c,實現(xiàn)PCI總線、中斷控制器、IO端口映射、CPU頻率、復位函數(shù)、串口和早期打印函數(shù)支持等初始化工作。這部分修改、移植需要熟悉平臺的各種配置參數(shù),應參考相似平臺及Internet上相關源代碼。
平臺的移植同時需要修改相關Kconfig和Makefile文件,在arch/ppc/Kconfig中加入musenki平臺的支持,在arch/ppc/platforms/Makefile加入musenki_setup.c的編譯。
FLASH中為內(nèi)核映象留下的地址空間有限,為節(jié)省資源、加快啟動速度,在選擇內(nèi)核編譯選項時只需選擇系統(tǒng)運行必須的模塊,使內(nèi)核盡量精簡。本系統(tǒng)的內(nèi)核應支持的文件系統(tǒng)為EXT2和JFFS2,網(wǎng)絡協(xié)議需包括AH、ESP等IPsec協(xié)議,以及相關的加密、認證等算法。
評論