本节书摘来自异步社区《嵌入式 linux应用程序开发标准教程(第2版)》一书中的第2章,第2.4节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区“异步社区”公众号查看。
嵌入式 linux应用程序开发标准教程(第2版)
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。
(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
(10)将当前工作目录转到“/usr/local/arm”下。
命令为:cd /usr/local/arm
(11)解压缩该软件包。
命令为:tar jxvf cross-3.3.2.tar.bz2
(12)将此目录下的/bin目录添加到环境变量中去。
命令为:export path=/usr/local/arm/3.3.2/bin :$path
(13)查看该路径是否已添加到环境变量中。
命令为:echo $path
4.实验结果
成功搭建了嵌入式linux的交叉编译环境,熟悉linux下常用命令,如su、mkdir、mount、cp、tar等,并学会添加环境变量,同时对linux的目录结构有了更进一步的理解。
通过定制linux系统服务,进一步理解linux的守护进程,能够更加熟练运用linux操作基本命令,同时也加深对init进程的了解和掌握。
查看linux系统服务,并定制其系统服务。
(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)查看该设置是否生效。
(9)查看系统中所有服务及其端口号列表。
命令为:cat /etc/services
(10)将sshd服务端口号改为4022。
命令为:vi /etc/services
(11)重启sshd服务,验证所改的端口号是否生效。
命令为:service sshd start
(12)重启linux系统,验证所改的服务开机启动是否生效。
4.实验结果分析
本实验通过验证linux系统服务的启动状态,进一步明确linux系统服务启动的流程,更深入地理解了linux系统操作。
本实验还通过定制linux系统服务sshd的开机启动状态和端口号,熟悉了linux的系统定制步骤。