嵌入式Linux系统搭建ppt课件_第1页
嵌入式Linux系统搭建ppt课件_第2页
嵌入式Linux系统搭建ppt课件_第3页
嵌入式Linux系统搭建ppt课件_第4页
嵌入式Linux系统搭建ppt课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

.,嵌入式Linux系统搭建,.,主要内容第一节Linux内核定制、裁剪和添加第二节嵌入式引导系统(BootLoader)技术第三节文件系统的构建,学习方法与建议,本章主要介绍了三个部分,分别是嵌入式linux内核、引导系统介绍和文件系统等相关内容。该章节详细介绍了关于嵌入式系统如何构建以及内核部分的应用操作等内容,可以更好的帮助理解嵌入式系统的相关内容,具有一定的应用价值。,1,.,一、概述二、内核目录介绍三、配置文件和配置工具四、内核的编译命令,第一节Linux内核定制、裁剪和添加,2,.,第一节Linux内核定制、裁剪和添加一、概述,操作系统结构操作系统(OperatingSystem,OS)是一组能够管理电脑软硬件资源的程序,它能够管理内存、决定系统资源分配、控制输入输出设备以及管理网络文件等。作为计算机软硬件之间的纽带,操作系统能够使计算机系统资源得到最大限度的利用。,3,.,第一节Linux内核定制、裁剪和添加一、概述,操作系统是一套复杂的管理控制程序,包括五个方面的管理功能:进程与处理机管理、存储管理、设备管理、文件管理与用户管理。一般来说,操作系统具有四个共同特征:并发性(concurrence)、共享性(sharing)、虚拟性(virtual)和不确定性(asynchronism)。,3,.,第一节Linux内核定制、裁剪和添加一、概述,并发是指两个或者多个事件在同一时间间隔之内发生;共享指系统中的资源能够供多个用户(用户程序)共同使用;虚拟指通过某种技术把一个物理上的实体映射为若干个逻辑上的对应;不确定性则指内存中的多个进程均按照各自独立的方式执行,其执行速度由于受到操作系统的自动控制,因此是无法预知的。,3,.,一个操作系统至少具有如下图所示的结构。引导系统就是在操作系统内核运行之前运行的一段小程序,其作用是初始化硬件设备、建立内存空间的映射图,并且为最终调用操作系统内核准备好正确的环境;内核是一个操作系统的核心,负责管理系统的进程、存储、设备和文件等,它决定着系统的性能和稳定性;根文件系统并不是一个具体的文件类型,而是一个理论性的概念,它作为VFS(VirtualFilesystemSwitcher)的根节点,可以帮助后者管理文件系统。VFS是内核中提供的一种软件机制,能够提供实际各个文件系统的挂载点。,4,第一节Linux内核定制、裁剪和添加一、概述,.,内核源码安装将ARMLinux系统内核源码安装到操作系统之中不仅可以方便学习内核的相应内容,而且具有帮助编译驱动程序等功能。完整的内核一般规模较大,可以从官方网站下载。下载的内核一般是tar.gz或者是.bz2压缩文件,使用时需要解压。在编译内核注意需要root权限。,5,第一节Linux内核定制、裁剪和添加一、概述,.,以下为内核源码的安装步骤:1)将需要升级的内核拷贝到/usr/src/下:#cplinux-2.4.18.tar.gz/usr/src2)解压下载的源程序文件,命令如下所示:#tar-zxvflinux-2.4.18.tar.gz3)文件将解压到/usr/src/linux目录中,建立链接:#ln-slinux-2.4.18linux,5,第一节Linux内核定制、裁剪和添加一、概述,.,第一节Linux内核定制、裁剪和添加一、概述,内核版本号说明可以使用unamea命令或者cat/proc/version命令来查看系统的内核版本号,如下图所示。该系统内核版本号为2.4.20-8。其中第一个数字为主版本号,第二个数字为次版本号,第三个数字为修订号。如果次版本号为偶数,则表明是该版本是稳定发行版本;如果次版本号是奇数,则说明该系统内核仍在开发中。,6,.,现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等几个功能模块组成。Linux内核源码的各个目录大致与此相对应,如下图所示。,第一节Linux内核定制、裁剪和添加二、内核目录介绍,7,.,内核源码目录说明,8,第一节Linux内核定制、裁剪和添加二、内核目录介绍,.,1配置文件给用户提供配置选择的功能,主要包括如下配置文件,9,第一节Linux内核定制、裁剪和添加三、配置文件和配置工具,.,2配置工具用来进行相关配置的工具,包括配置命令解释器,其中配置用户界面如下:(1)基于字符的界面使用命令:Makeconfig该方法简单且不需要调用Xwindows,不过操作麻烦,用户界面不友好。,10,第一节Linux内核定制、裁剪和添加三、配置文件和配置工具,.,(2)基于Ncurses的文本模式图形用户界面使用命令:makemenuconfig该方法简单且不需要调用Xwindows,而且操作简单。,11,第一节Linux内核定制、裁剪和添加三、配置文件和配置工具,.,(3)基于Xwindows图形界面的用户配置界面使用命令:Makexconfig,12,第一节Linux内核定制、裁剪和添加三、配置文件和配置工具,.,1在该级目录下的Config.in中添加对该模块的编译条件,该变量可以设置为三种状态Y-将该功能模块编译进内核N-不将该功能模块编译进内核M-将该功能编译成模块方式,可以在需要时动态插入到内核中的模块,13,第一节Linux内核定制、裁剪和添加四、内核的编译命令,.,2内核的编译操作下面给出了用于内核编译的主要命令:#makemenuconfig-配置编译选项#makedep-提供变量依赖关系信息.#makeclean-删除生成的模块和目标文件.#makezImage-编译内核生成压缩的映象.#makemodules-编译模块.#makemodules_install-安装编译完成的模块.编译完成之后最终生成的压缩内核映象的路径为arch/arm/boot/zImage,之后拷贝新内核文件zImage到启动目录,并改为合适的名字,即可启动新完成的内核镜像。,14,第一节Linux内核定制、裁剪和添加四、内核的编译命令,.,19,裁减编译内核,以root超级用户登录,进入目录/usr/src/linux。如果目标系统和主机系统不是同一硬件平台需要先建立交叉编译环境并获得目标系统的内核源代码#makemenuconfig对内核模块进行配置(也可以在XWindow中运行makexconfig)。#makedep更新配置文件,.,20,裁减编译内核,5.#makebzImage(如果内核不大则执行#makezImage),执行该命令后,将在/usr/src/linux/arch/i386/boot目录下生成内核文件bzImage(或zImage)。若配置中加入了模块的支持(选项为M),还需要执行#makemodules和#makemodules_install。6.生成内核/usr/src/linux/arch/i386/boot/bzImage文件为内核文件,.,内容:一、引导系统概述简单介绍引导系统的概念和模式二、Linux的Bootloadervivi与ubootvivi和uboot作为ARM平台常用的引导程序,具有结构简单但是功能强大的特点,第二节嵌入式引导系统(BootLoader)技术,15,.,1引导系统介绍所谓的引导程序(BootLoader),即系统加电后运行的第一段软件代码。一般来说嵌入式系统的Bootloader负责加载整个启动任务。整个过程包括初始化硬件设备、建立内存空间的映射图、配置合适的软硬件环境以便能够调用操作系统的内核。,第二节嵌入式引导系统(BootLoader)技术一、引导系统概述,16,.,2引导系统的操作模式大多数引导系统都包含两种不同的操作模式:启动加载模式下载模式1)启动加载模式启动加载模式也称为“自主”(autonomous)模式。引导系统从目标机上的某个固态存储设备中将操作系统加载到RAM中运行。这种模式是引导系统的正常工作模式。,第二节嵌入式引导系统(BootLoader)技术一、引导系统概述,17,.,2)下载模式在下载模式下,目标机上的引导系统将通过串口连接或网络连接等通信手段从主机下载文件。从主机下载的文件通常首先被引导系统保存到目标机的RAM中,然后再被引导系统写到目标机上的FLASH类固态存储设备中。这种模式通常在第一次安装内核与根文件系统时使用;此外,以后的系统更新也会使用引导系统的这种工作模式。,第二节嵌入式引导系统(BootLoader)技术一、引导系统概述,17,.,3.引导系统的主要任务与典型结构框架大多数引导系统都分为stage1和stage2两大部分。依赖于处理器体系结构和板级初始化的代码通常都放在stage1中,用汇编实现;stage2则通常用C语言来实现,这样可以实现更复杂的功能,同时代码具有更好的可读性和可移植性。,第二节嵌入式引导系统(BootLoader)技术一、引导系统概述,18,.,第二节嵌入式引导系统(BootLoader)技术一、引导系统概述,18,引导系统的stage1:1)硬件设备初始化。2)为加载引导系统的stage2准备RAM空间。3)拷贝引导系统的stage2到RAM空间中。4)设置好堆栈。5)跳转到stage2的C入口点,引导系统的stage2:1)初始化本阶段要用到的硬件设备。2)检测系统内存映射(memorymap)。3)将内核映像和根文件系统映像从flash上读到RAM空间中。4)为内核设置启动参数。5)调用内核。,.,1vivi的常用命令帮助命令vivihelp显示启动参数viviparamshow启动参数帮助viviparamhelp设置参数viviparamsetboot_delay10000000Changeboot_delayvalue.0 x00989680(10000000)to0 x00989680(10000000)viviparamsave,第二节嵌入式引导系统(BootLoader)技术二、Linux的Bootloadervivi与uboot,19,.,1vivi的常用命令显示分区帮助viviparthelp显示分区vivipartshow存储器分区vivibonhelp引导帮助viviboothelp启动操作系统viviboot,第二节嵌入式引导系统(BootLoader)技术二、Linux的Bootloadervivi与uboot,20,.,2Uboot的常用命令1)protect:protect命令用于对Flash进行写保护,可以使能和解除写保护。2)erase:erase命令可以擦除Flash。3)setenv:setenv命令可以设置环境变量。4)printenv:printenv命令可以打印全部环境变量,也可以只打印参数中列出的环境变量。,第二节嵌入式引导系统(BootLoader)技术二、Linux的Bootloadervivi与uboot,21,.,2Uboot的常用命令5)tftpboot:tftpboot命令能够使用TFTP协议通过网络下载二进制格式的文档。另外,使用这个命令,必须配置好相关的环境变量。例如serverip和ipaddr。其命令格式为:tftpbootloadAddressbootfilename6)bootm:bootm命令可以引导启动存储在内存中的程序映像。这些内存包括RAM和可以永久保存的Flash。其命令格式为:bootmaddrarg.,第二节嵌入式引导系统(BootLoader)技术二、Linux的Bootloadervivi与uboot,21,.,2Uboot的常用命令7)go:go命令能够执行应用程序。其命令格式为:goaddrarg.8)loadb:loadb命令能够通过串口线下载二进制格式的文档。其命令格式为:loadboffbaud,第二节嵌入式引导系统(BootLoader)技术二、Linux的Bootloadervivi与uboot,22,.,2Uboot的常用命令9)loads:loads命令可以通过串口线下载S-Record格式的文件。10)flinfo:flinfo命令打印全部Flash组的信息,也可以只打印其中某个组的信息。一般嵌入式系统的Flash只有一个组。11)cp:cp命令可以在内存中复制数据块,包括对Flash的读写操作。,第二节嵌入式引导系统(BootLoader)技术二、Linux的Bootloadervivi与uboot,22,.,2Uboot的常用命令12)cmp:cmp命令可以比较两块内存中的内容。.b表示以字节为单位;.w表示以字为单位;.l表示以长字为单位。13)mw:mw命令可以按照字节、字、长字写内存,.b,w,l的用法与cp命令相同。14)nfs:nfs命令可以使用NFS网络协议通过网络启动映像。,第二节嵌入式引导系统(BootLoader)技术二、Linux的Bootloadervivi与uboot,23,.,2Uboot的常用命令15)nm:nm命令用于修改内存,可以按照字节、字、长字操作。16)run:run命令可以执行环境变量中的命令,后面参数可以是几个环境变量名。17)sleep:sleep命令可以延迟N秒钟执行,N为十进制数。,第二节嵌入式引导系统(BootLoader)技术二、Linux的Bootloadervivi与uboot,23,.,内容:一、文件系统概述包括根文件系统的概述以及根文件系统的目录结构二、BusyBoxBusyBox的介绍以及相关命令,第三节文件系统的构建,24,.,1根文件系统描述Linux引导启动时,默认使用的文件系统是根文件系统。装载根文件系统也是引导系统启动过程的最后一个步骤。文件系统包含两大类:根文件系统和附加文件系统。根文件系统是操作系统至少应该引导的一个文件系统它包含了构建整个操作系统的基本程序和相关目录附加文件系统则是除了根文件系统之外的所有文件系统,本身无法直接使用,需要挂载到根文件系统的某个目录下方可使用。,第三节文件系统的构建一、文件系统概述,25,.,第三节文件系统的构建一、文件系统概述,26,2根文件系统目录结构根文件系统呈倒挂树状层次结构,一般包括如下几个目录:/etc、/dev、/usr、/bin、/var等。,.,第三节文件系统的构建一、文件系统概述,27,各目录功能如下:,.,1BusyBox介绍BusyBox是标准Linux工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如cat和echo,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀.简单的说BusyBox就好像是个大工

温馨提示

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

评论

0/150

提交评论