同一个内核版本4.4.0-1016-aws在Ubuntu 16和14上有什么不同吗?

同一个内核版本4.4.0-1016-aws在Ubuntu 16和14上有什么不同吗?

我在 Ubuntu 16.04 上为内核 4.4.0-1016-aws 构建了一个内核模块 fc.ko。我将内核模块复制到运行相同内核版本 4.4.0-1016-aws 的 Ubuntu 14.04 上,但出现错误:

insmod: ERROR: could not insert module /opt/fc/agent/modules/4.4.0-1016-aws/fc.ko: Invalid module format

这是否意味着相同的内核版本 4.4.0-1016-aws 对于 Ubuntu 16 和 14 是不同的?

更新:我尝试在 Ubuntu 14 上针对 4.4.0-1016-aws 内核头文件构建代码,但代码编译失败,因为 sock_recvmsg() 函数原型的内核定义与 Ubuntu 16 的 4.4.0-1016-aws 内核不同。区别如下:

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);

看起来Ubuntu 16和14上相同的内核版本确实不同。

相关内容