胡之冉
嵌入式遠(yuǎn)程控制系統(tǒng)的配置
胡之冉
(蘇州百得科技有限公司,蘇州 215031)
本文基于三星S3C2440嵌入式開(kāi)發(fā)板,通過(guò)對(duì)Linux的配置與移植,完成了一個(gè)可以進(jìn)行遠(yuǎn)程登入的控制系統(tǒng)。文中詳細(xì)闡述了該遠(yuǎn)程控制系統(tǒng)的總體設(shè)計(jì)要求及嵌入式系統(tǒng)相關(guān)軟件的配置與實(shí)現(xiàn)。該系統(tǒng)在實(shí)際運(yùn)用中滿足了自動(dòng)化設(shè)備開(kāi)發(fā)人員的工作需求,取得了良好的效果。
嵌入式系統(tǒng) Linux 動(dòng)態(tài)域名 遠(yuǎn)程控制 虛擬服務(wù)
隨著計(jì)算機(jī)技術(shù)不斷發(fā)展,嵌入式系統(tǒng)也得到了越來(lái)越廣泛的應(yīng)用,其中ARM32位嵌入式RISC處理器由于其低成本、低功耗、高性能以及易于擴(kuò)展等諸多優(yōu)點(diǎn)得到了多家世界頂級(jí)芯片制造商的支持,因而占據(jù)了的嵌入式系統(tǒng)應(yīng)用領(lǐng)域的領(lǐng)先地位;另一方面由于Linux系統(tǒng)具有的高度模塊化、可裁剪、開(kāi)源免費(fèi)以及強(qiáng)大的網(wǎng)絡(luò)支持等優(yōu)點(diǎn)非常適合做嵌入式開(kāi)發(fā)的操作系統(tǒng)。本文主要講述了一種基于嵌入式Linux的遠(yuǎn)程控制系統(tǒng)。該系統(tǒng)可以使技術(shù)人員在各工作現(xiàn)場(chǎng)通過(guò)以太網(wǎng)遠(yuǎn)程登入辦公地點(diǎn)的嵌入式系統(tǒng),進(jìn)而遠(yuǎn)程喚醒工作站進(jìn)行相關(guān)資料的管理以及各類應(yīng)用軟件遠(yuǎn)程操作。
在嵌入式系統(tǒng)中基于三星S3C2440處理器的開(kāi)發(fā)板比較常見(jiàn),且功能都非常類似選擇時(shí)可以根據(jù)實(shí)際而定。筆者主要使用精智2440開(kāi)發(fā)板來(lái)實(shí)現(xiàn)本文所述的遠(yuǎn)程控制器。嵌入式Linux系統(tǒng)一般都要通過(guò)交叉移植才能將經(jīng)過(guò)裁剪配置好的Linux系統(tǒng)安裝到開(kāi)發(fā)板上。一個(gè)可以運(yùn)行的嵌入式系統(tǒng)通常都包括BootLoader、Linux內(nèi)核及根文件系統(tǒng)(BusyBox)三部分。有關(guān)這三部分的交叉編譯與移植的方法有很多介紹的文章及書籍,本文將重點(diǎn)介紹系統(tǒng)中有關(guān)遠(yuǎn)程登錄與遠(yuǎn)程網(wǎng)絡(luò)喚醒等關(guān)鍵技術(shù)的配置與移植。系統(tǒng)的總體示意圖如圖1所示。
圖1 系統(tǒng)運(yùn)行示意圖
圖中系統(tǒng)通過(guò)ISP提供的線路已經(jīng)連接到廣域網(wǎng)絡(luò)。為了能夠通過(guò)網(wǎng)絡(luò)遠(yuǎn)程訪問(wèn)到控制系統(tǒng)(嵌入式開(kāi)發(fā)板)及服務(wù)器,需要對(duì)路由器內(nèi)的虛擬服務(wù)進(jìn)行配置,設(shè)定好端口映射。筆者對(duì)路由器內(nèi)的虛擬服務(wù)進(jìn)行如下配置:將Linux工作站的IP設(shè)置為192.168.1.11,分別配置20和2022兩個(gè)端口作為FTP與TELNET遠(yuǎn)程登錄兩個(gè)系統(tǒng)服務(wù)端口,用于進(jìn)行資料文件系統(tǒng)的訪問(wèn)及服務(wù)器系統(tǒng)的日常操作與管理。將嵌入式開(kāi)發(fā)板的IP地址設(shè)置為192.168.1.17,以默認(rèn)端口22作為開(kāi)發(fā)板TELNET遠(yuǎn)程登入系統(tǒng)服務(wù)端口,以便于遠(yuǎn)程管理安裝在開(kāi)發(fā)板上的網(wǎng)絡(luò)喚醒,定時(shí)運(yùn)行等應(yīng)用軟件。另外,筆者還配置了一個(gè)安裝好Windows操作系統(tǒng)的電腦,安裝了部分不常用的工作軟件,以便于通過(guò)遠(yuǎn)程運(yùn)行,實(shí)現(xiàn)模擬仿真等操作滿足工作需求。從節(jié)能角度考慮,可以將各服務(wù)器的BIOS配置成允許通過(guò)網(wǎng)卡來(lái)遠(yuǎn)程喚醒,平時(shí)可以讓服務(wù)器處于關(guān)閉狀態(tài),只在需要時(shí)才由嵌入式開(kāi)發(fā)板來(lái)喚醒服務(wù)器,這種方式平時(shí)只有幾瓦的功耗,有效降低了系統(tǒng)的整體能耗。
通過(guò)前面的介紹,得知如何配置好嵌入式開(kāi)發(fā)板,實(shí)現(xiàn)對(duì)其遠(yuǎn)程操作是本系統(tǒng)的關(guān)鍵。下面將基于精智2440開(kāi)發(fā)板,在隨板發(fā)布的嵌入式系統(tǒng)基礎(chǔ)上進(jìn)行配置與修改,重點(diǎn)介紹遠(yuǎn)程登入及網(wǎng)絡(luò)喚醒的配置步驟。
2.1 用戶登入的配置
以BusyBox默認(rèn)配置為基礎(chǔ)制作好的根文件系統(tǒng),通常不需要輸入用戶名及密碼就可以直接登錄系統(tǒng),這樣將會(huì)給整個(gè)系統(tǒng)帶來(lái)安全隱患。需要配置系統(tǒng),使開(kāi)發(fā)板具備用戶登入的功能,其操作步驟如下。
2.1.1 配置啟動(dòng)列表inittab文檔
/etc目錄下有一個(gè)inittab文檔,用來(lái)描述系統(tǒng)啟動(dòng)與運(yùn)行的規(guī)則,需要將s3c2410_serial0::askfirst:-/ bin/sh改為s3c2410_serial0::respawn:/sbin/getty –L s3c2410_serial0 115200 vt100。
2.1.2 在/etc目錄下添加group、passwd、shadow三個(gè)文檔增加登入用戶信息
為方便處理,可以直接拷貝主機(jī)上passwd、shadow、group這三個(gè)文件。制作成根文件系統(tǒng)燒寫到開(kāi)發(fā)板后,在嵌入式系統(tǒng)里刪除不必要的用戶,再進(jìn)行用戶管理的信息操作與更新。
2.2 openssh的安裝與配置
OpenSSH是提供了服務(wù)端后臺(tái)程序及客戶端遠(yuǎn)程控制的開(kāi)源軟件工具,通過(guò)加密傳輸?shù)腟SH(Secure SHell)協(xié)議,提高了在計(jì)算機(jī)之間傳送文件及遠(yuǎn)程控制的網(wǎng)絡(luò)安全性。本文將移植openssh到嵌入式系統(tǒng),以替代利用明碼傳輸數(shù)據(jù)的telnet(終端仿真協(xié)議)等不安全的遠(yuǎn)程控制軟件。ssh服務(wù)需要依賴zlib和ssl庫(kù),因此需要分別安裝zlib-1.2.3.tar.tar、openssl-0.9.8e.tar.gz 和openssh-4.6p1.tar.gz三個(gè)文件。同大部分Linux應(yīng)用軟件的配置安裝類似,其交叉編譯的過(guò)程都是通過(guò)./ config、make、make install三個(gè)步驟來(lái)實(shí)現(xiàn)的,由于最后只需將部分生成的工具及文件移植到嵌入式開(kāi)發(fā)板,在編譯openssh-4.6p1.tar.gz時(shí)可以省去make install步驟。最后按如下步驟將生成的文件拷貝到嵌入式根文件系統(tǒng)的相應(yīng)目錄下。
將 ssh、ssh-add、ssh-agent、ssh-keygen、sshkeyscan、scp、sftp復(fù)制到開(kāi)發(fā)板根文件系統(tǒng)的/usr/ local/bin目錄中;將moduli ssh_config sshd_config 復(fù) 制到/usr/local/etc;將sftp-server ssh-keysign復(fù)制到/usr/local/libexec目錄;將sshd復(fù)制到/usr/ local/sbin目錄;在主機(jī)上依次執(zhí)行如下三條指令,生成密匙相關(guān)文件,然后將其復(fù)制到/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 添加并啟動(dòng)sshd服務(wù)
通過(guò)SSH協(xié)議登入系統(tǒng)需要建立sshd用戶,并啟動(dòng)sshd服務(wù),這需要對(duì)passwd、group、rcS文件進(jìn)行相應(yīng)的修改。
修改/etc/passwd、/etc/group文件,新建sshd用戶用于啟動(dòng)遠(yuǎn)程登入服務(wù)。在passwd中添加“sshd:: 103:103::/var/run/sshd:/bin/sh”; 在group中 添 加“sshd:*:103:”。
為使開(kāi)發(fā)板在開(kāi)機(jī)時(shí)能自動(dòng)啟動(dòng)sshd服務(wù),可以在/ etc/init.d/rcS文件中增加如下兩行:
mkdir -p /var/empty;
/usr/local/sbin/sshd.
最終的配置rcS文檔內(nèi)容如下:
#!/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 網(wǎng)絡(luò)喚醒的配置
實(shí)際工作過(guò)程中,由于服務(wù)器上的文件或軟件只在必要時(shí)才會(huì)使用,因此配置好開(kāi)發(fā)板的網(wǎng)絡(luò)喚醒功能,通過(guò)遠(yuǎn)程控制開(kāi)發(fā)板來(lái)啟動(dòng)服務(wù)器,將能夠在很大程度上節(jié)約能耗。配置開(kāi)發(fā)板的遠(yuǎn)程喚醒功能需要同時(shí)對(duì)Linux內(nèi)核及BusyBox的配置文件進(jìn)行修改。首先修改Linux核心配置文件.config,使能其中的配置選項(xiàng)CONFIG_PACKET=y,即通過(guò)make menuconfig 找到并使能Packet socket: mmapped IO選項(xiàng)即可。其次在BusyBox中配置使能networking utilities 中的ETHER_WAKE選項(xiàng),將etherwake函數(shù)功能編譯進(jìn)系統(tǒng),增加ether-wake指令。在實(shí)際應(yīng)用通過(guò)該指令后接需要喚醒電腦的MAC地址,即可發(fā)出magic數(shù)據(jù)包啟動(dòng)對(duì)應(yīng)的電腦。
基于ARM處理器的嵌入式系統(tǒng)是在計(jì)算機(jī)技術(shù)基礎(chǔ)上發(fā)展而來(lái)的,是實(shí)現(xiàn)各類智能控制的關(guān)鍵技術(shù)之一。本文所述的遠(yuǎn)程控制系統(tǒng)實(shí)現(xiàn)了通過(guò)以太網(wǎng)絡(luò)遠(yuǎn)程操作嵌入式開(kāi)發(fā)板,管理應(yīng)用服務(wù)器的基本功能。在此基礎(chǔ)上進(jìn)一步對(duì)系統(tǒng)進(jìn)行驅(qū)動(dòng)開(kāi)發(fā)實(shí)現(xiàn)對(duì)周邊設(shè)備的控制,在手持式設(shè)備上開(kāi)發(fā)APP應(yīng)用等工作,將可以使系統(tǒng)擴(kuò)展成為具備遠(yuǎn)程智能控制的系統(tǒng),在自動(dòng)化控制領(lǐng)域?qū)?huì)有更大的發(fā)展空間。
[1]韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2008.
[2]周立功.ARM嵌入式系統(tǒng)系列教程[M].北京:北京航空航天大學(xué)出版社,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