如何在 Fedora 上编译树外内核驱动程序来修复超慢的 wifi 问题?

如何在 Fedora 上编译树外内核驱动程序来修复超慢的 wifi 问题?

我有一台带有网络控制器的 HP 笔记本电脑:Realtek Semiconductor Co., Ltd. RTL8188EE 无线网络适配器。笔记本电脑是Windows 8.1,wifi工作得很好,但是因为我想尝试Linux,所以我安装了Ubuntu,并且wifi工作速度超级慢,而且不稳定,所以后来我认为安装Fedora可能会解决问题,但是事实并非如此。

所以我开始在论坛上到处阅读,我发现这个解决方案已经帮助了一些人:(顺便说一句,我现在使用的是 Fedora)

git clone http://github.com/lwfinger/rtlwifi_new.git
cd rtlwifi_new
make
sudo modprobe -rv rtl8188ee
sudo make install
sudo modprobe -v rtl8188ee

但每当我输入“make”命令时,我都会得到以下结果:

make -C /lib/modules/3.17.4-301.fc21.x86_64/build M=/home/Betim/rtlwifi_new modules
make[1]: *** /lib/modules/3.17.4-301.fc21.x86_64/build: No such file or directory.  Stop.
Makefile:53: recipe for target 'all' failed
make: *** [all] Error 2

有人可以帮助我吗,因为我真的很喜欢 Fedora,而且我想坚持下去,我不想回到 Windows...

答案1

所以,核心问题是它正在寻找编译新内核模块所需的内核头文件。你可以安装那些

sudo yum 安装内核开发

但进一步的技巧是编译过程正在寻找内核开发文件与您正在运行的内核相匹配。您可以运行uname -r来查找当前正在运行的内核,并且rpm -q kernel-devel.默认情况下,在更新的系统上,您可能会安装多个内核版本,因为为了安全起见,更新系统会保存最后两个版本。但是,除非您在上次更新后重新启动,否则您可能不会运行最新的更新。相比之下,kernel-devel 软件包通常保持最新(这就是您使用上面的 yum install 命令得到的)。

因此,如果重新启动,您应该安装并运行较新的内核,并且当您运行 时make,您会看到它正在寻找较新的版本而不是 3.17.4。

也就是说,有一个请注意您链接的 github 存储库其中表示速度慢的修复计划将进入 3.18 内核,并且由于我们现在处于 3.19.3,因此很可能只需单独更新即可解决您的问题。

(免责声明:我在 Fedora 上工作,所以我并不公正,但我确实想补充一点,我们出色的内核团队在非常密切、快速地跟踪最新的上游内核方面做得很好,并将这些更新推广到各个版本我们当前支持的所有版本,使 Fedora 成为解决此类硬件支持问题的绝佳选择。)

答案2

基本问题是您没有安装内核头文件。如果这样做sudo yum install kernel-devel kernel-headers并引导到新安装的内核。然后你的驱动程序make将能够找到你的内核头文件/lib/modules/{uname -r}/build

相关内容