我买了一台带 Realtek rtl8723bu wifi 适配器的笔记本电脑。与 Windows 相比,Wifi 运行缓慢且信号弱。我在网上搜索过,有一些解决方案可以从 github 下载驱动程序,但它们都不适合我(从第一步开始我就收到错误)。我该怎么办?非常感谢。
我已遵循以下步骤:
第一步:
sudo apt install build-essential dkms
sudo apt install git
git clone https://github.com/lwfinger/rtl8723bu.git
sudo apt install libelf-dev
第二步:
sudo -i
echo blacklist rtl8xxxu >> /etc/modprobe.d/blacklist.conf
exit
这确保了旧驱动程序不会用于我的设备。在我的情况下,有问题的驱动程序是 rtl8xxxu。所以我把它列入了黑名单。
第三步:现在我禁用了新驱动程序 makefile 中的一行,因为如果没有这个 hack,网络管理器中会显示两个无线芯片组实例
cd rtl8723bu
nano Makefile
转到第 21 行并更改此行:
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
要将其注释掉,就像这样:
#EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
保存(Ctrl+o 然后按 Enter)并退出(Ctrl+x)文本编辑器。
第四步:现在构建并安装驱动程序:
source dkms.conf
sudo mkdir /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION
sudo cp -r core hal include os_dep platform dkms.conf Makefile rtl8723b_fw.bin /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION
sudo dkms add $PACKAGE_NAME/$PACKAGE_VERSION
sudo dkms autoinstall $PACKAGE_NAME/$PACKAGE_VERSION
第五步:最后,使用以下命令安装编译后的模块:
make
sudo make install
但我不能让 dkms 在第一步就失败。另外,我想知道这样做是否安全。
答案1
对我来说很好。没有构建错误。在虚拟机中使用 Ubuntu 18.04LTS 进行了测试。我完成了除make
和之外的所有步骤make install
,因为不需要 和一定不使用 DKMS 完成。
make
+make install
适用于手动的仅当您不使用 DKMS 时才需要安装。那么每次安装新内核时,或者新内核没有驱动程序时,您都必须执行make
+ make install
。这就是开发 DKMS 的原因 - 这样您就不必这样做了。使用 DKMS,一切都是自动的。
我的构建日志,没有错误:
$ sudo dkms autoinstall $PACKAGE_NAME/$PACKAGE_VERSION
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area...
make -j2 KERNELRELEASE=4.15.0-70-generic -C /lib/modules/4.15.0-70-generic/build M=/var/lib/dkms/rtl8723bu/4.3.6.11_12942.20141204_BTCOEX20140507-4E40/build............
cleaning build area...
DKMS: build completed.
rtl8723bu.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/4.15.0-70-generic/updates/dkms/
depmod...
DKMS: install completed.
如果确实如此make install
,则必须先清理干净,然后再重试。尝试一下(将 /path/to 替换为真实路径):
cd /path/to/rtl8723bu
sudo make uninstall
然后再试一次make
,make install
如果您没有做任何其他事情,那么您可能只需要第 4 步中的这两行:
source dkms.conf
sudo dkms autoinstall $PACKAGE_NAME/$PACKAGE_VERSION