V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mrcn
V2EX  ›  问与答

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

  •  1
     
  •   mrcn · 2020-07-01 21:27:10 +08:00 · 2981 次点击
    这是一个创建于 1385 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 了吗?

    16 条回复    2020-07-02 23:21:18 +08:00
    mrcn
        1
    mrcn  
    OP
       2020-07-01 21:27:35 +08:00
    [dkms.conf](git.zx2c4.com/wireguard-linux-compat/tree/src/dkms.conf) 中的正则手动测了一下,是可以匹配的。
    mrcn
        2
    mrcn  
    OP
       2020-07-01 21:28:42 +08:00
    内核包名是
    5.5.0-0.bpo.2-amd64
    vk42
        3
    vk42  
       2020-07-01 21:29:50 +08:00
    你用的什么特殊版本内核或非主流架构?
    mrcn
        5
    mrcn  
    OP
       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
        6
    mrcn  
    OP
       2020-07-01 21:58:35 +08:00
    @dullwit 这个看过了,不知道他用的什么内核,他也是 dkms 装的但是没报错。。安装那里他就一笔带过了
    我这 dkms 会报错内核不支持
    mrcn
        7
    mrcn  
    OP
       2020-07-01 22:02:35 +08:00
    本来是想升级内核到 5.6 直装的,不过升级完内核后再 apt install wireguard 会很奇怪的再要求我安装次别的内核,而且是 rt 后缀的也就是实时的,所以就回退到 5.5 了。
    dullwit
        8
    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
        9
    mrcn  
    OP
       2020-07-01 22:11:15 +08:00
    @dullwit 其实我之前就是用的 lsio 的镜像,不过有很严重的 Bug,提了[issue](github.com/linuxserver/docker-wireguard/issues/29)官方感觉也没有什么欲望去解决,才想着用原生内核装。。

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

    感谢各位的帮助,昨晚升级 5.6 的时候脑子可能不清醒,升级内核后还在想办法装 wireguard 。今天考虑到已经合并进内核了所以只装了个 wireguard-tools,直接用果然就行了。
    低版本下这玩意依赖很迷,建议有类似遭遇的尽量考虑直接升级内核。
    mason961125
        16
    mason961125  
       2020-07-02 23:21:18 +08:00
    @mrcn #15 我现在用的 4.19.0,某一次更新 wireguard 这个包的时候,让安装 gce 的内核,我就非常的奇怪。然后我尝试删了 wireguard 的全部包,然后直接装 wireguard-dkms,就不要求装 gce 的那个内核了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3257 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:16 · PVG 22:16 · LAX 07:16 · JFK 10:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.