胡之冉
嵌入式遠程控制系統的配置
胡之冉
(蘇州百得科技有限公司,蘇州 215031)
本文基于三星S3C2440嵌入式開發板,通過對Linux的配置與移植,完成了一個可以進行遠程登入的控制系統。文中詳細闡述了該遠程控制系統的總體設計要求及嵌入式系統相關軟件的配置與實現。該系統在實際運用中滿足了自動化設備開發人員的工作需求,取得了良好的效果。
嵌入式系統 Linux 動態域名 遠程控制 虛擬服務
隨著計算機技術不斷發展,嵌入式系統也得到了越來越廣泛的應用,其中ARM32位嵌入式RISC處理器由于其低成本、低功耗、高性能以及易于擴展等諸多優點得到了多家世界頂級芯片制造商的支持,因而占據了的嵌入式系統應用領域的領先地位;另一方面由于Linux系統具有的高度模塊化、可裁剪、開源免費以及強大的網絡支持等優點非常適合做嵌入式開發的操作系統。本文主要講述了一種基于嵌入式Linux的遠程控制系統。該系統可以使技術人員在各工作現場通過以太網遠程登入辦公地點的嵌入式系統,進而遠程喚醒工作站進行相關資料的管理以及各類應用軟件遠程操作。
在嵌入式系統中基于三星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配置成允許通過網卡來遠程喚醒,平時可以讓服務器處于關閉狀態,只在需要時才由嵌入式開發板來喚醒服務器,這種方式平時只有幾瓦的功耗,有效降低了系統的整體能耗。
通過前面的介紹,得知如何配置好嵌入式開發板,實現對其遠程操作是本系統的關鍵。下面將基于精智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數據包啟動對應的電腦。
基于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