- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、Linux内核结构 Linux内核有12个主目录,700多个子目录,文件总数11000多个,总长度120多MB。 Linux内核的主目录为:arch、drivers、fs、include、init、ipc、kernel、lib、mm、net、、 1、arch目录 arch目录包含了与硬件体系结构相关的内核代码,其下面的每一个目录都是一种硬件平台,如ARM和PC机的i386。对于每一平 台都包含以下几个目录。 boot :与平台相关的启动内核代码 kernel :与平台相关的内核代码 lib :与平台相关的通用函数 mm :与平台相关的内存管理代码 math-emu :与平台相关的模拟FPU代码 显然,内核移植的重点就是该目录下面的文件。 2、drivers目录 该目录下面保存的是所用设备的驱动程序,其下的每个目录是一种设备。 3、fs目录 该目录下面列出了Linux所支持的文件系统,其下每个目录代表一种文件系统,文件系统代码与平台无关。 4、include目录 该目录下面是编译内核所需要的头文件,与平台无关的部分在linux子目录下面,其余的子目录都是与各种平台相关的头文件。 5、init目录 其下只有两个文件:main.c和version.c,前者是核心的初始化代码,后者是版本信息 6、ipc目录 其文件是核心进程的通信代码。 7、kernel目录 为与平台无关的内核管理代码,与平台相关部分在arch/***/kernel下面。 8、lib目录 该目录下面的文件是与平台无关的通用函数。 9、mm目录 该目录下面的文件是与平台无关的内存管理代码,与平台相关部分在arch/***/mm下面。 10、net目录 是网络功能代码,其每个子目录对应网络的一个方面。 11、其它目录 Documentation目录下存放的是说明和应用文档,scripts目录下存放的是配置内核脚本。 另外在每个目录下几乎都有一个depend文件和Makefile文件,depend是被包含在Makefile中的,编译目标所依赖的头文件。 6.2.2 Linux移植 对于后面的移植,假设内核的目录为/my-arm/kernel,并且设环境变量为$KERNELCODE=/my-arm/kernel。 一、/my-arm/kernel---根目录 根目录下只需要修改Makefile文件。该文件的任务有两个:产生Linux内核镜像压缩文件vmlinux和内核模块,Makefile递归进入到各个子目录中,调用子目录中的Makefile最终产生出目标文件。 需要修改的内容: (1)指定目标平台: 将: ARCH :=$(shell uname –m|sed –e s/ i.86/i.386…… 修改为: ARCH :=arm (2)指定交叉编译器 将: CROSS_COMPILE = 修改为: CROSS_COMPILE = /friendly-arm/ crosstool/arm-linux/ gcc-2.95.3-glibc-2.2.3/bin/arm-linux- (3)修改TOPDIR 将: TOPDIR := $(shell bin/pwd) 修改为: TOPDIR := $(/my-arm/kernel) (4)修改export INSTALL_MOD_PATH 将: INSTALL_MOD_PATH = /root 修改为: INSTALL_MOD_PATH = /my-arm/kernel/arch/arm/root 二、arch/arm目录 1、对Makefile文件的修改 ifeq($(CONFIG_ARCH_S3C2410),y) TEXTADDR = 0xC0008000 MACHINE = s3c2410 endif TEXTADDR决定内核起始运行地址,即image.ram应下载的位置,其值与具体目标板有关。 0xC0008000的含义:从地址0xC0000000开始,共有32MB空间。 2、对config.in文件的修改 config.in是配置文件,运行menuconfig时出现的菜单就是config.in的内容。因为2.4.18内核没有中没有S3C2410x处理器的信息,所以需要加入相关信息。 (1)添加CONFIG_ARCH_S3C2410子选项 修改后为: if[“$CONFIG_ARCH_S3C2410”=“y”];then comment ’
您可能关注的文档
最近下载
- 管理会计(第2版)教学课件:第3章 变动成本法.ppt VIP
- 最新2023版知识产权贯标GBT29490 07知识产权成文信息控制程序(含表单)[知识产权合规管理体系文件].docx VIP
- 2020年最新部编版六年级语文下册全册背诵课文、古诗词、日积月累.docx VIP
- 暨南大学-毕业论文答辩PPT模板.ppt VIP
- 自考00058市场营销学全教材知识点汇总课件.pptx VIP
- 最新2023版知识产权贯标GBT29490 14采购知识产权控制程序(含表单)[知识产权合规管理体系文件].docx VIP
- 危险化学品安全知识培训PPT课件.pptx
- 马扎克面板精编版.doc VIP
- 基孔肯雅热诊断和治疗方案(2025年版).pptx
- 大学学习委员竞选演讲稿PPT.pptx VIP
文档评论(0)