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.
Então fui me certificar qual módulo estava ativo pra minha placa. Dei um lsmod e sai testando com o modinfo qual era o módulo correspondente a minha placa de rede até achar nas informações de um dos módulos ativos a expressão "eth", o módulo era um tal de tulip.
# modinfo tulip | grep eth
description: Digital 21*4* Tulip ethernet driver
Fui até o arquivo /etc/rc.d/rc.modules-(seu kernel, no meu caso "2.6.17.13"), na parte do "# Other network hardware drivers:" lá estava ele, especificado!
[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,
[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.
[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.
[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!
[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?
[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.