网站的页面大小,软件开发成本估算,山西省太原建设工程信息网站,百度指数趋势一、目的#xff1a;
1.搭建Linux操作系统项目所需的项目环境构件#xff1b; 2.了解 Linux的组成#xff0c;学会编译内核。
二、内容#xff1a;
安装Red hat 9.0Linux操作系统#xff1b;
三、步骤#xff1a;
3.1 正确安装Redhat9.0操作系统。
3.2 rpm -Uvh *.…一、目的
1.搭建Linux操作系统项目所需的项目环境构件 2.了解 Linux的组成学会编译内核。
二、内容
安装Red hat 9.0Linux操作系统
三、步骤
3.1 正确安装Redhat9.0操作系统。
3.2 rpm -Uvh *.rpm
当安装完linux操作系统后接下来要安装交叉编译器。启动主机必须以root用户名登录在主机的根目录/下创建linuette目录如 mkdir /linuette。在/mnt/cdrom目录下找到光盘将光盘中/项目软件syrj/tools/目录下的RPMS文件夹拷贝到/linuette目录下打开系统工具下的终端此时系统将弹出终端框在里面改变目录到/linuette/RPMS下,输入如下命令rpm -Uvh *.rpm 等待系统安装如果所有的RPMS内的文件全部正确安装将会在根目录下的/opt文件夹内生成一个host文件夹我们所需的交叉编译库就在该目录下。所以所需的交叉编译环境就搭建好了。
3.3NFS网络文件系统配置与使用
在Linux系统中驱动程序可以以动态模块的形式加载这为项目和调试带来了极大的便利。通常做法是将编译好的动态模块和应用程序放在主机上的共享文件夹中启动NFS网络文件系统服务以便在项目系统上进行调试和加载模块。
3.4 配置NFS网络文件系统 关闭防火墙如果安装了防火墙 在Linux主机的终端上执行setup命令弹出菜单界面后选择Firewall configuration。回车进入系统服务选项菜单选择NO FIREWALL关闭防火墙。设置完成后退出setup界面setup里面显示防火墙设置为HIGH可以忽略。 启动NFS服务 在setup界面选择System services回车进入系统服务选项菜单。选中[*]nfs按F12键退出再选择方向键退出setup界面返回到命令提示符下。编辑/etc/exports文件将内容修改为 / (rw)保存并退出。切换目录到/etc/rc.d/init.d/下执行如下命令启动NFS服务 ./nfs start启动成功后终端会输出 Starting NFS services: [ 确定 ]
Starting NFS quotas: [确定]
Starting NFS daemon: [确定]
Starting NFS mountd: [确定]3.3. 主机与项目系统连接 硬件连接 使用交叉网线将主机与项目系统连接。 配置minicom 在终端下输入minicom -s配置minicom为波特率115200无奇偶校验8位数据位。在minicom中给项目系统上电系统启动后利用ifconfig eth0 xxx.xxx.xxx.xxx命令改变项目系统的IP地址使该地址的前三段与主机的前三段一致最后一段为不重复的小于255的任意值。例如主机IP地址为192.168.0.1则项目系统配置为 ifconfig eth0 192.168.0.5测试连接 在项目系统上执行ping命令测试是否与主机连通 ping 192.168.0.1挂载NFS共享目录 确保主机上的NFS共享目录拥有读写权限若没有则执行 chmod 777 /home/nfs如果/home目录下没有nfs文件夹则创建此文件夹将用于调试的驱动模块及应用程序放在该文件夹内。在项目系统的终端中输入如下命令将主机的/home/nfs目录挂载到项目系统的/mnt/yaffs目录下 mount -o nolock 192.168.0.1:/home/nfs /mnt/yaffs3.4 编译内核
1. 动态加载驱动模块
利用NFS网络文件系统进行异地调试时不需要重新编译内核只需使用交叉编译器编译驱动模块和应用程序。将驱动模块和应用程序放在主机的共享文件夹内通过mount命令挂载到项目系统中。
2. 编译驱动模块进内核
需要将驱动模块编译进内核时应进行以下步骤 配置内核 在内核目录下输入 make menuconfig选中新加入的驱动模块保存配置并退出。 编译内核 首次编译内核时需依次执行以下命令 make dep # 用于寻找各文件的依存关系
make clean # 清除以前构建内核时生成的所有目标文件、模块文件和临时文件
make zImage # 编译内核中的文件生成内核编译通过后内核文件zImage会生成在/arch/arm/boot/目录下。
至此您应对在Linux操作系统下的NFS网络文件系统配置、模块加载、及内核编译过程有一个大概的了解。
四、说明
1.关于linux-2.4.18.-rm7-pxa1
linux-2.4.18.-rm7-pxa1是linux移植到三星S3C2410处理器上的操作系统内核代码。一般在每个目录下都有一个.depend 文件和一个 Makefile 文件这两个文件都是编译时使用的辅助文件仔细阅读这两个文件对弄清各个文件这间的联系和依托关系很有帮助而且在有的目录下还有Readme 文件它是对该目录下的文件的一些说明同样有利于我们对内核源码的理解。 Makefile 重构Linux内核可执行代码的make文件 Documention 有关Linux内核的文档 Arch arch 是内核中与具体CPU和系统结构相关的代码具体的CPU对应具体的文件夹下的文件。相关的.h文件分别放在include/asm中。在每个CPU的子目录中又进一步分为boot、mm、kernel、lib等子目录分别包含与系统引导、内存管理、系统调用等相关的代码。 Drivers 设备的驱动程序。放置系统所有的设备驱动程序每种驱动程序又各占用一个子目录如/block 下为块设备驱动程序比如ideide.c。 Fs 文件系统每个子目录分别支持一个特定的文件系统例如fat和 ext2。还有一些共同的源程序则用于虚拟文件系统。 Include 包含了所有的.h文件。和arch子目录一样其下都有相应 CPU的子目录而通用的子目录asm则根据系统的配置 “符号连接”到具体的CPU的专用子目录上。与平台无关的头文件在 include/linux子目录下与ARM处理器相关的头文件在include/asm-arm子目录下除此之外还有通用的子目录linux,net等。 Init Linux内核的这个目录包含核心的初始化代码(注意不是系统的引导代码)包含两个文件main.c和Version.c。 Ipc Linux内核的进程间的通信管理 Kernel Linux内核的进程管理和进程调度。主要的核心代码此目录下的文件实现了大多数linux系统的内核函数其中最重要的文件是sched.c同样和体系结构相关的代码在arch/*/kernel中 Lib 此目录为通用的程序库。 Mm Linux内核的内存管理。这个目录包括所有独立于处理器体系结构的内存管理代码如页式存储管理内存的分配和释放等。 Net 包含了各种不同网卡和网络的驱动程序。 Scripts 此目录包含用于配置核心的脚本文件。 以下是一个表格用于概述Linux内核目录结构及其内容
目录/文件描述Makefile用于重构Linux内核可执行代码的make文件。Documentation包含有关Linux内核的文档。Arch包含与具体CPU和系统结构相关的代码每个CPU的子目录下又分为boot、mm、kernel、lib等子目录分别包含与系统引导、内存管理、系统调用等相关的代码。Drivers包含系统所有的设备驱动程序每种驱动程序又各占用一个子目录如/block下为块设备驱动程序。Fs包含文件系统相关的代码每个子目录分别支持一个特定的文件系统例如fat和ext2。Include包含所有的.h文件与平台无关的头文件在include/linux子目录下与ARM处理器相关的头文件在include/asm-arm子目录下。Init包含核心的初始化代码不是系统的引导代码。Ipc包含Linux内核的进程间的通信管理。Kernel包含Linux内核的进程管理和进程调度主要的核心代码。Lib包含通用的程序库。Mm包含Linux内核的内存管理。Net包含各种不同网卡和网络的驱动程序。Scripts包含用于配置核心的脚本文件。
2.关于RPMS交叉编译器包
RPMS是一个用于Linux-2.4.18-rmk7-pxa1内核的交叉编译器包它其中包括交叉编译、汇编、链接、二进制文件转换工具、所需要的库函数等等。所谓交叉编译器就是一种在Redhat Linux操作系统 X86的体系结构下编译经过移植的linux操作系统生成内核该内核能够在另外一种软硬件环境下运行的编译工具如linux操作系统 ARM的体系结构。交叉编译其实就是在一个平台上生成能够在另一个平台上运行的代码。注意这里的平台实际上包含两个概念体系结构(Architecture)和操作系统(Operating System)。同一个体系结构可以运行不同的操作系统同样同一个操作系统也可以在不同的体系结构上运行。如我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。由于ARM硬件上无法安装我们所需的编译器只好借助于宿主机在宿主机上对即将运行在目标机上的应用程序进行编译生成可在目标机上运行的代码格式这就是安装交叉编译器真正意义所在。
3. 实现基于linux的应用系统的开发
建立或拥有一个完备的linux开发环境是十分必要的。基于linux操作系统的应用开发环境一般是由目标系统硬件系统和宿主PC机所构成。目标硬件系统(即本项目箱)用于运行操作系统和系统应用软件而目标硬件系统所用到的操作系统的内核编译、应用程序的开发则需要通过宿主PC机来编译完成。双方之间通过以太网接口建立nfs网络文件系统关系来调试编译好的驱动或应用程序。当编译、调试通过后再添加到内核中去。1开发环境构成 目标系统硬件系统用于运行操作系统和系统应用软件。 宿主PC机用于编译目标硬件系统所用到的操作系统的内核和应用程序。 网络文件系统NFS通过以太网接口建立宿主PC机和目标硬件系统之间的NFS关系用于调试编译好的驱动或应用程序。2开发流程 在宿主PC机上使用交叉编译器编译内核和应用程序。 将编译好的内核和应用程序通过NFS挂载到目标硬件系统上。 在目标硬件系统上调试和测试。 如果调试通过将驱动或应用程序添加到内核中。
四、安装过程
点击Linux项目环境的搭建 Red hat 9.0Linux操作系统——古月居可查看全文