Hi, everyone. I want to install Wireguard client to route all traffic through VPN. I've installed packages, set up connection through web ui, but nothing is happening. Wireguard status page is empty and network interface is not connected.
From what I understand, wireguard kernel module is not being loaded:
root@OpenWrt:~# wg show
root@OpenWrt:~# lsmod | grep wireguard
root@OpenWrt:~# modprobe wireguard
1 module could not be probed
- wireguard
Log shows some errors:
daemon.err modprobe: 1 module could not be probed
daemon.err modprobe: - wireguard
daemon.notice netifd: wg0 (32404): RTNETLINK answers: Not supported
kern.warn kernel: [41283.517132] wireguard: Unknown symbol udp_sock_create4 (err -2)
kern.warn kernel: [41283.523143] wireguard: Unknown symbol dst_cache_set_ip4 (err 0)
kern.warn kernel: [41283.529069] wireguard: Unknown symbol udp_tunnel6_xmit_skb (err -2)
kern.warn kernel: [41283.535490] wireguard: Unknown symbol dst_cache_destroy (err 0)
kern.warn kernel: [41283.541472] wireguard: Unknown symbol dst_cache_init (err 0)
kern.warn kernel: [41283.547331] wireguard: Unknown symbol udp_tunnel_sock_release (err -2)
kern.warn kernel: [41283.554038] wireguard: Unknown symbol setup_udp_tunnel_sock (err -2)
kern.warn kernel: [41283.560400] wireguard: Unknown symbol udp_sock_create6 (err -2)
kern.warn kernel: [41283.566496] wireguard: Unknown symbol dst_cache_get_ip6 (err 0)
kern.warn kernel: [41283.572503] wireguard: Unknown symbol dst_cache_get_ip4 (err 0)
kern.warn kernel: [41283.578452] wireguard: Unknown symbol dst_cache_set_ip6 (err 0)
kern.warn kernel: [41283.584480] wireguard: Unknown symbol udp_tunnel_xmit_skb (err -2)
Not sure where to go from here. Please help!
I use OpenWrt 19.07.4 on Xiaomi Router 4. I'm new to OpenWrt so if there is some more info I can provide please tell.
root@OpenWrt:~# modprobe udp_tunnel
udp_tunnel is already loaded
root@OpenWrt:~# modprobe ip6_udp_tunnel
ip6_udp_tunnel is already loaded
root@OpenWrt:~# modprobe wireguard
1 module could not be probed
- wireguard
Thank you. I'll try building the image myself and see if it works.
Fixes for module not loading on Ubuntu were a) upgrading kernel, or b) installing linux-headers-$(uname -r). But looks like this package does not exist for OpenWrt.
Thanks. I tried it and it didn't work. I even re-flashed sysupgrade image. I'll build the system image myself next.
Update: I built an image with wireguard enabled in menuconfig. This worked perfectly, and now I have the setup I want.
For the record, I don't know what caused the original problem. Wireguard kernel module didn't see symbols declared in udp_tunnel and ip6_udp_tunnel. I found this email from original creator of wireguard module, who had the same issue in 2016.