Eu construí um módulo do kernel fc.ko no Ubuntu 16.04 para o kernel 4.4.0-1016-aws. Eu copiei o módulo do kernel para um Ubuntu 14.04 executando a mesma versão do kernel 4.4.0-1016-aws, mas recebi um erro:
insmod: ERROR: could not insert module /opt/fc/agent/modules/4.4.0-1016-aws/fc.ko: Invalid module format
Isso significa que a mesma versão do kernel 4.4.0-1016-aws é diferente para o Ubuntu 16 e 14?
Atualização: Eu tentei construir meu código no Ubuntu 14 contra os cabeçalhos do kernel 4.4.0-1016-aws, mas o código falhou ao compilar porque a definição do kernel do protótipo da função sock_recvmsg () é diferente da do Ubuntu 16 4.4.0-1016 -haves kernel. Aqui está a diferença:
Ubuntu 16: /usr/src/linux-aws-headers-4.4.0-1016/include/linux/net.h:
int sock_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
int flags);
Ubuntu 14: /usr/src/linux-aws-headers-4.4.0-1016/include/linux/net.h:
int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags);
Parece que a mesma versão do kernel no Ubuntu 16 e 14 é realmente diferente.