调试笔记-系列文章目录
调试笔记-20240528-Linux-用 OpenWrt-23.05 SDK 编译 frp 软件包
文章目录
- 调试笔记-系列文章目录
- 调试笔记-20240528-Linux-用 OpenWrt-23.05 SDK 编译 frp 软件包
- 前言
- 一、调试环境
- 操作系统:Ubuntu 22.04.4 LTS
- 编译环境
- 调试目标
- 二、调试步骤
- 预置条件
- 安装 OpenWrt 编译工具
- 打开 PuTTY 终端连接开发主机
- 安装编译工具
- 准备 openwrt 构建系统
- 下载 openwrt 构建系统
- 配置 openwrt 编译选项
- 构建新版本 frp 软件包
- 运行新版本 frps 和 frpc 软件
- 三、应用场景
- 免硬件开发软路由功能模块
- 四、参考资料
- 总结
前言
本文记录在 Linux 环境下用 OpenWrt-23.05 SDK 编译运行 frp 软件包的步骤。
实验使用的电脑如下:
CPU:
Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz
操作系统:
Ubuntu 22.04.4 LTS
一、调试环境
操作系统:Ubuntu 22.04.4 LTS
操作系统详细信息如下:
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 窗口执行以下命令:
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 构建系统,执行以下命令:
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 构建系统目录,执行以下命令:
cd openwrt-sdk-23.05.3-x86-64_gcc-12.3.0_musl.Linux-x86_64
cp -f feeds.conf.default feeds.conf
- 更新软件包信息,执行以下命令:
./scripts/feeds update -a
- 选择安装目标软件包 frp
./scripts/feeds install frp
- 下载我们的测试版软件包 frp
git clone -b openwrt-23.05 https://gitee.com/david921518/openwrt-frp.git
- 建立编译链接到我们的测试版软件包 frp
rm -rf feeds/packages/net/frp
cp -af openwrt-frp feeds/packages/net/frp
构建新版本 frp 软件包
- 执行以下命令,开始编译:
make package/frp/compile V=s
因为没有 .config 配置文件,会显示以下配置界面:
- 选择 “Exit” 退出并保存配置
编译出错,信息如下:
提示需要 go >=1.22 版本,因此,更新 golang 到 master 分支的 1.22 版本。
执行以下命令:
git clone https://gitee.com/david921518/openwrt_feed_packages
vi openwrt_feed_packages/lang/golang/golang/Makefile
确认 go 版本是 1.22
用新版本 golang 覆盖 SDK 中的版本,执行以下命令:
rm -rf feeds/packages/lang/golang
cp -af openwrt_feed_packages/lang/golang feeds/packages/lang/golang
继续编译,执行以下命令:
make package/frp/compile V=s
最后,成功编译,画面如下:
运行新版本 frps 和 frpc 软件
- 将生成的软件包文件上传到 Vultr 服务器和 QEMU/x86_64 目标主机的 OpenWrt 系统中,运行以下命令:
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 软件包的步骤,并指出过程中遇到的问题及解决方法。