面向嵌入式視頻處理平臺的Linux移植
這樣,本系統的BootLoader就設計完成了,下面就可以進行Linux內核移植。
Linux內核主要由5個子系統構成:
a)進程調度(Process Scheduler):負責控制進程對CPU的使用。
b)內存管理(Memory Manager):標準Linux的內存管理支持虛擬內存,進程代碼、數據和堆棧的總量可以超過實際內存的大小。
c)虛擬文件系統(Virtual File System):隱藏了不同硬件的具體細節(jié),為所有設備提供統一的接口。
d)網絡接口(Network Interface):負責支持標準的網絡通信協議和各種網絡硬件設備。
e)進程間通信(Inter-Process Communica-tion):支持進程間各種通信機制。
根據嵌入式系統的特點,要使嵌入式Linux系統具備一定的功能且保持小型化,應包括啟動加載程序、內核、初始化進程,以及硬件驅動程序、文件系統、必要的應用程序等。
不管是哪一款嵌入式處理器,完成移植工作就要修改所有與體系結構有關的代碼,主要指內核人口、處理器初始化、I/O口映射等。具體操作如下:
(1)修改配置文件
a)打開根目錄下的Makefile文件,指定目標平臺ARCH=arm;指定交叉編譯器CROSS_COMPILE=arm-linux-gcc;
b)打開/arch/arm目錄下的Makefile文件,添加內核起始運行地址,即image.ram應下載的位置,該位置一般在RAM區(qū)起始地址偏移0x8000處;
c)打開/arch/arm/boot目錄下的Makefile文件,指定Bootloader的壓縮內核解壓后數據的輸出地址。
(2)編譯Linux內核
在完成上述工作后,開始編譯Linux內核,生成目標代碼。在內核源代碼目錄下依次鍵入以下命令:
a)make clean:清除以前構造內核時生成的所有目標文件、模塊和臨時文件;
b)make dep:搜索Linux輸出與源代碼之間的依賴關系,并以此生成依賴文件;
c)make menuconfig:調用菜單式的配置內核界面,內核配置的選項非常多,根據自己系統的具體情況選擇合理的配置,在內核配置時選上相應型號的硬件;
d)make zImage:編譯內核,生成壓縮的Linux內核目標代碼zImage文件;
e)make modules:編譯塊模塊驅動程序,凡是在menuconfig中被選為的都會在這條命令運行時被編譯。
至此,已編譯好能在本系統上運行的Linux內核。
(3)創(chuàng)建JFFS2文件系統
文件系統是Linux系統的重要組成部分。本系統使用mkfs.jffs2工具創(chuàng)建JFFS2文件系統。首先建立/bin、/sbin等目錄,然后復制命令工具到/bin文件夾,復制系統控制程序到/sbin目錄下,復制應用程序運行時所需的庫到/lib,庫文件可從PC機的交叉編譯工具安裝目錄下復制。最后鍵人命令:mkfs.jffs2-o jffs2root.jffs2,生成JFFS2根文件系統。
上述工作完成后,將BootLoader、Linux內核、文件系統燒寫到TMS320DM*6的Flash中,這樣就能運行Linux系統了。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論