实验二(内核移植)修改版_第1页
实验二(内核移植)修改版_第2页
实验二(内核移植)修改版_第3页
实验二(内核移植)修改版_第4页
实验二(内核移植)修改版_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/2/1实验二Linux内核的编译与

文件系统的构建2提纲13245基础知识实验目的实验内容预备知识实验设备6实验过程7实验报告要求31实验目的掌握交叉编译环境的设置掌握嵌入式Linux内核编译方法掌握嵌入式Linux文件系统编译方法掌握嵌入式Linux文件加载及启动的方法42实验内容设置嵌入式Linux的交叉编译环境编译Linux内核及文件系统加载、运行嵌入式Linux系统53预备知识掌握虚拟机及Linux系统的安装方法掌握Linux系统的常用命令掌握vi编辑器的使用方法掌握make工具的使用方法掌握Linux内核的构成掌握Busybox文件的用途64实验设备JXARM9-2440教学实验箱ADT2000仿真器和ADTIDE集成开发环境串口连接线、网络连接线75基础知识Linux映像由内核(kernel)和文件系统(fs)组成。可将kernel和fs统一编译到一个映像(image)文件中,也可以将kernel和fs独立地放置于不同的映像文件中(烧写到FLASH的不同区域),这需要通过修改Makefile文件和内核中的文件系统加载代码实现。本系统中kernel和fs分别位于不同的映像文件中。分别为(ramdisk.gz和zImage)。Linux支持压缩核心(zImage),它是对原核心映像文件(linux.bin)进行压缩,并在压缩后的文件头部添加一段解压缩代码。在zImage运行时,先运行这段解压缩代码将程序解压缩到Linux核心运行地址,完成后,跳转到核心运行。Linux开发过程BOOTLOADER开发Linux开发环境建立Linux内核移植应用程序开发5基础知识引导Linux烧写Linux内核映像和文件系统初始化硬件5基础知识支持Linux开发的BOOTLOADERGNU的交叉编译器,包括以下组件:1.Gcc交叉编译器,即在宿主机上开发编译目标上可运行的二进制文件;2.Binutils辅助工具,包括objdump、objcopy等;3.Gdb调试器。对于ARM可以采用如下两个版本的编译器:arm-elf-arm-linux-5基础知识GNU交叉编译(GNU'sNotUnix)arm-linux-gcc GNUC编译器arm-linux-ld 连接器arm-linux-as 编译gcc输出的汇编文件arm-linux-objdump 显示目标文件信息arm-linux-objcopy 复制目标文件内容arm-linux-ar 建立、修改、提取归档文件5基础知识arm-linux-交叉编译器(推荐使用)Windows环境+CygwinWindows环境+VMWare虚拟机(安装RedHat9.0)Linux环境,推荐RedHat9.0单机模式(一台计算机)双机模式(两台计算机)Windows+Linux5基础知识Linux开发环境建立必须采用支持GDB的调试器(如ADT1000A)才能进行调试,否则只能通过BOOTLOADER进行简单的程序烧写运行等调试信息的打印可以通过串口完成,使用linux下的minicom超级终端程序(类似于Windows上的超级终端工具)接收并显示目标板传送的打印信息Linux串口驱动完成后,可以通过内核打印函数printk向串口打印信息,这是Linux内核调试过程中最有效的手段5基础知识在linux环境下进行Linux开发Linux内核配置和编译等在Cygwin环境下运行,程序编辑和调试都在Windows环境下进行,必须采用支持Windows下进行linux调试的调试器(如ADT1000A)才能进行调试,否则只能通过BOOTLOADER进行简单的程序烧写运行等调试信息的打印可以通过串口完成,使用Windows上的超级终端工具接收并显示目标板传送的打印信息Cygwin是运行于Windows中的一个应用程序,它可以使得Linux环境下的应用程序可以在Cygwin环境下进行编译,即可以在Windows进行编译。5基础知识在Windows+Cygwin环境下进行Linux开发如果需要使用在Windows环境下调试的调试器,可通过在VMWare中安装linux虚拟机,在虚拟机中进行编辑、编译Linux,然后通过网络(ftp、nfs、ssh)等手段传送到Windows中,进行调试,这样编译和调试可以分别在linux和windows环境下但是是在一台电脑中完成,它的缺点是系统要求较高,运行速度慢。也可以在两台电脑中分别安装linux和windows,分别实现编译和调试。VMWare是运行于Windows中的一个应用程序,是一个虚拟机,可以在其上安装多个操作系统,相当于在Windows上安装一个虚拟的操作系统。5基础知识在Windows+VMWare虚拟机环境下进行Linux开发Linux内核的移植可以分为板级移植和片级移植。对于Linux发行版本中已经支持的CPU通常只需要针对板级硬件进行适当的修改即可,这种移植叫做板级移植。而对于Linux发行版本中没有支持的CPU则需要添加相应CPU的内核移植,这种移植叫做片级移植。片级移植相对板级移植来说要复杂许多,本系统采用的Linux发行版本中已经包含S3C2440XARM920T处理器的移植包,因此,只需要在其上进行Linux板级移植的基本过程和方法。5基础知识Linux内核移植linuxDocumentationarchdriversfsincludeinitmmlibnetscript帮助文档体系结构相关源代码驱动程序文件系统头文件kernel初始化Linux内存管理常用函数网络协议源代码脚本文件5基础知识Linux内核的目录结构armbootkernellibmach-s3c2440vmlinux.lds压缩内核启动引导代码内核起始代码常用函数s3c2440平台相关代码核心的连接脚本文件与架构和平台相关的源代码都放在arch目录下,对于ARM的Linux,包含于arch目录下的arm子目录中。5基础知识Linux内核的arch目录配置内核编译内核下载、运行、调试内核5基础知识Linux内核移植配置Linux内核makeconfigmakemenuconfigmakexconfig5基础知识配置Linux内核系统及其存储器配置网络支持显示器支持触摸屏支持5基础知识Linux常用配置选项在‘SystemType’菜单中中进行配置选择系统类型处理器型号选择处理器其它特性(USB支持等)5基础知识系统及其存储器配置在’Networkingoptions’以及’Networkdevicesupport’中进行配置选择支持TCP/IP协议5基础知识网络支持在’Networkdevicesupport’配置中,添加选项’Networkdevicesupport’,并在’Ethernet(10or100Mbit)’中选择’OtherISAcards’,如下图所示选择NE2000/NE1000support采用RTL8019网卡芯片,为NE2000兼容网卡芯片,因此,选择该网卡5基础知识网络支持在’Characterdevices’以及’Consoledrivers’中进行配置。在’Characterdevices’配置中,添加选项’Virtualterminal’配置,如下图所示。Virtualterminal支持5基础知识显示器支持在’Consoledrivers’中添加’SupportFramebufferdevices’配置采用256色STN显示器,因此必须选择8bpp支持5基础知识显示器支持在’Characterdevices’的’SupportS3C2440TouchScreen’子菜单中进行配置选择s3c2440触摸屏支持5基础知识触摸屏支持编译Linux内核建立依赖关系

makedep编译内核 make编译内核

makezImage编译压缩核心zImage编译生成的Linux映像文件zImage通常保存在arch/arm/boot/目录下5基础知识编译Linux内核通过调试器下载内核并运行通过BOOTLOADER下载内核到SDRAM中运行通过BOOTLOADER将内核烧写到FLASH中,然后运行Linux5基础知识下载、运行和调试内核在Linux开发中,由于可能没有标准键盘和显示器支持,因此,通常通过串口将显示信息发送到主机,由主机端超级终端工具接收,以完成显示功能。同时在超级终端中可以输入数据,然后由Linux接收,以完成标准键盘功能。调试过程中也可以通过串口将调试信息打印到超级终端,这是Linux最有效和最简单的方法。5基础知识Linux调试手段对于板级移植,内核移植主要包括如下几个部分:内核配置,包括板级包配置,如S3C44B0X-MBA44体系结构相关代码修改,根据板级包的配置,修改相应的体系结构相关代码,包括:压缩核心启动代码:linux/arch/arm/boot/内核启动代码:linux/arch/arm/kernel/板级相关代码:linux/arch/arm/mach-s3c2440/5基础知识Linux内核移植主要过程对于板级移植,内核移植主要包括如下几个部分:连接脚本核心连接脚本:linux/arch/arm/vmlinux.lds压缩核心连接脚本:linux/arch/arm/boot/compressed/linux.lds5基础知识Linux内核移植主要过程加载文件系统ramdisk编写驱动程序 驱动程序目录:linux/drivers/

网卡驱动程序:linux/drivers/net/ne.c LCD驱动程序:linux/drivers/video/s3c2440fb.c

触摸屏驱动程序:linux/drivers/char/s3c2440-ts.c5基础知识Linux内核移植主要过程解压缩核心核心打印信息内核命令行存储器5基础知识Linux启动过程IIC总线初始化FrameBuffer显示初始化5基础知识Linux启动过程Linux控制台5基础知识Linux启动过程文件系统指文件存在的物理空间。在Linux系统中,每个分区都是一个文件系统,都有自己的目录层次结构。Linux的最重要特征之一就是支持多种文件系统,这样它更加灵活,并可以和许多其它种操作系统共存。5基础知识Linux文件系统VirtualFileSystem(虚拟文件系统)使得Linux可以支持多个不同的文件系统。由于系统已将Linux文件系统的所有细节进行了转换,所以Linux核心的其它部分及系统中运行的程序将看到统一的文件系统。Linux的虚拟文件系统允许用户同时能透明地安装许多不同的文件系统。虚拟文件系统是为Linux用户提供快速且高效的文件访问服务而设计的。5基础知识Linux文件系统Linux系统核心可以支持十多种文件系统类型:JFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC、romfs等。5基础知识常用Linux文件系统406实验过程安装Vmware安装Linux配置交叉编译环境配置内核编译Linux内核及文件系统下载映像文件运行嵌入式Linux系统41主机:RedLinux目标机:S3C2440安装Linux安装交叉编译器配置Linux内核编译内核zImage启动U-BOOT下载映像文件运行Linux42解压交叉编译工具链43拷贝交叉编译工具链44修改环境变量45修改环境变量46运行文件查看环境变量4748修改虚拟机的IP地址,防止和windows系统的ip冲突495051关闭防火墙52535455测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论