我正在使用我的新 HP 笔记本电脑,其中全新安装了 Ubuntu 18.04,名为 Bionic Beaver。由于未检测到 wifi 适配器,因此我按照本文中的步骤操作:http://ubuntuhandbook.org/index.php/2018/08/no-wifi-adapter-found-hp-laptops-ubuntu-18-04/
之后一切正常。步骤如下:
git clone https://github.com/lwfinger/rtlwifi_new.git
cd rtlwifi_new/ && git checkout origin/extended -b extended
sudo apt-get install linux-headers-generic build-essential git
sudo make install
sudo modprobe -r rtl8723de
sudo modprobe rtl8723de
成功了!它很弱,但使用以下命令它变得更强了:
sudo modprobe -r rtl8723de && sleep 5 && sudo modprobe rtl8723de ant_sel=2
我很高兴,后来我关掉了电脑。今天,我启动了它,但还是没有检测到 wifi 适配器。我仍然有 git 存储库和扩展分支,所以我再次运行了命令,我想我必须编写一个脚本在每次启动时运行。
但运行该sudo modprobe rtl8723de
命令会出现以下错误:
modprobe: ERROR: could not insert 'rtl8723de': Exec format error
根据中的评论此主题,没有得到最终答案,我尝试了“sudo make uninstall”
但是它没有检测到wifi,当我重新安装时,情况还是一样。
为什么我的修复没有“成功”?我该如何“重置”或让它再次工作?
根据评论指示,运行结果如下make
:
make -C /lib/modules/4.18.0-16-generic/build M=/home/alex/rtlwifi_new modules make[1]: Entering directory '/usr/src/linux-headers-4.18.0-16-generic' Building modules, stage 2. MODPOST 19 modules make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-16-generic'
分离这些命令对输出没有影响sudo modprobe rtl8723de
再次按照指示:
结果:dpkg -l * 4.18 * | grep ii
ii linux-headers-4.18.0-15 4.18.0-15.16~18.04.1 all Header files related to Linux kernel version 4.18.0 ii linux-headers-4.18.0-15-generic 4.18.0-15.16~18.04.1 amd64 Linux kernel headers for version 4.18.0 on 64 bit x86 SMP ii linux-headers-4.18.0-16 4.18.0-16.17~18.04.1 all Header files related to Linux kernel version 4.18.0 ii linux-headers-4.18.0-16-generic 4.18.0-16.17~18.04.1 amd64 Linux kernel headers for version 4.18.0 on 64 bit x86 SMP ii linux-image-4.18.0-15-generic 4.18.0-15.16~18.04.1 amd64 Signed kernel image generic ii linux-image-4.18.0-16-generic 4.18.0-16.17~18.04.1 amd64 Signed kernel image generic ii linux-modules-4.18.0-15-generic 4.18.0-15.16~18.04.1 amd64 Linux kernel extra modules for version 4.18.0 on 64 bit x86 SMP ii linux-modules-4.18.0-16-generic 4.18.0-16.17~18.04.1 amd64 Linux kernel extra modules for version 4.18.0 on 64 bit x86 SMP ii linux-modules-extra-4.18.0-15-generic 4.18.0-15.16~18.04.1 amd64 Linux kernel extra modules for version 4.18.0 on 64 bit x86 SMP ii linux-modules-extra-4.18.0-16-generic 4.18.0-16.17~18.04.1 amd64 Linux kernel extra modules for version 4.18.0 on 64 bit x86 SMP
结果:modinfo rtl8723de | grep ver
filename: /lib/modules/4.18.0-16-generic/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8723de/rtl8723de.ko srcversion: 37BE84E7F4EC43A12099BF7 vermagic: 4.18.0-15-generic SMP mod_unload
这是 DKMS 的 Make 日志文件:
DKMS make.log for rtlwifi_new-0.6 for kernel 4.18.0-16-generic (x86_64) vie mar 15 19:36:12 -05 2019 make: Entering directory '/usr/src/linux-headers-4.18.0-16-generic' scripts/Makefile.build:45: /var/lib/dkms/rtlwifi-new/0.6/build/Makefile: No such file or directory make[1]: *** No rule to make target '/var/lib/dkms/rtlwifi-new/0.6/build/Makefile'. Stop. Makefile:1534: recipe for target '_module_/var/lib/dkms/rtlwifi-new/0.6/build' failed make: *** [_module_/var/lib/dkms/rtlwifi-new/0.6/build] Error 2 make: Leaving directory '/usr/src/linux-headers-4.18.0-16-generic'
答案1
为了解决当前的问题,我们将这样做...
make clean # clean up leftovers
make # compile the software
sudo make install # install the software
sudo modprobe -r rtl8723de # unload the driver
sudo modprobe rtl8723de ant_sel=2 # reload the driver with options
成功了。但是,如果这样做,每次通过 更新内核时您都需要重新执行此操作Software Updates
。嘘。
让我们重复一些步骤,并使用陣容,并使其在内核更新时自我重建。
首先,返回terminal
到之前的目录,并卸载当前正在工作的驱动程序......
cd ~/rtl8723de # change directory
sudo modinfo rtl8723de # see the installed driver
sudo make uninstall # uninstall the driver
sudo modinfo rtl8723de # make sure it's gone
cd # change to ~ directory
现在我们安装使用陣容...使用解压的文件夹或git clone
文件夹...
如果以下任何步骤失败,则停止并汇报。
sudo apt install dkms build-essential # already done
cd ~/rtlwifi_new # enter the directory
sudo make clean # clean up from prior "make"
cd # go to ~ directory
sudo cp -a ~/rtlwifi_new /usr/src/rtlwifi-new-0.6 # copy to /usr/src
sudo dkms add rtlwifi-new/0.6 # add the software to dkms
sudo dkms build rtlwifi-new/0.6 # build the software
sudo dkms install rtlwifi-new/0.6 # install the software
dkms status # review the status
更新#1:
由于一些命名问题,我们必须在继续之前进行一些清理。首先执行这些命令,然后返回并执行我的原始(修改后的)陣容安装说明,如上所示。请特别注意连字符与下划线。
如果以下任何步骤失败,则停止并汇报。
dkms status # note the name of the rtlwifi driver... probably rtlwifi_new
sudo dkms remove rtlwifi_new/0.6 --all # remove from dkms
sudo rm -r /usr/src/rtlwifi_new-0.6 # delete directory
ls -al /var/lib/dkms # make sure there are no rtlwifi directories left
更新 #2:
一旦我们得到陣容驱动程序正确安装后,我们需要创建一个配置文件来选择正确的无线天线。
sudo -H gedit /etc/modprobe.d/rtl8723de.conf
输入以下行...
options rtl8723de ant_sel=2
保存文件并退出 gedit
重新启动并检查无线操作
更新 #3:
成功!