Solução de problema em placa de rede Davicom Semiconductor (qualquer distro)

Esse problema me foi detectado inicialmente no Slackware 11, mas conferi em fóruns que em outras distribuições acontecia o mesmo problema, sem clareza nas soluções. Existem dois módulos para esse tipo de placa, o tulip e o dfme, em alguns casos, ambos funcionam, em outros há conflito ou o OS carrega o módulo errado. :) Se você estiver passando por problemas com essa placa, recomendo essa leitura.

[ Hits: 26.382 ]

Por: ManFilho em 19/06/2007


Configurar pra quando reiniciar o sistema



Bem, os módulos necessários para os nossos ficam geralmente no arquivo rc.modules (dentro do /etc/rc.d), sendo esse arquivo um link para o rc.modules-(seu kernel), no meu caso, no arquivo: /etc/rc.d/rc.modules-2.6.17.13.

# ls -l /etc/rc.d/rc.modules
lrwxrwxrwx 1 root root 30 2007-06-09 10:25 /etc/rc.d/rc.modules -> /etc/rc.d/rc.modules-2.6.17.13*

Dentro desse arquivo procure a expressão tulip, por exemplo:

# vim /etc/rc.d/rc.modules-2.6.17.13

Depois escreva: /tulip
(isso procura uma expressão dentro do vim)

Após achar, aperte i (para entrar em modo Insert e poder editar o arquivo). Comente a linha em que a expressão se encontra, com um "#", ficando:

# DECchip Tulip (dc21x4x) PCI support:
# /sbin/modprobe tulip

Caso essa linha já esteja assim, e mesmo assim o módulo está sendo carregado, remova esse comentário e ponha o modprobe em -r, descarregando o módulo, ficando assim:

# DECchip Tulip (dc21x4x) PCI support:
/sbin/modprobe -r tulip

Após isso, aperte ESC (para sair do modo insert), procure o dmfe (com o /dmfe), aperte i novamente (entrando em modo insert), descomente a linha dele de:

# Davicom DM9xxx (9102/9132/9100/9802...)
#/sbin/modprobe dmfe

Para:

# Davicom DM9xxx (9102/9132/9100/9802...)
/sbin/modprobe -i dmfe

Logo após aperte ESC novamente e digite :wq. Isso significa write and quit no editor vim, ou seja, escreva e saia.

Pode reiniciar o computador que sua placa estará falando pra todo o mundo.

Página anterior    

Páginas do artigo
   1. Detectando o problema
   2. Verificando o módulo ativo
   3. Fazendo a placa falar
   4. Configurar pra quando reiniciar o sistema
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalando a placa de rede wireless DWL-G520+ no Fedora Core 3

Adaptação 2 em 1 de cabo de par trançado 10/100

Informações sobre Hardware no GNU/Linux - Guia Geral e Prático

Fingerprint-GUI (solução para leitores biométricos) no Ubuntu

Instalando o OSS4 no Ubuntu 11.04

  
Comentários
[1] Comentário enviado por morvan em 19/06/2007 - 10:54h

Bom dia a todos.

Tive um problema similar, porém o resolvi de forma diversa. No Fedora 6, a placa era detectada normalmente e era carregado o módulo correto (dmfe); no Fedora 7, ao invés disto era carregado o módulo tulip, o que ocasionava o mal-funcionamento desta. A solução - bem simples - consistiu em colocar o driver da Tulip na lista negra - um recurso documentado no MAN do ModProbe. Ao banir o módulo da tulip o Sistema - como era esperado - não o carrega. Daí é só dar um alias para o módulo (driver) correto.
Fica assim, sinteticamente:
# modprobe.conf - alterado em 2007...
blacklist tulip
alias eth? dmfe
...
# fim do modprobe.conf

Pronto. Na inicialização do Sistema, o módulo correto é carregado, sem qualquer problema.
Abraços,

Morvan


[2] Comentário enviado por manfilho em 19/06/2007 - 14:55h

O bom do linux é esse, várias formas de resolver o mesmo problema, dinamismo, praticidade! ;D
Pensei em ir mais a fundo...
Retirar no kernel a opção de modularizar o tulip, recompila-lo, mas seria muito demorado e mais complicado para um usuário leigo entender! :)
De qualquer forma, a sua solução também é muito simples.

Abração.

[3] Comentário enviado por juninho (RH.com) em 19/06/2007 - 15:43h

Nem acredito, tive este mesmo problema a alguns meses, como não tenho tanto conhecimento como vocês, a única solução que encontrei foi substituir a placa por uma Realteck.

Parabéns por compartilharem mais uma solução!!!!

[4] Comentário enviado por removido em 20/06/2007 - 09:07h

No Debian não tem diretório rc.d nem arquivo rc.modules...
Como eu faço esse procedimento no Debian Etch ???

[5] Comentário enviado por manfilho em 20/06/2007 - 15:30h

Se eu não me engano fica no /etc/rc.modules
E a pasta equivalente à /etc/rc.d/ no Debian é a /etc/init.d/
Corrijam-me se eu estiver errado!

Um abraço, boa sorte!

[6] Comentário enviado por CerberusBH em 20/06/2007 - 19:21h

Olá!
Meu PC é "véio", com Slackware 11, e a placa de rede também é uma Davicom. Mas no meu caso o interessante é que o módulo dmfe simplesmente não funciona nem rezando! :-D
Com o módulo tulip funciona perfeitamente.
Quando eu usava Conectiva 10, o módulo que funcionava era o dmfe e, até então, eu nunca tinha ouvido falar em tulip.
Até mais!

[7] Comentário enviado por manfilho em 06/07/2007 - 22:15h

Pois é.. alguem sabe explicar buscando bem do útero do kernel o porquê desta situação?
flw =]

[8] Comentário enviado por morvan em 07/07/2007 - 14:45h

Boa tarde.
A explicação passa pelo modo como o Kernel identifica o PCI-Id da placa. A partir de um certo número de versão / subversão do Kernel, este passou a identificar o PCI-Id (Grosso modo, todo "hardware" tem o ID do fabricante, bem como o seu subcódigo, que é uma espécie de Banco de Dados de dispositivos por fabricante) da Tulip como "dmfe" e vice-versa. Observe-se que na maioria das vezes funciona um ou outro, transparente ao usuário. Para aprofundar, sugiro uma leitura nos fontes do Kernel e dar uma "Googlada" nas palavra-chave "PCI Id"
[ ],
Morvan

[9] Comentário enviado por manfilho em 08/07/2007 - 02:12h

Hm... muito boa explicação Morvan, eu fantasiei outra coisa em minha cabeça, sabe aquela desculpa bem esfarrapada que você sabe que está errado mas pela falta de tempo você acaba enfiando guela abaixo e "aceitando"? então, aconteceu! ;D

E com essa resposta surge mais uma dúvida...

Então, essa "falha" é de quem? kernel, distribuição ou da fabricante?

Alguem sabe?

[10] Comentário enviado por morvan em 08/07/2007 - 14:47h

Boa tarde.
Respondendo e - espero - ajudando mais no processo de discussão, diria a todos que não é, em si, uma falha. É muito mais uma evolução. Quem já teve problema com drivers no Windows, por exemplo, deve se lembrar dos famosos "puxa, mas é o mesmo ChipSet e não aceita o driver"! Quando você tem que baixar um driver de um fabricante em particular, mesmo conhecendo o ChipSet do hardware destino. No Linux, a despeito da tão proclamada dificuldade, a grande maioria dos drivers de dispositivo é carregada de forma transparente, fortemente baseado no PCI-Id do fabricante. E quando dá errado, como neste caso, basta identificar o hardware mais aplicável. Outra coisa, se não tivéssemos o PCI-Id, o qual você pode achar sempre a lista mais atual na Internet, teríamos o caos. É aí onde nos deparamos com uma boa explicação sobre a importância da padronização.
Então, não seria uma falha e sim uma sucessão de fatores.
Abraços a todos.

[11] Comentário enviado por manfilho em 12/07/2007 - 01:49h

Interessante!
Obrigado pela aula Morvan!
Um abraço
(:


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts