APP下载

嵌入式远程控制系统的配置

2016-08-23胡之冉

现代制造技术与装备 2016年1期
关键词:开发板嵌入式远程

胡之冉

嵌入式远程控制系统的配置

胡之冉

(苏州百得科技有限公司,苏州 215031)

本文基于三星S3C2440嵌入式开发板,通过对Linux的配置与移植,完成了一个可以进行远程登入的控制系统。文中详细阐述了该远程控制系统的总体设计要求及嵌入式系统相关软件的配置与实现。该系统在实际运用中满足了自动化设备开发人员的工作需求,取得了良好的效果。

嵌入式系统 Linux 动态域名 远程控制 虚拟服务

随着计算机技术不断发展,嵌入式系统也得到了越来越广泛的应用,其中ARM32位嵌入式RISC处理器由于其低成本、低功耗、高性能以及易于扩展等诸多优点得到了多家世界顶级芯片制造商的支持,因而占据了的嵌入式系统应用领域的领先地位;另一方面由于Linux系统具有的高度模块化、可裁剪、开源免费以及强大的网络支持等优点非常适合做嵌入式开发的操作系统。本文主要讲述了一种基于嵌入式Linux的远程控制系统。该系统可以使技术人员在各工作现场通过以太网远程登入办公地点的嵌入式系统,进而远程唤醒工作站进行相关资料的管理以及各类应用软件远程操作。

1 系统总体设计方案

在嵌入式系统中基于三星S3C2440处理器的开发板比较常见,且功能都非常类似选择时可以根据实际而定。笔者主要使用精智2440开发板来实现本文所述的远程控制器。嵌入式Linux系统一般都要通过交叉移植才能将经过裁剪配置好的Linux系统安装到开发板上。一个可以运行的嵌入式系统通常都包括BootLoader、Linux内核及根文件系统(BusyBox)三部分。有关这三部分的交叉编译与移植的方法有很多介绍的文章及书籍,本文将重点介绍系统中有关远程登录与远程网络唤醒等关键技术的配置与移植。系统的总体示意图如图1所示。

图1 系统运行示意图

图中系统通过ISP提供的线路已经连接到广域网络。为了能够通过网络远程访问到控制系统(嵌入式开发板)及服务器,需要对路由器内的虚拟服务进行配置,设定好端口映射。笔者对路由器内的虚拟服务进行如下配置:将Linux工作站的IP设置为192.168.1.11,分别配置20和2022两个端口作为FTP与TELNET远程登录两个系统服务端口,用于进行资料文件系统的访问及服务器系统的日常操作与管理。将嵌入式开发板的IP地址设置为192.168.1.17,以默认端口22作为开发板TELNET远程登入系统服务端口,以便于远程管理安装在开发板上的网络唤醒,定时运行等应用软件。另外,笔者还配置了一个安装好Windows操作系统的电脑,安装了部分不常用的工作软件,以便于通过远程运行,实现模拟仿真等操作满足工作需求。从节能角度考虑,可以将各服务器的BIOS配置成允许通过网卡来远程唤醒,平时可以让服务器处于关闭状态,只在需要时才由嵌入式开发板来唤醒服务器,这种方式平时只有几瓦的功耗,有效降低了系统的整体能耗。

2 嵌入式系统软件的配置

通过前面的介绍,得知如何配置好嵌入式开发板,实现对其远程操作是本系统的关键。下面将基于精智2440开发板,在随板发布的嵌入式系统基础上进行配置与修改,重点介绍远程登入及网络唤醒的配置步骤。

2.1 用户登入的配置

以BusyBox默认配置为基础制作好的根文件系统,通常不需要输入用户名及密码就可以直接登录系统,这样将会给整个系统带来安全隐患。需要配置系统,使开发板具备用户登入的功能,其操作步骤如下。

2.1.1 配置启动列表inittab文档

/etc目录下有一个inittab文档,用来描述系统启动与运行的规则,需要将s3c2410_serial0::askfirst:-/ bin/sh改为s3c2410_serial0::respawn:/sbin/getty –L s3c2410_serial0 115200 vt100。

2.1.2 在/etc目录下添加group、passwd、shadow三个文档增加登入用户信息

为方便处理,可以直接拷贝主机上passwd、shadow、group这三个文件。制作成根文件系统烧写到开发板后,在嵌入式系统里删除不必要的用户,再进行用户管理的信息操作与更新。

2.2 openssh的安装与配置

OpenSSH是提供了服务端后台程序及客户端远程控制的开源软件工具,通过加密传输的SSH(Secure SHell)协议,提高了在计算机之间传送文件及远程控制的网络安全性。本文将移植openssh到嵌入式系统,以替代利用明码传输数据的telnet(终端仿真协议)等不安全的远程控制软件。ssh服务需要依赖zlib和ssl库,因此需要分别安装zlib-1.2.3.tar.tar、openssl-0.9.8e.tar.gz 和openssh-4.6p1.tar.gz三个文件。同大部分Linux应用软件的配置安装类似,其交叉编译的过程都是通过./ config、make、make install三个步骤来实现的,由于最后只需将部分生成的工具及文件移植到嵌入式开发板,在编译openssh-4.6p1.tar.gz时可以省去make install步骤。最后按如下步骤将生成的文件拷贝到嵌入式根文件系统的相应目录下。

将 ssh、ssh-add、ssh-agent、ssh-keygen、sshkeyscan、scp、sftp复制到开发板根文件系统的/usr/ local/bin目录中;将moduli ssh_config sshd_config 复 制到/usr/local/etc;将sftp-server ssh-keysign复制到/usr/local/libexec目录;将sshd复制到/usr/ local/sbin目录;在主机上依次执行如下三条指令,生成密匙相关文件,然后将其复制到/usr/local/etc目录中。

(1)ssh-keygen -t rsa1 -f ssh_host_key -N "";

(2)ssh-keygen -t rsa -f ssh_host_rsa_key -N "";

(3)ssh-keygen -t dsa -f ssh_host_dsa_key -N "". 2.3 添加并启动sshd服务

通过SSH协议登入系统需要建立sshd用户,并启动sshd服务,这需要对passwd、group、rcS文件进行相应的修改。

修改/etc/passwd、/etc/group文件,新建sshd用户用于启动远程登入服务。在passwd中添加“sshd:: 103:103::/var/run/sshd:/bin/sh”; 在group中 添 加“sshd:*:103:”。

为使开发板在开机时能自动启动sshd服务,可以在/ etc/init.d/rcS文件中增加如下两行:

mkdir -p /var/empty;

/usr/local/sbin/sshd.

最终的配置rcS文档内容如下:

#!/bin/sh

ifconfig eth0 192.168.1.17

mount –a

mkdir /dev/pts

mount –t devpts devpts /dev/pts

echo /sbin/mdev > proc/sys/kernel/hotplug

mdev –s

mkdir –p /var/empty

/usr/local/sbin/sshd

2.4 网络唤醒的配置

实际工作过程中,由于服务器上的文件或软件只在必要时才会使用,因此配置好开发板的网络唤醒功能,通过远程控制开发板来启动服务器,将能够在很大程度上节约能耗。配置开发板的远程唤醒功能需要同时对Linux内核及BusyBox的配置文件进行修改。首先修改Linux核心配置文件.config,使能其中的配置选项CONFIG_PACKET=y,即通过make menuconfig 找到并使能Packet socket: mmapped IO选项即可。其次在BusyBox中配置使能networking utilities 中的ETHER_WAKE选项,将etherwake函数功能编译进系统,增加ether-wake指令。在实际应用通过该指令后接需要唤醒电脑的MAC地址,即可发出magic数据包启动对应的电脑。

3 结语

基于ARM处理器的嵌入式系统是在计算机技术基础上发展而来的,是实现各类智能控制的关键技术之一。本文所述的远程控制系统实现了通过以太网络远程操作嵌入式开发板,管理应用服务器的基本功能。在此基础上进一步对系统进行驱动开发实现对周边设备的控制,在手持式设备上开发APP应用等工作,将可以使系统扩展成为具备远程智能控制的系统,在自动化控制领域将会有更大的发展空间。

[1]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.

[2]周立功.ARM嵌入式系统系列教程[M].北京:北京航空航天大学出版社,2005.

[3]道客巴巴.S3C2440A_UserManual_Rev13[EB/OL].(2013-03-15)[2015-12-15].http://www.docin.com/p-614920365. html.

Configuration of Embedded Remote Control System

HU Zhiran
(Suzhou Black & Decker Technology Co., Ltd.,Suzhou 215031)

This paper introduces a remote access control system based on Samsung S3C2440 microprocessor embedded development board, by configuration and cross-compiling the Linux OS. The general design requirements and configuration of utility software are described in detail. In practice, the system meets the needs of the automation equipment development, and achieved good results.

embedded system,Linux, dynamic domain name, remote control, virtual service

猜你喜欢

开发板嵌入式远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
基于STM32H7的FDCAN通信系统设计与实现∗
TS系列红外传感器在嵌入式控制系统中的应用
远程诈骗
搭建基于Qt的嵌入式开发平台
浅析单片机开发板的设计与制作
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
倍福 CX8091嵌入式控制器