domingo, 19 de janeiro de 2014

Como fazer o Ubuntu reconhecer a placa de rede

Bom pessoal resolvi fazer este post, pois meu servidor linux ubuntu parou de "start-ar" a placa de rede.

Para começar, verificar o que linux ubuntu reconhece de hardware, com o comando:

como administrador comando: lspci

no meu caso e' uma placa de rede 3com, o linux tem uma pasta de sistema, que e' equivalente ao sytem32 do windows, onde sao guardados o drivers:

lib/modules/versao do seu kernel/kernel/drivers/net/ethernet/     esse e' o caminho dos arquivos de drivers de placas de rede.

Para forçar o ubuntu reconhecer a placa, fiz um script para ser iniciado toda vez que o sistema e' carregado:

a)criando o script:
vi /etc/init.d/redeexterna    

redeexterna e' o nome que eu coloquei, mas vc pode colocar o nome de sua preferencia, dentro do arquivo vc escreve:

#!/bin/sh

modprobe 3c59x                     #3c59x e' o drivers linux da placa de rede 3com
ifconfig eth3 192.168.1.2        #eth3 e' nome da placa na minha rede com ip 192.168.1.2
netmask 255.255.255.0 up

echo "ativando rede externa"  #essa mensagem vai aparecer qdo o serviço for executado

para salvar comando: wq!

b)dar permissao de execuçao comando:
chmod +x redeexterna

c) agora cria-se um link simbolico, para o script ser carregado pelo sistema, toda vez que for iniciado. No ubuntu os programas que sao carregados na inicializacao fica no /etc/rc2.d/ , dentro desse diretorio vc digita:

ln -s /etc/init.d/redeexterna S22redeexterna  #lembrando que S e' de serviço e o 22 e' a ordem de sequencia do serviço, que sera' o vige'simo segundo processo a ser executado pelo sistema

Se mesmo assim seu ubuntu nao reconhecer sua placa de rede, vc pode colocar um alias para forçar o reconhecimento editando o arquivo modules:

vi /etc/modules

alias eth3 3c59x.ko          #lembrando que vc coloca o eth* na numeraçao da sua rede e driver da     sua                                            placa de rede, ex: via-rhine.ko(VIA) , 8139too.ko(REALTEK), etc.


Para saber qual modulo (driver linux) esta' sendo usado usar o comando:

cat /etc/udev/rules.d/70-persistent-net.rules 

vai retornar algo como isso:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8139 (8139too)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:4c:39:0d:a4", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"




 Aqui nesse caso o modulo e' da realtek 8139too

creditos:  http://www.vivaolinux.com.br/topico/UbuntuBR/ubuntu-nao-reconhece-nova-placa-de-rede