带有 18.04 和内核 5.3.0-53-generic 的 WireGuard ppa?

Luc*_*s W 6 kernel 18.04 wireguard

我今天运行了更新和升级,但无法启动 WireGuard:

$ sudo wg-quick up wg0
[#] ip link add wg0 type wireguard
Error: Unknown device type.
Unable to access interface: Protocol not supported
Run Code Online (Sandbox Code Playgroud)

清除并重新安装 WireGuard 会导致:

Setting up wireguard-dkms (1.0.20200429-2~18.04) ...
Loading new wireguard-1.0.20200429 DKMS files...
Building for 5.3.0-53-generic
Building initial module for 5.3.0-53-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/wireguard-dkms.0.crash'
Error! Bad return status for module build on kernel: 5.3.0-53-generic (x86_64)
Consult /var/lib/dkms/wireguard/1.0.20200429/build/make.log for more information.
Setting up wireguard-tools (1.0.20200513-1~18.04) ...
wg-quick.target is a disabled or a static unit, not starting it.
Setting up wireguard (1.0.20200513-1~18.04) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Run Code Online (Sandbox Code Playgroud)
ProblemType: Package
DKMSBuildLog:
 DKMS make.log for wireguard-1.0.20200429 for kernel 5.3.0-53-generic (x86_64)
 Wed May 20 09:54:57 PDT 2020
 make: Entering directory '/usr/src/linux-headers-5.3.0-53-generic'
   CC [M]  /var/lib/dkms/wireguard/1.0.20200429/build/main.o
   CC [M]  /var/lib/dkms/wireguard/1.0.20200429/build/noise.o
   CC [M]  /var/lib/dkms/wireguard/1.0.20200429/build/device.o
   CC [M]  /var/lib/dkms/wireguard/1.0.20200429/build/peer.o
   CC [M]  /var/lib/dkms/wireguard/1.0.20200429/build/timers.o
   CC [M]  /var/lib/dkms/wireguard/1.0.20200429/build/queueing.o
   CC [M]  /var/lib/dkms/wireguard/1.0.20200429/build/receive.o
   CC [M]  /var/lib/dkms/wireguard/1.0.20200429/build/send.o
 In file included from <command-line>:0:0:
 /var/lib/dkms/wireguard/1.0.20200429/build/compat/compat.h:1024:20: error: redefinition of ‘skb_reset_redirect’
  static inline void skb_reset_redirect(struct sk_buff *skb)
                     ^~~~~~~~~~~~~~~~~~
 In file included from /var/lib/dkms/wireguard/1.0.20200429/build/compat/compat.h:870:0,
                  from <command-line>:0:
 ./include/linux/skbuff.h:4476:20: note: previous definition of ‘skb_reset_redirect’ was here
  static inline void skb_reset_redirect(struct sk_buff *skb)
                     ^~~~~~~~~~~~~~~~~~
 In file included from <command-line>:0:0:
 /var/lib/dkms/wireguard/1.0.20200429/build/compat/compat.h:1024:20: error: redefinition of ‘skb_reset_redirect’
  static inline void skb_reset_redirect(struct sk_buff *skb)
Run Code Online (Sandbox Code Playgroud)

最初,我用 ppa:wireguard/wireguard 安装了它 - 现在这个内核的安装是否不同?

Lau*_*mon 3

此后,wireguard-dkms 已更新。1.0.20200506-1~18.04版本修复了这个问题。现在,它适用于内核 5.3.0-53,但它不再适用于 5.3-051 版本...


小智 1

在 5.3.0-1020-azure 中遇到了同样的问题。对于那些无法升级/降级其内核的人(例如 GitHub Actions 中的托管 CI 运行程序),安装一些旧版本是有效的:

sudo apt install dkms

curl -L -o wireguard-tools.deb https://launchpad.net/~wireguard/+archive/ubuntu/wireguard/+build/19291633/+files/wireguard-tools_1.0.20200510-1~18.04_amd64.deb
curl -L -o wireguard-dkms.deb https://launchpad.net/~wireguard/+archive/ubuntu/wireguard/+build/19258545/+files/wireguard-dkms_1.0.20200429-2~18.04_all.deb

sudo dpkg -i wireguard-tools.deb
sudo dpkg -i wireguard-dkms.deb

sudo modprobe wireguard
Run Code Online (Sandbox Code Playgroud)