构建pc104上的linux系统平台
- 格式:doc
- 大小:29.00 KB
- 文档页数:6
凝思LINUX系统环境搭建手册版本历史目次1引言 (3)2安装凝思LINUX操作系统 (3)2.1凝思6.0的安装 (3)2.2安装相关补丁包 (29)2.3相关配置: (29)2.3.1关闭防火墙 (29)3ORACLE安装 (30)3.1安装前装备 (30)3.2修改内核参数 (30)3.3创建安装所需的用户和组 (31)3.4修改环境变量文件 (32)2.3.1安装oracle数据库 (33)2.3.2设置ORACLE随机自动启动与随机自动关闭 (47)2.3.11配置ORACLE 表空间自动增长 (49)1引言本手册是《凝思LINUX系统环境搭建手册》,主要用于指导工程人员安装凝思6.0操作系统环境,包括操作系统安装、配置、数据库安装等。
2安装凝思LINUX操作系统2.1凝思6.0的安装凝思系统安装(1)安装前准备设置光启插入安装盘(2)进入安装界面选择Graphical install 回车(3)进入语言选择界面选择中文(简体)Continue(4)选择区域中国继续(5)选择美国英语继续(6)进入配置LINX序列号界面,输入序列号(不输入亦可)继续(7)进入配置网络界面配置主机名继续(8)配置域名继续(9)进入设置root密码设置root密码继续(10)进入常用帐号设置设置常用帐号继续(11)进入常用账号用户名设置设置用户名继续(12)进入新用户密码设置设置密码后继续(13)进入磁盘分区选择手动继续为了运行性能考虑,本说明书除了swap分区外,共设置了3个分区,分别挂在:/、/home 目录上,最终在(36)完成分区设置。
对于安装oracle服务的系统,建议,再分出一个oracle 的数据分区。
(14)进入选择磁盘分区界面选择要分区的磁盘继续(15)进入确认创建分区表界面选择‘是’继续(16)选择空闲空间继续(17)进入分区方式选择这里选择创建新分区继续(18)根据个人需求我们可以选择这个磁盘大小这里选择20% 继续(19)这里选择主分区继续(20)选择分区建立位置这里选择开始继续(21)这里我们把第一分区挂载点确认为/ 根目录(22)选择分区设定结束继续(23)再次选择空闲分区继续(24)选择创建新分区继续(25)根据个人需要配置第二分区(swap分区)大小这里配置5% 继续(26)选择任意(第二分区要做swap分区对分区类型无要求)分区类型这里选择主分区继续(27)选择分区创建位置这里选择开始继续(28)在此处我们双击进入‘用于’选择如何使用此分区界面(29)选择交换空间继续(30)选择分区设定结束继续(31)再次选择空闲磁盘继续(32)选择创建新分区继续(33)配置分区大小(这里将剩余空间都分配给逻辑分区)继续(34)选择逻辑分区继续(35)选择挂载点为/home 选择分区设定结束继续(36)选择分区设定结束并将修改写入磁盘继续(37)确定界面选择‘是’继续(38)磁盘配置完成进入配置软件包管理器选择‘否’继续(39)选择‘否’继续(40)选择如图软件包继续(41)安装过程中会弹出输入域名或工作组名窗口配置域名或工作组名继续(42)安装结束进入设定man-db界面选择‘是’继续(43)取出光盘继续(44)系统重启进入登陆界面2.2安装相关补丁包以下命令需root权限运行apt-get update为安装oracle做准备,需安装如下包:apt-get install rpmapt-get install gawkapt-get install libaio1apt-get install lesstif2创建连接文件ln –s /usr/bin/awk /bin/awkln –s /usr/bin/rpm /bin/rpmln –s /usr/bin/ basename /bin/basename为编译和运行环境做准备,需安装如下包:apt-get install libpng*apt-get install libaudio2apt-get install libstdc++*apt-get install g++apt-get install gccapt-get install makeapt-get install zipapt-get install vsftpdapt-get install mysql*apt-get install libsvnapt-get install svnversion2.3相关配置:2.3.1关闭防火墙为了方便ssh等远程登录,关闭防火墙,管理员权限修改/etc/default/grub文件,注释掉security相关配置,如下图,并保存。
嵌入式软件工作总结第1篇学期开始,我们开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,等到学期结束开始做嵌入式课程设计时,真是茫然无从下手,自从拿到设计主题后,我就像热锅上的蚂蚁,一个字_急_。
最后实在没有办法,逼着自己去学习,查资料,总算对嵌入式有了浅层理解。
嵌入式系统本身是一个相对模糊的定义,一个手持的Mp3和一个pC104的微型工业控制计算机都可以认为是嵌入式系统。
总体来说,嵌入式系统是_用于控制,监视或者辅助操作机器和设备的装备_。
一个典型的桌面Linux系统包括3个主要的软件层———linux内核、C库和应用程序代码。
内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。
内核之上是C库,负责把pOSIXApI转换为内核可以识别的形式,然后调用内核,从应用程序向内核传递参数。
应用程序依靠驱动内核来完成特定的任务。
在了解了基础知识之后,我开始进行上机操作,当然,其中遇到很多的难题,很多东西都是第一次接触,又没有别人在旁边指导操作,完全凭借自己去摸索练习。
其中的困难可想而知。
然而坚持就是胜利,牙一咬眼一闭坚持做下去,而通过本次实验,我感觉收获还是蛮多的。
可能我对于嵌入式的知识学习的还是不太多,但是这之外的东西收获颇丰。
它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓_一份耕耘,一份收获。
_没有付出,何谈回报呢?再者,通过本次实验,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。
当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。
当然,在这其中,我也发现自己的许多不足之处,由于学期伊始我没有好好学习,才落到如此地步,这也可以说是一个教训吧!我相信在以后的学习工作中,我一定会端正自己的学习态度,一丝不苟的去对待每一件事。
修订历史版本 日期 原因V1.00 2012/8/1 创建文档目录第1章产品简介 (4)1.1 概述 (4)1.2产品特性 (5)1.3 产品外观 (5)第2章硬件安装与接线 (6)2.1 硬件安装 (6)2.2 PCI中断分配 (7)2.3 接口定义 (7)2.4 终端电阻 (8)第3章驱动程序安装 (9)3.1驱动程序安装 (9)3.2 驱动程序检查 (12)附录1 CAN2.0B 协议帧格式 (13)附录2 标准波特率设置 (15)附录3 CAN 报文滤波器设置 (16)附录4 CAN总线通信距离(参考值) (21)附录5 销售清单 (22)第1章产品简介通过本章,您可以了解北京爱泰益科科技有限公司出品的PCICAN-9820 CAN-bus接口卡的基本特性。
本章内容提要9概述9产品特性1.1 概述PC104PlusCAN-II型PC104pus转CAN-bus接口卡是一款工业级PC104plus主板配套数据传输卡,其集成两路CAN-bus接口。
PC104PlusCAN-II接口卡支持32位33MHz PC104plus数据总线,采用通用PC104plus连接器,用户利用它可以轻松完成CAN-bus网络和PC104plus主板之间的互连互通,可以方便、高速的采集CAN-bus 数据。
PC104PlusCAN-II为工业级产品,可以工作在-20℃~+70℃的温度范围内。
CAN口通信波特率可以在5K~1Mbps内任意设定。
为保证良好的EMC和EMI性能,PC104PlusCAN-II采用完全独立的CAN-bus 通道,有效避免PC遭受地环流的影响。
同时,两路CAN接口均集成CAN-bus专用共模滤波器和TVS总线保护电路,为工作在电磁环境较复杂的工业场合提供安全保障。
PC104PlusCAN-II接口卡提供API和多语言版本的应用例程,并提供调试软件,方便用户分析、控制、测试CAN-bus总线上的传输数据。
QQ群:302377173LinuxCNC/EMC2论坛:/时间:2009-12-28来源:单片机与嵌入式系统作者:林凯宏,游林儒,胡庆华华南理工大学关键字:EMC2硬件抽象层原理1概述嵌入式系统具有专用性强、外围设备多样的特性,这决定了其应用的硬件环境差异性较大。
系统软件模块与硬件之间的接口是嵌入式实时系统的主要特征,是系统设计过程中的必需环节,也是影响嵌入式系统应用前景的关键问题之一。
硬件抽象层(Hardware Abstraction Layer,HAL)的引入可有效解决这一问题。
HAL 是将硬件平台与应用软件隔离开来的软件层次,通过硬件抽象技术实现硬件相关和硬件无关两部分程序代码的隔离,为应用软件提供一个没有硬件特性的接口。
硬件抽象层的引入不仅是系统体系结构设计方法的改进,更直接关系到整个系统的开发模式以及嵌入式操作系统的可移植性。
硬件抽象层的引入大大推动了嵌入式系统开发的规范化进程。
EMC 是一个开放源代码的用于机床或机器人等运动控制系统的计算机控制软件。
它能同时驱动9轴电机。
其运动控制特性包括:刀具半径和长度补偿、轴同步运动、自适应进给速度、恒速度控制等。
EMC2在原有EMC 软件的基础上加入了许多新的特性和功能,其中包括了HAL 和软件PLC 模块ClassicLadder。
ClassicLadder 是一个基于LGPL 协议的梯形图解释器。
它随着EMC2一起发布,可以与EMC2的HAL 一起工作。
本文中的控制系统利用EMC2的HAL 为软PLC 中的应用程序提供底层硬件操作支持,提高了应用程序的平台无关性与可移植性。
2硬件架构控制器是锂电池卷绕恒张力控制器,采用符合PC/104总线规范的单板计算机(以下简称PC104)与基于FPGA 的专用主机板相结合的方法构建系统硬件。
PC104中运行实时Linux,ClassicLadder 及HAL 作为实时模块加载到Linux 系统中。
系统硬件框图如图1所示。
探讨PC104的无人直升机飞行控制系统设计1. 引言现今无人机(UAV)的研究和发展越来越受到世界各国的重视。
其中飞行控制系统是无人直升机飞行控制的核心部分。
飞行控制系统的复杂性和实时性对所使用的嵌入式控制系统软件有很高的要求,而Linux 系统基本可以满足要求,同时由于其开源特性,正越来越多的被应用于飞控系统设计开发中,目前较为成熟的嵌入式Linux 系统多建立于ARM 系列芯片上,其具有开发时间短、可参考资料多、开发成熟度高、能耗低、体积小的优点,因此在民用嵌入式解决方案中被广泛采用。
但基于ARM 的系统由于其自身结构的限制,并不适用于高计算强度、高可靠性的应用。
所以本文提出了一种基于AMD Geode 系列处理器的PC/104模块加定制Linux 系统的控制系统方案提高该系统的可靠性。
2. 系统总体设计说明本文所研究的直升机飞行控制系统,其硬件由双工数传电台、飞控计算机、下级控制器、捷联惯导系统、发动机控制单元ECU、任务设备管理器、R/C 接收机、地面测控系统等组成。
PC/104的外部接口包括一个I/O模块和四个串口。
其中任务设备管理器通过I/O模块和机载的任务设备进行通讯,传输的信号为模拟信号和数字信号;串口分别和数传电台、捷联惯导系统、下位机控制器和发动机控制器进行通讯。
捷联惯导系统通过串口为飞控计算机提供无人直升机飞行过程中所有的飞行状态和导航信息,包括姿态角、航向角、三轴角速率、三轴线速度、线加速度、飞行位置等等。
捷联惯导系统还通过串口和下位机控制器相连接。
数传电台用于和地面测控系统进行无线链路通讯。
它接收地面测控系统的控制指令进行自主及各种模态的自动飞行以及机载工作设备的管理和控制等。
而地面测控系统通过数传电台接收机上的各种遥测信息、系统状态数据、任务工作设备的状态数据等。
下位机控制器通过串口和飞控计算机相连,接收其控制器输出信号,驱动总矩、俯仰、横滚和方向舵机的运动;在系统调试阶段利用RC遥控器共同完成无人直升机的手动模式飞行。
linux26221的在s3c2410板子上的移植----------------------------------------------bootloader编译环境:vivi版本:0.1.4交叉编译器(CROSS-COMPILE)版本:2.95.3(下载地址略:网上专门多搜下。
)操作系统:redhat server 5======================================linux内核编译环境:内核版本:linux2.6.22.2交叉编译器:自己做的适合Linux2.6.22.2版本的交叉编译器操作系统:redhat server 5======================================文件系统编译环境:busybox1.5.1,或1.4.2交叉编译器(CROSS-COMPILE)版本:同上操作系统:redhat server 5----------------------------------------------硬件:自己做的2410开发板内存:64MB SDRAM(2×16M×16位);CPU:S3C2410 ARM处理器,Nor Flash:2MB的Nor Flash,用于固化测试程序(用来下载bootloader,内核,或文件系统);NANDflash: 64MB的Nand Flash,用于储备Bootloader、Linux内核及文件系统、应用程序和数据;++++++++++++++++++++++++++++++++++++++++++++++====================================================================== ============================一:编译环境搭建====================================================================== ============================一:搭建交叉编译环境讲明:由于编译交叉编译环境比较繁琐,建议大伙儿用差不多编译好的交叉编译环境。
《深度探索Linux系统虚拟化:原理与实现》阅读随笔目录一、内容描述 (2)1.1 虚拟化的概念 (3)1.2 Linux系统虚拟化的背景 (4)二、Linux系统虚拟化原理 (6)2.1 虚拟化技术的基本原理 (7)2.2 Linux系统虚拟化的关键实现技术 (9)三、Linux系统虚拟化实现方法 (10)3.1 KVM虚拟化技术 (12)3.2 Xen虚拟化技术 (13)3.3 VMware虚拟化技术 (15)3.4 QEMU/KVM混合虚拟化技术 (16)四、Linux系统虚拟化实例分析 (17)4.1 CentOS系统虚拟化实践 (18)4.2 Ubuntu系统虚拟化实践 (19)五、Linux系统虚拟化性能优化 (21)5.1 硬件资源优化 (23)5.2 软件资源优化 (24)5.3 系统配置优化 (25)六、Linux系统虚拟化安全问题及防范措施 (27)6.1 虚拟化环境下的安全隐患 (28)6.2 安全防护策略与工具 (29)七、总结与展望 (31)7.1 本书总结 (32)7.2 未来发展趋势 (33)一、内容描述在科技飞速发展的时代,虚拟化技术已成为信息技术领域的重要组成部分。
《深度探索Linux系统虚拟化:原理与实现》为我们系统、全面地揭示了Linux系统虚拟化的奥秘。
本书的内容描述涵盖了虚拟化技术的理论基础、实现方法和实践应用,是学习和掌握Linux系统虚拟化技术的理想读物。
本书介绍了虚拟化的基本概念和原理,包括虚拟化的定义、分类、发展历程以及其在云计算、大数据等领域的应用。
通过对虚拟化技术的原理进行深入剖析,帮助读者理解虚拟化技术的基本思想和工作机制。
本书详细阐述了Linux系统虚拟化的实现方法。
包括系统虚拟化的关键组件、技术细节以及实现流程。
通过对KVM、Xen等主流虚拟化技术的讲解,使读者了解Linux系统虚拟化的技术实现和实际应用。
还介绍了虚拟化管理的相关工具和技术,如Docker容器技术等。
基于PC104和嵌入式Linux的水电机组振摆装置的研究李友平朱浩施冲夏洲(南瑞集团自控公司江苏南京 210003)摘 要 随着水电机组单机容量的不断变大,为保证机组和电网的安全稳定运行,对机组的振动摆度进行监测变得越来越重要。
本文介绍了一种基于PC104和嵌入式Linux开发的振摆监测装置。
对该装置的结构,功能以及具体的实现方法进行了相关的阐述。
关键词水电机组,振摆监测,嵌入式Linux ,PC104,双端口RAM1、引言随着水电机组单机容量的不断扩大,水电机组的稳定运行不仅仅对水电机组本身的安全是个重要的问题,同时也是电网安全稳定运行的重要保证。
因此,对水电机组,尤其是大型水电机组的状态监测目前越来越受到人们的普遍关注。
根据有关统计资料表明[1],水电机组80%的故障都可以在振动信号中体现。
因此,对水电机组的振动摆度信号进行监测和分析显得及其重要。
PC104是一种专门为嵌入式控制而定义的工业控制总线,近年来在国际上广泛流行,是一种优化的、小型堆栈式结构的嵌入式控制系统。
其主要特点为[2]:◇小尺寸结构,堆栈式,“针”“孔”总线连接,有极好的抗震性;◇6mA总线驱动即可使模块正常工作,低功耗,能减少元件数量;◇自我堆栈式连接,无须母板。
Linux自1991年问世以来,以其自身独特的自由、奔放、免费的形式吸引了全世界范围内的大量优秀计算机技术人员,投入到对它的开发和不断的完善工作之中去。
Linux所具备的稳定、高效、易定制、易裁减、硬件支持广泛以及开放源代码等特点,使得Linux近年来迅速崛起,使得Linux成为世界上越来越流行的操作系统。
目前嵌入式Linux被广泛的应用于数据采集、过程控制等诸多工业现场。
本文介绍的是一种基于PC104和嵌入式Linux的水电机组振摆装置的开发。
2、系统结构从总体结构开来,系统主要由两部分组成,如图1所示[3]。
第一部分是基于C8051的信号采集部分,其主要功能是对现场传感器信号进行模数转换,同时对其进行基本的信号调理以及实现DI/DO接口等;第二部分是基于嵌入式Linux的信号处理与显示部分,其主要功能是完成数字信号处理、数据存储、人机界面以及外部通讯等。
博创科技UP104-X270 软件使用手册 v1.3北京博创兴业科技有限公司2006.11博创科技UP104-X270软件使用手册 v1.3一、预备知识熟悉PC平台Linux系统,掌握Linux下的程序编译与交叉编译过程;熟悉嵌入式系统Linux,有驱动开发的基本知识了解ARM微处理器的使用二、光盘目录说明:/ 表示光盘根目录编译工具链安装目录为:/opt/crosstool/arm-linux/, 其他均安装到/up-techpxa270 [/]code 源码目录doc 文档目录img 映象文件目录tools 工具目录光盘说明.txt 说明文档[/img]blob 平台boot loader映象zImage 我们提供的Linux-2.6内核压缩映象文件,可以直接写入FLASHrootfs.img 我们提供的根文件系统映象文件,可以直接写入FLASHyaffs 应用程序,拷贝至CF卡中运行[/code]linux-2.6.9-pc104int.tar.bz2 Linux系统内核头文件root 根文件系统,通过使用mkroot.sh来制作根文件系统影像exp pc104示例代码[/tools]JFlash_MM.rar Windows下使用JTAG烧写bootloader,当FLASH中没有bootloader时唯一可用的工具。
server工具tftpd32.rar tftp[/tools/arm-linux-tools]arm-linux-gcc-3.4.3.tar.bz2 arm-linux-gcc-3.4.3编译器,编译内核使用arm-linux-gcc-3.2-glibc-2.3.2.tar.bz2 arm-linux-gcc-3.2编译器,在编译一些应用程序时使用三、平台介绍博创科技UP104-X270 主板是面向工业控制应用的高端嵌入式单板计算机模块。
功能强大,资源丰富,扩展能力强。
采用Intel PXA270 Xscale 低功耗处理器,主频104MHZ~520MHZ,提供强大的处理能力和丰富的外设资源。
构建PC104上的嵌入式Linux系统平台构建PC104上的嵌入式Linux系统平台为了适应目前嵌入式系统操作平台在性能、成本、可靠性等各方面的要求,论述了以Linux作为操作系统平台的优势,分析了以PC104卡和CompactFlash卡构造带图形用户界面(GUI)的Linux系统的关键技术.0 前言嵌入式系统的商品化操作系统十分丰富,如Palm OS、VxWorks、pSOS、Neculeus和Windows CE等。
高端嵌入式系统要求许多高级的功能,但其价格也相对昂贵,一般用户难以接受。
微软的Windows CE也有此类功能,却不具备大多数嵌入式系统要求的实时性能,而且难以移植。
Linux为嵌入式系统提供了一个极有吸引力的选择,对于嵌入式系统而言,性能、成本和可靠性是最至关重要的三个因素。
首先,众多文献资料表明,Linux是当前可获得的最简捷、最快速的操作系统,其性能优越之处,是把图形处理为一个用户级的应用,图形可根据需要被选择是否运行。
Linux系统中存在适度复杂的图形界面,但是它们并没有与操作系统的内核紧紧捆绑在一起,图形界面可按需求关闭。
这样就可以在Linux内核上运行专门为嵌入式系统定制的图形系统,从而获得优越的性能。
其次,Linux系统源代码完全公开,可以用非常便宜的价格得到各种Linux分发版,不必考虑许可成本,将用户从许可证的限制中解脱出来,无需去为资金短缺而烦忧。
Linux能正常运行于内存缺乏,容量紧张的系统中,减少在硬件升级上的开支。
另外,在系统稳定性方面,Linux几乎不崩溃,Linux的稳定性是由于它没有像其它操作系统一样内核极其庞大。
考察资料表明,Linux与其它Unix系统和大型操作系统如VMS、IBM大型机等一样具有相同的可靠性。
在上述优势之外,Linux还拥有众多硬件支持的特点和强大的网络支持功能。
正因为Linux在价格、性能、稳定性以及用户定制等方面的突出优势,用它来构建系统操作平台是一个很不错的解决方案。
1 开发中的关键问题及解决方案1.1 硬件及软件环境Linux系统的硬件环境以PC104卡为核心,卡上集成美国国家半导体公司(NS Geode)GX1 300MHz CPU,SVGA/LCD/LAN接口以及增强型IDE硬盘接口,支持CompactFlash卡。
硬盘和光驱接至PC104的IDE1口,设置跳线使硬盘为主设备(master),光驱为从设备(slave),CompactFlash装在IDE2口,设为主设备,这样Linux识别CompactFlah卡为/dev/hdc,而硬盘和光驱分别为/dev/had,/dev/hdb.我的Linux开发系统是Red Hat 7.2版,通过PC104上的光驱安装在硬盘上。
CompactFlash卡容量为32M,如果系统的BIOS支持自动检测,应该可以直接探测到它。
如果不行的话,需要自己输入卡的各项参数。
确保不要带电插拔CompactFlash卡,因为这可能导致卡上数据的丢失。
由于像Red Hat或Mandrake这样的Linux分发版体积庞大(如果带X-Windows基本都在1G以上),是不可能装在容量只有32M的CompactFlash卡上的。
目前有许多小型的嵌入式Linux版本,比较有名的有:ETLinux —设计用于在小型工业计算机,尤其是PC/104 模块上运行的Linux 的完全分发版。
LEM —运行在386 上的小型(<8 MB)多用户、网络Linux 版本。
LOAF — "Linux On A Floppy"分发版,运行在386 上。
uClinux —在没有MMU 的系统上运行的Linux。
目前支持Motorola 68K、MCF5206 和MCF5207 ColdFire 微处理器。
出于深入了解Linux系统运行环境和机制的想法,建议自己构建Linux系统,这对于将来系统内核版本的升级和应用功能的拓展很有好处。
选择Red Hat 7.2的Linux版本。
1.2 系统分区和格式化首先,需要在CompactFlash卡上建立分区和格式化,在Linux下用fdisk命令可以在CompactFlash卡上创建分区,命令格式为fdisk /dev/hdc,然后用mke2fs命令创建ext2文件系统.1.2 系统分区和格式化首先,需要在CompactFlash卡上建立分区和格式化,在Linux下用fdisk命令可以在CompactFlash卡上创建分区,命令格式为fdisk /dev/hdc,然后用mke2fs命令创建ext2文件系统.1.3 编译内核接下来要做的事情是编译一个自己的内核。
内核负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
从技术上而言,Linux 是一个内核,而且只是一个内核。
其余我们通常称之为"Linux" (例如一个shell 和编译器)的部分实质上只是整个软件包的一部分,它们从技术上而言是与Linux (内核)分开的。
选择与开发系统一样的内核版本2.4.7,在Linux内核版本发布的官方网站上可以找到内核源代码。
在编译内核的时候,由于内核是在特定的机器上使用的,所以应该对机器的情况了如指掌。
另一方面,为了降低过高的复杂性,可以不用kernel module支持,把所有需要的东西直接编译到内核里。
IDE 支持是必不可少的,因为Linux认CompactFlash卡为IDE硬盘,Frame buffer的支持也是必要的,这来源于GUI系统—MiniGUI的要求,网络支持可以不要,但是如果认为显示屏将来有这方面的要求也可以把它加上。
1.4 创建根文件系统(Root Filesystem)在编译好内核后,需要在CompactFlash卡上创建根文件系统。
每台机器都有根文件系统(一般在本地盘中,当然也可以在RAM盘或网络盘中),它包含系统引导和使其他文件系统得以mount所必要的文件,根文件系统应该有单用户状态所必须的足够的内容。
还应该包括修复损坏系统、恢复备份等的工具。
如果有一个任务比其它任务更能简化从头构建Linux 根文件系统过程的话,那就是构建和安装BusyBox 软件包。
BusyBox 是一个可执行文件,它提供许多其它常用命令行工具的功能,所有这些功能都合为一体。
BusyBox 的文档声称构建一个有效系统所需要的全部就是BusyBox 和"/dev、/etc 以及内核"—而且他们没有开玩笑。
Busybox 编译出一个单个的独立执行程序,就叫做busybox。
但是它可以根据配置,执行ash shell 的功能,以及几十个各种小应用程序的功能。
这其中包括有一个迷你的vi 编辑器,系统不可或缺的/sbin/init 程序,以及其他诸如sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat ... 等等这些都是一个正常的系统上必不可少的。
但是如果我们把这些程序的原件拿过来的话,它们的体积加在一起,让人吃不消。
可是busybox 有全部的这么多功能,大小也不过100K 左右。
而且,用户还可以根据自己的需要,决定到底要在busybox 中编译进哪几个应用程序的功能。
这样的话,busybox 的体积就可以进一步缩小了。
Busybox的具体编译和配置方法请参阅Busybox的官方文档,用户可以在/上找到.系统启动后内核调用的第一个进程是/sbin/init。
init进程是系统所有进程的起点,内核在完成核内引导以后,即在本线程(进程)空间内加载init程序,它的进程号是1。
init程序需要读取/etc/inittab 文件作为其行为指针,inittab是以行为单位的描述性(非执行性)文本,inittab文件至少应该包含下面几行:::sysinit:/etc/init.d/rcS //运行系统公共脚本::respawn:/bin/sh //立即进入shell环境::ctrlaltdel:/bin/umount -a //捕捉Ctrl+Alt+Del快捷键,退出系统由于init进程第一个执行的脚本文件是/etc/init.d/rcS,编辑rcS文件:#! /bin/shmount -a接着还需要编写/etc/fstab文件:proc /proc proc defaults 0 0none /var/shm shm defaults 0 01.5 安装系统引导工具(boot loader)现在CompactFlask卡上新的内核已经有了,文件系统也已经建好了,接着要做的事情是安装系统引导工具(boot loader)。
目前可以选用的引导工具很多,象LILO或GRUB都是挺不错的,用户可以按自己的喜好来选择。
在这里我们选用LILO,它在硬盘开始的MBR写入引导代码,这些代码不经过文件系统,直接从硬盘扇区号读内核映象(kernel image)装入内存。
那么要如何安装LILO 呢?首先需要根据用户系统的搭建情况编辑/etc/lilo.conf文件,下面是我的/etc/lilo.conf文件,配有注释,你可以根据自己的情况进行更改,具体你可以参考LILO mini-HOWTO:boot=/dev/hdc #从CompactFlash卡启动disk=/dev/hdcbios=0x80 #使BIOS认CompactFlash卡为启动盘delay=0 #可选,以秒为单位vga=0x311 #可选,参照Frame buffer的配置image=/boot/vmlinuz-2.4.7 #内核文件位置root=/dev/hdc1 #root分区位置label=CompactFlash #嵌入式Linux的名字read-write #以read-write方式mount根文件系统编辑完/etc/lilo.conf后,将它写到CompactFlash卡上,假设CompactFlash卡已经被mount 到了/mnt/CompactLinux目录下,运行命令:/mnt/CompactLinux/sbin/lilo -r /mnt/CompactLinux -C etc/lilo.conf使用这个命令时必须非常小心,它可能会破坏开发系统上的引导系统而使它不能启动,为确保安全应在运行此命令前先创建系统引导软盘。
嵌入式Linux系统的雏形建立完成后,应先对其进行简单测试。
关上PC104卡的电源,拔下接在IDE1口的硬盘和光驱,合上电源重启PC104,在BIOS中设置IDE1口硬盘为None,存盘退出BIOS,进入CompactFlash卡上的系统。