第6章 嵌入式Linux系统构建.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  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文档。上传文档
查看更多
第6章 嵌入式Linux系统构建 6.1 Linux内核的裁剪和编译 Linux内核裁剪的目的是根据应用的需要,裁剪掉嵌入式应用中不需要的功能和代码,留下必要的功能和代码,可以减小内核尺寸,较少存储器需求,降低嵌入式系统功耗,教学系统体积。内核裁减集的原理是打开一个菜单,让开发人员在其中选择所需要的功能、特色、配置和参数,配置工具为选择的功能定义相应的C语言宏,并通过编译命令的-D选项传给内核源程序,内核源代码中对宏定义进行检查,使用条件编译的手段,将对仅需要的特色和功能进行编译,生成内核,而未选择的功能和特色则不进行编译,从而达到裁剪内核的目的。 Linux内核的裁剪工作包括内核配置、内核编译、根文件系统构建等工作,具体过程介绍如下。 6.1.1重新编译生成一个新的X86系统内核 # cp linux-2.4.20.bz2 /usr/src/ # cd /usr/src # tar zfvj linux-2.4.20.bz2 # ln -s linux-2.4.20 linux # cd linux 或 # cd /usr/src/linux-2.4.20-8 2) 清理源代码树 # make mrproper make mrproper命令会删除所有的编译生成文件、内核配置文件(.config文件)和各种备份文件,所以几乎只在第一次执行内核编译前才用这条命令。 3) 进入menuconfig配置菜单: # make menuconfig删除编译生成文件,但保留内核的配置文件.config # make clean2) 对内核配置阶段选择的功能和特色进行依赖关系分析,这些功能运行所需要的特色和代码添加到裁剪后的内核中。 # make dep # make zImage 4) 编译可加载模块(即内核选项中选择为M的选项),编译时间跟M选项的数量有关将编译好的modules拷贝到/lib/modules下# make modules_inatall (4) 最终生成的压缩映像的路径 arch/i386/boot/zImage (5) 用新的内核启动Linux 1) 将新内核复制到/boot目录 ? ?? ? # cp /usr/src/linux/arch/i386/boot/bzImage??/boot/vmlinuz-x.y.z 2)?将启动映象文件复制到/boot目录 ?? ? # cp /usr/src/linux/System.map /boot/System-x.y.z.map 3)??修改启动设置文件目前大多数使用的都是grub启动,需要修改/boot/grub/grub.conf,添加相应的启动信息,添加内容的最简单格式如下:title 显示在启动菜单上的名称root 根文件系统挂载分区kernel 压缩过的内核文件名initrd 根文件系统文件名 ? ?? ?? ?? ???如: ? ?? ?? ?? ???title My new kernel ? ?? ?? ?? ???root (hd0,2) ? ?? ?? ?? ???kernel /boot/vmlinuz-x.y.z ? ?? ?? ?? ???initrd /boot/initrd-x.y.z.img重新编译生成一个新的系统内核 # cd /arm2410s/kernel-2410s 2) 进入menuconfig配置菜单# make menuconfig (2)编译生成新的内核 1)删除编译生成文件,但保留内核的配置文件.config # make clean2) 对内核配置阶段选择的功能和特色进行依赖关系分析,这些功能运行所需要的特色和代码添加到裁剪后的内核中。 # make dep # make zImage # make modules (4) 最终生成的压缩映像的路径 arch/arm/boot/zImage 6.2 根文件系统的制作 6.2.1 根文件系统的结构 根文件系统包括支持Linux正常运行所需的程序和数据,如系统命令文件、运行库、系统进程代码和配置文件,包括: 基本文件系统结构:/dev,/proc,/bin,/etc,/lib,/usr,/tmp,/var,/home,/mnt 基本程序运行所需函数库:glibc, uclibc 基本系统配置文件: rc, inittab 必要的设备支持文件: /dev/hd*, /dev/tty*, /dev/fda0 必要的系统命令:sh, ls, cp, mv, rz, ifconfig 6.2.2 制作根文件系统映像 本节讲述如何在旧的根文件系统中加入新命令或文件的过程。 (1)将旧的根文件系统解压缩到一个目录中

文档评论(0)

word.ppt文档 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档