1、第8章 主机及目标板的运行,本章重点:, 目标板初次运行 。,8.1 终端基础知识,8.1.1 ttytty是teletype或teletypewriter的缩写,通常译作电传打字机。现在Linux操作系统中tty的含义,通常指的是物理的或虚拟的终端。,8.1.2 早期的终端及终端与主机的连接早期终端与小型机、中型机主机的连接,一般通过终端控制器实现,如图8.1所示。图8.1中与终端无关的设备没有画出。,图8.1 终端与主机的连接, 控制台终端控制台终端显示的内容主要有:系统加电启动或RESET后的引导信息;装入Linux内核过程的提示信息;多用户访问系统时的一些提示信息;系统运行中出现的错误
2、提示和警告信息。以root用户名和确定口令从控制台终端登录的系统管理员,进入系统后通常会进行一些系统维护和系统管理工作。, 本地终端如果终端的位置到主机的距离比较近,例如在楼内同一层且与主机房相邻的房间内,通常终端通过电缆连接到本地终端控制器上,本地终端控制器再连接到主机。本地终端控制器通常放置在主机旁边,通过RS-232C接口电缆与主机相连。, 远程终端如果终端位置到主机的距离比较远。远程终端控制器放置在远程终端附近的地方,通过电缆分别连接不同的远程终端。, 调制解调器使用调制解调器(modem)的目的,是为了减少传输信号的信号损失。调制解调器主要有两个功能,一是可以把RS-232C接口要发
3、送的信号通过调频(或调相)电路发送出去,称为调制;另外也可以把接收到的调制信号通过解调电路转换成RS-232C接口能够识别的信号,称为解调。经过调制的信号,传输距离比较长,信号失真也比较小。, 终端的使用在多用户、多任务操作系统支持下,每个用户通过登录能够在一个终端上使用主机的资源。例如一个用户正在编译他的源程序,另一个用户正在运行他的程序,那么编译和运行过程都在主机进行,源程序和可执行文件也都保存在与主机连接的磁盘上,终端只是用于告诉操作系统,不同的使用者提供了哪些不同的任务;而主机则将执行结果分别送到登录用户使用的终端显示。当登录用户退出系统后,终端将不再显示操作系统与该用户的相关信息,而
4、是等待下一个用户登录或系统管理员结束操作系统的运行。,8.1.3 X-Window、GNOME及KDE简介 X-WindowX-Window也称为X-Window System,或称X视窗系统。 X-Window只是一个工具包及架构协议,目前依据该工具包及协议开发的实现体中,以X.Org的使用最为广泛,且最受欢迎。X.Org所用的协议版本,称为X11,是1987年9月发布的。现在最新的参考实现,是X11 Release 7.5,也写作X11 R7.5。, GNOMEGNOME包含一个启动应用程序的面板、一个桌面、一批标准桌面工具及应用程序、编程及开发者支持特性等,它向用户提供了一个完整的GUI
5、工作环境。, KDEKDE(Kool Desktop Environment,K桌面环境)项目是1996年由德国人Matthias Ettrich发起的项目,是一个基于Qt GUI库的开源桌面环境。已经成为Red Hat Enterprise Linux发行版默认的桌面环境。KDE中包含了大量的应用程序和工具,包括一套办公软件、一个web浏览器、一个功能齐全的应用程序集成开发环境。KDE提供了许多KDE构件,这些构件通常源于Qt,但是与Qt相比,进一步增强了功能和易用性。Qt是一个用C+编写的、跨平台的工具包。,8.2 主机系统引导、登录及退出Linux,8.2.1 主机系统引导引导过程(bo
6、ot process),也称启动过程,指的是从主机(如PC机)电源开关闭合或者在加电状态按下RESET键以后,到内核获得控制权这一段时间。,计算机内部运行过程,主要包括: PC机内部有一片ROM存储区,存储了BIOS(Basic Input Output System,基本输入输出系统),加电或RESET后,CPU把第一条可执行指令的物理地址设置为0xFFFF0,即指向BIOS的入口地址;然后CPU执行BIOS中的程序,对底层硬件、接口和设备进行测试及初始化,例如对中断控制器、DMA控制器、串行端口等等进行测试和初始化;之后运行的BIOS中的程序,从指定的引导盘上将一个引导扇区的内容装入内存。
7、, BIOS将程序执行权移交给刚刚从引导扇区装入内存的这段程序,由这段程序,将硬盘上的Linux内核代码压缩包装入内存。 为了节省存储空间,通常Linux内核代码是经过压缩的,并且在压缩包的头部有一小段程序是未经压缩的可执行代码,这段程序的功能是对Linux压缩包中的内核代码解压缩。 程序执行权移交给解压缩代码,由它解压缩并分配内存空间、填充解压缩后的代码。解压缩完成后,执行权转移到内核代码入口处。,系统引导是由两部分程序共同配合完成的,BIOS将引导扇区内容读入内存,由引导扇区读入内存的这段代码再把内核装入内存。内核代码开始执行表示引导过程结束。内核要进行初始化,初始化任务依不同的硬件和不同
8、的Linux版本而有所不同。,8.2.2 登录Linux通常在安装Linux发行版时,系统要求设置与root用户名对应的一组口令,或称为密码。root用户在Linux系统中也称为超级用户、系统管理员、根用户,拥有最高管理权限。嵌入式系统开发过程中,通常将开发者设置为root用户,这是因为开发者会使用较多的软、硬件资源。但是有时候一台计算机会有多人使用,比如实验室或机房,一种办法是大家都作为root用户,都知道对应的口令;另一种办法是将一部分使用资源相对较少的用户,设置为普通用户,并为每个人设置一个单独的用户名和口令。,登录方式有两种,即字符方式登录和GUI方式登录,现在常用的是GUI方式。登录
9、就是Linux出现提示信息后,要求用户输入用户名和与其对应的口令,然后系统进行验证的过程。图8.2(a)是GUI界面提示输入用户名的登录界面,之后还会要求输入密码(口令)。,图8.2(a) GUI界面登录,图8.2(b),8.2.3 Linux的终端在嵌入式系统开发过程中,Linux发行版通常安装在PC机或笔记本电脑,也就是主机。与图8.1不同的是,PC机或笔记本电脑通常不会连接物理终端设备作为Linux的终端,虽然可以这样做,例如Linux支持通过串口连接物理终端、通过USB口转串口连接物理终端、通过串口和调制解调器连接物理终端,但是很少使用。,Linux必须使用的终端设备(包括控制台等),
10、是借助于与主机连接的显示器、键盘、鼠标和终端仿真程序或终端应用程序来实现的,一般把它们称为虚拟终端或伪终端(pseudo terminal),简称终端。,在图形桌面环境,鼠标点击“红帽子”,选择“终端”,就可以打开一个虚拟终端,见图8.3(a)。打开虚拟终端的同时,系统为使用该终端的用户启动一种shell。启动哪一种shell,可能是由系统管理员确定的,或者是由用户与系统管理员协商的。,图8.3 (a),同一个用户,如root用户,可以依次打开多个虚拟终端,允许在每个虚拟终端的命令行,输入不同的命令,让Linux执行多个不同的任务。不同的用户,如普通用户中的每一个用户,登录后也可以打开一个或多
11、个虚拟终端。图8.4是一个root用户打开的两个虚拟终端窗口。用鼠标点击哪一个窗口,这个窗口对应的虚拟终端就被激活。,图8.4 同一个用户打开的两个虚拟终端窗口,可以用tty命令,查询当前激活窗口使用的是哪个终端:rootvm-dev # tty/dev/pts/3上述显示的pts是pseudo terminal slave的缩写,意思为:从伪终端,是众多伪终端类型中的一种;显示的3表示第3个从伪终端。,用echo命令,可以查询使用的终端类型:rootvm-dev pts# echo $TERMXterm上述显示的Xterm,表示是一个基于X-Window System的标准虚拟终端。,如果一
12、个用户同时打开了两个虚拟终端,比如/pts/3和/pts/4,用echo命令,可以从一个终端pts/3给另一个终端pts/4发送消息: rootlocalhost # tty /dev/pts/3 rootlocalhost # echo “to pts/4,test“ /dev/pts/4,之后用鼠标激活pts/4终端,可以看到它收到了pts/3发送过来的消息,下面显示的前两行是接收操作以前命令遗留下的内容,目的是为了让读者知道当前的tty是哪一个。 rootlocalhost # tty /dev/pts/4 rootlocalhost # to pts/4,test,可以通过cat命令查
13、询主机上Linux支持哪些种类的终端: rootlocalhost # cat /proc/tty/drivers /dev/tty /dev/tty 5 0 system:/dev/tty /dev/console /dev/console 5 1 system:console /dev/ptmx /dev/ptmx 5 2 system /dev/vc/0 /dev/vc/0 4 0 system:vtmaster,Rfcomm /dev/rfcomm 216 0-255 serial Serial /dev/ttyS 4 64-95 serial pty_slave /dev/pts 1
14、36 0-1048575 pty:slave pty_master /dev/ptm 128 0-1048575 pty:master unknown /dev/tty 4 1-63 console rootlocalhost #,上述内容中有许多种类的终端,除了已经介绍的pts外,ttyS是指通过串行端口连接的终端。能够在/dev目录下,用ls命令查询串行端口能够连接多少个终端: rootlocalhost dev# ls /dev/ttyS* -l crw-rw- 1 root uucp 4, 64 01-10 10:06 /dev/ttyS0 crw-rw- 1 root uucp 4,
15、 65 01-10 10:06 /dev/ttyS1,crw-rw- 1 root uucp 4, 66 01-10 10:06 /dev/ttyS2 crw-rw- 1 root uucp 4, 67 01-10 10:06 /dev/ttyS3 rootlocalhost dev# 由上述内容可见,系统最多支持4个通过串行端口连接的终端,分别是ttyS0ttyS3。,8.2.4 查看及修改用户使用的shell系统管理员创建一个新的用户账户时,为该账户分配一个默认的shell。如果用户有专门的喜好,在申请账户时,可以告诉系统管理员,让他把你要使用的shell设置成默认的shell。用户登录后
16、,打开一个终端时,系统启动该用户使用的shell,关闭这个终端时,终止这个shell的运行。,shell是一个程序,称为外壳,处于Linux内核与用户之间,通常负责接收用户通过终端的键盘输入的命令和参数,提交内核处理,内核处理结果再通过shell输出到终端窗口。用户使用Linux主要是与shell交互,当然在图形桌面环境也可以使用鼠标、键盘和显示窗口,与基于X-Window系统的GNOME和KDE交互。, 查看使用的shell可以通过ps命令,查看为当前用户打开的几个终端分别使用的shell是哪一种,假定同一个root用户打开了2个终端: rootlocalhost dev# ps e PID
17、 TTY TIME CMD 4043 pts/3 00:00:00 bash 4105 ? 00:00:00 konsole 4106 pts/4 00:00:00 bash 5228 pts/4 00:00:00 ps rootlocalhost dev# 上述内容表示,pts/3和pts/4终端,使用的都是bash。, 临时改用另一种shell如果用户只想临时把使用的一种shell改为另一种,可以在命令行提示符处直接输入另一种shell的名字并回车,之后系统为这个用户启动指定的shell。以下是在pts/3输入新的shell名sh,然后用ps -e命令查看pts/3使用哪一种shell。注
18、意改用另一种shell后,命令行提示符也不一样了,变成了sh-3.1#。,rootlocalhost # tty /dev/pts/3 rootlocalhost # sh sh-3.1# sh-3.1# ps e PID TTY TIME CMD 1 ? 00:00:00 init 4043 pts/3 00:00:00 bash 4105 ? 00:00:00 konsole,4106 pts/4 00:00:00 bash5387 pts/3 00:00:00 sh5472 pts/3 00:00:00 ps sh-3.1#上述内容表示,在pts/3终端上,通过输入shell名sh,将p
19、ts/3的shell改为sh,而同一用户打开的pts/4终端,仍然使用的是bash。, 修改默认的shell(略),8.2.5 通过退出与shell的会话退出Linux通常是在系统结束了用户的任务后,在命令行输入exit命令,结束与shell的会话。退出与shell的会话后,也就结束了该用户登录以来,系统提供的软、硬件资源的使用权,退出了Linux。如果该用户或另外一个用户要使用这台终端,或者在其他终端上使用Linux,需要再一次登录即输入他自己的用户名和口令组合,经过系统验证正确后,才能使用系统分配给他的软、硬件资源。,在普通PC机或笔记本电脑上,可以使用exit命令退出shell,退出后系
20、统关闭了该用户登录后已经打开的窗口。在GUI桌面环境下,也可以用鼠标关闭窗口退出;或者单击鼠标右键,在随后出现的菜单中,选择关闭会话菜单条,退出。,8.2.6 关闭运行的Linux系统Linux是一个多用户、多任务的操作系统,退出与shell的会话,只是一个用户结束了使用Linux的过程,此时系统中可能还有其他用户正在使用Linux。关闭运行的Linux的含义通常是指,在每个普通用户结束了与shell的会话后,由root用户发送退出的命令,Linux有序地退出运行。,退出命令有shutdown、halt、poweroff、reboot等。其中shutdown最为常用,它使用系统提供的脚本,执行
21、正确的关闭步骤;命令halt一般会立即关闭系统,不像shutdown命令退出时执行那么多关闭步骤,这可能会引起文件系统同步的问题;命令poweroff通过切断电源来关闭系统;而命令reboot将先退出然后重新启动系统。,使用VMWare虚拟机,可以用鼠标点击桌面窗口右上角的关闭窗口图标,关闭运行的Linux,之后系统会提示Suspend(挂起)还是Power Off(断电)。通常可以选择挂起,这样在下一次从虚拟机中启动Linux时,启动时间比较短。图8.5为使用虚拟机,关闭运行的Linux系统时,虚拟机提供给用户的选择界面。,图8.5 使用虚拟机关闭Linux时的选择界面,选择挂起(suspe
22、nd)后,终止了Linux运行的同时,也关闭了虚拟机窗口,结束了虚拟机运行。下次要运行Linux时,需要双击Windows桌面虚拟机图标,然后在虚拟机窗口选择Resume this virtual machine(恢复虚拟机)。选择断电(power off)后,在虚拟机中模拟单独运行Linux时的断电操作。下次要运行Linux时,双击Windows桌面虚拟机图标,选择power on。,8.2.7 使用帮助命令help和man help命令输入help命令后,终端上将显示用户现在使用的shell内部定义的全部命令,输出显示内容见7.2.2小节。命令help的输出较为简单,仅仅是将各命令列表输出
23、,如果要查找某一条命令的具体含义,例如查找pwd命令的含义,需要在help后跟随pwd,如下所示:,rootlocalhost # help pwd pwd: pwd -LPPrint the current working directory. With the -P option, pwd printsthe physical directory, without any symbolic links; the -L optionmakes pwd follow symbolic links. rootlocalhost #,对于那些更多的、没有定义在用户正在使用的shell内部的命令,h
24、elp命令不会显示相关信息,例如ls命令不在shell内部,那么使用以下命令:rootvm-dev /# help lsbash: help: no help topics match ls. Try help help or man -k ls or info ls.rootvm-dev /#, 用ls命令查找shell之外的命令除了shell内部定义的那些命令之外,其余命令对应的可执行文件,一般都可以在子目录/bin和/sbin中找到。可以使用命令ls /bin或者ls /sbin去查找。(代码见p282), man命令Linux带有联机帮助功能,它的帮助文件称为联机帮助页(man pag
25、es),要想找某一个命令的详细信息,比如ls命令,只要在命令行输入man后跟随空格及ls,然后回车就可以了。man命令输出的信息很多,如下显示输出的内容是ls命令的帮助页,使用省略号代替了一些实际输出的信息(略)。,8.3 目标板初次运行,8.3.1 目标板连接的电源、端口及安装的操作系统不同处理器架构以及不同公司生产的目标板,外观、尺寸及目标板上的微处理器、外部设备种类和设备的多少都不相同。但是能够运行的Linux操作系统的目标板初次加电运行时,通常会涉及到以下硬件和软件。, 电源适配器及开关常见的电源适配器有两种,共同点是它们的输入插头,都连接到交流220V电源插座;不同点是,一种电源适配
26、器产生的输出电压是直流5V,另一种是直流12V。有的目标板使用外接直流5V电源,有的目标板使用外接直流12V电源。也有将电源适配器安装在目标板箱体内部的,外接220V交流电通过插座由电缆引入。,目标板上通常有一个电源开关,还有一个RESET键。通过闭合电源开关接通电源后,目标板能够自动引导系统运行。在目标板加电状态,按下RESET键,会重新引导系统。, 与主机连接的端口和电缆目标板通常通过以太网端口、JTAG端口、串行端口及相应电缆,连接到主机对应的端口。串行端口常常被称为串行口、串口、COM口、RS-232或RS-232C;也有称之为UART(Universal Asynchronous R
27、eceiver and Transmitter,通用异步收发器)的。主机上通常有2个或4个串行端口,排序从COM1、COM2往后排,其中COM1是第一个端口。目标板通常有2个串行端口,有些目标板排序是从0开始往后排,如RS-232-0、RS-232-1,或者UART0、UART1等,其中RS-232-0或者UART0是第一个端口。,使用串口电缆连接主机、目标板的串行端口时,一定要在两端机器都关机(断电)的状态下连接,不允许带电插拔串口插头。,另外对于目标板的装载引导程序和Linux内核,在厂商那里通常已经将第一个串口设置为默认使用的端口,所以串口电缆应与目标板的第一个串口连接。虽然主机可以在仿
28、真终端程序中设定使用任意一个串行端口与目标板连接,但是通常使用第一个串行端口。,使用串行端口通信,双方要事先约定好通信协议中的一些参数,如每秒传输多少bit、选择一帧中数据位是5/6/7/8bit中的哪一种、奇偶校验位的使用等等。这些参数目标板出厂前在装载引导程序和内核中已经进行了设置,因此要根据厂商提供的资料中的参数,在主机支持串口的终端仿真程序中进行相应的设置。例如对Windows支持的超级终端程序、Linux支持的仿真终端程序minicom,第一次使用这些程序时应该进行相应设置,设置方法后文另述。, 确认目标板安装的操作系统常见的目标板通常能够支持Linux、Windows CE、C/O
29、S等多种操作系统。不同的操作系统启动、运行和软件开发的方法也不相同。买来的新目标板出厂时已经在闪存预装了操作系统等软件,要确认安装的是否为Linux。如果不是,用户要自己烧写相应的程序。如果目标板别人已经用过了,一个新的用户使用前,也要确认此前是否使用的是Linux,如果不是,也要烧写相应的程序才能使用。,8.3.2 目标板引导过程简述如果目标板安装的是Linux系统,它的闪存中通常保存了装载引导程序(bootloader)、Linux内核、Linux根文件系统和应用程序。其中内核、根文件系统和应用程序一起被称为嵌入式Linux发行版,它是由生产目标板的公司针对具体目标板进行开发并发布的,这些
30、文件在随机附带的光盘中能够找到。最常用的装载引导程序有vivi和u-boot,它们的功能基本相同,附带的光盘中也有相应的文件。,加电或RESET后,目标板有两种运行方式可以选择。一种是只运行装载引导程序,另一种是由先运行的装载引导程序装入并运行Linux。,加电或RESET后,首先运行的是装载引导程序,它的功能简单地说,主要有: 初始化微处理器内部的功能单元; 初始化目标板上的接口及设备; 提供与用户交互的界面; 为装入内核做相应的硬、软件准备或初始化工 作; 询问用户,是否装入Linux内核,用户可选择只运行装载引导程序,或装入内核。,装载引导程序需要一个终端与用户交互,通常它定义了目标板的
31、第一个串口,作为与终端连接的端口,这个端口通过电缆连接到主机(PC机或笔记本电脑)。主机如果运行的是Windows操作系统,应该启动并配置一个叫做超级终端的程序,之后目标板装载引导程序的输出就显示在主机的超级终端窗口;通过主机的键盘,也可以给目标板的装载引导程序发送命令和参数。,如果主机中运行的是Linux,那么要在Linux虚拟终端窗口,输入minicom命令,启动一个叫做仿真终端的程序,并对其配置,之后这个原来是主机Linux的虚拟终端窗口,变成了目标板装载引导程序的仿真终端窗口。主机的键盘,当做仿真终端的键盘。目标板运行装载引导程序使用的终端(也称控制台)举例,见图8.6。,图8.6 目
32、标板运行装载引导程序使用的终端举例,8.3.3 装入装载引导程序(vivi)目标板上运行的装载引导程序,在其运行的后一阶段,会在终端窗口提示用户,如果按下回车键,则继续引导Linux内核;按下其他键,则只运行装载引导程序,例如vivi装载引导程序在终端提示用户(基于S3C2410A):(p286),如果用户没有在终端键盘按下任意一个键,通常等待若干秒,比如5秒,装载引导程序会自动引导Linux内核。等待多少秒这个参数,在装载引导程序内部可以设置。对于用户开发的最终产品,通过设置装载引导程序内部的参数,可以省去输出用户提示信息及等待终端键盘输入、延时的步骤,使之能够直接、自动装入Linux内核,
33、实现自动、快速启动设备的目的。装入内核过程中,不同设备、不同Linux版本在终端显示的内容不一样,可能显示如下信息:(p286),其中命令行提示符是可以通过程序设置的,本例中是/mnt/yaffs,表示目标板(基于S3C2410A)已经装入并运行的是Linux。另外,机器类型MACH_TYPE=193,内核版本2.4.18,CPU为ARM920T,开发板为三星SMDK2410。,8.3.4装入装载引导程序(u-boot)目标板上运行的装载引导程序,在其运行的后一阶段,通常会在终端窗口提示用户,如果按下任意一个键,则停止引导Linux内核,只运行装载引导程序;没有按下键,则装入Linux内核。例
34、如u-boot装载引导程序在终端提示用户(基于OMAP3530):,rootlocalhost # minicom Welcome to minicom 2.1OPTIONS: History Buffer, F-key Macros, Search History Buff Compiled on Jul 26 2006, 06:38:09.Press CTRL-A Z for help on special keys (此时目标板加电或按下RESET键,运行u-boot。),U-Boot 1.3.3 (Jan 22 2010 - 14:21:00)OMAP3530-GP rev 2, CP
35、U-OPP2 L3-165MHz OMAP3 TevchV-OMAP35xx Board + LPDDR/NAND DRAM: 128 MB NAND: 256 MiB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0,如果用户没有在终端键盘按下任意一个键,通常等待若干秒,比如5秒,装载引导程序会自动引导Linux内核。等待多少秒这个参数,在装载引导程序内部可以设置。内部的参数,可以省去输出用户提示信息及等待终端键盘输入、延时的步骤,使之能够直接、自动装入Linux内核,实现自动、快速启动设备的目的。装入内核过
36、程中,不同设备、不同Linux版本在终端显示的内容也不一样,可能显示的信息见8.3.10中的3. (6) 在u-boot下手动引导Linux。,8.3.5主机Windows下的超级终端目标板运行的装载引导程序或Linux,一般指定了与目标板第一个串口连接的设备,作为它的终端设备。通常主机通过串口与目标板连接,如果主机运行的是Windows操作系统,那么需要启动一个叫做超级终端(hyperterminal)的程序,由这个程序建立一个带有名字的、设置了通信参数的超级终端实例程序,以下简称实例程序。这个实例程序只在第一次使用前建立,以后可以直接使用。,通过超级终端程序建立一个实例程序的过程如下:在W
37、indows XP桌面,选择:开始所有程序附件通讯超级终端,则: 如果是首次建立实例程序,会出现图8.7(a)对话框,点击会出现符号,选择否,然后出现图8.7(b) 对话框。 如果不是首次建立实例程序,则直接出现图8.7(b) 对话框。,图8.7 为实例程序命名(a),图8.7 为实例程序命名(b),在图8.7(b) 对话框的名称栏中,输入实例程序的名字,例如ARM9NEW2,然后单击确定按钮。之后在出现的图8.8所示的对话框中,选择COM1,单击确定按钮。,图8.8 对话框中选择COM1,随后在图8.9所示的对话框中,分别选择115200、8、无、1和无,单击确定按钮,出现如图8.10所示的
38、窗口。,图8.9 COM1端口属性设置,在图8.10所示的窗口,点击文件下拉菜单,选择保存,则实例运行程序以用户在图8.7(b)中给出的名字保存。,图8.10 超级终端运行实例窗口,这时如果目标板和PC机串口是连接的,目标板加电或按下RESET键,目标板输出信息通过串口,显示在实例程序打开的窗口,如图8.11所示。,图8.11(a) 超级终端实例程序窗口显示,图8.11(b) 超级终端实例程序窗口显示,图8.11(a)是目标板装载引导程序vivi的显示信息;图8.11(b)是目标板装载引导程序u-boot的显示信息。以后再使用超级终端时,只要启动实例程序就可以了。通过:开始所有程序附件通讯超级
39、终端实例程序名,去启动。在图8.9中对COM1端口属性进行了设置,不同的目标板参数值可能有所不同,用户应该根据自己使用的目标板相关说明书中给出的数据设置。,8.3.6 主机Linux下的minicom仿真终端(Linux企业版4.0)主机Linux环境最常用的一个仿真终端程序是minicom,用途与Windows下超级终端实例程序一样。在第一次使用minicom时,也应该进行设置,再次使用就不需要设置了,设置过程如下:在Linux图形桌面环境,打开一个终端,在终端窗口输入minicom,回车,显示的内容如图8.12所示。 (也可以输入minicom -s),图8.12 minicom仿真终端设
40、置窗口,之后用户在键盘先按下Ctrl和A键,松开后再按下Z键,进入主配置界面,如图8.13所示。,图8.13 仿真终端串口设置的参数,然后按O键,进入配置界面,如图8.14所示。,图8.14 minicom配置界面,然后由光标上、下移动键,选择Serial port setup,进入串行端口设置界面,如图8.15所示。,图8.15 串行端口设置界面,如图8.15,按下A键,设置Serial Device为/dev/ttyS0,然后分别按下B、E、F键,设置如图8.15中所示的参数。之后按ESC键,退到图8.14所示界面,选择Save setup as df1保存退出,以后只要在Linux终端窗
41、口输入minicom命令,启动的minicom仿真终端程序,使用的就是图8.15中对应参数的配置了。再次使用minicom仿真终端时,只要在主机Linux图形桌面环境下,打开一个终端,输入minicom就可以了。主机上minicom对应的窗口与键盘,是作为目标板的终端来使用的。如果要对主机运行的Linux操作,需要另外打开一个终端,进行操作,如图8.16所示。,图8.16 Linux桌面两个终端窗口,在图8.16中,左边一个窗口是作为主机Linux终端窗口使用的,右边一个窗口是输入minicom后,作为目标板终端窗口使用的。可以用鼠标点击,去激活这两个窗口中的一个,此后键盘的输入,是作为激活窗
42、口对应终端的键盘输入。,8.3.7 主机Linux下的minicom仿真终端(Linux企业版5.0)(p293-296)8.3.8 在虚拟机中增添串口设备(p296-299),8.3.9 装载引导程序支持的命令简介(vivi) 目标板最常用的装载引导程序是u-boot,对于基于ARM9系列内核的微处理器,vivi也是比较常用的一款装载引导程序。不同的装载引导程序都能够独立运行,支持串口连接的终端、支持TCP/IP协议;提供了一组命令,用户在终端上输入命令,能够与装载引导程序交互。实际安装在用户目标板上装载引导程序的命令集,可能是目标板生产商从装载引导程序源代码支持的命令集中,根据需要选择出来
43、的一个子集。(p300-302),8.3.10 装载引导程序支持的命令简介(u-boot) (p302-306),8.3.11 目标板Linux登录、退出讨论目标板运行的Linux,通常不需要用户登录,也就是说不需要输入用户名及对应的口令。目标板运行的Linux,直接赋予了使用者root用户的权限;退出时也不必输入exit命令,只要关闭minicom所在的终端窗口就可以了。也有一些目标板要求用户登录,用户一般应该以root名登录。,8.3.12 目标板安装的Linux不同的目标板安装的Linux内核版本,可能是不同的。由于Linux内核、应用程序是可裁剪的,因此目标板上Linux系统是一个经过
44、裁剪、能够满足应用的较小的系统。,主机Linux发行版可能装了很多驱动程序,这是由于PC或笔记本电脑硬件配置不同,驱动程序也不同,因此在Linux发行版中要包含各种各样、可能大多数用户用不到而某些个别用户使用的驱动程序。另外主机在开发过程中,需要编辑程序来输入源程序,需要有交叉编译器,编译中要使用许多库或头文件;还可能需要调试器、仿真器等工具软件,因此主机上的Linux是一个庞大的系统。,目标板主要为了运行开发过程中产生的可执行文件,目标板Linux只是提供了一个执行环境,有时包括对调试程序的支持。目标板Linux内核中,只保留了该目标板外设对应的驱动程序。目标板通常将源程序输入、编译过程的支
45、持程序裁剪掉了。主机大量的shell外部命令对应的程序在目标板也被裁剪掉了,只保留了很少一部分常用命令对应的程序,只要够用就好。用户开发的最终产品,成本和体积也是要考虑的重要因素,因此只保留必要的、针对本产品使用的程序,这样可以节省大量存储器空间。,8.3.13目标板Linux命令举例(S3C2410A) 查看Linux内核版本用户使用的目标板可能是很早以前的产品,安装的内核版本可能也比较低,用户应该清楚自己打算开发的产品中的功能,在所使用的目标板Linux内核中是否提供支持。查看内核版本方法如下: /mnt/yaffscat /proc/version Linux version 2.4.1
46、8-rmk7-pxa1 (rootBC) (gcc version 2.95.2 20000516 (release) R) #7 /mnt/yaffs (p307-310),8.3.14目标板Linux命令举例(OMAP3530) 查看Linux内核版本 rootTechv_OMAP35xx:# cat /proc/version Linux version 2.6.28-rc9-omap1 (rootlocalhost.localdomain0 rootTechv_OMAP35xx:# 查看安装了哪几种shell rootTechv_OMAP35xx:# ls /bin/*sh /bin/ash /bin/sh rootTechv_OMAP35xx:# (p310-p311),END,