999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM2410 嵌入式Linux內核的編譯與移植

2008-12-31 00:00:00
電腦知識與技術 2008年15期

摘要:本文主要介紹了嵌入式Linux內核以及在ARM平臺下的編譯與移植過程。

關鍵字:Linux 內核;移植;編譯

中圖分類號:TP311 文獻標識碼:A文章編號:1009-3044(2008)15-20000-00

Compile And Transplant The Embedded Linux Kernel Based on ARM2410

ZOU Qiu

(Computer Dept., Nanbo Polytechnic, Dongguan 523083, China)

Abstract:This paper mainly introduces the Embedded linux kernel’s Compilation and transplantation at the platform of ARM.

Key words:Linux kernel;transplant;compile

1 Linux內核簡介

Linux內核,是Linux操作系統的核心。它負責管理系統的進程、內存、設備驅動程序、文件和網絡系統,決定著系統的性能和穩定性。

嵌入式linux內核指的是針對具體的嵌入式設備硬件平臺,裁減掉一些不必要的功能后,針對該具體的硬件平臺編譯產生的一個Linux內核。嵌入式Linux通常都需要裁減,主要目的是節省系統資源,提高系統運行效率。同時嵌入式Linux作為一種嵌入式操作系統有其得天獨厚的優勢,主要表現在:

首先,Linux是開放源代碼的,所有的內核源程序都可以在 /usr/src/linux下找到,大部分應用軟件也都是遵循GPL而設計,遍布全球的眾多Linux愛好者又是Linux開發者的強大技術支持;

其次,Linux的內核小、效率高,內核的更新速度很快;

再次,Linux是免費的操作系統,在價格上極具競爭力。

2 Linux內核移植準備

所謂Linux移植就是把Linux操作系統針對具體的目標平臺做必要改寫之后,安裝到該目標平臺使其正確的運行起來。這個概念目前在嵌入式開發領域講的比較多。其基本內容是:獲取某一版本的Linux內核源碼,根據我們的具體目標平臺對這源碼進行必要的改寫(主要是修改體系結構相關部分),然后添加一些外設的驅動,打造一款適合于我們目標平臺(可以是嵌入式便攜設備也可以是其它體系結構的PC機)的新操作系統,對該系統進行針對我們目標平臺的交叉編譯,生成一個內核映象文件,最后通過一些手段把該映象文件燒寫(安裝)到我們目標平臺中。而通常對Linux源碼的改寫工作難度較大,它要求你不僅對Linux內核結構要非常熟悉,還要求你對目標平臺的硬件結構要非常熟悉。所以這部分工作一般由目標平臺提供商來完成。我們所要做的就是從其網站上下載相關版本Linux內核的補丁(Patch),把它打到我們的Linux內核上,再進行交叉編譯就可以。

其基本過程如下(以Linux2.6.24為例):

到ftp://ftp.arm.linux.org.uk/pub/linux/linux-2.6/上下載Linux2.6.24內核及其關于ARM平臺的補丁(如:Patch-2.6.24.gz)。給Linux2.6.24打補丁:使用命令zcat ../patch-2.6.24.gz | patch –p1(前面../表示補丁文件放在內核文件上一層目錄),

然后準備交叉編譯環境:交叉編譯環境工具鏈一般包括binutils(含AS匯編器,LD鏈接器等),arm-gcc,glibc等。

接下來修改內核目錄下的makefile文件,主要是以下幾行:

注釋掉ARCH:=$(shell uname –m | sed –e s/i.86/i386/-e s/sun4u/sparc64/ -e s/arm. \\ */arm/ - e s/sa110/arm/)這一行。

將ARCH := 改為 ARCH := arm

將CROSS_COMPILE:=改為 CROSS_COMPILE := 交叉編譯工具中arm-linux所在目錄/arm-linux-(如:CROSS_COMPILE := /usr/local/arm/2.95.3/bin/arm-linux-)此后就可以進行編譯。

3 關于交叉編譯環境

交叉編譯環境的建立最重要的就是要有一個交叉編譯器。所謂的交叉編譯就是:利用運行在某機器上的編譯器編譯某個源程序生成在另一臺機器上運行的目標代碼的過程。這里我們主要用到的編譯器是arm-linux-gcc,它是gcc的arm改版。無論編譯器的功能有多么強大,但它的實質都是一樣的,都是把某種以數字和符號為內容的高級編程語言轉換成機器語言指令的集合。具體安裝和配置工作我們一般不需要自己動手了,只要直接從網上下載相關工具包安裝即可。

4 Linux內核裁減

Linux內核移植過程中最重要的一步就是內核裁減。由于目標板硬件平臺的不同以及內核版本的不同,所以涉及的內容往往也有很大不同。下面我們以已改造好的ARM-linux,針對ARM2410平臺來看看內核的裁減主要涉及的地方。

4.1 Linux內核裁減的配置菜單命令

Linux內核裁減的配置菜單命令有好幾個版本,運行:

(1)make config:基于文本的最為傳統的配置界面,進入命令行,可以一行一行的配置,這不好使用,并且很煩瑣。

(2)make menuconfig:基于文本菜單的配置界面,是字符終端下常用的方式。

(3)make xconfig:基于圖形窗口模式的配置界面,Xwindow下推薦使用。

這三個命令中,make xconfig的界面最為友好,如果機器可以使用Xwindow,那么就推薦你使用這個命令,如果不能使用Xwindow,那么就可以使用make menuconfig。界面雖然比上面一個差點,總比make config的要好多了。所有內核配置菜單都是通過Config.in經由不同腳本解釋器產生.config,在內核配置完成后就就會在當前目錄下產生一個.config的配置文件,當然我們也可以直接修改此文件來配置內核。

選擇相應的配置時,有三種選擇,它們分別代表的含義如下:

* -----將該功能編譯進內核

空-----不將該功能編譯進內核

M-----將該功能編譯成可以在需要時動態插入到內核中的模塊

4.2 Linux內核裁減的配置選項

在內核移植的過程中,最煩雜的事情就是配置內核選項了,但實際配置時大部分選項可以使用其缺省值,只有小部分需要根據用戶不同的需要選擇。選擇的原則是將與內核其它部分關系較遠且不經常使用的部分功能代碼編譯成為可加載模塊,有利于減小內核的長度,減小內核消耗的內存,簡化該功能相應的環境改變時對內核的影響;不需要的功能就不要選;與內核關心緊密而且經常使用的部分功能代碼直接編譯到內核中。

針對ARM2410平臺要配置的內核選項主要有:

(1) 配置MTD,要使用Cramfs和YAFFS文件系統,首先需要配置MTD.

在Memory Technology Devices (MTD) --->選項中選中如下選項:

<*> Memory Technology Device (MTD) supportMTD支持

[*]MTD partitioning support MTD分區支持

<*> Direct char device access to MTD devices字符設備的支持

<*> Caching block device access to MTD devices塊設備支持

NAND Flash Device Drivers--->對NAND Flash的支持

<*> SMC Device Support

<*> Simple Block Device for Nand Flash(BON FS)

<*> SMC device on S3C2410 SMDK

[*] Use MTD From SMC

(2)配置文件系統

<*> Kernel automounter version 4 support (also supports v3)文件系統自動掛載支持

<*> DOS FAT fs supportt fs support對DOS/FAT文件系統的支持

<*> VFAT (Windows-95) fs support對FAT32文件系統的支持

<*> Yaffs filesystem on NAND對YAFFS文件系統的支持

<*> Compressed ROM file system support對Cramfs文件系統的支持

[*] Virtual memory file system support (former shm fs)對temfs文件系統的支持

<*> Simple RAM-based file system support對RAM文件系統的支持

[*] /proc file system support對/proc和/dev設備文件系統的支持

[*] /dev file system support (EXPERIMENTAL)/dev設備文件系統支持

[*] Automatically mount at boot 啟動時自動掛載的支持

[*] /dev/pts file system for Unix98 PTYs

Network File Systems---> 對NFS網絡文件系統的支持

<*> NFS file system support

[*]Provide NFS v3 client support

(3)配置系統類型,主要是CPU類型

(S3C2410-based)ARM system type設置ARM的系統類型為ARM2410

[M] S3C2410 USB function support 對USB功能的支持

[*] ARM920T CPU idle設置處理器的類型

[*] ARM920T I-Cache on

5 內核的編譯

在完成內核的裁減之后,內核的編譯就是一個非常簡單的過程。你只要執行以下幾條命令就行:

(1) make clean

這條命令是在正式編譯你的內核之前先把環境給清理干凈。有時你也可以用make realclean或make mrproper來徹底清除相關依賴,保證沒有不正確的.o文件存在。

(2)make dep

這條命令是編譯相關依賴文件。

(3)make zImage

這條命令就是最終的編譯命令。有時你可以直接用make(2.6.X版本上用)或make bzImage(給PC機編譯大內核時用)

完成后,就會編譯出一個壓縮內核映像文件,壓縮內核映像所在路徑為:arch/arm/boot/zImage

(4) make install

這條命令可以把相關文件拷貝到默認的目錄,當然在給嵌入式設備編譯時這步可以不要,因為具體的內核安裝還需要你手工進行。

(5)make modules

這條命令是編譯在配置時選擇為模塊的,即選項前為[M]的。如果你的內核配置選項中有選擇編譯為模塊的,就需要此命令。

(6)make modules_install

這條命令將make modules 生成的模塊文件復制到相應的目錄。在給嵌入式設備編譯時這步也可以不需要。

6 結束語

最后我們就可以將上面第三步產生的壓縮內核映像文件燒寫到嵌入式系統中去,最終完成嵌入式系統內核的移植。

參考文獻:

[1] 孫紀坤,張小全. 嵌入式LINUX系統開發技術祥解—基于ARM. 北京:人民郵電出版社 2006.

[2] 魏洪興,胡亮,曲學樓. 嵌入式系統設計與實例開發實驗教材—基于ARM9微處理器與Linux操作系統. 北京:清華大學出版社,2005.

[3] 于明,范書瑞,曾祥燁. ARM9嵌入式系統設計與開發教程. 北京:電子工業出版社 2006.

收稿日期:2008-03-05

作者簡介:鄒球,男,湖南人,在讀研究生,主要研究方向:網絡,嵌入式系統。

主站蜘蛛池模板: 亚洲啪啪网| 亚洲天堂免费观看| 精品伊人久久久香线蕉 | 91精品专区国产盗摄| 毛片一级在线| 欧美激情综合一区二区| 亚洲a免费| 人人看人人鲁狠狠高清| 91精品国产丝袜| 国产尤物在线播放| 亚洲小视频网站| 无码精品福利一区二区三区| 亚洲日本在线免费观看| 大乳丰满人妻中文字幕日本| 日韩精品一区二区三区大桥未久 | 香蕉国产精品视频| 97国产在线视频| 色婷婷丁香| 美女一区二区在线观看| 波多野结衣无码AV在线| 亚洲精品自拍区在线观看| 成人午夜天| 国产99免费视频| 日韩在线网址| 国产人人射| 色噜噜综合网| 国产资源免费观看| 亚洲国产欧美自拍| 久久人体视频| 久久国产精品国产自线拍| 国产jizzjizz视频| 久爱午夜精品免费视频| 亚洲国产成人无码AV在线影院L| 亚洲第一成年人网站| 国产成人高精品免费视频| 91日本在线观看亚洲精品| 亚洲日韩精品欧美中文字幕 | 熟妇丰满人妻av无码区| 高清无码不卡视频| 国产在线观看91精品| 成人午夜免费观看| 再看日本中文字幕在线观看| 波多野结衣的av一区二区三区| 天天干天天色综合网| 在线观看国产精美视频| 日韩专区欧美| 日本高清在线看免费观看| 999精品在线视频| 人妻一区二区三区无码精品一区| 九九香蕉视频| 国产一区二区精品福利| 5388国产亚洲欧美在线观看| 九色91在线视频| 国产又粗又爽视频| 国产成本人片免费a∨短片| 亚洲男人的天堂在线观看| 不卡网亚洲无码| 少妇精品久久久一区二区三区| 1769国产精品免费视频| 国产福利免费在线观看 | 国产激情在线视频| 2020国产在线视精品在| 日韩在线播放中文字幕| 久久精品国产在热久久2019| 熟女成人国产精品视频| 欧洲成人免费视频| 在线亚洲小视频| 激情爆乳一区二区| 综合色在线| 婷婷丁香色| 久无码久无码av无码| 久久大香香蕉国产免费网站| 欧美a在线| 亚洲码在线中文在线观看| 亚洲a免费| 亚洲中文字幕在线精品一区| 国产精品美女免费视频大全| 手机在线看片不卡中文字幕| 亚洲天堂自拍| 日韩免费成人| 亚洲无限乱码一二三四区| 国产超碰一区二区三区|