现在位置:范文先生网>理工论文>电子通信论文>在MIPS开发板上建立Linux系统及开发环境

在MIPS开发板上建立Linux系统及开发环境

时间:2022-08-06 15:24:41 电子通信论文 我要投稿
  • 相关推荐

在MIPS开发板上建立Linux系统及开发环境

  作者Email:jie_yi#sohu.com
  介绍了利用已有的MIPS版Linux源文件包,编译可运行的Linux内核的方式;讨论了在主机上建立相关服务器,通过NFS服务从主机上下载内核,在无盘开发板上启动Linux的方法。
  
  关键词:MIPSNFS启动Linux
  
  一、引言
  
  大多数基于MIPS处理器的平台上都没有提供软、硬盘接口,一般情况下,也没有在板载Flash里烧入可使用的操作系统。没有操作系统,用户的使用就会受到很多限制,应用程序的开发、调试过程就会变得相当复杂。因此,建立合适的操作系统及开发环境,可以方便用户,简化开发调试过程。本文以RedHatLinux为例,说明在RM7000A处理器无盘开发板上建立Linux系统的方法。所用硬件设备:带有10/100Mb以太网接口和用于显示的串口的开发板、装有RedhatLinux9.0的主机(HostPC)。如图1:
  
  
  
  
  二、编译内核
  
  l准备工作
  
  编译前,需要有MIPS处理器版的Linux源文件包,简单的方法是从MIPS公司或者SGI公司等的FTP服务器上下载
  
  
  p.linux-mips.org/linux/mips)。另外,由于所用主机是x86体系,要编译在MIPS处理器上运行的内核,需要有能在x86处理器上工作的交叉编译工具;为了使Linux启动后,可以在开发板上直接开发应用程序,还需要MIPS版的NFS根目录结构包,它包括了Linux运行需要的目录结构、配置文件、工具等等。同样,根目录结构包和工具包也可在上述网站的服务器上下载。下载根目录结构包和交叉编译工具时,要注意选择与开发板设置的数据格式(高序BigEndian或低序LittleEndian)一致的版本。
  
  获得源文件包、根目录结构包文件后,将其解压至指定目录,如分别指定为:/tftpboot和/tftpboot/mips,包内文件和子目录就全部展开在相应目录中;
  
  对于rpm格式的工具包文件,可在终端窗口用命令行方式展开:
  
  
  
  
  rpm–ihvtoolchain-mips-*.rpm
  
  交叉编译工具自动安装到/usr/tools的目录下。进入/tftpboot/linux目录,打开Makefile文件,更改以下语句为:
  
  ARCH=mips
  
  CROSS_COMPILE=/usr/tools/bin/mips-linux-
  
  l配置工作
  
  接下来,是对编译能否顺利通过至关重要的配置过程。所谓配置,就是根据开发板具体情况,只选择必需选项,使重编译的内核既提供所需要的功能,又占据最小存储空间。由于Linux系统各功能模块之间存在不同程度的依赖关系,配置过程中有可能会破坏这些关联;因此配置完成后不一定能通过关联检测,可能需要反复地进行配置取舍。
  
  配置过程需要注意:
  
  1.数据格式与开发板的
  
  
  
  设置和交叉编译工具一致,才能生成正确的内核;
  
  2.设置正确的处理器,以及相近的开发板类型;
  
  3.需提供对标准串口的支持和通过串口显示的功能;
  
  4.由于编译内核的主机不是MIPS处理器,所以一定要设置CROSSCOMPILE项;
  
  5.因为要通过网络下载内核来启动,对PCI设备、网络协议、网络设备的支持必不可少,此外,在网络文件系统中还要选择NFS_FS和ROOT_NFS选项;
  
  以上为配置基本选项,其余功能可根据开发板具体情况取舍。配置步骤如下:
  
  cd/tftpboot/linux--进入目录/tftpboot/linux
  
  makeconfig--进行行命令配置
  
  
  
  
  makedep--关联检测
  
  l编译内核
  
  如果无出错提示,表明配置正确,可以编译内核:
  
  makeboot
  
  编译完成后在/tftpboot/linux和/tftpboot/linux/arch/mips/boot中都会出现不同格式的内核映像文件vmlinux、及System.map文件。
  
  三、设置主机服务
  
  1.设置TFTP服务器
  
  在RedHatLinux安装CD3中找到tftp文件包:tftp-0.32-4.i386.rpm,在终端输入:rpm–ihvtftp-0.32-4.i386.rpm,系统自动安装好tftp服务器;
  
  cd/etc/xinetd.d--进入目录/etc/xinetd.d
  
  vitftp--只有在安装了tftp服务后,才会出现tftp文件
  
  修改其中disable和server_args项,其余可保持不变。以下为一个完整的tftp文件:
  
  
  
  
  Servicetftp
  
  {
  
  socket_type=dgram
  
  protocol=udp
  
  wait=yes
  
  user=root
  
  server=/usr/sbin/in.tftpd
  
  server_args=-s/tftpboot/linux--根据需要设置tftp服务默认目录
  
  disable=no--默认为yes,应修改成no
  
  per_source=11
  
  cps=1002
  
  
  
  
  flags=IPv4
  
  }
  
  2.设置DHCP服务器
  
  在RedHatLinux安装CD2中找到dhcp文件包:dhcp-3.0pl1-23.i386.rpm,在终端输入:rpm–ihvdhcp-3.0pl1-23.i386.rpm,系统自动安装好dhcp服务器;
  
  cd/etc--进入目录/etc
  
  vidhcpd.conf--建立文件dhcpd.conf
  
  在dhcpd.conf文件中写入内容如下:
  
  ddns-update-styleinterim;
  
  ignoreclient-updates;
  
  subnet192.168.0.0netmask255.255.255.0{
  
  optionrouters192.168.0.10;
  
  opt
  
  
  
  ionsubnet-mask255.255.255.0;
  
  optiondomain-name“LocalHost”;
  
  optiondomain-name-server192.168.0.10;
  
  optiontime-offset18000;
  
  rangedynamic-bootp192.168.0.1192.168.0.15;
  
  default-lease-time21600;
  
  max-lease-time43200;
  
  }
  
  其中,192.168.0.10为主机ip地址;192.168.0.1~192.168.0.15为dhcp服务可动态分配的ip有效地址范围;
  
  3.设置NFS服务器
  
  cd/etc--进入目录/etc
  
  viexports--打开exports文件
  
  
  
  
  添加语句:/tftpboot/mips*(rw,sync,no_root_squash),
  
  此语句设置主机上的目录/tftpboot/mips为客户机通过NFS服务可访问的根目录,并且任何客户机的访问都被视为是主机root身份,对/tftpboot/mips目录具有读写功能。这样设置是为了方便以后在开发板上的开发与调试工作。
  
  4.启动服务
  
  在RedHatLinux9.0程序启动栏里,系统设置—〉服务器设置—〉服务,选上dhcpd、tftp、xinetd、nfs、portmap服务选项,点击开始或者重新开始来启动dhcp、tftp、nfs服务。其中tftp服务要通过启动xinetd才能工作。
  
  四、通过NFS服务在开发板上启动Linux系统
  
  1.设置minicom
  
  minicom是一个RedHatLinux9.0自带的通信终端程序,通过minicom可以设置、监视串口工作状态,接收、显示串口收到的信息,并且在主机和开发板之间传递数据和控制指令,从而实现通过主机上调试开发板的目的。以下的操作都是通过主机键盘在minicom窗口里进行的。
  
  在主机上打开一个终端窗口,启动minicom,设置主机串口:波特率9600、数据位8位、停止位1位、奇偶校验位无、数据流控制无;保存设置后,重新启动minicom。这时minicom处于工作状态;
  
  2.开发板加电
  
  开发板上有一个512KBROM,烧有bootloarder–pmon2000,加电后自动完成处理器、缓存、内存控制器、网络控制器等初始化工作;同时pmon2000拥有少量行命令集,用于启动后对内存的读写校验、板载Flash的擦写、ip设置、串口设置以及跟主机之间进行数据通信,包括上传、下传文件,接收主机下达指令等等。
  
  开发板加电后,minicom窗口显示初始化信息;启动完成,显示pmon>;
  
  3.启动Linux
  
  
  
  
  加载内核:pmon>boot192.168.0.10:vmlinux
  
  pmon2000内部命令boot通过网络,将主机上位于NFS根目录/tftpboot/mips下可执行的vmlinux映像文件,加载到内存,显示入口地址(Entrypoint);
  
  启动Linux:pmon>g./root=/dev/nfsnfsroot=/tftpboot/mipsip=dhcp
  
  g为执行载入文件的命令;其后的参数,是传递给内核的有关根目录的信息,通过NFS访问主机的客户机(开发板),其ip由主机dhcp服务动态分配。pmon2000将内核拷贝到内存空间,随后将控制权交给内核,由其完成系统的启动。在启动完成登录行出现时,输入:root,即可进入运行于开发板上的Linux系统。由于操作系统是在内存里运行的,断电后,要重复步骤2、3,重新载入内核后才能再次启动Linux。
  
  4.应用举例
  
  前面设置了客户机具有对根目录/tftpboot/mips的完全控制功能,因此可以在客户机上(minicom窗口中)直接编写、编译、调试程序。这时所使用的编译调试工具是安装在主机/tftpboot/mips/usr/bin目录里,根目录结构包自带的MIPS版GNUgcc、g++、gdb、ld等等;程序编译完成可直接运行,不需要在主机用交叉编译工具编译后,再切换到客户机下载运行,这样提高了开发效率。
  
  在开发板上(minicom窗口),
  
  cd/home
  
  mkdirtest--在/home目录里建立一个test子目录,实际上是建在主机的/tftpboot/mips/home下
  
  cdtest
  
  vihello.c&nb
  
  

【在MIPS开发板上建立Linux系统及开发环境】相关文章:

搭建基于Linux桌面环境的影音平台08-19

网上练习和测试系统的开发08-17

对建立财务分析系统的构想08-08

我国“城市危机处理系统”亟待建立08-12

关于建立地方文献报刊索引系统的实践与思考08-09

对建立财务分析系统的构想 论文08-08

如何建立现代人力资源系统04-06

linux实习心得03-02

在党委系统信息督查上的讲话08-15

关于建立高中英语会考标准参照系统和分数报告系统的思考08-08