本节书摘来自异步社区《嵌入式 Linux应用程序开发标准教程(第2版)》一书中的第2章,第2.4节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.4 实验内容
嵌入式 Linux应用程序开发标准教程(第2版)
2.4.1 在Linux下解压常见软件
1.实验目的
在Linux下安装一个完整的软件(嵌入式Linux的必备工具——交叉编译工具),掌握Linux常见命令,学会设置环境变量,同时搭建起嵌入式Linux的交叉编译环境(关于交叉编译的具体概念在本书后面会详细讲解),为今后的实验打下良好的基础。
2.实验内容
在Linux中解压cross-3.3.2.tar.bz2,并添加到系统环境变量中去。
3.实验步骤
(1)将光盘中的cross-3.3.2.tar.bz2复制到Windows下的任意盘中。
(2)重启机器转到Linux下,并用普通用户身份登录。
(3)打开“终端”,并切换到超级用户模式下。
命令为:su - root
(4)查看cross-3.3.2.tar.bz2所在的Windows下对应分区的格式,并记下其文件设备名称,如“/dev/hda1”等。
命令为:fdisk -l
(5)使用mkdir命令在“/mnt”新建子目录作为挂载点。
命令为:mkdir /mnt/win
(6)挂载Windows相应分区。
若是vfat格式,则命令为:mount –t vfat /dev/hda* /mnt/win。
注意
由于ntfs格式在Linux的早期版本中是不安全的,只能读,不能写,因此最好把文件放到fat32格式的文件系统中。
(7)进入挂载目录,查看是否确实挂载上。
命令为:cd /mnt/win;ls
(8)在/usr/local下建一个名为arm的目录。
命令为:mkdir /usr/local/arm
(9)将cross-3.3.2.tar.bz2复制到刚刚创建的目录中。
命令为:cp /mnt/win/cross-3.3.2.tar.bz2 /usr/local/arm
注意
若cross-3.3.2.tar.bz2在当前目录中,则可将命令简写为:cp ./cross-3.3.2.tar.bz2 /usr/local/arm。
(10)将当前工作目录转到“/usr/local/arm”下。
命令为:cd /usr/local/arm
想一想
为什么要将此目录创建在“/usr/local”下?
(11)解压缩该软件包。
命令为:tar jxvf cross-3.3.2.tar.bz2
(12)将此目录下的/bin目录添加到环境变量中去。
命令为:export PATH=/usr/local/arm/3.3.2/bin :$PATH
注意
用此方法添加的环境变量在掉电后会丢失,因此,可以在“/etc/bashrc”的最后一行添加以上命令。
(13)查看该路径是否已添加到环境变量中。
命令为:echo $PATH
4.实验结果
成功搭建了嵌入式Linux的交叉编译环境,熟悉Linux下常用命令,如su、mkdir、mount、cp、tar等,并学会添加环境变量,同时对Linux的目录结构有了更进一步的理解。
2.4.2 定制Linux系统服务
1.实验目的
通过定制Linux系统服务,进一步理解Linux的守护进程,能够更加熟练运用Linux操作基本命令,同时也加深对init进程的了解和掌握。
2.实验内容
查看Linux系统服务,并定制其系统服务。
3.实验步骤
(1)查看系统的默认运行级别。
命令为:cat /etc/inittab(假设当前运行级别为N)
(2)进入相应级别的服务脚本目录,查看哪些服务是系统启动的独立运行的服务,并做下记录。
命令为:cd /etc/rc.d/rcN.d
(3)利用命令查看系统开机自启动服务,与上次查看结果进行比较,找出其中的区别,并思考其中的原因。
命令为:chkconfig –list
(4)记录chkconfig –list命令中由xinet管理的服务,并将其中启动的服务做下记录。
(5)进入xinet配置管理的相应目录,查看是否与chkconfig –list所得的结果相吻合,并查看相应脚本文件。
命令为:cd /etc/xinetd.d
(6)将sshd服务停止。
命令为:service sshd stop
(7)将sshd服务设置为开机不启动。
命令为:chkconfig –level N sshd stop
(8)查看该设置是否生效。
命令为:chkconfig –list
(9)查看系统中所有服务及其端口号列表。
命令为:cat /etc/services
(10)将sshd服务端口号改为4022。
命令为:vi /etc/services
(11)重启sshd服务,验证所改的端口号是否生效。
命令为:service sshd start
(12)重启Linux系统,验证所改的服务开机启动是否生效。
4.实验结果分析
本实验通过验证Linux系统服务的启动状态,进一步明确Linux系统服务启动的流程,更深入地理解了Linux系统操作。
本实验还通过定制Linux系统服务sshd的开机启动状态和端口号,熟悉了Linux的系统定制步骤。