OpenWrt-Yun是基于OpenWrt的一个Linux发行版。有所耳闻的读者应该据说他是一个使用在路由器上的操做系统。其实准确地说OpenWrt是一个嵌入式Linux发型版,它能够安装在各类嵌入式芯片中,如Arduino Yun。在本节中,将为你们介绍OpenWrt-Yun系统相关的知识。web
SSH是Secure Shell的缩写,它是创建在应用层和传输层(详细知识能够查找OSI模型)基础上的安全协议。通俗地来讲,它的做用就是加密你与操做系统之间的通信信息。在Arduino Yun上,提供支撑SSH通信的基础的SSH服务。它在Arduino Yun上是做为系统服务运行的,因此在系统启动以后它就运行起来了。使用SSH方式须要电脑能够经过IP地址找到Arduino Yun,因此须要使用3.1节中介绍的3种方式链接Arduino Yun与电脑。数据库
在绝大部分Linux发行版中都内置了SSH客户端,因此能够直接发起SSH链接。链接的方式也很是简单,使用以下的命令能够不指定用户名链接:缓存
ssh Arduino Yun的IP地址安全
例如,笔者所用Arduino Yun所在的IP地址为192.168.4.103,因此可使用以下命令:cookie
ssh 192.168.4.103架构
另外一种方式是在命名中直接指定登陆用户,可使用以下的方式之一:app
ssh –l 用户名 Arduino Yun的IP地址ssh
或工具
ssh 用户名@Arduino Yun的IP地址ui
那么,咱们以root用户登陆IP地址为192.168.4.103的Arduino Yun对应的命令以下:
ssh –l root 192.168.4.103
或
ssh root@192.168.4.103
在以上命令以后,SSH客户端会询问你几个问题:
The authenticity of host '192.168.4.103 (192.168.4.103)' can't be established.
RSA key fingerprint is 81:1e:44:66:b3:1d:4f:6a:6b:a2:c2:7a:30:b1:e3:ed.
Are you sure you want to continue connecting (yes/no)?
上面的内容就是提示这个IP地址的可靠性没法确认,询问你是否继续链接。这里咱们回答“yes”继续,而后会出现以下的警告信息:
Warning: Permanently added '192.168.4.103' (RSA) to the list of known hosts.
这里提示你将要把192.168.4.103永久性地添加到你已知的主机名列表中。这样致使的结果就是你之后访问这个地址时候不会再出现上面的问题,而是直接要求你输入登陆远程访问的密码:
root@192.168.4.103's password:
这里就须要输入咱们在3. 2节中设置的密码,若是你以前没有更改则为原始密码“arduino”,以后就登陆到了远程系统,如图3.25所示:
图3.25 登陆系统
在登陆进系统以后,命令行提示符(即图3.24最后一行)显示了当前是以root用户到名为TomArduino的远程主机上。此时的操做环境就是在Arduino Yun上了(因为命令提示与PC上的很是相似,因此需求读者仔细区分),全部的操做都是针对Arduino Yun的。在执行完全部的操做以后,能够输入exit命令退出,同时输出提示信息:
Connection to 192.168.4.103 closed.
在Windows操做系统中使用SSH要稍微麻烦一点,由于Windows操做系统没有自带SSH客户端,因此须要下载客户端。笔者和官方都推荐使用PuTTY,它免费又好用,官方连接为:www.putty.org。
1.安装PuTTY软件
PuTTY官方提供为Windows操做系统提供了压缩文件形式和安装包两种形式,笔者推荐使用安装包形式,其文件名为putty-0.63-installer.exe。PuTTY提供的安装包是标准的Windows软件安装形式——简洁明了,如图3.26所示是欢迎页。
(1)这个页面中提示要将PuTTY0.63版本安装到你的电脑中。咱们单击Next >按钮继续,这一步要咱们选择PuTTY要安装的路径,如图3.27所示。
图3.26 PuTTY欢迎页 图3.27 选择安装路径
(2)笔者推荐使用默认路径。PuTTY很是紧凑,只须要占用3.5MB的空间。咱们接着单击Next >按钮继续,此次要咱们选择是否建立开始菜单文件夹,如图3.28所示。
(3)这一步根据读者习惯进行选择便可。默认是不建立,因此想要建立,就须要将复选框置为选中状态。接着单击“Next >”继续,这一步要咱们选择一些附加执行的任务,各项含义均在图3.29中有标注。
图3.28 选择是否建立开始菜单文件夹 图3.29 选择附加任务
(4)这里一样须要根据自身喜爱进行选择便可。而后接着单击Next >按钮。这一步是对以前全部步骤的总结,如图3.30所示。
(5)这里展现出了以前询问过用户的全部问题的答复。若是你对这个配置不满意,那么还可使用< Back按钮返回以前的步骤从新配置;若是确认无误,那么单击Install按钮开始安装。在安装完成后,会出现完成的界面,并提示你阅读README.txt文件,如图3.31所示。
图3.30 准备好安装 图3.31 安装完成
README.txt文件会对一些常见问题给出建议,例如接下来须要作什么、若是软件不工做怎么办等问题。你能够自由选择是否阅读该文件,以后点击“Finish”安装完成PuTTY的整个安装。
2.使用PuTTY软件
PuTTY软件的主页面简单至极。它左侧的树状列表列出了全部的选项,这些选择一般状况下无须关心,如今惟一须要关心的就是PuTTY的链接方式,而默认的链接方式就是SSH,如图3.32所示。
与在Linux下链接相似,咱们须要提供远程主机的IP地址,固然也能够经过与Linux相同的方式直接指定用户名:
root@192.168.4.103
(1)将你Arduino Yun对应的登陆用户名以及IP地址以上面所示的方式填写到如图3.33所示的输入框中。
图3.32 PuTTY主页面 图3.33 输入用户名和IP地址
(2)单击Open按钮,开始链接。在第一次链接一个远程主机的时候,同Linux相似的,它须要你保证链接操做是你所指望的,如图3.34所示。
这个提示框中有4个按钮,他们的做用分别以下:
q 是(Y):这个按钮会将这个主机缓存,在此以后的访问就不会再出现这个提示框;
q 否(N):这个按钮会关闭这个提示框并开始后续操做,可是在下次链接这个主机的时候还会弹出这个提示框;
q 取消:这个按钮会取消当前及后续操做,即取消此次链接;
q 帮助:这个按钮会打开PuTTY的用户手册,你能够在手册中寻找答案。
因此,单击“是(Y)”或“否(N)”按钮均会执行后续的操做。若是你只提供了IP地址,那么将会出现如图3.35所示的提示信息。
图3.34 安全提示信息 图3.35 未提供登陆用户的提示信息
(3)这里就是要求咱们提供登陆的用户名。若是这是你第一次以SSH方式链接Arduino Yun,那么你只能以root用户登陆,因此你须要输入“root”继续。若是你在链接的开始就提供了用户名则会提示如图3.36所示的信息。
(4)这里提示咱们使用“root”用户登陆,而后要求咱们输入“root”用户的密码。在输入正确的密码后(密码不会显示),就进入了OpenWrt-Yun系统(准确地说是系统中的BusyBox软件),如图3.37所示。
图3.36 提供登陆用户的提示信息 图3.37 成功登陆系统
细心的读者可能注意到了,在OpenWrt字符LOGO的上方显示了BusyBox。BusyBox被称为Linux工具里的瑞士军刀,在嵌入式系统中很是流行。它集成了100多个最经常使用的Linux命令和工具。若是你想看它支持的全部命令,只须要在键盘上按两次Tab键便可。
CLI是Command Line Interface的缩写,中文译名为命令行界面。CLI相对GUI(图形用户接口)的优势也很是明显,它的使用要求极低——只须要串行口,而串行接口是单片机的标配。有使用过Linux系统的读者必定对它十分熟悉,它能够完成全部在图形界面下完成的系统管理操做。如你所想的,CLI一般用来管理系统,对于OpenWrt-Yun这种紧凑的系统来讲这是一种管理系统的绝好方式。
在3.1.2节中配置Arduino Yun的方式是使用Web页面的方式进行的,它是基于一个名为LuCi的接口实现的。Web页面只提供了最经常使用的配置,如密码和WiFi设置。在本节中,咱们将教授你们以CLI的方式管理Arduino Yun。这种方式能够完成的功能可就很是多了,接下来演示一下使用这种方式为Arduino Yun安装软件。
在Linux操做系统中,管理软件包的软件一般称为软件包管理器。它能够完成查找、安装、卸载以及依赖解决等功能。PC上Linux发行版常见的软件包管理器有RPM、APT以及Pacman等。而在Windows操做系统下,相似功能的软件有腾讯软件管家、360软件管家等。
在Arduino Yun中,准确地说是OpenWrt-Yun中使用软件包管理工具是opkg。虽然BusyBox已经内置了很是多的工具,足以知足咱们绝大多数的需求,可是也不能排除须要安装一些软件的特殊状况。因此下面就来介绍一下opkg最基本最经常使用的几个命令。
鉴于Arduino Yun紧张的存储资源,opkg软件包数据库是存储在RAM中的。这样,能够节省至关一部分ROM资源,可是带来的问题就是只要RAM一掉电(如重启系统),咱们就须要再次更新。好在opkg软件包数据库并不庞大,并且更新的命令也很是简单,因此咱们须要养成每次新安装软件以前都更新软件包数据库的习惯。更新软件包数据库使用update命令:
opkg update
在命令的执行过程当中会提示当前正在执行的操做,其内容下面所示的:
root@TomArduino:~# opkg update
Downloading http://downloads.arduino.cc/openwrtyun/1/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/attitude_adjustment.
Downloading http://downloads.arduino.cc/openwrtyun/1/packages/Packages.sig.
Signature check passed.
root@TomArduino:~#
以上的内容就显示更新了可用包的列表,而且签名检查也经过了。那么,接下来咱们就能够查找或者安装软件了。
因为OpenWrt一般是基于不一样于PC的处理器架构的,因此在PC上能够安装使用的软件不必定被移植到了软件列表中。因此,这个命令可让你肯定软件是否存在于软件列表中。它的使用方法以下:
opkg find 软件名
例如,要搜索名为fortune的软件,那么可使用以下的命令:
opkg find fortune
这条命令就会输出对应的软件名及其描述:
fortune-mod - 1.2.1-2 - Fortune mod displays fortune cookies on demand
znc-webskin-forest - 0.206-2 - forest webskin for webadmin
若是没有找到,则这条命令会有任何反馈。
查找软件包的命令不必定非要你知道全名,当你只记得软件名的一部分的时候会变得特别有用。它可使用通配符来匹配软件。关于通配符的知识在这里不作深刻介绍,只演示一个最经常使用到的通配符“*”。星号(*)通配符能够匹配任意多个任意字符。例如,for*能够匹配for、forabcd、for1a以及foraaaaaaa等等字符。它的一种使用方法以下:
root@TomArduino:~# opkg find for*
fortune-mod - 1.2.1-2 - Fortune mod displays fortune cookies on demand
znc-webskin-forest - 0.206-2 - forest webskin for webadmin
上面的for*只匹配到了fortune-mod这个软件。咱们接着看如下命令:
root@TomArduino:~# opkg find fo*
fortune-mod - 1.2.1-2 - Fortune mod displays fortune cookies on demand
fowsr - 1.0-20110904-1 - fowsr is a USB Data Collector application for WH1080 compatible
weather stations.
Output formats includes XML, Wunderground.com and pywws.
znc-webskin-forest - 0.206-2 - forest webskin for webadmin
这里咱们能够看到,除了匹配到fortune-mod以外还匹配到了fowsr和znc-webskin-forest。而若是再次减小肯定字符数,例如使用f*,则会匹配全部以f开头的软件,那个数目可就不止个位数了,读者能够本身尝试下大学霸。
注意:星号不仅是能够只在结尾,它能够放在任意的位置,例如*for、f*r甚至*for*、*f*r*的形式。
安装软件包使用的命令是install,它的命令格式以下:
opkg Install 软件名
例如,安装名为fortune-mod软件,可使用以下的命令:
opkg Install fortune-mod
这条命令会输入以下的信息:
root@TomArduino:~# opkg install fortune-mod
Installing fortune-mod (1.2.1-2) to root...
Downloading http://downloads.arduino.cc/openwrtyun/1/packages/fortune-mod_1.2.1-2_ar71xx.ipk.
Configuring fortune-mod.
在安装完成后,咱们就能够执行这个命令了。fortune-mod命令用来随机输出一句话,它执行的结果以下:
root@TomArduino:~# fortune
You will be Told about it Tomorrow. Go Home and Prepare Thyself.
root@TomArduino:~# fortune
You should go home.
提示:输入命令的时候你可使用Tab键补全。例如你想输入fortune命令,那么你能够只输入前一部分for以后按Tab键,你就能够看到命令被自动补全了。
顾名思义,升级软件包就是将当前安装的软件升级到软件库中最新的版本,它使用的是upgrade命令,格式以下:
opkg upgrade 软件名
例如,升级fortune-mod可使用以下的命令:
opkg upgrade fortune-mod
删除软件包是安装软件的逆过程——将系统中已经安装的软件移除。它使用的命令是romove命令,格式以下:
opkg remove 软件名
例如,删除fortune-mod可使用以下的命令:
opkg remove fortune-mod
固然,使用CLI形式能够完成的功能远不止这些,其余的一些功能咱们将在以后的内容中穿插介绍给读者,在这里就再也不作深刻的介绍。
本文选自:Arduino Yun快速入门教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!