極路由1s(mt7620a)OpenWrt交叉編譯go程式

来源:http://www.cnblogs.com/jacle169/archive/2016/06/16/5590611.html
-Advertisement-
Play Games

起因,由於coolpy5核心轉換到go語言開發,所以目前超人正在進行相關的技術攻關,在程式編寫方面一切都相對順利。由於coolpy5是一個真正的商業級性能的系統也考濾到coolpy之前的版本已經確定的coolpy是支持以家庭路由器為霧計算節點直接實現智能家居或智慧農業的離線解決方案,所以超人才進行了 ...


起因,由於coolpy5核心轉換到go語言開發,所以目前超人正在進行相關的技術攻關,在程式編寫方面一切都相對順利。由於coolpy5是一個真正的商業級性能的系統也考濾到coolpy之前的版本已經確定的coolpy是支持以家庭路由器為霧計算節點直接實現智能家居或智慧農業的離線解決方案,所以超人才進行了這一次技術預測試,也為以後coolpy這環節的閉環作准備工作。以下文章關於openwrt相關的基礎將會略過,看不懂的朋友請自行查找相關知識點。

略過知識點:

1.linux基礎(交叉編譯基礎)

2.openwrt管理(openwrt基礎)

游戲開始:

1.首先通過putty連接到路由器看看路由器cpu架構/這裡邊有一個錯誤,你看到的所有cpu相關的描述都是mips字眼,其實極1s路由器的這個cpu(mt7620a)是mipsel架構,即在交叉編譯時我們所設置的goarch參數應該是mips32le才正確,如果你使用的cpu是用mips的其他路由器請自行把這個參數設置為mips32即可。

image

2.交叉編譯環境配置,go-mips32這個項目維護人數是400+人,我個人推測這可能是 golang團隊牽頭的,希望以後能正式集成到golang的新版本中。

//下載go-mips32源
git clone https://github.com/gomini/go-mips32.git
cd go-mips32/src

//配置GO編譯參數
export GOOS=linux
export GOARCH=mips32le <== Change to mips32 if mips

//執行編譯

./make.bash
cd ..

//創建編譯後文件存放文件夾
sudo mkdir /opt/mipsgo

//複製
sudo cp -R * /opt/mipsgo

//go工程參數配置
export GOROOT=/opt/mipsgo
export PATH=/opt/mipsgo/bin:$PATH

3.編譯go程式作為測試

mkdir /opt/slu

cd /opt/slu

vim main.go

//源代碼………………………………………………………….

package main

import "fmt"

func main() {
fmt.Println("hello icoolpy.com")
}
//源代碼…………………………………………………
//保存退出

由於以上已經設置了path所以在編譯打包go源代碼時要直接在要打包的.go程式文件夾下直接執行go build指令即可go build main.go

image

在當前目錄下會生成編譯後的執行文件,這個文件就是我們的程式,可以直接在極路由1s的openwrt系統里運行

image

把main文件通過WinSCP上傳到路由器文件系統

image

提權main文件,預設情況下main文件是沒有執行許可權的,所以通過指令提權讓它可以被運行,修改成功後可以看到main文件顯示為綠色。

image

執行main程式測試運行

image

hello icoolpy.com已被列印出來,說明程式已正常運行。

//補充…………………………………………………………………………

如果開發後的源代碼需要引用到其他源,需要在go build 命令執行之前把這些包的源代碼放到目標目錄下(本例): /opt/mipsgo/src/

註意:如果你用的是虛擬機運行的編譯系統,在主系統拖放包到虛擬系統時要註意複製進去的文件是否都正常,最好先打包為zip再拖進虛擬系統。

結束語:

Coolpy5將以上億級的物聯網運行設備為設計開發目標的物聯網系統,將繼續支持hub節點離線運行於由路器作為霧計算終端。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • tinyXML下載: "http://sourceforge.net/projects/tinyxml/" 載入到項目: 這六個文件添加到你的c++工程中,分別是tinystr.h、tinystr.cpp、tinyxml.h、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlp ...
  • 學過C/C++的都知道,else語句是和if語句搭配使用的, 但是在Python中,else語句更像是作為一個模塊,不僅僅可以和if語句搭配,還可以和迴圈語句,異常處理語句搭配使用。下麵逐個進行介紹: <1> if 語句 條件表達式為真的時候,執行代碼塊1,否則執行代碼塊2. (其實就是一個二選一的 ...
  • 作者:acezio鏈接:https://zhuanlan.zhihu.com/p/21358368來源:知乎著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。 flask的url route管理 定義flask實例的route時,使用一個裝飾器來裝飾函數,例如: 1 app = F ...
  • ...
  • 觀看了唐老師講解的一節《第5課 - 引用的本質分析》感覺非常不錯,有深度不廢話,我喜歡~~~ 再此總結下,並且奉上視頻下載地址~~~ 360網盤下載地址: https://yunpan.cn/cxXynI6sGbHJs 密碼(4b1b) // 正文 在C里並沒引用這個語法,而在C++里具有這個語法。 ...
  • 在磁碟上讀寫文件的功能都是由操作系統提供的,現代操作系統不允許普通的程式直接操作磁碟,所以,讀寫文件就是請求操作系統打開一個文件對象(通常稱為文件描述符),然後,通過操作系統提供的介面從這個文件對象中讀取數據(讀文件),或者把數據寫入這個文件對象(寫文件)。 讀文件 要以讀文件的模式打開一個文件對象 ...
  • 新手小白,代碼學習過程中總結一下起泡排序法。 起泡排序法的基本思路:每次將相鄰的兩個數進行比較,將小的調到前頭。若有6個數:9,8,5,4,2,0第一次先將最前面的兩個數8和9對調,第二次將第二個和第三個數(9和5對調)……如此一共進行五次,得到8,5,4,2,0,9的順序。 可以看到,大數已沉底, ...
  • 在Android中,HTTP通信可以用Volley,在Java中不能使用Volley,只能使用DefaultHttpClient,HttpPost和HttpResponse。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...