基于ARM平台的Linux2622内核编译_第1页
基于ARM平台的Linux2622内核编译_第2页
基于ARM平台的Linux2622内核编译_第3页
基于ARM平台的Linux2622内核编译_第4页
基于ARM平台的Linux2622内核编译_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1基于ARM平台的LINUX26226内核编译学院信息工程学院专业计算机应用技术学号姓名基于ARM平台的LINUX2622内核编译I目录一引言1二LINUX作为嵌入式操作系统的特点1三LINUX内核编译选项简介231GENERALSETUP常规设置232LOADABLEMODULESUPPORT333BLOCKLAYER块设备层334PROCESSORTYPEANDFEATURES中央处理器CPU类型及特性435NETWORKING网络436DEVICEDRIVERS设备驱动程序637FILESYSTEMS文件系统11四LINUX26226内核的交叉编译步骤11基于ARM平台的LINUX2622内核编译1一引言LINUX是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类UNIX操作系统。嵌入式LINUX是将日益流行的LINUX操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式LINUX既继承了INTERNET上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式LINUX的特点是版权费免费购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_LINUXHARDHATLINUX等嵌入式LINUX支持,实时性能稳定性好安全性好。本文主要进行基于ARM9S3C2410的LINUX26226内核移植,硬件平台是博创UPCUPS2410教学试验箱。宿主机开发环境是CENTOS55操作系统。二LINUX作为嵌入式操作系统的特点LINUX做嵌入式系统有其独特的优势,首先,LINUX是开放源代码的,不存在黑箱技术,遍布全球的众多LINUX爱好者又是LINUX开发者的强大技术支持;其次,LINUX的内核小、效率高,内核的更新速度很快,LINUX是可以定制的,其系统内核最小只有约134KB。第三,LINUX是免费的OS,在价格上极具竞争力。LINUX还有着嵌入式操作系统所需要的很多特色,突出的就是LINUX适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做LINUX的平台移植工作。移植的速度远远超过JAVA的开发环境。也就是说,如果今天用LINUX环境开发产品,那么将来换CPU就不会遇到困扰。同时,LINUX内核的结构在网络方面是非常完整的,LINUX对网络中最常用的TCP/IP协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,TOKERRING令牌环网、光纤甚至卫星的支持。所以LINUX很适于做信息家电的开发。LINUX的大小适合嵌入式操作系统LINUX固有的模块性,适应性和可配置性,使得这很容易做到。另外,LINUX源码的实用性和成千上万的程序员热基于ARM平台的LINUX2622内核编译2切期望它用于无数的嵌入式应用软件中,导致很多嵌入式LINUX的出现。三LINUX内核编译选项简介LINUX内核提供了多种编译方法,既可以基于XWINDOW图形界面方式进行编译,同时在文本界面下也有相应的字符界面或者简单的基于选项问答式的编译,在本文我们选择文本字符界面的编译方式,其相应的命令为MAKEMENUCONFIG。LINUX内核提供了多种编译选项,我们可以根据自己的平台实际情况进行相关模块的删减。下面基于LINUX2619X内核进行一些主要编译选项的说明。31GENERALSETUP常规设置LOCALVERSIONAPPENDTOKERNELRELEASE在内核版本后面加上自定义的版本字符串小于64字符,可以用“UNAMEA“命令看到SUPPORTFORPAGINGOFANONYMOUSMEMORYSWAP使用交换分区或者交换文件来做为虚拟内存SYSTEMVIPCSYSTEMV进程间通信IPC支持,许多程序需要这个功能必选,除非你知道自己在做什么POSIXMESSAGEQUEUESPOSIX消息队列,这是POSIXIPC中的一部分AUDITINGSUPPORT审计支持,某些内核模块例如SELINUX需要它,只有同时选择其子项才能对系统调用进行审计ENABLESUPPORTFORPRINTK允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择ENABLEELFCOREDUMPS内存转储支持,可以帮助调试ELF格式的程序基于ARM平台的LINUX2622内核编译3ENABLEEVENTPOLLSUPPORT支持事件轮循的系统调用USEFULLSLABALLOCATOR使用SLAB完全取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用32LOADABLEMODULESUPPORT可加载模块支持ENABLELOADABLEMODULESUPPORT打开可加载模块支持,如果打开它则必须通过”MAKEMODULES_INSTALL”把内核模块安装在/LIB/MODULES/中MODULEUNLOADING允许卸载已经加载的模块FORCEDMODULEUNLOADING允许强制卸载正在使用中的模块比较危险MODULEVERSIONINGSUPPORT允许使用其他内核版本的模块可能会出问题SOURCECHECKSUMFORALLMODULES为所有的模块校验源码,如果你不是自己编写内核模块就不需要它AUTOMATICKERNELMODULELOADING让内核通过运行MODPROBE来自动加载所需要的模块,比如可以自动解决模块的依赖关系33BLOCKLAYER块设备层ENABLETHEBLOCKLAYER块设备支持,使用硬盘/USB/SCSI设备者必选IOSCHEDULERS基于ARM平台的LINUX2622内核编译4IO调度器DEADLINEI/OSCHEDULER使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境比如数据库DEFAULTI/OSCHEDULER默认IO调度器34PROCESSORTYPEANDFEATURES中央处理器CPU类型及特性PROCESSORFAMILY处理器系列,请按照你实际使用的CPU选择FIRMWAREDRIVERS固件驱动程序HIGHMEMORYSUPPORT最高内存支持,总内存小于等于1G的选“OFF“,大于4G的选“64G“MEMORYMODEL一般选“FLATMEMORY“,其他选项涉及内存热插拔MATHEMULATION数学协处理器仿真,486DX以上的CPU就不要选它了ENABLESECCOMPTOSAFELYCOMPUTEUNTRUSTEDBYTECODE只有嵌入式系统可以不选TIMERFREQUENCY内核时钟频率,桌面推荐“1000HZ“,服务器推荐“100HZ“或“250HZ“35NETWORKING网络NETWORKINGOPTIONS网络选项基于ARM平台的LINUX2622内核编译5NETWORKPACKETDEBUGGING在调试不合格的包时加上额外的附加信息,但在遇到DOS攻击时你可能会被日志淹没PACKETSOCKET这种SOCKET可以让应用程序比如TCPDUMP,IPTABLES直接与网络设备通讯,而不通过内核中的其它中介协议PACKETSOCKETMMAPPEDIO让PACKETSOCKET驱动程序使用IO映射机制以使连接速度更快UNIXDOMAINSOCKETS一种仅运行于本机上的效率高于TCP/IP的SOCKET,简称UNIXSOCKET许多程序都使用它在操作系统内部进行进程间通信IPC,比如XWINDOW和SYSLOGTCP/IPNETWORKINGTCP/IP协议当然要选IPMULTICASTING群组广播,似乎与网格计算有关,仅在使用MBONE的时候才需要IPADVANCEDROUTER高级路由,如果想做一个路由器就选吧IPPOLICYROUTING策略路由IPEQUALCOSTMULTIPATH用于路由的基于目的地址的负载均衡IPVERBOSEROUTEMONITORING显示冗余的路由监控信息IPKERNELLEVELAUTOCONFIGURATION在内核启动时自动配置IP地址/路由表等,需要从网络启动的无盘工作站才需要这个东西IPTUNNELINGIP隧道,将一个IP报文封装在另一个IP报文内的技术基于ARM平台的LINUX2622内核编译6IPGRETUNNELSOVERIP基于IP的GRE通用路由封装隧道IPMULTICASTROUTING多重传播路由THEIPV6PROTOCOL你要是需要IPV6就选吧IRDAINFRAREDSUBSYSTEMSUPPORT红外线支持,比如无线鼠标或无线键盘BLUETOOTHSUBSYSTEMSUPPORT蓝牙支持GENERICIEEE80211NETWORKINGSTACK通用无线局域网IEEE80211系列协议支持36DEVICEDRIVERS设备驱动程序GENERICDRIVEROPTIONS驱动程序通用选项SELECTONLYDRIVERSTHATDONTNEEDCOMPILETIMEEXTERNALFIRMWARE只显示那些不需要内核对外部设备的固件作MAP支持的驱动程序,除非你有某些怪异硬件,否则请选上PREVENTFIRMWAREFROMBEINGBUILT不编译固件固件一般是随硬件的驱动程序提供的,仅在更新固件的时候才需要重新编译建议选上USERSPACEFIRMWARELOADINGSUPPORT提供某些内核之外的模块需要的用户空间固件加载支持,在内核树之外编译的模块可能需要它DRIVERCOREVERBOSEDEBUGMESSAGES让驱动程序核心在系统日志中产生冗长的调试信息,仅供调试基于ARM平台的LINUX2622内核编译7MEMORYTECHNOLOGYDEVICESMTD特殊的存储技术装置,如常用于数码相机或嵌入式系统的闪存卡PLUGANDPLAYSUPPORT即插即用支持,若未选则应当在BIOS中关闭“PNPOS“这里的选项与PCI设备无关PNPDEBUGMESSAGES该选项仅供调试使用ISAPLUGANDPLAYSUPPORTISA设备即插即用支持BLOCKDEVICES块设备NETWORKBLOCKDEVICESUPPORT让你的电脑成为网络块设备的客户端RAMDISKSUPPORT内存中的虚拟磁盘,大小固定由下面的选项决定,也可给内核传递“RAMDISK_SIZE参数“来决定,它的功能和代码都比SHMEM简单许多DEFAULTNUMBEROFRAMDISKS默认RAMDISK的数量DEFAULTRAMDISKBLOCKSIZEBYTES每一个RAMDISK的默认块大小,设为PAGE_SIZE的值时效率最高INITIALRAMFILESYSTEMANDRAMDISKINITRAMFS/INITRDSUPPORT如果启动计算机所必须的模块都在内核里的话可以不选此项MISCDEVICES杂项设备SCSIDEVICESUPPORTSCSI设备SCSIDEVICESUPPORT有任何SCSI/SATA/USB/光纤/FIREWIRE/IDESCSI仿真设备之一就必须选上基于ARM平台的LINUX2622内核编译8LEGACY/PROC/SCSI/SUPPORT一些老的刻录程序可能需要它SCSIDISKSUPPORTSCSI硬盘或U盘SCSIGENERICSUPPORT若有SCSI硬盘/CDROM/TAPE之外的SCSI设备才需要选择SCSIMEDIACHANGERSUPPORT一种SCSI备份设备NETWORKDEVICESUPPORT网络设备NETWORKDEVICESUPPORT网络设备支持,当然要选啦PHYDEVICESUPPORT数据链路层芯片简称为MAC控制器,物理层芯片简称之为PHY,通常的网卡把MAC和PHY的功能做到了一颗芯片中,但也有一些仅含PHY的“软网卡“ETHERNET10OR100MBIT目前最广泛的10/100M网卡ETHERNET1000MBIT目前已成装机主流的1000M网卡ETHERNET10000MBIT万兆网卡无福消受啦TOKENRINGDEVICES令牌环网设备WIRELESSLANNONHAMRADIO无线LANPCMCIANETWORKDEVICESUPPORTPCMCIA或CARDBUS网卡WANINTERFACES基于ARM平台的LINUX2622内核编译9WAN接口PPPPOINTTOPOINTPROTOCOLSUPPORT点对点协议,PPP已经基本取代SLIP了,用ADSL的可要仔细选择了PPPMULTILINKSUPPORT多重链路协议RFC1990允许你将多个线路物理的或逻辑的组合为一个PPP连接一充分利用带宽,这不但需要PPPD的支持,还需要ISP的支持PPPFILTERING允许对通过PPP接口的包进行过滤PPPSUPPORTFORASYNCSERIALPORTS通过标准异步串口COM1,COM2使用PPP,比如使用老式的外置MODEM非同步MODEM或ISDNMODEM上网PPPSUPPORTFORSYNCTTYPORTS通过同步TTY设备比如SYNCLINK适配器使用PPP,常用于高速租用线路比如T1/E1PPPDEFLATECOMPRESSION为PPP提供DEFLATE等价于GZIP压缩算法压缩算法支持,需要通信双方的支持才有效PPPBSDCOMPRESSCOMPRESSION为PPP提供BSD等价于LZW压缩算法,没有GZIP高效压缩算法支持,需要通信双方的支持才有效PPPMPPECOMPRESSIONENCRYPTION为PPP提供MPPE加密协议支持,它被用于微软的P2P隧道协议中PPPOVERETHERNET这就是ADSL用户最常见的PPPOE啦,也就是在以太网上跑的PPP协议PPPOVERATM在ATM上跑的PPPINPUTDEVICESUPPORT输入设备基于ARM平台的LINUX2622内核编译10GENERICINPUTLAYERNEEDEDFORKEYBOARD,MOUSE通用输入层,要使用键盘鼠标的就必选MOUSEINTERFACE鼠标接口TOUCHSCREENINTERFACE触摸屏EVENTINTERFACE能够利用/DEV/INPUT/EVENTX来存取输入设备的事件EVENTDEBUGGING该选项仅供调试KEYBOARDS键盘驱动,一般选个AT键盘即可MOUSE鼠标驱动,一般选个PS/2鼠标即可TOUCHSCREENS触摸屏驱动MISCELLANEOUSDEVICES其他杂项驱动,一般选个PC喇叭即可HARDWAREI/OPORTS硬件I/O端口SERIALI/OSUPPORT使用PS/2键盘或鼠标的就必选I8042PCKEYBOARDCONTROLLERPS/2接口的键盘和鼠标SERIALPORTLINEDISCIPLINE串口键盘或鼠标PS/2DRIVERLIBRARY为PS/2接口上的设备提供驱动比如PS/2鼠标或标准AT键盘基于ARM平台的LINUX2622内核编译11RAWACCESSTOSERIOPORTS不是HACKER就别选了GAMEPORTSUPPORT就是早年“小霸王“游戏机上的那种手柄USBSUPPORTUSB支持37FILESYSTEMS文件系统JFSFILESYSTEMSUPPORTIBM的JFS文件系统ROMFILESYSTEMSUPPORT用于嵌入式系统的内存文件系统的支持CDROM/DVDFILESYSTEMSCDROM/DVD文件系统ISO9660CDROMFILESYSTEMSUPPORTCDROM的标准文件系统DOS/WINDOWS的文件系统MSDOSFSSUPPORT古老的MSDOS文件系统VFATWINDOWS95FSSUPPORT从WIN95开始使用的VFAT文件系统DEFAULTCODEPAGEFORFAT默认代码页DEFAULTIOCHARSETFORFAT默认字符集NETWORKFILESYSTEMS网络文件系统基于ARM平台的LINUX2622内核编译12四LINUX26226内核的交叉编译步骤1由于系统运行的体系结构为ARM,而且要编译出能够在目标板上运行的程序,需要在主机上进行交叉编译,因此,首先需要修改内核源码根目录下的MAKEFILE,如下图。2进入ARCH/ARM/PLATS3C24XX,打开COMMONSMDKC文件,进行FLASH分区信息的更改。3配置内核,在配置内核前,先拷贝S3C2410开发板的默认配置到内核根目录下,以简化配置过程。基于ARM平台的LINUX2622内核编译134在配置过程中主要注意处理器类型的选择、嵌入式文件系统的支持以及一些嵌入式输入输出接口的支持。以下是配置过程需要注意的选项。SYSTEMTYPES3C2410MACHINESSMDK2410/A9M2410这一项是处理器支持,选择ARM处理器的SMDK2410。USERSPACEBINARYFORMATSKERNELSUPPORTFORAOUTANDECOFFBINARIES去除该选项,AOUT和ECOFF是两种可执行文件的格式,在ARMLINUX下一般都用ELF,所以这两种基本用不上。NETWORKINGNETWORKINGOPTIONSPACKETSOCKETPACKETSOCKETMMAPPEDIOWIRELESSIMPROVEDWIRELESSCONFIGURATIONAPIWIRELESSEXTENSIONSENABLEFULLDEBUGGINGOUTPUTNEWIEEE80211WEPENCRYPTION8021XIEEE80211ICCMPSUPPORTNEWIEEE80211ITKIPENCRYPTIONNEWNETWORKDEVICESUPPORTETHERNET10OR100MBITDM9000SUPPORT由于本实验箱使用的是DM9000网卡,所以选上此项。FILESYSTEMSSECONDEXTENDEDFSSUPPORTEXT3JOURNALLINGFILESYSTEMSUPPORT去除对EXT3的支持基于ARM平台的LINUX2622内核编译14KERNELAUTOMOUNTERSUPPORTKERNELAUTOMOUNTERVERSION4SUPPORTALSOSUPPORTSV3FILESYSTEMINUSERSPACESUPPORTPSEUDOFILESYSTEMSVIRTUALMEMORYFILESYSTEMSUPPORTFORMERSHMFSUSERSPACEDRIVENCONFIGURATIONFILESYSTEMEXPERIMENTALMISCELLANEOUSFILESY

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论