9Linux内核映像的生成与启动解读.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9Linux内核映像的生成与启动解读

启动参数是bootloader启动内核时,传递给内核的,启动参数的设置方法经历了三代: 参数结构体 (struct setup_param) 2.4内核使用 参数标签 (tag) 2.6内核使用 设备树(dt) 3.x以后的内核使用 参数结构体和参数标签方式传递给内核的信息是一样的,形式不同而已,都要告诉内核内存大小,页大小,命令行参数等. 而设备树方式需要传递给内核的信息更多,除了上述的信息之外,还要告诉内核整个板子的信息(cpu到各个设备的信息)。 参数结构体 参数结构体的定义如右图:定义中必须设置的成员如下: s.page_size 页面大小-4k s.nr_pages 内存中的页面数 commandline[] 命令行参数 命令行参数解析 commandline[]字符的格式如: root=/dev/nfs init=/sbin/bin console=ttySAC0,115200 root 指定根文件系统 ro / rw 指定挂在的文件系统的属性 只读/可写 init 指定内核初始化完成后调用的用户空间程序 缺省: /sbin/init,见内核启动代码 console 指定打印信息的终端 mem 指定内存的大型 Initrd 指定ramdisk引导时根文件系统所在的内存位置和大小 参见文档:Documentation/kernel-parameters.txt 设置CPU状态 启动参数设置好后,在启动zImage前,还要设置CPU的状态如下: CPU 寄存器的设置: R0=0; R1=机器类型 ID; R2=启动参数在 RAM 中起始基地址; CPU 模式: 必须禁止中断(IRQs和FIQs); CPU 必须 SVC 模式; Cache 和 MMU 的设置: MMU 必须关闭; 指令 Cache 可以打开也可以关闭; 数据 Cache 必须关闭; bootloader启动内核zImage时的示例代码如下: u-boot启动内核的过程 u-boot启动内核的过程如下: 下载/加载 uImage到内存(0 dnw 0 ubuntu通过usb传输uImage 下载/加载 设备树文件到内存(0 dnw 0 ubuntu通过usb传输设备树 启动内核 bootm 0- 0其中0uImage在内存的地址,0设备树在内存的地址。 bootm启动内核时,会使用u-boot的bootargs环境变量来设置命令行参数。 u-boot启动内核的过程 bootargs环境变量的值为: “root=/dev/nfs rw nfsroot=33:/opt/rootfs ip=3:33::::eth0:off console=ttySAC0,115200 init=/sbin/init“ 其中 root,nfsroot用来告诉内核“/”目录在哪里 ip用来告诉内核开发板自己的IP是多少 形式:ipaddr:serverip:gatewayip:netmask:boardcast:设备名:初始化状态 console用来告诉内核控制台是什么 init用来告诉内核启动的第一个程序是什么 课堂小结 内核的配置系统 Kconfig文件提供菜单 Makefile负责编译 .config文件 配置结果 内核的生成过程 vmlinux arch/arm/boot/Image arch/arm/boot/piggy.gzip arch/arm/boot/compressed/vmlinux arm/arm/boot/zImage zImage启动条件 作业题 见FTP“作业一.doc” 预习内容 构建根文件系统 linux内核映像的生成与启动 教学回顾 内核的配置编译过程 配置成默认的 cp config_back .config或者 make exynos_defconfig 基于默认再进行配置 make menuconfig 编译 make 内核的配置菜单 教学内容 linux内核的配置系统 Kconfig文件 Makefile文件 Linux内核的生成过程 Linux内核启动的条件 教学要求 理解linux内核的配置系统,能够添加内核功能菜单; 了解内核的生成过程; 了解内核启动的条件; linux配置系统 Linux内核源代码支持二十多种体系结构的处理器,还有各种各样的驱动程序; 因此,linux内核有上千条配置选项,配置相当复杂; 所以,linux内核源码组织了一个配置系统; 配置系统包括三部分: Makefile:负责整

文档评论(0)

2299972 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档