Eu tenho drivers do kernel github dkms para rtl8812au (v4.3.14) e rtl8814au (v4.3.21) dongles de rede sem fio USB que estavam funcionando bem em 17.04, mas não conseguiram construir durante a atualização para 17.10. Ambos os drivers são baseados em código semelhante e não são criados de maneira semelhante.
Eu não sei se é um novo compilador gcc, ou o novo kernel 4.13, que pode estar causando o problema. Isso pode exigir apenas um pequeno ajuste no Makefile
para contornar os erros.
Se eu usar o comando padrão make
, em vez da sequência normal dkms add/build/install
, posso ver o erro rapidamente.
Aqui estão os erros para a versão 4.3.14 do código rtl8812au (que é mais recente do que é encontrado nos repositórios atuais do 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$
O código referido em osdep_service.h
é assim ...
#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
Os erros e o código do rtl8814au são parecidos, então eu não os publicarei a menos que solicitado / requerido.
Por favor ajude. Gostaria de reativar minhas redes sem fio.