dkms drivers para rtl8812au & rtl8814au dongles de rede não conseguem construir em 17.10 (kernel 4.13)

1

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.

    
por heynnema 24.10.2017 / 03:46

2 respostas

2

Você pode tentar:

git clone https://github.com/zebulon2/rtl8814au.git
cd rtl8814au
make
sudo make install
sudo modprobe 8814au

Faz perfeitamente no meu sistema 17.10. Não tenho certeza de que posso recomendar um processo de dkms, portanto, as atualizações do kernel exigem uma recompilação.

    
por chili555 25.10.2017 / 02:33
2

Obrigado ao @ chili555 por me apontar na direção certa. O driver rtl8814au referido no link git clone funciona com 17.10, e esse mesmo autor também possui um driver rtl8812au funcional que também funciona com 17.10.

Da memória ...

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 e 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
    
por heynnema 25.10.2017 / 21:25