没有合适的资源?快使用搜索试试~ 我知道了~
首页基于S3C2440的linux操作系统内核移植和yaffs2文件系统的制作
基于S3C2440的linux操作系统内核移植和yaffs2文件系统的制作

第一章 移植内核... 2 1.1 Linux内核基础知识... 2 1.1.1 Linux版本... 2 1.1.2 什么是标准内核... 2 1.1.3 Linux操作系统的分类... 3 1.1.4 linux内核的选择... 4 1.2 Linux内核启动过程概述... 5 1.2.1 Bootloader启动过程... 5 1.2.2 Linux启动过程... 7 1.3 Linux内核移植... 10 1.3.1 移植内核和根文件系统准备工作... 10 1.3.2 修改Linux源码中参数... 11 1.3.3 配置Linux内核... 15 1.3.4、编译内核... 17 第二章 制作根文件系统... 19 2.1 根文件系统预备知识... 19 2.2、构建根文件按系统... 19 2.2.1、建立根文件系统目录... 19 2.2.2、建立动态链接库... 21 2.2.3 交叉编译Bosybox. 21 2.2.4 建立etc目录下的配置文件... 24 2.2.5 制作根文件系统映像文件... 26
资源详情
资源评论
资源推荐

Linux 内核移植和根文件系统制作
第一章 移植内核... 2
1.1 Linux 内核基础知识... 2
1.1.1 Linux 版本... 2
1.1.2 什么是标准内核... 2
1.1.3 Linux 操作系统的分类... 3
1.1.4 linux 内核的选择... 4
1.2 Linux 内核启动过程概述... 5
1.2.1 Bootloader 启动过程... 5
1.2.2 Linux 启动过程... 7
1.3 Linux 内核移植... 10
1.3.1 移植内核和根文件系统准备工作... 10
1.3.2 修改 Linux 源码中参数... 11
1.3.3 配置 Linux 内核... 15
1.3.4、编译内核... 17
第二章 制作根文件系统... 19
2.1 根文件系统预备知识... 19
2.2、构建根文件按系统... 19
2.2.1、建立根文件系统目录... 19
2.2.2、建立动态链接库... 21
2.2.3 交叉编译 Bosybox. 21
2.2.4 建立 etc 目录下的配置文件... 24

2.2.5 制作根文件系统映像文件... 26
第三章 启动系统... 26
第四章 总结... 34

第一章 移植内核
1.1 Linux 内核基础知识
在动手进行 Linux 内核移植之前,非常有必要对 Linux 内核进行一定的了解,下面从 Linux
内核的版本和分类说起。
1.1.1 Linux 版本
Linux 内核的版本号可以从源代码的顶层目录下的 Makefile 中看到,比如 2.6.29.1 内核的
Makefile 中:
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 29
EXTRAVERSION = .1
其中的“VERSION”和“PATCHLEVEL”组成主版本号,比如 2.4、2.5、2.6 等,稳定版本的德
主版本号用偶数表示(比如 2.6 的内核),开发中的版本号用奇数表示(比如 2.5),它是下一个
稳定版本内核的前身。“SUBLEVEL”称为次版本号,它不分奇偶,顺序递增,每隔 1~2 个
月发布一个稳定版本。“EXTRAVERSION”称为扩展版本号,它不分奇偶,顺序递增,每周
发布几次扩展本版号。
1.1.2 什么是标准内核
按照资料上的习惯说法,标准内核(或称基础内核)就是指主要在 http://www.kernel.org/维护
和获取的内核,实际上它也有平台属性的。这些 linux 内核并不总是适用于所有 linux 支持
的体系结构。实际上,这些内核版本很多时候并不是为一些流行的嵌入式 linux 系统开发的,
也很少运行于这些嵌入式 linux 系统上,这个站点上的内核首先确保的是在 Intel X86 体系
结构上可以正常运行,它是基于 X86 处理器的内核,如对 linux-2.4.18.tar.bz2 的配置 make
menuconfig 时 就 可 以 看 到 , Processor type and features---> 中 只 有
386 、 486 、 586/K5/5x86/6x86/6x86MX 、 Pentium-Classic 、 Pentium-MMX 、 Pentium-Pro/
Celeron/Pentium-II 、 Pentium-III/Celeron(Coppermine) 、 Pentium-4 、 K6/K6-II/K6-III
、 Athlon/Duron/K7 、 Elan 、 Crusoe 、 Winchip-C6 、 Winchip-2 、 Winchip-2A/Winchip-3
、CyrixIII/C3 选项,而没有类似 Samsun 2410 等其他芯片的选择。如果需要用在其他特定
的处理器平台上就需要对内核进行打补丁,形成不同的嵌入式内核。实际上,不同处理器
系统的内核下载站点中提供的也往往是补丁 patch 而已,故原 x86 平台上的内核变成了基础
内核,也被称为标准内核了。
1.1.3 Linux 操作系统的分类
第一层次分类:以主要功能差异和发行组织区分(基础 linux 系统/内核)。
1、标准 linux

2、μClinux
无 MMU 支持的 linux 系统,运行在无 MMU 的 CPU 上。
3、Linux-RT
是最早在 linux 上实现硬实时支持的 linux 发行版本。
4、Linux/RTAI
支持硬实时的 linux,于 RT-linux 最大的不同之处在于 RTAI 定义了 RTHAL,它将 RTAI 需
要在 linux 中修改的部分定义成一组 API 接口,RTAI 只使用 API 接口与 linux 交互。
5、Embedix
由 Lineo 公司开发,基于 PowerPC 和 x86 平台开发的。
6、Blue Cat Linux
7、Hard Hat Linux
8、其他
第二层分类:以应用的嵌入式平台区分(嵌入式 linux 系统/内核,使上面第一类中的各种
linux 系统扩展为对特定目标硬件的支持,成为一种具体的嵌入式 linux 系统)
由于嵌入式系统的发展与 linux 内核的发展是不同步的,所以为了要找一个能够运行于目标
系统上的内核,需要对内核进行选择、配置和定制。因为每一种系统都是国际上不同的内
核开发小组维护的,因此选择 linux 内核源码的站点也不尽相同。
第二层分类中的 linux 系统/内核相对于第一层分类的标准内核来说,也可以称为嵌入式
linxu 系统/内核。如应用在 ARM 平台上的嵌入式 Linux 系统通常有 arm-linux(常运行在
arm9 平台上),μClinux(常用在 arm7 平台上),在标准 linux 基础上扩展对其他的平台的支持
往往通过安装 patch 实现,如 armlinux 就是对 linux 安装 rmk 补丁(如 patch-2.4.18-rmk7.bz2)
形成的,只有安装了这些补丁,内核才能顺利地移植到 ARM Linux 上。也有些是已经安装
好补丁的内核源码包,如 linux-2.4.18-rmk7.tar.bz2。
不同处理器系统的内核/内核补丁下载站点:
处理器系统 适合的内核站点 下载方式
x86 http://www.kernel.org/ ftp, http, rsync
ARM http://www.arm.linux.org.uk/developer/ ftp, rsync

PowerPC http://penguinppc.org/ ftp, http, rsync, BitKeeper
MIPS http://www.linux-mips.org/ ftp, cvs
SuperH http://linuxsh.sourceforge.net/ cvs, BitKeeper
M68K http://linux-m68k.org/ ftp, http
non-MMU CPUs http://www.uclinux.org/ ftp, http
这些站点不仅仅是 linux 内核站点,它们可能直接提供了针对你的目标硬件系统的 linux 内
核版本。
1.1.4 linux 内核的选择
选择内核版本是很困难的,应该与负责维护该内核的小组保持联系,方法是通过订阅一些
合适的邮件列表(maillist)并查看邮件中相关的重要新闻,以及浏览一些主要站点,可以
得 到 该 内 核 的 最 新 发 展 动 态 。 如 针 对 ARM 的 Linux 内 核 , 可 以 访 问 http://
www.arm.linux.org.uk/ 并订阅该网站上提供的 maillist 就可以了。如果觉得查阅邮箱中的邮
件列表耗费太多时间,那么至少每周访问所关心的内核网站,并阅读 Kernel Traffic 提供的
过去一周中在内核邮件清单中发生的重要的摘要,网址为 http://kt.zork.net/kernel-traffic 这
样就可以得到相关 Linux 内核的最新信息。
并不是 Linux 的每个版本都适合 ARM-Linux 的移植,可以加入其邮件列表(maillist)以获
得内核版本所支持硬件的相关信息,表中列出的资源可以帮助你找到哪些没有列出的功能
可以被你的系统支持。ARM Linux 的移植,建议使用 2.4.x 或 2.6.x 版本。Linux 内核补丁可
以到 ARM Linux 的 ftp(ftp://ftp.arm.linux.org.uk )下载。
1.2 Linux 内核启动过程概述
一 个 嵌 入 式 Linux 系 统 从 软 件 角 度 看 可 以 分 为 四 个 部 分 : 引 导 加 载 程 序
(Bootloader), Linux 内核,文件系统,应用程序。其中 Bootloader 是系统启动或复位以
后执行的第一段代码,它主要用来初始化处理器及外设,然后调用 Linux 内核。Linux 内核
在完成系统的初始化之后需要挂载某个文件系统做为根文件系统(Root Filesystem)。根文
件系统是 Linux 系统的核心组成部分,它可以做为 Linux 系统中文件和数据的存储区域,
通常它还包括系统配置文件和运行应用软件所需要的库。应用程序可以说是嵌入式系统的
“灵魂”,它所实现的功能通常就是设计该嵌入式系统所要达到的目标。如果没有应用程序
的支持,任何硬件上设计精良的嵌入式系统都没有实用意义。
1.2.1 Bootloader 启动过程
Bootloader 在运行过程中虽然具有初始化系统和执行用户输入的命令等作用,但它最根本
的功能就是为了启动 Linux 内核。
1 、Bootloader 的概念和作用
剩余37页未读,继续阅读













安全验证
文档复制为VIP权益,开通VIP直接复制

评论1