make:*** 错误2

我试图在我的ubuntu 18.04中安装wifi驱动程序。 内核14.5和惠普笔记本电脑。 我按照这些命令:

1. sudo apt-get install build-essential dkms 2.wget -d -c -O 'rtl8723de.zip' https://github.com/smlinux/rtl8723de/archive/4.11-up.zip 3. unzip rtl8723de.zip 4.cd rtl8723de 5.make 

当我赞扬make然后我在终端得到这个结果:

 make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.15.0-22-generic/build M=/home/praveen/rtl8723de modules make[1]: Entering directory '/usr/src/linux-headers-4.15.0-22-generic' Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" CC [M] /home/praveen/rtl8723de/core/rtw_cmd.o In file included from /home/praveen/rtl8723de/include/osdep_service.h:42:0, from /home/praveen/rtl8723de/include/drv_types.h:32, from /home/praveen/rtl8723de/core/rtw_cmd.c:22: /home/praveen/rtl8723de/include/osdep_service_linux.h: In function '_init_timer': /home/praveen/rtl8723de/include/osdep_service_linux.h:287:8: error: '_timer {aka struct timer_list}' has no member named 'data' ptimer->data = (unsigned long)cntx; ^~ /home/praveen/rtl8723de/include/osdep_service_linux.h:288:2: error: implicit declaration of function 'init_timer'; did you mean '_init_timer'? [-Werror=implicit-function-declaration] init_timer(ptimer); ^~~~~~~~~~ _init_timer cc1: some warnings being treated as errors scripts/Makefile.build:332: recipe for target '/home/praveen/rtl8723de/core/rtw_cmd.o' failed make[2]: *** [/home/praveen/rtl8723de/core/rtw_cmd.o] Error 1 Makefile:1552: recipe for target '_module_/home/praveen/rtl8723de' failed make[1]: *** [_module_/home/praveen/rtl8723de] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-22-generic' Makefile:1884: recipe for target 'modules' failed make: *** [modules] Error 2 

如何解决这个问题呢?

首先,删除不可操作的文件:

 sudo rm -r rtl8723de* 

接下来,安装另一个先决条件:

 sudo apt update && sudo apt -y install git 

现在克隆一个更好的文件:

 git clone https://github.com/lwfinger/rtlwifi_new.git 

现在构建驱动程序:

 cd rtlwifi_new make sudo make install sudo modprobe rtl8723de 

您的无线现在应该正常工作。

编辑 :当Update Manager在请求的重新启动后安装较新的内核版本(也称为linux-image)时,重新编译:

 cd ~/rtlwifi_new make clean git pull make sudo make install sudo modprobe rtl8723de 

显然,您下载的代码无法编译,因为您计算机上的数据结构timer_list与源中使用的数据结构不匹配。 你下载的驱动程序似乎不适合你的内核(内核版本也不正确uname -r给你正确的内核版本)。

我没有你的解决方案,但是你看到了这个页面吗?