Issue fixed : declaration of memcpy_from_msg function wanpipe driver was the issue . Current wanpipe driver is not compatible with kernel 3.10.0-693.2.2.el7
He is not using the FreePBX distro but a “real” Centos…
The package we use would quite likely be compatible (especially since Sangoma 7 is derived from Centos 7) but I am not sure I would start mix and matching packages like that… If something in the repo is ever meant solely for Sangoma 7 (s)he might break his system…
The issue i found was a duplicate declaration function in wanpipe wanpipe-7.0.21/kdrvtmp/af_wanpipe_src.c memcpy_from_msg(void *data, struct msghdr *msg, int len) . So i modified the file /usr/src/kernels/3.10.0-693.2.2.el7.x86_64/include/linux/skbuff.h and commented the function . It’s working fine . Hope this will help some one until it get fixed
Thanks
The real solution would be to have the modifications that were done for the distro published on the FTP site…
I opened a ticket for this for the distro a few days ago (we needed a new package because of the kernel change) and it is still not closed because there is something else to take care of.
While this is not a FreePBX distro issue I am sure that the person who is taking care of the Wanpipe package for the FreePBX distro will know what to do so I will put a comment about your issue there…
Have a nice day!
Nick
Ps: I am currently writing this from my phone as I am currently on my way to work. It’s possible I might have to wait until I get there to add that comment because it truly is a pain to write on the phone with the nice roads we have here…
I’m having this same issue - is there a workaround for now? Like something in the source I can modify to get it to compile. Or a specific earlier version of wanpipe?
To expand on the error for anyone trying to help:
CC [M] /usr/src/wanpipe-7.0.21/kdrvtmp/af_wanpipe_src.o
/usr/src/wanpipe-7.0.21/kdrvtmp/af_wanpipe_src.c:88:19: error: redefinition of ‘memcpy_from_msg’
static inline int memcpy_from_msg(void *data, struct msghdr *msg, int len)
^
In file included from include/linux/ip.h:20:0,
from include/net/ip.h:26,
from //usr/include/wanpipe/linux/wanpipe_includes.h:259,
from /usr/src/wanpipe-7.0.21/kdrvtmp/af_wanpipe_src.c:36:
include/linux/skbuff.h:3064:19: note: previous definition of ‘memcpy_from_msg’ was here
static inline int memcpy_from_msg(void *data, struct msghdr *msg, int len)
^
make[2]: *** [/usr/src/wanpipe-7.0.21/kdrvtmp/af_wanpipe_src.o] Error 1
When I had that problem last week I temporarily switched to the previous kernel until it was resolved (the problem has been fixed in the FreePBX distro as I mentioned earlier).
There are security issues in the previous kernel, some of them don’t require actual access to your system (but require physical proximity to the system) like Blueborne (Bluetooth vulnerability which affects Linux, Android, Windows and some versions of ios…). If you have the Bluetooth hardware and it is active you could be hacked that way…
They might not be the people who will actually take care of getting this updated but I am sure they know who will…
As for using a specific version of Wanpipe, the package we use for the FreePBX distro (7.0.20.13-1) might work but I would not recommend you add the FreePBX distro repos on your system, this sounds like an eventual recipe for disaster…
make[1]: Entering directory /usr/src/kernels/3.10.0-862.2.3.el7.x86_64' CC [M] /usr/src/wanpipe-7.0.25/kdrvtmp/wan_aften_src.o CC [M] /usr/src/wanpipe-7.0.25/kdrvtmp/wanpipe_linux_iface.o In file included from /usr/src/wanpipe-7.0.25/kdrvtmp/wanpipe_linux_iface.c:20:0: /usr/src/wanpipe-7.0.25/kdrvtmp/wanpipe_linux_iface.c: In function 'wan_iface_attach_eth': //usr/include/wanpipe/linux/wanpipe_defines.h:914:51: error: 'struct net_device_ops' has no member named 'ndo_change_mtu' #define WAN_NETDEV_OPS_MTU(dev,ops,wan_mtu) ops.ndo_change_mtu = wan_mtu ^ /usr/src/wanpipe-7.0.25/kdrvtmp/wanpipe_linux_iface.c:152:3: note: in expansion of macro 'WAN_NETDEV_OPS_MTU' WAN_NETDEV_OPS_MTU(dev,wan_netdev_ops,&wan_iface_change_mtu); ^ /usr/src/wanpipe-7.0.25/kdrvtmp/wanpipe_linux_iface.c: In function 'wan_iface_attach': //usr/include/wanpipe/linux/wanpipe_defines.h:914:51: error: 'struct net_device_ops' has no member named 'ndo_change_mtu' #define WAN_NETDEV_OPS_MTU(dev,ops,wan_mtu) ops.ndo_change_mtu = wan_mtu ^ /usr/src/wanpipe-7.0.25/kdrvtmp/wanpipe_linux_iface.c:195:3: note: in expansion of macro 'WAN_NETDEV_OPS_MTU' WAN_NETDEV_OPS_MTU(dev,wan_netdev_ops,&wan_iface_change_mtu); ^ /usr/src/wanpipe-7.0.25/kdrvtmp/wanpipe_linux_iface.c: In function 'wan_iface_init': //usr/include/wanpipe/linux/wanpipe_defines.h:914:51: error: 'struct net_device_ops' has no member named 'ndo_change_mtu' #define WAN_NETDEV_OPS_MTU(dev,ops,wan_mtu) ops.ndo_change_mtu = wan_mtu ^ /usr/src/wanpipe-7.0.25/kdrvtmp/wanpipe_linux_iface.c:251:2: note: in expansion of macro 'WAN_NETDEV_OPS_MTU' WAN_NETDEV_OPS_MTU(dev,wan_netdev_ops,&wan_iface_change_mtu); ^ make[2]: *** [/usr/src/wanpipe-7.0.25/kdrvtmp/wanpipe_linux_iface.o] Error 1 make[1]: *** [_module_/usr/src/wanpipe-7.0.25/kdrvtmp] Error 2 make[1]: Leaving directory/usr/src/kernels/3.10.0-862.2.3.el7.x86_64’
make: *** [all] Error 2
I’ve just released 7.5 - just ‘yum update’ and you’ll get the new kernel and wanpipe drivers. If you’re compiling wanpipe yourself under RHEL (which you should never do for FreePBX!!) then you’ll need to fix wanpipe due to the changes in the RHEL 7.5 kernel.
If you don’t have RHEL support, this is what the ticket says:
Resolution
Either
Rename the use of ndo_change_mtu in the code to ndo_change_mtu_rh74
Inspect the existing implementation of the driver mtu-change routine and the new generic routine facility provided by dev_set_mtu(), dev->extended->min_mtu and ~max_mtu. Convert the driver to using the generic facility if the checks provided are sufficient.