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