银河麒麟V10 wireguard 编译

系统信息

操作系统信息:
在这里插入图片描述

我这里使用的操作系统是 银河麒麟V10,CPU为飞腾 ARM64

根据wireguard 的编译指南:https://www.wireguard.com/compilation/

安装

编译安装内核

注意:5.6 以上内核不需要编译安装,已经集成在内核中。

安装依赖

sudo yum install elfutils-libelf-devel kernel-devel pkgconfig "@Development Tools"

下载源代码

git clone https://git.zx2c4.com/wireguard-linux-compat
git clone https://git.zx2c4.com/wireguard-tools

运行编译命令

make -C wireguard-linux-compat/src -j$(nproc)

编译大概率会出下这样的报错

compat.h:93:42: 错误:‘const struct ipv6_stub’ has no member named ‘ipv6_dst_lookup’;

在这里插入图片描述

当前操作系统内核信息为:4.19.90-25.5.v2101.ky10.aarch64

wireguard内部为了兼容不同的操作系统内核,使用了条件编译,似乎 麒麟的这个内核版本不在它的条件编译中,这里需要手动修复编译命令。

错误发生在 wireguard-linux-compat/src/compat/compat.h:93 我们vim打开编译把条件语句关闭。

vim wireguard-linux-compat/src/compat/compat.h

在这里插入图片描述
将错误的推断语句注释,如下:

在这里插入图片描述

注释后再次编译

make -C wireguard-linux-compat/src -j$(nproc)

编译成功

在这里插入图片描述

方式1 手动安装 加载

将编译好的源代码安装至内核目录:

make -C wireguard-linux-compat/src install

在这里插入图片描述

虽然这里出现了 SSL error但是并不影响功能。

手动加载模块

modprobe  wireguard
lsmod|grep wireguard

在这里插入图片描述

方式2 DKMS 安装

通过编译后我们使用 dkms 来安装模块,首先安装 dkms工具

yum install dkms -y

在这里插入图片描述

进入源代码的src

cd wireguard-linux-compat/src

执行

make dkms-install 

dkms 将会把源码复制/usr/src/wireguard
在这里插入图片描述
进入/usr/src 添加 wireguard

cd /usr/src
dkms add wireguard

成功后将会创建一个link,如下 请注意版本号 后续将会使用到
在这里插入图片描述

接下来编译源码,名称为 wireguard/ + 版本号

dkms build wireguard/1.0.20220627

在这里插入图片描述

若编译无误,接下来就可以安装内核模块了,同样需要指定版本

dkms install wireguard/1.0.20220627

在这里插入图片描述

安装后,查看是否安装成功

lsmod |grep wireguard

在这里插入图片描述

若列表中没有,那么可以手动加载

modprobe  wireguard

编译工具

make -C wireguard-tools/src -j$(nproc)
make -C wireguard-tools/src install

在这里插入图片描述
完成后可以使用 验证

wg --version 

卸载

卸载内核模块

modprobe  -r wireguard ip6_udp_tunnel udp_tunnel

卸载内核

dkms uninstall  wireguard/1.0.20220627

在这里插入图片描述

删除文件

dkms remove wireguard/1.0.20220627 --all

在这里插入图片描述

参考文献

[1]. reddit . Up to date Ubuntu 18.04.4: cannot compile wireguard 20200520 installed from PPA against 4.15.0-106-generic (x86_64) . 2020 . https://www.reddit.com/r/WireGuard/comments/h0tkzt/up_to_date_ubuntu_18044_cannot_compile_wireguard/
[2]. csdn . (一)手动编译安装wireguard . laobeng . 2022.05 . https://blog.csdn.net/laobeng/article/details/124747160

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值