mirror of
https://github.com/amnezia-vpn/amneziawg-linux-kernel-module.git
synced 2026-10-14 05:41:56 +00:00
[GH-ISSUE #252] Build failure for amneziawg 1.0.0 on Proxmox kernel 7.0.14-17-pve / 7.0.14-19-pve (setup_udp_tunnel_sock incompatible pointer type) #137
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
amnezia-vpn/amneziawg-linux-kernel-module#137
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @papagruz on GitHub (Sep 21, 2026).
Original GitHub issue: https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/issues/252
Description
I'm trying to build the amneziawg DKMS module on Proxmox VE 9 with kernel 7.0.14-17-pve and 7.0.14-19-pve, but the build fails. It worked fine on previous Proxmox kernels.
Environment
Steps to reproduce
apt upgrade, which triggers DKMS autoinstall for the new kernel.Expected behavior
The module builds and installs successfully.
Actual behavior
The build fails with an incompatible pointer type error in
setup_udp_tunnel_sock.Relevant excerpt from
make.log:Full
make.logis attached.Additional context
include/net/udp_tunnel.hnow expectsstruct sock *as the second argument ofsetup_udp_tunnel_sock, butcompat/compat.hpassessk->sk_socket, which isstruct socket *.compat.hneeds an update to handle this API change for newer Proxmox kernels.Attachments:
make.logpveversion -vuname -rdkms statusdkms.txt
uname.txt
pveversion.txt
make.log
@papagruz commented on GitHub (Sep 22, 2026):
I found the cause and tested a working workaround.
The compatibility code in
src/compat/compat.hcurrently contains:@MrFree commented on GitHub (Oct 2, 2026):
The same behavior on Ubuntu 26.04.1 LTS / linux-image-7.0.0-38-generic, on the previous (7.0.0-34) version everything works fine.
make.log
@toxa70x4 commented on GitHub (Oct 2, 2026):
/usr/src/amneziawg-1.0.0/compat/compat.h
Нужно привести конец файла к такому виду. Если у Вас два ядра в ubuntu, 7.0.0-34 (или ниже) и 7.0.0-38
@papagruz commented on GitHub (Oct 2, 2026):
Я проверил проблему на Ubuntu 26.04 с ядрами 7.0.0-34 и 7.0.0-38. В upstream amneziawg 1.0.0 макрос совместимости всегда передаёт sk->sk_socket, но начиная с 7.0.0-38 функция setup_udp_tunnel_sock() ожидает struct sock *. Из-за этого DKMS-модуль не собирается на новом ядре.
Исправил compat.h, чтобы учитывать API обоих ядер: для Ubuntu ABI ниже 38 передавать sk->sk_socket, а для ABI 38 и новее — sk. После этого собрал пакет amneziawg-dkms 1.0.0+pve7fix3 и установил его через локальный подписанный APT-репозиторий.
Проверка успешна: модуль собрался для обоих установленных ядер — 7.0.0-34-generic и 7.0.0-38-generic. Это подтверждает, что исправление позволяет обновляться, сохраняя оба ядра установленными. Предупреждения DKMS о REMAKE_INITRD и Secure Boot на сборку не повлияли.