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

相关推荐
.(ᗜ ˰ ᗜ) .9 分钟前
机器学习笔记2
笔记
大胆飞猪10 分钟前
Linux操作系统--进程间通信(system V共享内存)
linux
LunarCod23 分钟前
Ubuntu使用Docker搭建SonarQube企业版(含破解方法)
linux·运维·服务器·ubuntu·docker·开源·sonarqube
betazhou33 分钟前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
什么半岛铁盒40 分钟前
Linux信号的保存
linux·运维·网络
小葡萄202542 分钟前
黑马程序员c++2024版笔记 第一章 变量和基本类型
笔记·c++20
百锦再1 小时前
大数据技术的主要方向及其应用详解
大数据·linux·网络·python·django·pygame
顾子茵1 小时前
计算机图形学基础--Games101笔记(一)数学基础与光栅化
笔记·图形渲染
黄暄1 小时前
初识计算机网络。计算机网络基本概念,分类,性能指标
笔记·学习·计算机网络·考研
2301_803554521 小时前
vim,gcc/g++,makefile,cmake
linux·编辑器·vim