![insmod:错误:无法插入模块 8188eu.ko:模块格式无效](https://linux22.com/image/34310/insmod%EF%BC%9A%E9%94%99%E8%AF%AF%EF%BC%9A%E6%97%A0%E6%B3%95%E6%8F%92%E5%85%A5%E6%A8%A1%E5%9D%97%208188eu.ko%EF%BC%9A%E6%A8%A1%E5%9D%97%E6%A0%BC%E5%BC%8F%E6%97%A0%E6%95%88.png)
我正在尝试将 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
现在我对如何让模块正确加载有点困惑。有人知道吗?
答案1
您的模块是为早期内核(刚刚更新的内核)构建的。
确保您已重新启动以便使用最新的内核。
确认运行的内核和安装的版本kernel-headers
相同。
您现在需要为当前内核再次重新编译模块:
cd rtl8188eu
make clean
make all
make install
modprobe -r 8188eu
modprobe 8188eu
不幸的是,每次更新内核时,您都必须继续执行此操作,直到该驱动程序将其纳入主流内核包。
有一个设施叫动态内核模块支持每次更新内核时,它都可以自动构建像您这样的树外模块(例如,VirtualBox 驱动程序使用它),但这将涉及大量额外的配置工作。您可能会发现付出的努力超过了其价值。
这是生活在技术前沿的缺点;-)