基于2.6.19内核的小型Linux系统制作与移植

来源 :电子产品世界 | 被引量 : 0次 | 上传用户:bainiao528
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  陈建华 孔凡军
  摘要:介绍了如何制作一个基于Linux2.6.19内核的小型Linux系统,并将其移植到S3C2410开发板上。内容包括引导程序2.6.19内核、根文件系统的修改、配置、编译、移植等。
  关键词:Linux2.6.19内核;小型Linux系统;S3C2410
  
  引言
  
  ARM9$3C2410微处理器与Linux的结合越来越紧密,逐渐在嵌入式领域得到广范的应用。目前,在便携式消费类电子产品、无线设备、汽车、网络、存储产品等都可以看到S3C2410与Linux相结合的身影。
  S3C2410微处理器是一款由Samsung公司为手持终端设计的低价格、低功耗、高性能,基于ARM920T核的微处理器。它带有内存管理单元(MMU),采用0.18gm工艺和AMBA新型总线结构,主频可达203MHz。同时,它支持Thumb 16位压缩指令集,从而能以较小的存储空间获得32位的系统性能。
  在众多嵌入式操作系统中,Linux目前发展最快、应用最为广泛。性能优良、源码开放的Linux具有体积小、内核可裁减、网络功能完善、可移植性强等诸多优点,非常适合作为嵌入式操作系统。一个最基本的Linux操作系统应该包括:引导程序、内核与根文件系统三部分。
  与Linux2.4内核相比,2.6内核吸收了最新的技术,在性能、可测量性、器件支持和可用性方面有了大幅度提高;支持更多的体系结构、处理器、总线、接口和设备;标准化了内部接口;简化了扩展或添加新设备的步骤等。
  本文着重介绍如何制作一个基于linux一2.6.19内核的小型Linux操作系统,并将它移植到S3C2410开放板上。内容包括交叉编译环境的建立,引导程序、2.6.19内核、根文件系统的修改、配置、编译、移植等。
  
  系统的制作移植
  
  建立交叉编译环境
  要移植、开发小型Linux系统,首先要在安装了RedHat9或更高版本Linux操作系统的主机上配置交叉开发环境。交叉开发是指在开发主机上安装开发工具,编辑、编译目标板的引导程序、内核和文件系统,使其能在目标板上运行。
  针对本次开发,需要安装arm-linux-gcc-3.4.1以及armv41-tools工具链。在安装完毕后,切记要将两者的路径分别添加到系统路径SPATH中。
  
  引导程序
  对于计算机系统来说,从开机上电到操作系统启动需要一个引导程序。嵌入式linux系统同样离不开引导程序,这个引导程序叫做B00tloader。通过这段小程序,可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统硬件环境,为最终调用操作系统内核做好准备。
  vivi是韩国MIZI公司为其ARM9系列产品而研发的Bootloader,小而灵巧,这里选用它作为小型Linux系统的Bootloader。
  首先要修改vivi源代码中的Flash分区信息,新的分区信息。
  在vivi源码arch/s3c2410/smdk.c文件中作出相应的修改。
  然后在配置菜单中导入smdk2410的默认配置,编译成功将在vivi源代码目录下生成所需的Bootloader文件,文件名为vivi。
  接着,便可把vivi下载到目标板Hash的相应位置。
  
  内核
  ·修改内核
  首先,修改内核源码linux-2.6.19下的Makefile文件,指定目标代码类型与编译器:SUBARCH:=arm CROSS COMPILE:=/usr/usr/lo—cal/arm/3.4.1/bin/arm-linux-。
  然后,在linux-2.6.19/arch/arm/mach—s3c2410/common-smdk.c中根据表1修改内核中的Flash分区信息。这里提醒读者,2.6.16(含)以前内核的源码中没有Flash分区信息,所以需要增加新的分区信息;而在2.6.17(含)以后内核的源码中已含Flash分区信息,需要的只是修改分区信息。
  内核Flash分区信息必须与vivi的Flash分区信息相一致。因为,vivi的Flash分区中的地址是内核及文件系统下载到Nand flash的真正地址;而内核在启动时读的却是内核Flash分区设定的地址;所以,若两者不同,则很可能导致不能正常启动内核或读取文件系统。
  最后,修改linux-2.6.19/drivers/mtd/nand/s3c2410.c,禁止Nand flash差错检测:
  chip->eccmode=NAND_ECC NONE;。
  ·内核的配置编译
  在配置菜单中导入内核对smdk2410的默认配置,再在此基础上选择所需的功能。如Nand Hash及MTD设备的支持,Cramfs文件系统的支持等。
  配置完毕,在终端输入编译命令“make”进行编译。若内核源码编译成功,将在linux-2.6.19/arch/arm/boot/下生成内核映像文件zlmage。
  最后,在vivi命令提示模式下使用下载命令,将内核映像zImage加载到开发板Flash中的适当地址。
  
  根文件系统
  Linux系统中的文件和设备是通过文件系统来组织的。文件系统的存在使得数据和设备可以被有效而透明地存取访问。一个linux的最简根文件系统应该包括支持linux系统正常运行的基本内容,包括系统使用的软件和库,以及所有用来为用户提供基本支持的架构和指令。
  在根文件目录rootfs下建立bin、dev、etc、lib、proc、sbin、root、tmp等一系列必备的目录,把所需的配置文件、动态函数库放到相应的目录。采用BusyBox是缩小根文件系统的好办法。BusyBox以很小的体积集成了最常用的linux命令和应用程序,大大简化了制作linux根文件系统的过程。
  有一点必须指出的是,在2.6.12(含)之前的内核通常是用devfs来管理位于/dev下的所有块设备和字符设备;但在2.6.13(含)之后的内核已不支持devfs,而转用udev来管理/dev下的设备,详见。所以,针对2.6.19内核,要使系统启动后进入BusyBox控制台,还需在/rootfs/dev下添加控制台设备文件:“[root@localhost dev]#mknod-m 600 consolec51”。
  目前,linux已经能够支持几十种文件系统格式,如常用的Cramfs、Jfss2、Yaffs等。Cramfs是一种只读的闪存文件系统,可以保护系统的基本设置不被更改。根文件系统就使用Cramfs格式。
  使用Cramfs制作工具mkcramfs把根文件目录制作成映像文件:rootfs.cramfs。
  根文件系统制作完成,在vivi命令模式下把rootfs.cramfs下载到Flash的合适位置。
  至此,一个基于2.6.19内核的小型Linux系统便成功地制作完毕,并移植到$3C24109t:发板上了。
  板子加电后便可看到系统的启动信息,最终进入BusyBox控制台。
  
  结语
  
  基于2.6内核的Linux凭借其突出的嵌入式特性与性能优越的ARM9$3C2410相结合,在嵌入式领域有着广阔的应用天地。文章介绍了如何制作一个基于Linux2.6.19内核的小型Linux系统,并将其移植到S3C2410开发板上。小型系统的制作与移植是进行嵌入式开发的基础,必须熟练掌握。
其他文献
恩智浦(NXP)半导体执行董事、总裁兼首席执行官Rick Clemmer不久前接受了本刊的采访,称其已经实现了战略转型,专注四大领域,并支持中国实现从“中国制造”到“中国设计”的跨越,专注ARM MCU的策略等。  NXP从2011年第4季度到2012年第一季度增长了7%,而很多半导体同行却下降了,NXP的增长来自两方面,一是安全技术(特别是在ID)实现了两位数增长。二是之前与一些车厂进行设计项目
期刊
日前,德州仪器(TI)与清华大学宣布共同组建“未来智能机器人”兴趣团队,从而为未来智能型机器人开发、多智能体协同技术研究感兴趣的学生提供学习、交流、研究、实践和创新的平台。  TI 大中华区总经理、中国运营总裁谢兵先生表示,“自1958年TI的工程师Jack Kilby发明了集成电路,基于集成电路的各种技术和产品的创新已经完全改变了我们的学习、工作、娱乐的方式,并渗透到日常生活的每一个角落。清华大
期刊
自1970年发明MOS工艺及73年推出CMOS工艺以来,至今还没有发现可替代它的工艺,足见CMOS工艺的经济合理性。因此,至今硅基材料的应用仍在继续延伸。然而,在晶体管工艺制造中采用二氧化硅作为栅极材料,实质上已逼近极限。如65纳米工艺时,二氧化硅栅极的厚度已降低至1.2纳米,约5个硅原子层厚度,如果再继续缩小,将导致漏电及功耗急剧上升。    晶体管工艺技术的又一个里程碑    Intel共同创
期刊
摘要:本文介绍了同步采样ADC在电网监测中的应用,并对构建电力线测量系统时所要考虑的问题进行了讨论。  关键词: ADC;电力线监测;放大器;数字隔离器    前沿    电力工业的迅速扩展,在全球范围内引发了加强现有传输和配电网络以及建设新变电站的需求。微处理器技术方面的进展以及支持人员的人力成本的上升,已经成为电力公司设计新的、采用高精度集成化自动控制系统的自动化高压变电站的关键性推动因素。
期刊
王典洪 乔 伟 谢利芳  摘要:提出了一个基于WinCE操作系统的通用USB数控键盘设计。实现了键盘与主机之间快速灵活的数据通信。  关键词: 嵌入式;USB;数控键盘;WinCE    引言    随着网络时代的到来,机械制造行业也面临着如何适应网络化制造的问题。于是将计算机技术、网络技术和传统的控制技术相结合,以嵌入式系统为主的数控系统正日益成为机械制造领域的热点。对于一个具体的数控系统,在
期刊
摘要:本文介绍了如何利用外置ADC取代微控制器内部所集成的ADC以及设计时需要考虑的注意事项。  关键词: ADC;微控制器;增益放大器;传感器阻抗    当今的电子产品总是希望尺寸越小越好。从占据整个房间的服务器系统到能方便地装进衣服口袋的消费电子产品,设计师们不断寻求实现最小的外形尺寸,在更小的空间中实现更多的功能。能够让完整的解决方案比同类方案小10%到20%的设计师有更大的机会赢得设计订
期刊
摘要:绍了一种SDRAM通用控制器的FPGA模块化解决方案。  关键词: SDRAM控制器;FPGA;VHDL;状态机;仲裁机制    引言    同步动态随机存储器(sDRAM),在同一个CPU时钟周期内即可完成数据的访问和刷新,其数据传输速度远远大于传统的数据存储器(DRAM),被广泛的应用于高速数据传输系统中。基于FPGA的SDRAM控制器,以其可靠性高、可移植性强、易于集成的特点,已逐渐
期刊
近日,第八届NI高校教师交流会(Professor Day 2012)在哈尔滨举办,来自全国22个省/直辖市、110所高校的244余名教师受邀参加。NI的高校教师交流会一直致力于用NI先进的科技与全新的理念,为高校教师提供分享工程教育的创新理念与前沿技术的交流平台。  今年的高校教师交流会以“图形化系统设计助力创新型工程教学与高效率院校科研”为主题,包括创新性教学、高效率科研及未来工程师专题在内举
期刊
FPGA-DSP性能揭秘      在无线基站等高性能DSP应用中,考虑将FPGA用作处理引擎者日益增多。在这些应用中,FPGA既可与DSP处理器一争高下,亦可与之比翼齐飞。  有了更多选择,就意味着系统设计者有必要了解高端FPGA的信号处理性能,其中既包括FPGA之间的性能对比,也包括与高端DSP处理器的性能对比。遗憾的是,最常用的性能数字非但有失可靠、含混不清,而且常常是矛盾百出。  例如,因
期刊
摘要:本文论述了纯数字DDX音频放大器的基本结构,基本工作原理和优点,以及如何利用DDX音频放大器进行产品设计和开发。  关键词:DDX调制;数模转换器;DDX音频放大器    前言    随着数字音源与数字音频技术的迅速发展,直接对数字音频信号进行功率放大而不需要进行模拟转换(DAC)的数字音频放大器得到了迅速发展,它具有效率很高并且能与数字音源直接对接,实现端到端的纯数字音频处理和放大等优点。
期刊