- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
构建小型嵌入式Linux系统-Read.doc
PAGE
PAGE 29
构建小型嵌入式Linux系统
焦 扬
2008.6.20
TOC \o 1-2 \h \z \u
目录
HYPERLINK \l _Toc201762920 1 编译linux最小内核 PAGEREF _Toc201762920 \h 3
HYPERLINK \l _Toc201762921 1.1 准备内核源码 PAGEREF _Toc201762921 \h 3
HYPERLINK \l _Toc201762923 1.2 配置内核 PAGEREF _Toc201762923 \h 4
HYPERLINK \l _Toc201762935 1.3 内核配置结果 PAGEREF _Toc201762935 \h 14
HYPERLINK \l _Toc201762936 1.4 内核配置总结 PAGEREF _Toc201762936 \h 15
HYPERLINK \l _Toc201762937 2 用busybox 制作linux根文件系统 PAGEREF _Toc201762937 \h 16
HYPERLINK \l _Toc201762938 2.1配置编译busybox PAGEREF _Toc201762938 \h 17
HYPERLINK \l _Toc201762939 2.2 创建rootfs 文件 PAGEREF _Toc201762939 \h 23
HYPERLINK \l _Toc201762940 2.3 构建rootfs总结 PAGEREF _Toc201762940 \h 27
HYPERLINK \l _Toc201762941 3 总结 PAGEREF _Toc201762941 \h 28
系统要求:
(1)qemu模拟 X86体系 shell界面 支持网络 系统越小越好
(2)Linux内核+rootfs(使用busybox)
基本步骤:
编译linux最小内核得到arch/i386/boot/bzImage文件
用busybox制作linux根文件系统rootfs
1 编译linux最小内核
——选用linux-2.6.23内核
在编译linux内核之前,首先要确定自己的需求,需要让内核支持什么硬件,支持多少种分区类型和文件系统,支持哪些网卡,支持哪些网络协议。编译最小内核的目的就是把自己需要的功能编译进去或者编译成模块,把不需要的裁剪掉。这也体现了Linux的最主要的特点就——可裁剪。
由系统要求所知:所需要的硬件为X86体系,shell界面,支持网络等,那么我们就进入linux内核的编译过程中去。
现在手头上只有linux-2.6.23.tar.gz(如果没有或需要其他版本需自行下载),这已经足够了。
1.1 准备内核源码
# tar –zvxf linux-2.6.23.tar.gz
在当前目录下会出现一个linux-2.6.23目录。如果打算把linux-2.6.23.tar.gz解压到指定目录下。比如在主目录下建一个文件夹为workplace,那么 # tar zvxf linux-2.6.23.tar.bz –C /home/rtos/workplace。那么就把它解压到指定的文件夹workplace里了。
1.2 配置内核
cd linux-2.6.23 //进入linux-2.6.23目录
make allnoconfig //这一步的目的是把内核配置的所有选项都不选择
make menuconfig //选择系统所需要的最小配置
make //编译内核
在配置选项时则需要使用空格键进行选取。在每一个选项前都有个括号, 但有的是中括号有的是尖括号,还有一种圆括号。 用空格键选择时可以发现,中括号里要么是空,要么是“*”,而尖括号里可以是空,“*”“M”这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块。而圆括号的内容是可以在所提供的几个选项中选择一项。选择相应的配置时,有三种选择,它们分别代表的含义如下:
Y——将该功能编译进内核
N——不将该功能编译进内核
M——将该功能编译成可以在需要时动态插入到内核中的模块
在编译内核的过程中,最烦杂的事情就是这步配置工作了,有些甚至都不清楚到底该如何对这些选项进行取舍。实际上在配置时,大部分选项可以使用其缺省值或者不选,只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能
文档评论(0)