RK3506拥有着不错的性价比以及与之相匹配的性能优势,非常适合用来做边缘计算网关、小型数据收集端点等。今天给大家带来两款内网穿透工具的交叉编译移植,方便在RK3506上搭建相关应用。

在编译两个工具之前,我们需要搭建交叉编译环境,需要将我司提供的交叉编译器拷贝至ubuntu中并解压,完成后如下图所示:

交叉编译器是从buildroot上直接导出,工具的具体路径需要重新链接,所以执行目录中的relocate-sdk.sh脚本,重新链接到我们自己的路径中,链接完成后需要声明交叉编译器,直接执行source environment-setup,正常如下图所示:

接下来我们先编译frp。frp是go语言编写的工具,我们还需要搭建go语言编译环境。下载go二进制x86文件All releases - The Go Programming Language,下载完成后将安装包解压到一个位置,文章中是/opt目录,因为go语言的安装目录不可以跟数据目录在一起,所以我们将两者分开,这里写了一个声明环境的脚本go_env.sh,内容如下图所示:
source go_env.sh,拉取frp代码git cloen https://github.com/fatedier/frp.git,重点关注

如果我们想要编译arm架构的二进制文件,需要将Makefile.cross-compiles重命名为Makefile,因为默认Makefile是为x86准备的,重命名后,直接make编译即可,编译完成后会在当前目录的release目录中,生成所有架构的二进制文件,其中就包括arm架构,具体如下图所示:

最后是编译wireguard-tools。Wireguard在低版本内核中,会向内核里打相应的补丁,不过因为RK3506的内核版本较高,主线分支上已经将相关补丁合并,所以我们只需要编译工具即可。首先,我们按照文章一开始的步骤声明交叉编译器环境变量,然后使用git clonehttps://git.zx2c4.com/wireguard-tools下载源码,接着使用make -C wireguard-tools/src命令编译,编译成功后会在源码src目录生成二进制文件wg,如下图所示:
以上,就是RK3506交叉编译frp和wireguard的全部过程了,其它的第三方软件也可以用这样的方法编译,主要还是要根据工具的makefile以及configure等文件摸索出正确的交叉编译方法。
全部0条评论
快来发表一下你的评论吧 !