17.10 ( 内核 4.13 ),rtl8812au & rtl8814au网络安全设备的网络dkms驱动程序无法构建

分享于 

5分钟阅读

ubuntu

  繁體

问题

以下是rtl8812au代码版本4.3.14 (在当前的Ubuntu存储库中发现的更新)的错误。


user@Satellite-E55:~/src/rtl8812AU$ make


make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.13.0-16-generic/build M=/home/user/src/rtl8812AU modules


make[1]: Entering directory '/usr/src/linux-headers-4.13.0-16-generic'


 CC [M] /home/user/src/rtl8812AU/core/rtw_cmd.o


In file included from /home/user/src/rtl8812AU/include/drv_types.h:32:0,


 from /home/user/src/rtl8812AU/core/rtw_cmd.c:22:


/home/user/src/rtl8812AU/include/osdep_service.h: In function 'thread_enter':


/home/user/src/rtl8812AU/include/osdep_service.h:343:2: error: implicit declaration of function 'allow_signal'; did you mean 'do_signal'? [-Werror=implicit-function-declaration]


 allow_signal(SIGTERM);


 ^~~~~~~~~~~~


 do_signal


/home/user/src/rtl8812AU/include/osdep_service.h: In function 'flush_signals_thread':


/home/user/src/rtl8812AU/include/osdep_service.h:353:6: error: implicit declaration of function 'signal_pending'; did you mean 'timer_pending'? [-Werror=implicit-function-declaration]


 if (signal_pending (current))


 ^~~~~~~~~~~~~~


 timer_pending


/home/user/src/rtl8812AU/include/osdep_service.h:355:3: error: implicit declaration of function 'flush_signals'; did you mean 'do_signal'? [-Werror=implicit-function-declaration]


 flush_signals(current);


 ^~~~~~~~~~~~~


 do_signal


cc1: some warnings being treated as errors


scripts/Makefile.build:302: recipe for target '/home/user/src/rtl8812AU/core/rtw_cmd.o' failed


make[2]: *** [/home/user/src/rtl8812AU/core/rtw_cmd.o] Error 1


Makefile:1546: recipe for target '_module_/home/user/src/rtl8812AU' failed


make[1]: *** [_module_/home/user/src/rtl8812AU] Error 2


make[1]: Leaving directory '/usr/src/linux-headers-4.13.0-16-generic'


Makefile:1576: recipe for target 'modules' failed


make: *** [modules] Error 2


user@Satellite-E55:~/src/rtl8812AU$



osdep_service.h中引用的代码如下所示。


#ifdef PLATFORM_LINUX


 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0))


 daemonize("%s", name);


 #endif


 allow_signal(SIGTERM);


#endif


#ifdef PLATFORM_FREEBSD


 printf("%s","RTKTHREAD_enter");


#endif


}



__inline static void flush_signals_thread(void) 


{


#ifdef PLATFORM_LINUX


 if (signal_pending (current)) 


 {


 flush_signals(current);


 }


#endif




答案1

你可以尝试:


git clone https://github.com/zebulon2/rtl8814au.git


cd rtl8814au


make


sudo make install


sudo modprobe 8814au



在17.10系统上效果很好。


答案2

rtl8812au (Edimax EW-7822UAC )

sudo git clone https://github.com/zebulon2/rtl8812au-driver-5.2.9.git


note: dkms.conf file already included


sudo cp -r rtl8812au-driver-5.2.9 /usr/src/rtl8812au-5.2.9


sudo dkms add rtl8812au/5.2.9


sudo dkms build rtl8812au/5.2.9


sudo dkms install rtl8812au/5.2.9


dkms status



rtl8814au (Edimax EW-7833UAC & D-Link DWA-192 )

sudo git clone https://github.com/zebulon2/rtl8814au.git



create dkms.conf and add these lines...


----


# rtl8814AU-4.3.21_17997.20160531


#


#


PACKAGE_NAME="rtl8814au"


PACKAGE_VERSION="4.3.21_17997.20160531"


MAKE[0]="'make' all KVER=${kernelver}"


BUILT_MODULE_NAME[0]="8814au"


DEST_MODULE_LOCATION[0]="/updates/dkms"


AUTOINSTALL="YES"


REMAKE_INITRD="NO"


----



sudo cp -r rtl8814au /usr/src/rtl8814au-4.3.21


sudo dkms add rtl8814au/4.3.21


sudo dkms build rtl8814au/4.3.21


sudo dkms install rtl8814au/4.3.21


dkms status





构建  Drive  network  内核  网络  RTL  
相关文章