工程案例

OpenWRT 22.3.0 编译N2N

来源:本站添加时间:2022-05-02 点击:
       现有两台斐讯K2G(联发科MIPS架构),已刷入Openwrt 22.3.0系统,需要安装n2n 测试基于p2p的vpn。最老的版本系统安装源自带n2n包,通过opkg install n2n即可安装,新版本openwrt已经没有n2n包了,需要手动编译。编译有两种方式 本地编译(在openwrt系统中编译,需要在openwrt中安装开发包,这个对存储空间要求大,k2g路由器只有8M的flash)  ,交叉编译(在X86平台上通过SDK包编译软件后上传至Openwrt系统中进行安装)
 
        先提供下载地址
openwrt 官网 https://www.openwrt.org
openwrt 官网编译指南 https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem
清华大学镜像源 https://mirrors.tuna.tsinghua.edu.cn/
n2n github 官网仓库 https://github.com/ntop/n2n/
n2n-2.8 官方编译说明https://github.com/ntop/n2n/tree/2.8-stable/packages/openwrt

1.到 openwrt官网通过路由器的型号进行搜索下载 sdk

1.2下个页面输入设备型号,选择可用系统版本

1.3通过下面这个链接下载 sdk包

1.4复制下面这个链接,下载到编译平台(Centos 8 Stream)

如果下载速度慢,就到清华大学镜像源下载,到相同的目录下载防止下载错误

1.6 在centos 8 /root目录下 解压 该sdk包
#tar -xf  openwrt-sdk*

2.1安装Cenotos平台基本编译工具,ubuntu也有相应的说明
参照:https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem
执行以下命令
sudo dnf --setopt install_weak_deps=False --skip-broken install
bash-completion bzip2 gcc gcc-c++ git make ncurses-devel patch
rsync tar unzip wget which diffutils python2 python3 perl-base
perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin
perl-Thread-Queue

2.2 sdk目录下 更新feed,下载n2n 并且拷贝openwrt平台源码到 sdk目录下

./scripts/feeds update -a  
git clone https://github.com/ntop/n2n n2n
cp -r n2n/packages/openwrt package/n2n

2.3 通过make命令选择需要编译的软件包,并保存(M代表选择,package下有n2n文件夹,系统默认就是选择的)
make menuconfig # select Network -> VPN -> n2n-edge and n2n-supernode



光标移至Save 回车保存
2.4正式编译 V=s 表示多线程编译
make package/n2n/compile V=s
2.5 编译结果无错误说明编译成功,即可搜到生成的ipk文件
find . -name 'n2n*ipk'

2.6把搜到的n2n ipk包复制到目标系统进行安装

2.7安装n2n ipk时可能提示以下错误,是因为缺少依赖包

Unknown package 'n2n-edge'.
Collected errors:
 * pkg_hash_check_unresolved: cannot find dependency kmod-tun for n2n-edge
 * pkg_hash_check_unresolved: cannot find dependency resolveip for n2n-edge
 * pkg_hash_check_unresolved: cannot find dependency libopenssl for n2n-edge
 * pkg_hash_fetch_best_installation_candidate: Packages for n2n-edge found, but incompatible with the architectures configured
 * opkg_install_cmd: Cannot install package n2n-edge.
解决办法:
opkg update #如果这一步提示错误,反复尝试,或者切换国内镜像源后重试
opkg install kmod-tun
opkg install resolveip
opkg install libopenssl

2.8 openwrt平台安装好 n2n后,配置文件再/etc/n2n/edge.conf  。启动方式 /etc/init.d/edge start

编译问题FAQ:
1.Centos8上下载资源文件太慢,解放方法:通过socks5全局代理或者vpn
2.编译失败,删除sdk目录,重新解压再操作

3. 斐讯K2G使用22.3.0版本容易出现重启后配置丢失,lan口地址获取不到ip等
4.高版本sdk编译的ipk包,可以在较近的低版本中使用,如22.3编译的19.7版本实际测试可用
 
 
 

 


首页
电话
短信
联系