- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Arm_试验_2
实验二 linux的移植、内核、文件系统的生成与下载
一、实验目的
1. 了解linux移植的基本过程,掌握内核和文件系统的下载方法
二、实验内容
1. 学习linux移植的基本过程
2. 学习内核和文件系统的生成与下载方法
三、实验设备
1. PentiumII以上的PC机、EL-ARM860实验箱
四、linux的移植说明
本实验系统运行的linux版本是针对2.4.18の内核进行移植的
linux-2.4.18.-rm7-pxa1版本,它存放在/ARMer/tar.gz/目录内。由于移植内核所涉及的内容较多,且也较复杂,同时,在涉及到的中断切换、内存管理方面的复杂移植,一般也不必太过关心,网络上有专门的非官方组织在完善该事情。我们所做的大多是把该移植好的内核,让它如何在自己的硬件系统上正常的运转起来。因此,我们所做的移植也偏重于应用。
4.1. 内核的目录结构
Linux内核主要由5个子系统组成:
进程调度子系统
进程间通讯子系统
内存管理子系统
虚拟文件系统子系统
网络接口子系统
Linux内核非常庞大,包括驱动程序在内有上百兆。2.4.18内核结构图如图4-3-1。
其主要结构目录:
/arch 子目录包含了所有与硬件体系结构相关的内核移植代码。其中每一个目录都代表一种硬件平台,对于每种平台都应该包括:
boot: 包括启动内核所使用的部分或全部平台的相关代码。
kernel: 包括支持体系结构特有的特征代码
lib:包括存放体系结构特有的通用函数的实现代码
mm: 包括存放体系结构特有的内存管理程序的实现
mach-xxx:包括存放该处理器的移植代码
/Documentation 子目录包含有关内核的许多非常详细的文档。
/drivers 子目录包含内核中所有的设备驱动程序。
/fs 子目录包含了所有的文件系统的代码。
/include 子目录包含了建立内核代码时所需的大部分库文件的头文件,该模块利用其他模块重建内核。同时,它也包括不同平台需要的库文件。
/init 子目录包含了内核的初始化代码,内核从此目录下开始工作。
/ipc 子目录包含了内核的进程间通讯的代码。
/kernel 子目录包含了主内核的代码,如进程调度等。
/lib 子目录包含了通用的库函数代码等。
/mm 子目录包含了内核的内存管理代码。
/net 子目录包含了内核的网络相关的代码。
/scripts 子目录包含了配置内核的一些脚本文件
一般在每个目录下,都有一个.depend 文件和一个 Makefile 文件,这两个文件都是编译时使用的辅助文件,仔细阅读这两个文件对弄清各个文件这间的联系和依托关系很有帮助;而且,在有的目录下还有Readme 文件,它是对该目录下的文件的一些说明,同样有利于我们对内核源码的理解。ARCH := arm
CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-
也就是说,所移植的硬件平台是ARM,所使用的交叉编译器是存放在目录/usr/local/arm/2.95.3/bin/arm-linux-xxx等等工具。
4.2.2 arch/arm目录下Makefile 修改
系统的启动代码是通过这个文件产生的。在linux-2.4.18内核中要添加如下代码,(在移植好的内核中请不要添加)
ifeq ($(CONFIG_ARCH_S3C2410),y)
TEXTADDR = 0xC0008000
MACHINE = s3c2410
endif
这里TEXTADDR确定内核开始运行的虚拟地址。
4.2.3 arch/arm目录下config.in 修改
配置文件config.in能够配置运行“make menuconfig”命令时的菜单选项,由于2.4.18内核中没有S3C2410的相关信息,所以要在该文件中进行有效的配置。
由于配置选项较多,在此不做赘述,请参见我们提供的内核源代码内的/arch/arm/config.in文件。
做完该步,这样在linux内核配置时就可以选择刚刚加入的内核平台了。
4.2.4 arch/arm/boot目录下Makefile 修改
编译出来的内核存放在该目录下,这里指定内核解压到实际硬件系统上的物理地址。
ifeq ($(CONFIG_ARCH_S3C2410),y)
ZTEXTADDR = 0ZRELADDR = 0endif
要根据实际的硬件系统修改解压后,内核开始运行的实际的物理地址
4.2.5 arch/arm/boot/compressed目录下Makefile 修改
您可能关注的文档
最近下载
- 2025年最新劳动合同法全文.docx VIP
- 养老服务机构服务质量星级评定检查细则一.doc VIP
- 中国心血管健康与疾病报告.pdf VIP
- 《中国天然气发展报告(2016)》.docx VIP
- (高清版)B-T 24353-2022 风险管理 指南.pdf VIP
- GB∕T 24353-2022 《风险管理 指南》解读和应用指导材料(雷泽佳编写2024B0).pdf VIP
- 2025年版检验检测机构资质认定评审准则考试试题及答案.pdf VIP
- 前交通动脉瘤破裂伴蛛网膜下腔出血个案护理.pptx VIP
- 临床颅内动脉瘤破裂伴蛛网膜下腔出血的个案护理.pptx VIP
- 检验检测机构资质认定评审准则试题及答案.pdf VIP
文档评论(0)