logo do linux e da realtek r8168

Assim como já aconteceu comigo no Windows, o meu driver de rede desaparecia ao reiniciar o sistema e reaparecia ao reiniciar novamente, um problema que vai e volta cada vez que o PC é reiniciado pelo sistema.

Hoje eu vou ensinar a como resolver esse problema no Linux, a solução é quase igual a do Windows bastando trocar o “driver” de rede por um outro sem esse problema, mas como sabemos o Linux não trabalha com drivers, e sim com módulos de kernel.

Um problema já conhecido no Windows

Se você usa Linux e tem uma placa de rede realtek, é quase certo que o modulo que está sendo usado pelo sistema é o r8169, embora seja um módulo abrangente que funciona com várias placas de rede da realtek, a minha em especifico fica com esse problema de sumir ao reiniciar o sistema.

Depois de pesquisar muito e até pedir ajuda em fóruns, eu consegui resolver o problema instalando o módulo r8168 que não faz parte do kernel do Linux, em outras palavras é um módulo a parte e disponibilizado diretamente pela realtek.

Compilando e instalando o módulo r8168

Infelizmente por ser um módulo a parte, nós temos que recompilar o kernel para poder instalar o módulo r8168, dito isso, precisamos baixar o módulo r8168 e também ter o código fonte do kernel no sistema.

O processo de instalação é bem simples na verdade, basta baixar o pacote e rodar o comando ./autoinstall.sh via terminal para que a compilação comece.

Você pode baixar o r8168 através do repositório do mtorromeo no github, pelo visto esse repositório é um espelho do pacote disponibilizado no site da realmente, ou você pode baixar o r8168 através do meu repositório.

No meu repositório, o driver r8168 também funciona com o meu dispositivo, o de ID 10ec:8136

03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 05)

Se o seu dispositivo tiver o mesmo ID que o meu, então eu recomendo baixar o pacote r8168 do meu repositório.

Instalando possiveis dependencias

Antes de compilar o módulo r8168 é necessário ter instalado em sua distribuição ao menos dois desses pacotes:

build-essential linux-headers

Os nomes desses pacotes variam com a distribuição. Por exemplo no ubuntu/debian podemos instalar eles com o comando:

$ sudo apt install build-essentials linux-headers

Baixando o pacote do repositório:

Vamos fazer tudo pelo terminal, abra ele e rode o seguinte comando:

$ cd ~/

Para entrar na sua pasta home

$ wget -c https://github.com/M4rQu1Nh0S/r8168/archive/refs/tags/8.050.00m.tar.gz

Para baixar o pacote com o wget

$ tar xvzf r8168-8.050.00m.tar.gz

Para extrair o conteudo do pacote

$ cd r8168-8.050.00m

Para entrar na pasta extraída do pacote

$ sudo su

Para entrar no modo root

# ./autorun.sh

Para rodar o compilador do módulo

Pronto, isso vai compilar o r8168, remover o r8169 e reativar a sua placa de rede com o novo módulo, rode o comando abaixo para ver se o módulo está ativo:

$ lsmod | grep r8168
r8168

Ao rodar o comando, a palavra r8168 deverá aparecer logo abaixo do comando, se isso não acontecer é porque o módulo ainda não está funcionando, independente do resultado reinicie o seu computador ao menos duas vezes e depois disso tente rodar o comando acima novamente, ou se quiser, reinicie outra vez sua maquina para conferir se o driver está funcionando ou não.

Isso é tudo, espero que isso tenha sido útil.

Referencias:

https://github.com/M4rQu1Nh0S/r8168 https://github.com/mtorromeo/r8168