ArduinoYun教程之OpenWrt-Yun與CLI配置Arduino Yun
ArduinoYun教程之OpenWrt-Yun與CLI配置Arduino Yun
OpenWrt-Yun
OpenWrt-Yun是基於OpenWrt的一個Linux發行版。有所耳聞的讀者應該聽說他是一個使用在路由器上的作業系統。其實準確地說OpenWrt是一個嵌入式Linux髮型版,它可以安裝在各種嵌入式晶片中,如Arduino Yun。在本節中,將為大家介紹OpenWrt-Yun系統相關的知識。
使用SSH連線Arduino Yun
SSH是Secure Shell的縮寫,它是建立在應用層和傳輸層(詳細知識可以查詢OSI模型)基礎上的安全協議。通俗地來說,它的作用就是加密你與作業系統之間的通訊資訊。在Arduino Yun上,提供支撐SSH通訊的基礎的SSH服務。它在Arduino Yun上是作為系統服務執行的,所以在系統啟動之後它就執行起來了。使用SSH方式需要電腦可以透過IP地址找到Arduino Yun,所以需要使用3.1節中介紹的3種方式連線Arduino Yun與電腦。
在Linux中使用SSH連線Arduino Yun
在絕大部分Linux發行版中都內建了SSH客戶端,所以可以直接發起SSH連線。連線的方式也非常簡單,使用如下的命令可以不指定使用者名稱連線:
- ssh Arduino Yun的IP地址
例如,筆者所用Arduino Yun所在的IP地址為192.168.4.103,所以可以使用如下命令:
- ssh 192.168.4.103
另一種方式是在命名中直接指定登入使用者,可以使用如下的方式之一:
- ssh –l 使用者名稱 Arduino Yun的IP地址
- 或
- ssh 使用者名稱@Arduino Yun的IP地址
那麼,我們以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連線Arduino Yun
在Windows作業系統中使用SSH要稍微麻煩一點,因為Windows作業系統沒有自帶SSH客戶端,所以需要下載客戶端。筆者和官方都推薦使用PuTTY,它免費又好用,官方連結為:。
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配置Arduino Yun
CLI是Command Line Interface的縮寫,中文譯名為命令列介面。CLI相對GUI(圖形使用者介面)的優點也非常明顯,它的使用要求極低——只需要序列口,而序列介面是微控制器的標配。有使用過Linux系統的讀者一定對它十分熟悉,它可以完成所有在圖形介面下完成的系統管理操作。如你所想的,CLI通常用來管理系統,對於OpenWrt-Yun這種緊湊的系統來說這是一種管理系統的絕好方式。
Arduino Yun中為什麼使用CLI
在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
- Updated list of available packages in /var/opkg-lists/attitude_adjustment.
- Downloading
- Signature check passed.
- root@TomArduino:~#
以上的內容就顯示更新了可用包的列表,並且簽名檢查也透過了。那麼,接下來我們就可以查詢或者安裝軟體了。
查詢Arduino Yun中的軟體包
由於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*的形式。
安裝Arduino Yun中的軟體包
安裝軟體包使用的命令是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
- 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鍵,你就可以看到命令被自動補全了。
升級Arduino Yun中的軟體包
顧名思義,升級軟體包就是將當前安裝的軟體升級到軟體庫中最新的版本,它使用的是upgrade命令,格式如下:
- opkg upgrade 軟體名
例如,升級fortune-mod可以使用如下的命令:
- opkg upgrade fortune-mod
刪除Arduino Yun中的軟體包
刪除軟體包是安裝軟體的逆過程——將系統中已經安裝的軟體移除。它使用的命令是romove命令,格式如下:
- opkg remove 軟體名
例如,刪除fortune-mod可以使用如下的命令:
- opkg remove fortune-mod
當然,使用CLI形式可以完成的功能遠不止這些,其他的一些功能我們將在之後的內容中穿插介紹給讀者,在這裡就不再做深入的介紹。
本文選自:Arduino Yun快速入門教程大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1720016/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ArduinoYun教程之配置Arduino Yun環境UI
- ArduinoYun教程之Arduino程式設計環境搭建UI程式設計
- Arduino Yun的硬體——Arduino Yun快速入門教程UI
- Arduino Yun的主要部件介紹選自Arduino Yun快速入門教程UI
- ArduinoYun教程之ArduinoYun硬體介紹UI
- Arduino Yun快速入門教程(大學霸內部資料)UI
- 指示燈組與3個復位按鈕的介紹Arduino Yun快速入門教程UI
- ArduinoYun快速入門教程第1章ArduinoYun概覽UI
- Arduino IDE 環境配置UIIDE
- Arduino開發環境配置UI開發環境
- Arduino可穿戴教程之第一個程式——Blink(一)UI
- Arduino :入門教學讓你輕鬆玩轉UI
- Arduino可穿戴教程之第一個程式——選擇埠(三)UI
- ArduinoYun的電源插座UI
- VUE CLI 3 配置Vue
- Arduino可穿戴教程之第一個程式——上傳執行程式(四)UI行程
- VUE-CLI3配置Vue
- Vue Cli 4 引入 Cesium 配置Vue
- vue cli3 配置postcssVueCSS
- vue-cli webpack配置分析VueWeb
- vue-cli 如何配置sassVue
- vue-cli 配置flexibleVueFlex
- vue-cli+webpack打包配置VueWeb
- Arduino IDE框架 Arduino UnoUIIDE框架
- Arduino可穿戴教程之第一個程式——連線硬體選擇板子(二)UI
- Arduino 入門之Arduino介紹UI
- gitbook 入門教程之使用 gitbook-cli 開發電子書Git
- 快速入門vue-cli配置Vue
- [Vue CLI 3] 配置解析之 parallelVueParallel
- vue-cli中的webpack配置VueWeb
- vue-cli#2.0 webpack 配置分析VueWeb
- 【學習筆記】OpenMV與arduino通訊筆記UI
- vue-cli3.0 多頁面配置Vue
- vue-cli3.0配置GZIP壓縮Vue
- vue-cli配置環境變數Vue變數
- arduino 天下第一(暴論) -- 智慧貓眼與 SDDC 聯結器移植到 arduino 上UI
- Vue-Cli3多頁面配置與編譯時構建優化Vue編譯優化
- Vue CLI 原理與實踐Vue