本文记录在 Linux 环境下用 OpenWrt-23.05 SDK 编译运行 frp 软件包的步骤。
实验使用的电脑如下:
CPU:
Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz
操作系统:
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
参考【安装笔记-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
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
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
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
./scripts/feeds install frp
git clone -b openwrt-23.05 https://gitee.com/david921518/openwrt-frp.git
rm -rf feeds/packages/net/frp
cp -af openwrt-frp feeds/packages/net/frp
make package/frp/compile V=s
因为没有 .config 配置文件,会显示以下配置界面:
编译出错,信息如下:
提示需要 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
最后,成功编译,画面如下:
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 软件包的步骤,并指出过程中遇到的问题及解决方法。