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人!