MIPS(极路由1s[mt7620a])平台OpenWrt路由器系统内的Go应用程序开发

原由,因为coolpy5核心转换到go语言开发,因此目前超人正在进行相关的技术攻关,在程序编写方面一切都相对顺利。因为coolpy5是一个真正的商业级性能的系统也考滤到coolpy以前的版本已经肯定的coolpy是支持以家庭路由器为雾计算节点直接实现智能家居或智慧农业的离线解决方案,因此超人才进行了这一次技术预测试,也为之后coolpy这环节的闭环做准备工做。如下文章关于openwrt相关的基础将会略过,看不懂的朋友请自行查找相关知识点。linux

略过知识点:git

1.linux基础(交叉编译基础)github

2.openwrt管理(openwrt基础)golang

游戏开始:vim

1.首先经过putty链接到路由器看看路由器cpu架构/这里边有一个错误,你看到的全部cpu相关的描述都是mips字眼,其实极1s路由器的这个cpu(mt7620a)是mipsel架构,即在交叉编译时咱们所设置的goarch参数应该是mips32le才正确,若是你使用的cpu是用mips的其余路由器请自行把这个参数设置为mips32便可。bash

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测试

//执行编译ui

./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节点离线运行于由路器做为雾计算终端。

相关文章
相关标签/搜索