insmod:错误:无法插入模块 8188eu.ko:模块格式无效

Mer*_*lin 11 kernel-modules upgrade

我正在尝试将 TL-WN725N 用作 Fedora 20 的 USB WiFi 适配器。

我遵循了这些说明,适配器运行良好,甚至在过去几周内进行了两次更新。

然后我yum update今天做了一个,在我重新启动计算机之前它仍然可以正常工作。我试图重新加载模块并得到insmod: ERROR: could not insert module 8188eu.ko: Invalid module format.

我发现的是,我的内核和模块中的内核头文件不再相同,我必须更新内核,所以我这样做并得到了

sudo yum install kernel-headers
Loaded plugins: langpacks, refresh-packagekit
Package kernel-headers-3.17.3-200.fc20.x86_64 already installed and latest version
Nothing to do
Run Code Online (Sandbox Code Playgroud)

现在我对如何让模块正确加载有点困惑。有人知道吗?

gar*_*Red 22

您的模块是为较早的内核(刚刚更新的内核)构建的。

确保您已重新启动,以便使用最新的内核。

确认运行的内核和安装的版本kernel-headers相同。

您现在需要为当前内核重新编译您的模块:

cd rtl8188eu
make clean
make all
make install
modprobe -r 8188eu
modprobe 8188eu
Run Code Online (Sandbox Code Playgroud)

不幸的是,您每次更新内核时都必须继续这样做,直到该驱动程序使其成为主流内核包。

有一种称为动态内核模块支持的工具,它可以在每次更新内核时自动构建树外模块,例如您的模块(例如,VirtualBox 驱动程序使用它),但它会涉及大量额外的配置工作。您可能会发现付出的努力多于其价值。

这是生活在技术前沿的缺点;-)