Linux 5.5 用 dkms 安装 wireguard 时提示内核不受支持

2020-07-01 21:27:10 +08:00
 mrcn

Wireguard 在 5.6 被合入了主线,5.5 及之前的内核需要用 dkms 安装进内核。

发行版:Debian 10 Buster

执行apt install wireguard-dkms,产生如下报错:

Error!  The dkms.conf for this module includes a BUILD_EXCLUSIVE directive which
does not match this kernel / arch.  This indicates that it should not be built.
Skipped.

难道是 dkms 出 Bug 了吗?

3105 次点击
所在节点    问与答
16 条回复
mrcn
2020-07-01 21:27:35 +08:00
[dkms.conf](git.zx2c4.com/wireguard-linux-compat/tree/src/dkms.conf) 中的正则手动测了一下,是可以匹配的。
mrcn
2020-07-01 21:28:42 +08:00
内核包名是
5.5.0-0.bpo.2-amd64
vk42
2020-07-01 21:29:50 +08:00
你用的什么特殊版本内核或非主流架构?
dullwit
2020-07-01 21:34:27 +08:00
mrcn
2020-07-01 21:56:45 +08:00
@vk42 就在 backports 源里面的内核呀
packages.debian.org/buster-backports/linux-image-5.5.0-0.bpo.2-amd64
很正常的好嘛= =
mrcn
2020-07-01 21:58:35 +08:00
@dullwit 这个看过了,不知道他用的什么内核,他也是 dkms 装的但是没报错。。安装那里他就一笔带过了
我这 dkms 会报错内核不支持
mrcn
2020-07-01 22:02:35 +08:00
本来是想升级内核到 5.6 直装的,不过升级完内核后再 apt install wireguard 会很奇怪的再要求我安装次别的内核,而且是 rt 后缀的也就是实时的,所以就回退到 5.5 了。
dullwit
2020-07-01 22:06:52 +08:00
@mrcn #6 我在之前在 debian buster 上安装的,内核版本是 4.19 ,后面改成跑在 docker 里面了
docker-compose 配置是这样的
```yaml
version: "2.1"
services:
wireguard:
image: lsiodev/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
- SERVERURL=xxxx.com #optional
- SERVERPORT=51820 #optional
- PEERS=1 #optional
- PEERDNS=114.114.114.114 #optional
- INTERNAL_SUBNET=10.13.13.0 #optional
volumes:
- ./config:/config
- /lib/modules:/lib/modules
- /usr/src:/usr/src
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
```
mrcn
2020-07-01 22:11:15 +08:00
@dullwit 其实我之前就是用的 lsio 的镜像,不过有很严重的 Bug,提了[issue](github.com/linuxserver/docker-wireguard/issues/29)官方感觉也没有什么欲望去解决,才想着用原生内核装。。

谢谢你的热心帮助
wsy2220
2020-07-01 22:13:49 +08:00
建议直接装 5.6 内核
dullwit
2020-07-01 22:15:02 +08:00
@mrcn #9 我用 linuxserver/wireguard 在 debian 下有 bug,然后把镜像改成 Isodev/wireguard 就正常了,实在不行就用$$ server,要简单一点
ericFork
2020-07-02 03:13:18 +08:00
ericFork
2020-07-02 03:16:37 +08:00
另外 buster-backports 源的 5.5.17 就已经把 wg module backport 了,不需要再安装 wireguard-dkms 包,装 wireguard 这个包就可以了
mason961125
2020-07-02 03:59:09 +08:00
@mrcn #7 你试试直接装 apt install wireguard-dkms 就不会要求你装 gce 的那个内核了,真的非常的睿智这个操作。
mrcn
2020-07-02 10:14:45 +08:00
@mason961125 #14 dkms 装不上啊,主帖就是说的这个事😂
@ericFork #13 wireguard 会蜜汁依赖上一个 5.6.0-rt 的内核。

感谢各位的帮助,昨晚升级 5.6 的时候脑子可能不清醒,升级内核后还在想办法装 wireguard 。今天考虑到已经合并进内核了所以只装了个 wireguard-tools,直接用果然就行了。
低版本下这玩意依赖很迷,建议有类似遭遇的尽量考虑直接升级内核。
mason961125
2020-07-02 23:21:18 +08:00
@mrcn #15 我现在用的 4.19.0,某一次更新 wireguard 这个包的时候,让安装 gce 的内核,我就非常的奇怪。然后我尝试删了 wireguard 的全部包,然后直接装 wireguard-dkms,就不要求装 gce 的那个内核了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/686367

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX