Conexão Wi-Fi não é exibida na Central de Controle do Deepin (Realtek RTL8192SE)

Publicado por Eduardo Mozart de Oliveira em 23/09/2021

[ Hits: 397 ]

Blog: http://www.eduardomozartdeoliveira.wordpress.com/

 


Conexão Wi-Fi não é exibida na Central de Controle do Deepin (Realtek RTL8192SE)



Após a atualização do Deepin para a versão 20.2.2 (baseado no Debian 10.8) em um notebook Megaware 4129 com adaptador Wi-Fi RTL8192SE embutido, o adaptador Wi-Fi não era exibido na Central de Controle do Deepin (apenas a rede cabeada estava disponível).

É comum em notebooks existirem combinações de teclas de função para habilitar ou desabilitar Wi-Fi, Bluetooth e outras funções, porém, o adaptador estava sendo reconhecido normalmente e estava ativo, conforme o Gerenciador de Dispositivos do Deepin.

Figura 1: Gerenciador de Dispositivos do Deepin
Caso o adaptador Wi-Fi estivesse desligado devido a teclas de função, o adaptador Wi-Fi seria exibido em laranja no Gerenciador de Dispositivos com o prefixo (Desativar) no nome do adaptador Wi-Fi. Também pude confirmar que o adaptador Wi-Fi ("wlan") não possuía nenhum tipo de trava através do comando "rfkill", que exibia o status "Unblocked" (desbloqueado) para travas do adaptador Wi-Fi via Software ou Hardware (teclas de função).

rfkill
ID TYPE      DEVICE      SOFT      HARD
1 bluetooth hci0   unblocked unblocked
2 wlan      phy1   unblocked unblocked


Na saída do Gerenciador de Dispositivos do Deepin, ao selecionar o adaptador Wi-Fi na lista (conforme Figura 1), é exibido o Driver (Módulo) utilizado para prover a interface entre o sistema operacional e o hardware (adaptador Wi-Fi). Ao remover e recarregar o módulo, o adaptador Wi-Fi e ele passou a ser exibido normalmente na Central de Controle e na Barra de tarefas do Deepin.

sudo modprobe -r rtl8192se && modprobe rtl8192se

Porém, notei que, após a reinicialização, novamente o Deepin não reconhecia o adaptador Wi-Fi. Notei também que o LED do Wi-Fi mantinha-se ativo do momento que ligava o computador até a tela de login do Deepin. Após o logon do usuário, o LED do Wi-Fi apagava-se e o adaptador Wi-Fi não era mais reconhecido, porém, ao remover e recarregar o módulo através dos comandos acima, o adaptador Wi-Fi voltava a ser reconhecido normalmente.

Não pude encontrar nenhuma solução definitiva ou pessoas com sintoma similar na Internet, portanto, decidi adotar uma solução de contorno, que é criar um script que realiza a remoção e recarregamento do módulo "rtl8192se" a cada logon de usuário realizado no sistema.

Por padrão, o "modprobe" requer privilégios de superusuário para ser executado, portanto, o script que realiza a monitoração deve ser executado no contexto de superusuário (root) ou devem ser atribuídas permissões para que usuários comuns executem o "modprobe" sem "sudo". Não é recomendado atribuir privilégios para que usuários normais executem o "modprobe" sem "sudo", devido a possibilidade de comprometer a segurança e estabilidade do sistema através do carregamento de módulos nocivos ou desativação não-intencional de módulos essenciais para funcionamento do sistema.

Para executar o script de monitoramento como superusuário (root):

1. No Terminal do Deepin, execute o comando abaixo para editar o Cron do usuário "root".

sudo crontab -e

2. No final do arquivo, adicione a seguinte linha:

@reboot /usr/local/sbin/detect_logon

Dessa forma, estamos configurando o sistema operacional para executar a cada inicialização do sistema o script "/usr/local/sbin/detect_logon".

3. Crie o arquivo "/usr/local/sbin/detect_logon" através do "nano" (ou outro editor de texto de sua preferência) com o seguinte conteúdo:

sudo nano /usr/local/sbin/detect_logon

<file bash detect_logon>
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-

import os, time

Buffer_list=[]
while True:
    users=os.popen("'who | cut -d' ' -f1 | sort | uniq"')
    users=users.read()
    Current_List=users.split('
')
    Current_List=filter(None,Current_List)
    if Current_List:
        if Current_List != Buffer_list:

            if len(Current_List) > len(Buffer_list):

                #HERE YOU ADD THE COMMANDS, inside the triple quotes.
                # add each command in a new line

                # i let you an example for turning the brightness down..
                os.system("'/sbin/modprobe -r rtl8192se && /sbin/modprobe rtl8192se"')


            Buffer_list=Current_List

    time.sleep(0.5)

O script acima, ao ser executado durante a inicialização, irá monitorar as sessões de usuário ativas e executará o comando "modprobe" para remover e recarregar o módulo "rtl8192se".

4. Atribua permissões de execução para o script "detect_logon" através do comando:

sudo chmod +x /usr/local/sbin/detect_logon

5. Reinicie o computador e verifique se o adaptador Wi-Fi está sendo reconhecido normalmente após a reinicialização.

Referências

1. Unix & Linux. Execute root command after a user starts the session. Disponível em: <https://unix.stackexchange.com/questions/149509/execute-root-command-after-a-user-starts-the-session>. Acesso em: 22 de jul. de 2021.

Outras dicas deste autor

GNOME e KDE no CentOS 5/6

Como abrir um arquivo .mht no Linux

Downgrade de versões do Wine e LibreOffice instaladas à partir de repositórios PPA no Ubuntu 14.04 LTS

Acessando compartilhamentos de rede do Windows pelo CentOS

Associar uma extensão a um programa no Ubuntu

Leitura recomendada

Habilitando UserDir no Fedora 27

Slackware Linux substituindo Windows

Trabalhando com arquivos DEB

Instalando a JRE da SUN no Ubuntu

[ LinuxTips ] - Descomplicando o KUBERNETES - Parte1

  

Comentários
[1] Comentário enviado por mauricio123 em 02/10/2021 - 10:43h


Partindo do Deepin, é só mais um bug como todos os outros. Quando eu usei essa interface não tive essa problema. Mas, deixei de usar por conta de outros bugs. Mas foi uma boa solução.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]



Contribuir com comentário