【调试笔记-20240528-Linux-用 OpenWrt-23.05 SDK 编译 frp 软件包】

调试笔记-系列文章目录

调试笔记-20240528-Linux-用 OpenWrt-23.05 SDK 编译 frp 软件包


文章目录


前言

本文记录在 Linux 环境下用 OpenWrt-23.05 SDK 编译运行 frp 软件包的步骤。

实验使用的电脑如下:

CPU:

shell 复制代码
Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz

操作系统:

shell 复制代码
Ubuntu 22.04.4 LTS

一、调试环境


操作系统:Ubuntu 22.04.4 LTS

操作系统详细信息如下:

shell 复制代码
Kernel                : Linux 6.5.0-35-generic (x86_64)
Version                : #35~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May  7 09:00:52 UTC 2
C Library                : GNU C Library / (Ubuntu GLIBC 2.35-0ubuntu3.7) 2.35
Distribution                : Ubuntu 22.04.4 LTS

编译环境

  • Windows 工作主机通过 PuTTY 远程连接 Linux 开发主机,Linux 开发主机安装 Ubuntu 22.04 LTS 发行版本

参考【安装笔记-20240519-Windows-安装测试 PuTTY


调试目标

编译生成能在 OpenWrt-23.05 固件上运行的最新版本 frp 软件包。


二、调试步骤

预置条件

1、参考【安装笔记-20240519-Windows-安装测试 PuTTY】准备好 Ubuntu 22.04 LTS 工作环境

2、下载 OpenWrt-23.05 SDK

下载链接:openwrt-sdk-23.05.3-x86-64_gcc-12.3.0_musl.Linux-x86_64.tar.xz

安装 OpenWrt 编译工具

参考 Build system setup

打开 PuTTY 终端连接开发主机

  • 在 Windows 点击 PuTTY 图标,连接开发主机,输入用户名和密码

安装编译工具

  • 在 PuTTY 窗口执行以下命令:
bash 复制代码
sudo apt update

sudo apt install build-essential clang flex bison g++ gawk

sudo apt install gettext git libncurses-dev libssl-dev

sudo apt install sudo apt install python3-distutils rsync unzip zlib1g-dev file wget

准备 openwrt 构建系统

下载 openwrt 构建系统

  • 进入工作目标并下载 openwrt 构建系统,执行以下命令:
bash 复制代码
cd wks/openwrt

wget https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-sdk-23.05.3-x86-64_gcc-12.3.0_musl.Linux-x86_64.tar.xz

tar Jvxf openwrt-sdk-23.05.3-x86-64_gcc-12.3.0_musl.Linux-x86_64.tar.xz

配置 openwrt 编译选项

  • 复制配置文件到 openwrt 构建系统目录,执行以下命令:
bash 复制代码
cd openwrt-sdk-23.05.3-x86-64_gcc-12.3.0_musl.Linux-x86_64

cp -f feeds.conf.default feeds.conf
  • 更新软件包信息,执行以下命令:
bash 复制代码
./scripts/feeds update -a
  • 选择安装目标软件包 frp
bash 复制代码
./scripts/feeds install frp
  • 下载我们的测试版软件包 frp
bash 复制代码
git clone -b openwrt-23.05 https://gitee.com/david921518/openwrt-frp.git
  • 建立编译链接到我们的测试版软件包 frp
bash 复制代码
rm -rf feeds/packages/net/frp
cp -af openwrt-frp feeds/packages/net/frp

构建新版本 frp 软件包

  • 执行以下命令,开始编译:
bash 复制代码
make package/frp/compile V=s

因为没有 .config 配置文件,会显示以下配置界面:

  • 选择 "Exit" 退出并保存配置

编译出错,信息如下:

提示需要 go >=1.22 版本,因此,更新 golang 到 master 分支的 1.22 版本。

执行以下命令:

bash 复制代码
git clone https://gitee.com/david921518/openwrt_feed_packages

vi openwrt_feed_packages/lang/golang/golang/Makefile

确认 go 版本是 1.22

用新版本 golang 覆盖 SDK 中的版本,执行以下命令:

bash 复制代码
rm -rf feeds/packages/lang/golang
cp -af openwrt_feed_packages/lang/golang feeds/packages/lang/golang

继续编译,执行以下命令:

bash 复制代码
 make package/frp/compile V=s

最后,成功编译,画面如下:


运行新版本 frps 和 frpc 软件

  • 将生成的软件包文件上传到 Vultr 服务器和 QEMU/x86_64 目标主机的 OpenWrt 系统中,运行以下命令:
bash 复制代码
wget http://tanghui.fun/ipk/frps_0.57.0-1_x86_64.ipk
opkg install frps_0.57.0-1_x86_64.ipk

wget http://tanghui.fun/ipk/luci-app-frps_git-22.120.49105-fbd3a40_all.ipk
opkg install luci-app-frps_git-22.120.49105-fbd3a40_all.ipk

三、应用场景

免硬件开发软路由功能模块

利用 QEMU 仿真目标机器,在本机开发、编译并在本机仿真运行,节省了传统嵌入式开发固件烧录的时间。


四、参考资料

1、Build system setup

2、Using the SDK


总结

本文介绍了在 Linux 环境下用 OpenWrt-23.05 SDK 编译运行 frp 软件包的步骤,并指出过程中遇到的问题及解决方法。

相关推荐
守望时空331 分钟前
使用NetworkManager替换当前网络管理器
linux·运维
MinterFusion2 分钟前
如何在开放麒麟(openKylin)下安装FTP服务器(v0.1.0)
运维·服务器·网络·vsftpd·开放麒麟·明德融创·openkylin
爱网安的monkey brother21 分钟前
Linux自用文档
linux
庞轩px22 分钟前
内存区域的演进与直接内存——JVM性能优化的权衡艺术
java·jvm·笔记·性能优化
xlq2232234 分钟前
30.进程池IPC
linux·运维·服务器
nuomigege1 小时前
beagleboneblack刷入官方IOT镜像后无法运行nodered问题的处理
linux·运维·服务器
liangshanbo12151 小时前
大模型 RAG 向量数据工程全链路架构笔记
笔记·架构
huaxiu51 小时前
ubuntu下应用打不开
linux·运维·ubuntu
罗罗攀1 小时前
PyTorch学习笔记|张量的广播和科学运算
人工智能·pytorch·笔记·python·学习
m0_683124791 小时前
Ubuntu服务设置开机自启
linux·运维·ubuntu