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

调试笔记-系列文章目录

调试笔记-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 updatesudo apt install build-essential clang flex bison g++ gawksudo apt install gettext git libncurses-dev libssl-devsudo apt install sudo apt install python3-distutils rsync unzip zlib1g-dev file wget

准备 openwrt 构建系统

下载 openwrt 构建系统

  • 进入工作目标并下载 openwrt 构建系统,执行以下命令:
cd wks/openwrtwget 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.xztar 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_64cp -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_packagesvi 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.ipkwget 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 软件包的步骤,并指出过程中遇到的问题及解决方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# WPF编程基础

XAML文件内容 <Window x:Class"Wpf_demo1.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/ble…

做抖店如何避免被同行内卷?这5点建议,可以解决这个问题

我是王路飞。 都说2024年的抖店不赚钱了&#xff0c;商家太多了&#xff0c;太内卷了&#xff0c;一点都不好做~ 那为什么依然有很多商家在坚持做呢&#xff1f;为什么依然有很多新手入局呢&#xff1f; 无非是抖店确实能带来可观的利润回报罢了。 那如何避免被同行内卷呢&…

“SSH服务器拒绝了密码,请再试一次”的问题解决思路

大家在使用XShell工具连接Ubuntu系统时&#xff0c;可能会出现错误如下: 通过在网上查阅资料和实践解决这个问题&#xff0c;将我的思路分享给大家&#xff01; 首先&#xff0c;我会先从使用Xshell连接远程服务器会涉及哪些东西上思考这个问题&#xff0c;即通过ssh服务连接远…

CRMEB开源商城系统:全开源、高灵活性的电商解决方案

一、引言 随着电子商务的飞速发展&#xff0c;越来越多的企业和个人开始关注如何快速搭建一个稳定、高效且功能丰富的在线商城系统。在这样的背景下&#xff0c;CRMEB开源商城系统应运而生&#xff0c;凭借其前后端分离的架构、丰富的功能模块以及易用性&#xff0c;成为了众多…

基于RK3568核心板的雷视融合一体机,助力交通管理智能化升级

随着5G网络与智慧交通车路协同系统在全国各点的落地&#xff0c;作为提升交通安全的前沿技术方案也愈发受到重视。 在交通信控领域&#xff0c;以往的感知技术、无论是地磁、线圈还是摄像头&#xff0c;功能都仅仅局限于数清经过了多少车辆&#xff0c;无法满足交通数字化管理…

linux安装srs

获取srs cd /opt git clone -b 4.0release https://gitee.com/ossrs/srs.git cd srs/trunk 启动srs ./objs/srs -c conf/srs.conf ./etc/init.d/srs status 访问http://192.168.220.146:8080/出现下方图片说明安装成功 点击进入SRS控制台看到下方图片

Java 对外API接口开发 java开发api接口如何编写

Java API API&#xff08;Application Programming Interface&#xff09;是指应用程序编程接口&#xff0c;的JavaAPI是指JDK提供的各种功能的Java类 String类 String类的初始化&#xff1a; &#xff08;1&#xff09;使用字符串常量直接初始化 初始化&#xff1a;String s…

瑞_Windows环境下使用bat重启jar包等服务

文章目录 命令示例重启ray-project.jar重启redis服务 &#x1f64a; 前言&#xff1a;经验分享——Windows环境下使用.bat批处理文件重启 jar 包等服务。在学习或者工作日常中&#xff0c;有时候会需要在 Windows 系统环境下去启动 jar 包或其它服务&#xff0c;此时如果使用关…

QA测试开发工程师面试题满分问答24: 用过哪些消息队列,各自的特点和优缺点是什么,结合项目实际说一说

回答思路 回答开头: 首先表达我对这个问题的认真态度,并表示我将根据自己的项目实践经验来回答。 列举使用过的消息队列: 根据我参与过的项目经验,我使用过以下几种主流的消息队列: RabbitMQApache KafkaRedis 的 pub/sub 功能 分别介绍各消息队列的特点: RabbitMQ: 特点: 基于…

机器学习-1-了解机器学习machine learning的基本概念

参考机器学习算法 - 一文搞懂ML(机器学习) 参考机器学习算法 - 一文搞懂SL(监督学习) 参考机器学习算法 - 一文搞懂UL(无监督学习) 1 机器学习 1.1 机器学习的本质 基本思路:无论使用什么样的算法和数据,机器学习的基本思路都可以归结为以下三个核心步骤。 (1)问题…

label-studio安装与简单使用

Label Studio是一个开源数据标注工具&#xff0c;支持包括图像、音频、文本、视频等多领域数据在内的各种数据类型。这里主要介绍一下Label Studio的安装、启动以及利用其进行人头标注。 Label Studio官网&#xff1a;Open Source Data Labeling | Label StudioA flexible dat…

Kubernetes核心组件Ingress详解

1.1 Ingress介绍 Kubernetes 集群中&#xff0c;服务&#xff08;Service&#xff09;是一种抽象&#xff0c;它定义了一种访问 Pod 的方式&#xff0c;无论这些 Pod 如何变化&#xff0c;服务都保持不变。服务可以被映射到一个静态的 IP 地址&#xff08;ClusterIP&#xff09…

Sora,数据驱动的物理引擎

文生视频技术 Text-to-Video 近日&#xff0c;Open AI发布文生视频模型Sora&#xff0c;能够生成一分钟高保真视频。人们惊呼&#xff1a;“真实世界将不再存在。” Open AI自称Sora是“世界模拟器”&#xff0c;让“一句话生成视频”的AI技术向上突破了一大截&#xff0c;引…

社会工程学:美色你顶得住吗?

背景 近年来&#xff0c;网络钓鱼的手段是屡见不鲜&#xff0c;手段和方式也是层出不穷。钓鱼相关的技术作为一种比较高效的打点方式&#xff0c;越来越多的应用于红蓝对抗当中。本文主要分享一次实战攻防中几个有趣的钓鱼场景。 重点说明&#xff1a;本文分享内容为一次经过授…

网络故障排除—NAT-源进源出

多网络双出口一边是运营商A,一边是运营商B&#xff0c;将内网服务器分别映射到运营商B和运营商A出口。查了保证内部上网用户网速快管理员开启了运营商选路功能&#xff0c;运营商B的网站从运营商B出去&#xff0c;然后写有两条等价默认路由分别指向两个外网出口。营商A的网站从…

10.Redis之set类型

谈到一个术语,这个术语很可能有多种含义~~ 1.Set 1) 集合. 2)设置 (和 get 相对应) 集合就是把一些有关联的数据放到一起~~ 1.集合中的元素是无序的! 【此处说的无序和 前面list这里的有序 是对应的, 有序: 顺序很重要. 变换一下顺序, 就是不同的 list 了 无序: 顺序不…

Java面试八股之volatile变量的作用

volatile变量的作用 内存可见性&#xff1a;volatile关键字最重要的作用是保证了变量的内存可见性。当一个线程修改了被volatile修饰的变量&#xff0c;这个修改会立即对其他线程可见&#xff0c;即使这些线程在不同的处理器上执行。这意味着volatile变量的更新不会被编译器优…

TypeScript-初识

TypeScript 是具有类型语法的JavaScript&#xff0c;是一门强类型的编程语言 变量不能做随意类型赋值 好处&#xff1a; 1️⃣ 静态类型检查&#xff0c;提前发现代码错误 function arrToStr(arr: Array<string>){return arr.join() } arrToStr(123) // 类型“stri…

GPT-4 与 GPT-4 Turbo有什么区别?

在不断发展的人工智能和自然语言处理领域&#xff0c;OpenAI 的 GPT 系列一直走在最前沿&#xff0c;彻底改变了机器理解和生成类人文本的方式。每一次迭代&#xff0c;进步都会突破可能性的界限。 最新的条目 GPT-4 和 GPT-4 Turbo 引起了人工智能社区内外的极大兴趣和争论。…

【ARM+Codesys案例】T3/RK3568/树莓派+Codesys绕线机控制方案—运动控制器,支持定制

绕线机控制方案 SC 系列运动控制器 绕线机就是把线状的物体缠绕到特定的工件上的机器。凡是电器产品大多需要用漆包铜线(简称漆包线)绕制成电感线圈。绕线机从线圈设计、参数分析、数控编程、到自动补偿技术的实现、整个绕线工艺过程自适应诊断及控制、排线部分运动自适应干涉…