起因,由於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即可。
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
在當前目錄下會生成編譯後的執行文件,這個文件就是我們的程式,可以直接在極路由1s的openwrt系統里運行
把main文件通過WinSCP上傳到路由器文件系統
提權main文件,預設情況下main文件是沒有執行許可權的,所以通過指令提權讓它可以被運行,修改成功後可以看到main文件顯示為綠色。
執行main程式測試運行
hello icoolpy.com已被列印出來,說明程式已正常運行。
//補充…………………………………………………………………………
如果開發後的源代碼需要引用到其他源,需要在go build 命令執行之前把這些包的源代碼放到目標目錄下(本例): /opt/mipsgo/src/
註意:如果你用的是虛擬機運行的編譯系統,在主系統拖放包到虛擬系統時要註意複製進去的文件是否都正常,最好先打包為zip再拖進虛擬系統。
結束語:
Coolpy5將以上億級的物聯網運行設備為設計開發目標的物聯網系統,將繼續支持hub節點離線運行於由路器作為霧計算終端。