第六章linux内核移植.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章linux内核移植

第六章 Linux内核移植 主要内容 6.1 移植的概念 6.2 Linux内核结构 6.3 Linux内核选项配置分析 6.4 Linux内核编译 6.5 U-Boot引导linux内核启动 6.1 移植的概念 如果一个系统可以在不同硬件平台上运行,那么这个系统就是可移植的,使某个平台的代码运行在其他平台上的过程就叫做移植 Linux系统内核源码中有arch目录,其中包含了不同平台的代码,该目录是为多平台设计并使用的,与体系结构相关的代码都放在arch/architecture/和include/asm- architecture /目录中, architecture是linux支持的体系结构的简称.ARM体系结构的相关代码放在arch/arm和include/asm-arm目录中. 嵌入式系统的硬件可裁剪性决定了系统移植必须根据硬件的不同对内核代码进行修改移植,才能使系统能在相应的硬件平台上运行. 6.2 Linux内核结构 在移植linux操作系统前,需先认识一下linux的内核结构.linux内核主要由五个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口、进程间通信。 Linux内核源码是usr/src/linux-内核版本目录中。包括驱动程序在内有数百兆之多。 /arch 包含了所有硬件结构特定的内核代码 /drivers 包含了内核中所有的设备驱动程序 /fs 包含了所有的文件系统的代码,如ext3等 /include包含了建立内核代码时所需的大部分库文件。 Linux内核结构 /init包含了内核 的初始代码,内核从此处工作 /ipc包含了进程间通信代码 /kernel包含了主内核代码 /mm包含了所有内存管理代码 /net包含了和网络有关的代码 /crypto包含了加密算法 /security包含了安全相关的代码 Linux的下载工具 Linux下载工具如gftp,kget,wget等,其中wget比较好用,它支持FTP和HTTP,还支持断点续传,不过是命令行的方式. 例:下载源码包 wget –c /pub/linux/kernel/v2.6/X.tar.bz2 wget /pub/linux/kernel/v2.6/X.tar.bz2.sign 下载完成后,可先验证一下电子签名: gpg –verify linux-x.tar.bz2.sign linux内核配置方式 6.3 Linux内核选项配置 本节对linux内核选项配置进行相关说明,不清楚的地方还可以参考菜单中的帮助信息,所有菜单的帮助 信息都在Kconfig文件中定义。 内核选项中,带有”-”前缀的选项表示当前主菜单的子项,带有“--”前缀的选项表示是当前主菜单的二级子项。 每一个选项前面都有一个”[ ]”或” ”,其含义如下: [ ] 表示该选项有两种选择方式: [*]直接编译进内核 [ ]不编译 表示该项选项有三种选择方式: *直接编译进内核 M编译成模块形式,但不编译进内核 不编译 Kconfig配置文件 Arch/$(ARCH)/Kconfig是主文件,跟体系结构有关,主Kconfig调用其他目录的Kconfig文件,其他的文件又调用各级子目录的配置文件,成树状结构. 内核配置菜单项按树状结构组织,主菜单下有子菜单,子菜单还有子菜单或配置选项,每个选项可以有依赖关系,这些依赖关系用于确定它是否显示,只有被依赖的父项被选中,子项才会显示. Kconfig的特点和语法 语法 config symbol config options config options 类型定义 依赖性定义 帮助定义 (1)菜单项 config AEABI bool Use the ARM EABI to compile the kernel“ depends on 。。。 default help 。。。。。。。。。 每一行开头用关键字”config”,后面可跟多行。后面的几行定义这个配置选项的属性,属性包括配置选项的类型、选择提示、依赖关系、帮助文档和缺省值. (2)菜单属性 每个配置选项必须有类型定义,包括bool、tristate、string、hex、int共5种。其中有两种基本类型:tristate、string。每种类型定义可以有一个选择提示。 bool布尔类型; tristate三态:内建、模块、移除; string字符串; hex十六进制; int整型 详见: 配置编译内核-华清远见 P14 Kbuild执行编译过程 内核配置,生成.config文件 保存内核版本信息到include/linux/version.h 创建链接符号include/asm,链接include/asm-$(ARCH)目录 在ar

您可能关注的文档

文档评论(0)

zhaoxiaoj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档