Driver Realtek RTL8139D - VendorID 1904
Categoria(s):
Hardware,
Manutenção
Eu estava já há algum tempo com duas placas de rede baseadas em chip Realtek RTL8139D aqui que não conseguia instalar. Hoje decidi resolver isso e coloquei no XP para testar. Ambas acusavam "dispositivo desconhecido" e nenhum dos meus drivers habituais servia.
Eu cheguei a desconfiar de defeito, porque as placas deveriam aparecer pelo menos como "network adapter", mas continuei tentando. Para testar, coloquei uma outra placa Realtek que tinha aqui, baseada em chip RTL8139C, e esta foi reconhecida imediatamente pelo XP.
Eu sabia que a diferença poderia estar no VendorID das placas problemáticas, por isso dei uma pausa durante o boot para checar:

VendorId: 1904, DeviceId: 8139 e ClassId: 0200
O VendorId "habitual" de placas baseadas em chip Realtek é 10EC. Isso explica porque o Windows não estava achando o driver, embora não explique o porquê do "dispositivo desconhecido" já que pela classe (0200) o Windows deveria reconhecê-la como um dispositivo de rede, assim como fez o BIOS. A mesma placa em outro PC é reconhecida corretamente pelo Windows como "Controlador Ethernet".
Acabei encontrando o driver certo no Blog do Elton.
É importante frisar aqui que apesar do que dizem, a placa com VendorId 1904 não tem nada de "falsa". Simplesmente ocorreu do fabricante decidir colocar seu próprio VendorId na EEPROM em vez de usar o VendorId da Realtek (10EC). É importante também salientar que a Realtek é uma fábrica de chips e não fabrica placas de rede, portanto não existe uma placa de rede Realtek "verdadeira" e muito menos uma "falsa".
Editado: Não é a placa que é falsa. É o chip! Leia o comentário de Juan Paul.
Acabei encontrando o driver certo no Blog do Elton.
É importante frisar aqui que apesar do que dizem, a placa com VendorId 1904 não tem nada de "falsa". Simplesmente ocorreu do fabricante decidir colocar seu próprio VendorId na EEPROM em vez de usar o VendorId da Realtek (10EC). É importante também salientar que a Realtek é uma fábrica de chips e não fabrica placas de rede, portanto não existe uma placa de rede Realtek "verdadeira" e muito menos uma "falsa".
Editado: Não é a placa que é falsa. É o chip! Leia o comentário de Juan Paul.
Coloquei o driver e funcionou na hora. Se você tiver uma placa Realtek cujo VendorId não seja 1904, este driver óbviamente não vai servir.
05/05/08: Encontrei o meu CD com o driver. Como o driver no blog do Elton está em provedores gratuitos e pode desaparecer, decidi hospedar uma cópia própria aqui.


3 comentários:
Olá Jefferson,
O VENDORID se refere ao fabricante do componente que se comunica com o o computador (o fabricante da "placa" pode mudar essa informação do VENDORID, mas, à partir deste momento, ele passa à ser responsável pelo fornecimento de drivers para o dispositivo - coisa que um fabricante de placa de rede de baixo custo nunca iria querer).
Segue trecho extraido do datasheet da RTL8139D(L):
"VID: Vendor ID. This field will default to a value of 10ECh which is Realtek Semiconductor's PCI Vendor ID."
O VendorID da Realtek é 10EC, e o detentor do Vendor ID 1904 é "Hangzhou Silan Microelectronics Co., Ltd.", como você pode consultar no The Linux PCI ID Repository - http://pci-ids.ucw.cz/iii/?p=1
Como já deparei com algumas placas de rede em que o chipset é o RTL8139D falsificado, na verdade é fabricado por Hangzhou Silan Microelectronics (ou somente Silan para facilitar), percebi que o modelo que vem "carimbado" (carimbado sim, pois, ela não poderia ter direito de fabricar um componente e, imprimir nele a marca e modelo de outro fabricante) tem relevo (como uma impressão à laser), esse tipo de procedimento é usado por falsificadores de componente (pois, na linha de produção, o que é "impresso" no componente não tem relevo).
O modelo real do chipset desta placa de rede é Silan SC92031 (http://www.silan.com.cn/english/products/productDetail.aspx?id=288&cp_class=%e4%bb%a5%e5%a4%aa%e7%bd%91%e5%8d%a1%e3%80%81%e7%a1%ac%e7%9b%98%e4%bf%9d%e6%8a%a4%e5%8d%a1%e7%94%b5%e8%b7%af&productkey=2871) que, foi concebido para ser muito parecido com a Realtek RTL8139D (mas é diferente - provavelmente por questões de patentes). Outro detalhe que percebi é que ele esquenta mais (e consequentemente consome mais) que o o chipset RTL8139D original da Realtek.
Como ela é parecida (mas não igual) à RTL8139, os drivers para a RTL8139 não fucionam nesse chipset (fiz os teste alterando o VENDOR ID no Windows (somente no arquivo .INF), Linux e FreeBSD - no Linux o driver da Silan foi integrado ao Kernel - acredito que ainda marcado como instable). Verifique aí no Windows, no Gerenciador de Dispositivos > Placa de Rede > Propriedades > Driver > Detalhes do Driver quem é o fornecedor do driver da placa de rede, o driver deve se chamar slnt.sys (alusão ao rlnt.sys). Já ví placas se reportarem como Rsltek (alusão à Realtek).
Segue link com mais informações sobre essa placa que, eu postei na lista FUG-BR (FreeBSD User Group BR):
http://www.fug.com.br/historico/html/freebsd/2008-02/msg00618.html
Juan Paul
Juan,
Seu comentário foi muito esclarecedor. Obrigado!
Eu estava pensando em "placa" falsificada. Mas o que é falso é o chip!
Eu já havia notado (e estranhado) o slnt.sys, mas não havia reparado no alto relevo da inscrição no chip.
Eu também havia testado mudar o VendorID em um arquivo INF, mas falhei miseravelmente :)
Como disse ao Elton, vc éum anjo...me ajudou em deixar esses arquivos disponiveis...muito agradecido
parabéns pelo trabalho e sucesso
Postar um comentário