OpenVPN / ovpn-dco

OpenVPN Data Channel Offload in the linux kernel
101 stars 23 forks source link

Error building on Ubuntu Jammy-based distro #57

Closed socketbox closed 5 months ago

socketbox commented 5 months ago

When I attempt to install the DCO module (apt install kmod-ovpn-dco), this output is displayed:

[2024-01-20 03:24:27]» apt install kmod-ovpn-dco  
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
kmod-ovpn-dco is already the newest version (0.20220601~git2db65af+jammy).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up kmod-ovpn-dco (0.20220601~git2db65af+jammy) ...
Removing old ovpn-dco-0-20220601git2db65af DKMS files...
Deleting module ovpn-dco-0-20220601git2db65af completely from the DKMS tree.
Loading new ovpn-dco-0-20220601git2db65af DKMS files...
Building for 6.5.0-14-generic
Building initial module for 6.5.0-14-generic
ERROR (dkms apport): kernel package linux-headers-6.5.0-14-generic is not supported
Error! Bad return status for module build on kernel: 6.5.0-14-generic (x86_64)
Consult /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/make.log for more information.
dpkg: error processing package kmod-ovpn-dco (--configure):
 installed kmod-ovpn-dco package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
 kmod-ovpn-dco
E: Sub-process /usr/bin/dpkg returned an error code (1)

The log contains this:

DKMS make.log for ovpn-dco-0-20220601git2db65af for kernel 6.5.0-14-generic (x86_64)                                                                       │
Sat Jan 20 03:26:16 AM EST 2024                                                                                                                            │
make: Entering directory '/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build'                                                                               │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/gen-compat-autoconf.sh /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/compat-autoconf.h               │
make -C /lib/modules/6.5.0-14-generic/build M=/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build PWD=/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build      │
áREVISION=ovpn:0-20220601git2db65af CONFIG_OVPN_DCO=m INSTALL_MOD_DIR=updates/ modules                                                                     │
make[1]: Entering directory '/usr/src/linux-headers-6.5.0-14-generic'                                                                                      │
warning: the compiler differs from the one used to build the kernel                                                                                        │
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0                                                                   │
  You are using:           gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0                                                                                    │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/main.o                                                                    │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/bind.o                                                                    │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/crypto.o                                                                  │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/ovpn.o                                                                    │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/peer.o                                                                    │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/sock.o                                                                    │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/stats.o                                                                   │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/netlink.o                                                                 │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/crypto_aead.o                                                             │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/pktid.o                                                                   │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/tcp.o                                                                     │
  CC [M]  /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/udp.o                                                                     │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/peer.c: In function ‘ovpn_peer_create’:                                             │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/peer.c:91:9: error: implicit declaration of function ‘netif_tx_napi_add’; did you   │
ámean ‘netif_napi_add’? [-Werror=implicit-function-declaration]                                                                                            │
   91 |         netif_tx_napi_add(ovpn->dev, &peer->napi, ovpn_napi_poll,                                                                                  │
      |         ^~~~~~~~~~~~~~~~~                                                                                                                          │
      |         netif_napi_add                                                                                                                             │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/netlink.c:933:21: error: initialization of ‘int (*)(const struct genl_split_ops *,  │
ástruct sk_buff *, struct genl_info *)’ from incompatible pointer type ‘int (*)(const struct genl_ops *, struct sk_buff *, struct genl_info *)’ [-         │
áWerror=incompatible-pointer-types]                                                                                                                        │
  933 |         .pre_doit = ovpn_pre_doit,                                                                                                                 │
      |                     ^~~~~~~~~~~~~                                                                                                                  │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/netlink.c:933:21: note: (near initialization for ‘ovpn_netlink_family.pre_doit’)    │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/netlink.c:934:22: error: initialization of ‘void (*)(const struct genl_split_ops *, │
ástruct sk_buff *, struct genl_info *)’ from incompatible pointer type ‘void (*)(const struct genl_ops *, struct sk_buff *, struct genl_info *)’ [-        │
áWerror=incompatible-pointer-types]                                                                                                                        ├
  934 |         .post_doit = ovpn_post_doit,                                                                                                               │
      |                      ^~~~~~~~~~~~~~                                                                                                                │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/netlink.c:934:22: note: (near initialization for ‘ovpn_netlink_family.post_doit’)   │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/ovpn.c: In function ‘ovpn_net_xmit’:                                                │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/ovpn.c:465:28: error: implicit declaration of function ‘skb_gso_segment’; did you   │
ámean ‘skb_gso_reset’? [-Werror=implicit-function-declaration]                                                                                             │
  465 |                 segments = skb_gso_segment(skb, 0);                                                                                                │
      |                            ^~~~~~~~~~~~~~~                                                                                                         │
      |                            skb_gso_reset                                                                                                           │
/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/ovpn.c:465:26: warning: assignment to ‘struct sk_buff *’ from ‘int’ makes pointer   │
áfrom integer without a cast [-Wint-conversion]                                                                                                            │
  465 |                 segments = skb_gso_segment(skb, 0);                                                                                                │
      |                          ^                                                                                                                         │
cc1: some warnings being treated as errors                                                                                                                 │
make[4]: *** [scripts/Makefile.build:251: /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/peer.o] Error 1                           │
make[4]: *** Waiting for unfinished jobs....                                                                                                               │
cc1: some warnings being treated as errors                                                                                                                 │
make[4]: *** [scripts/Makefile.build:251: /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/netlink.o] Error 1                        │
cc1: some warnings being treated as errors                                                                                                                 │
make[4]: *** [scripts/Makefile.build:251: /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco/ovpn.o] Error 1                           │
make[3]: *** [scripts/Makefile.build:488: /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build/drivers/net/ovpn-dco] Error 2                                  │
make[2]: *** [/usr/src/linux-headers-6.5.0-14-generic/Makefile:2037: /var/lib/dkms/ovpn-dco/0-20220601git2db65af/build] Error 2                            │
make[1]: *** [Makefile:234: __sub-make] Error 2                                                                                                            │
make[1]: Leaving directory '/usr/src/linux-headers-6.5.0-14-generic'                                                                                       │
make: *** [Makefile:52: all] Error 2                                                                                                                       │
make: Leaving directory '/var/lib/dkms/ovpn-dco/0-20220601git2db65af/build'                                                                                │

Documentation here indicates that Ubuntu users should use openvpn-dco-dkms as a package name, but I wasn't able to find such a package. However, I did find kmod-ovpn-dco in my repositories, so I went with that. Please let me know if I've somehow gone astray in this regard.

socketbox commented 5 months ago

This was reported in error. I later discovered that the repository that I was using as a source was not that which was listed in the documentation (hence the discrepancy in package names).