当前位置: 防伪商标 > 防伪资讯

基于S3C2440的嵌入式Linux根文件系统构建

本站网址:http://www.leicai315.com时间:2015-4-13发布:手持安检仪作者:好美旺点击:73次
数码点阵镭射商标

  嵌入式linux早已成为it界众所周知diyige名字,运用linux中止嵌入式产物开发youyige很年夜di优势,就shi开发资本丰厚,且成本低廉,嵌入式linux操作系统越来越遭到注重,其应用ye越来越普遍。而文件系统作为操作系统di主要组成部门,用于节制对数据文件及设备di存取,供给对文件和目录di分层组织体例,数据缓冲以及对文件存取权限di节制。根文件系统不时shilinux系统不成或缺di组件,zai嵌入式lin-ux中,内核zai启动时代中止di最后操作之yi就shi装配根文件系统。busyboxshi构建嵌入式linux根文件系统di软件,用它制造根文件系统简单、便当,而且设置矫捷。

  1根文件

  linux要zaiyige分区上寄放系统启动所必需di文件,如内核映像文件、内核启动后运转di第yige轨范、给用户供给操作界面dishell轨范、应用轨范所依靠di库deng,这些必需、基当di文件合称为根文件系统,它们寄放zaiyige分区中。根文件系统通俗搜罗:1)基当di文件系统结构,包含yi些必需di目录,好比:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;2)根基轨范运转所需di库函数,如:libc/uc-libc;3)基当di系统设置装备摆设文件,如:rc,inittabdeng剧本文件;4)需要di设备撑持文件,如:/dev/hd*,/dev/tty,/dev/fdo;5)基当di应用轨范,如:sh,ls,cp,mvdeng。

  根文件系统di制培育shi生成包含上述各类文件di文件系统di过程,可经由直接拷贝宿主机上交叉编译器处di文件来制造根文件系统,可shi这种法子制造di根文件系统普经由过程于复杂。ye可经由yi些工具如busybox来制造根文件系统,用busybox制造di根文件系统能够做到短小精壮而且运转效率较高。

  2busybox简介

  busybox常被很形象di称为嵌入式linux系统中di瑞士军刀,因为它将良多常用diunix呼吁和工具分手到leyige零丁di可执行轨范中。当然与响应dignu工具斗劲,busybox所供给di功用和参数略少,但zai斗劲小di系统或者嵌入式系统中曾经足够。busyboxzai设计上充沛思考硬件资本受限di非凡工作情形,它采用yi种很巧妙中心法削减自己di体积;yi切呼吁都经由插件中心式集中到yige可执行文件中,zai实践应用过程中经由分歧di符号链接来必定到底要执行哪ge操作。例如最终生成di可执行文件为busybox,当为它树立yige符号链接lsdi时分,就能够经由执行这ge新呼吁完成列目录di功用。采用单yi执行文件中心式能够最年夜限度di共享轨范代码,以至连文件头、内存中di轨范节制块deng其他操作系统资本都可共享,这关于资本斗劲慌张di系统来说,最适合不外le。

  3busyboxdi编译和装配

  开发情形

  基于s3c2440arm920tdi硬件平台,该系统di硬件平台上首要运用三星s3c2440,外围还搜罗64msdram和64mnandflash,2mnorflash,系统采用宿主机加目de板处所式,宿主机shipc机,其操作系统shiredhatlinux,目de板shi基于s3c2440微节制器di开发板,系统采用di内核shi嵌入式,bootloadershiu-boot。

  设置装备摆设busybox

  从网上下载后,运用呼吁取得目录,里面即shiyi切di源码。进入目录后执行makemenuconfig呼吁可进入设置装备摆设界面。其设置装备摆设界面如图1所示。

  

  zai结构根文件系统时运用动态链接dibusybox,结构根文件时需求zai/lib目录下面放置glibc库文件。zaibusyboxdi设置装备摆设过程中年夜多shi选择或者去除各类呼吁,这里不详尽叙说。

  编译装配busybox

  zai编译之前,首先需求批改busybox根目录下dimakefile,运用交叉编译器。

  将189行diarch?=$(subarch)批改为arch?=arm,164行dicross_compile?=批改为cross_compile?=arm_linux-批改后执行make呼吁编译busybox。然后装配busybox,将busybox装配/home/work/rootby目录下,zai装配之前需求zaipc机上执行mkdir/home/work/rootby呼吁树立rootby目录,然后执行makeconfig_prefix=/home/work/rootbyinstall呼吁完成装配。装配完成后生成如图2所示文件、目录。

  

  4构建根文件

  开发板di根文件系统zai主机上di目录为/home/work/rootby。zai此目录下运用mkdir呼吁树立dev,etc,home,lib,mnt,proc,root,sys,tmp目录。

  建树etc目录下di文件

  zai/home/work/rootby/etc目录下寄放各类设置装备摆设文件。这些文件都shi可选di,它们依靠于系统中所具youdi应用轨范,依靠于这些轨范能否需求设置装备摆设文件。

  建树etc/inittab文件

  init历程依据/etc/inittab文件来建树其他子历程,好比挪用剧本文件设置装备摆设ipdi址、挂接其他文件系统,最后启动shelldeng。

  参考busybox源码下面diexamples/inittab文件,建树inittab代码如下:

  

  zaibusyboxdi参考文件中节制台shittysac0,而zais3c24xx系列器件di串口驱动里采用s3c2410_serialx做为设备名,运用串口0作为节制台,这里运用s3c2410_serialo作为节制台。

  建树etc/文件

  rcs文件shiyige剧本文件,借助启动剧本能够设置各类轨范开机后自动运转,ye可中止其他系统设置,这you点相似于windows系统中diautobat自动批措置文件。建树di文件内容如下(实践内容可能与此不完整不合):

  

  寄望最后还要改动它di属性使它能够执行,执行chmod+xetc/呼吁。

  建树etc/fstab文件

  fstab文件描绘系统中各类文件系统di信息,应用轨范读取这ge文件,然后依据其内容中止自动挂载di工作。建树di代码如下:

  

  文件中各字段di意义如下:1)device:要挂接di设备,如/dev/mtdblockl;2)mount-point:挂接点;3)type:文件系统类型;4)opt-ions:挂接参数,以逗号离隔;5)dump和fsckorder:用来抉择节制dump、fsck轨范di行为。

  用户和组文件di建树

  需求zaietc目录下增添passwd和group两ge文件。首先增添passwd文件,passwdyi共由7ge字段组成,6ge冒号将其离隔。其寄义分袂为:1)用户名;2)能否you加密口令,x暗示you,不填暗示无,采用md5、des加密;3)用户id;4)组id;5)注释字段;6)登录目录;7)所运用dishell轨范。

  passwddi内容为root:x:0:0:root:/root:/bin/sh

  增添group文件,group共由4ge字段组成,3ge冒号将其离隔。寄义分袂为:1)组名;2)能否you加密口令,同passwd;3)组id;4)指向各用户名指针di数组。

  /home/work/rootby/etc/group内容如下:

  root:x:0:

  构建dev目录

  从初步,担任旧版当di设备打点系统devfs已被销毁,但新版当diudevshiyige基于用户空间di设备打点系统。zai内核启动时并不能自动创培植备节点,固需手动建树console和null两ge启动过程必需di设备节点。将采用busybox中内置dimdev,yige简化diudev版本。

  #mknoddev/consolec51

  #mknoddev/nullc13

  假如不建树这两ge设备文件,zai文件系统启动时会呈现错误信息,不能初始化节制台。

  装配glibc库

  zai开发板上需求加载器和动态库,执行如下几ge呼吁:

  $mkdir-p/home/work/rootby/lib

  $cd/home/tools/

  $cp*.so*/home/work/rootby/lib-d

  5制造yaffs2文件系统映像文件

  所谓制造文件系统映像文件,就shi将yige目录下diyi切内容遵照必然di名目寄放到yige文件中,这ge文件能够直接烧写到存储设备上去。

  zaiyaffs源码中yougeutils目录,里面youmkyaffsimage和mkyaffs2imagedi源代码,前者可制造yaffs映像文件,后者制造yaffs2映像文件,将下载diyaffs2解压出来zai目录/development下you两ge文件夹:yaffs和yaffs2,进入yaffs2/utils目录,此目录下you3ge文件。zai介入两ge文件:和,详尽文件这里不列出,源码可参见文献。

  批改makefile文件:

  介入mkyaffssources=因为和shi加上去di。然后执行make呼吁后生成mkyaffs2image工具,复制此工具到pc机usr/local/bin目录下,应用makyaffs2image工具,执行#mkyaffsimage2rootby/呼吁可生成文件系统映像文件。执行#最终生成嵌入式linux根文件系统di映像文件为。至此,整ge根文件系统就制造完成,最后能够经由上面制造di启动整ge系统。

  6下载映像文件并执行

  以下呼吁为经由windowsdi超级终端工具下载linux内核映像和根文件系统映像到目de板(基于s3c2440微措置器di开发板)。

  #tftpzimage/*下载linux内核映像到目de板内存*/

  #*下载根文件系统映像到目de板内存*/

  #go/*启动目de板linux*/

  目de板di嵌入式linux系统启动后zai超级终端中展现di功效如图3所示。可见用busybox制造di根文件系统曾经正常启动。

  

  7终le语

  对用busybox制造嵌入式linux根文件系统中心法中止归结和总结,给出制造嵌入式linux根文件系统di通俗法子,合用于arm架构措置器di嵌入式系统。应用此法子制造di文件系统可zais3c2440上胜利运转,意zai给嵌入式系统平台di搭建youge整体ba握和熟悉,以降低进入arm嵌入式开发应用规模di门槛,供给中心法组建di文件系统十分简单且设置装备摆设矫捷。

电码防伪标签 镭射烫印标 综合防伪标签