【调试笔记-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 软件包的步骤,并指出过程中遇到的问题及解决方法。

相关推荐
A小辣椒7 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒11 小时前
TShark:基础知识
linux
AlfredZhao13 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式