Placas de rede Encore e LG

Por:
Placas de rede Encore e LG

Foi-se o tempo em que as placas de rede eram um periférico caro. Bem, se formos pensar em redes Wireless ou em placas Gigabit Ethernet elas ainda são, mas as placas de 100 megabits estão ficando ridiculamente baratas. No exterior os modelos mais baratos da Encore e LG chegam a custar menos que um almoço:

REDE PCI 10/100 LG LNIC RJ-45 LAN LG LNIC: US$ 3,60
REDE PCI 10/100 NE3000 ENCORE ENL-832TX LAN ENC. ENL-832T: US$ 3,30

E você ainda ganhe de brinde um disquete… 🙂

Estes dois modelos em especial, a Encore ENL-832TX e a LG LNIC, junto com as antigas Encore Realtek 8139 (que aparentemente não estão mais sendo produzidas) são as placas mais baratas e mais fáceis de encontrar aqui no Brasil. Ao contrário de uma placa mãe por exemplo, uma placa de rede é um periférico bastante simples e fácil de fabricar o que explica estes preços tão baixos. Assim como no mercado de memórias, os fabricantes trabalham com margens de lucro muito estreitas, pois é um produto que qualquer um pode fabricar. Ganha não quem tem a melhor tecnologia, mas quem consegue vender com preços mais baixos.

Não existe muita diferença de desempenho entre uma destas placas e uma 3Com ou Intel. Quando a velocidade do HD não é um gargalo, é possível obter taxas de transferência de 10 ou 11 MB/s e a confiabilidade também é razoável levando em conta o custo. Até hoje tive apenas uma placa que deu defeito, com pouco mais de um ano de uso, mas como elas são muito baratas isto não chega a ser um grande problema em se tratando de um desktop. Mas, claro, não seria um risco tolerável no caso de um servidor.

Além da questão da confiabilidade, existem algumas outras limitações que veremos ao logo deste artigos, mas no geral elas são uma solução satisfatória para a maioria dos casos.

Já que todo mundo usa estas placas, resolvi escrever alguma coisa sobre elas, falando sobre o que fazem e o que não fazem, como fica o suporte no Linux, etc. Este é um artigo voltado para iniciantes.

gdh1
O chipset Realtek 8139 possui quatro variações, o RTL8139 original, 8139B, 8139C e 8139D, que trouxeram pequenas melhorias. Os 4 utilizam o mesmo módulo no Linux: o 8139too. Distribuições antigas trazem um driver chamado rtl8139, que também é compatível com as quatro placas. Esta placa [e uma campeão de compatibilidade, todas as distribuições em que cheguei a testar conseguem detectá-la sem problemas. Elas também são boas para uso no Coyote ou Freesco.

Mesmo que por ventura a distribuição não consiga detectar a placa, você pode ativá-la usando o comando:

modprobe 8139too

ou:

modprobe rtl8139

(se você estiver usando uma distribuição antiga).

O arquivo com a configuração dos módulos que são carregados durante o boot é o /etc/modules. Para que um determinado módulo seja carregado automáticamente durante o boot, basta abrir o arquivo usando o kedit e adicionar o “8139too” ou “rtl8139” no final do arquivo.

A Encore ENL-832TX e a LG LNIC utilizam o mesmo chipset, o VIA VT6105, também conhecido como Via Rhine. As duas placas utilizam um projeto parecido, mas a LG não possui o encaixe para o chip de boot.

Mas, para quê serve este tal chip de boot afinal? É simples, talvez você já tenha lido minhas matérias sobre o LTSP e o Kurumin Terminal Server. Normalmente você precisa usar um disquete de boot nas estações, que contém o software necessário para ativar a placa de rede e contatar o servidor. O chip de boot substitui o disquete, permitindo que você utilize terminais realmente diskless, sem HD, CD-ROM nem disquete. O software que vai nos chips tem menos de 50 KB e pode ser obtido no http://www.rom-o-matic.net, existem chips de EEPROM específicos para isso, mas geralmente também é possível usar chips de BIOS de placas mãe queimadas (que geralmente saem mais barato). A gravação pode ser feita usando um gravador de EEPROM ou usando a própria placa de rede.

As duas placas utilizam o mesmo módulo, o via-rhine. Ele também é feijão com arroz nas distribuições atuais e ja é suportado também pelo LTSP, mas você vai ter problemas ao usar uma distribuição muito antiga, como aquele Conectiva 4 que está juntando poeira em algum lugar… 🙂

Vamos agora ao problema mais grave. Todos sabemos que um cabo de rede de par trançado possui 4 pares de cabos, ou seja, 8 fios. Mas, tanto a Encore quanto a LG possuem apenas 4 contatos, como você pode ver na foto:

gdh2
Isso acontece por que o padrão 100BaseTX, que é o padrão Ethernet para redes de 100 megabits que usamos no dia-a-dia utiliza apenas dois dos quatro pares de cabos (os pares laranja e verde), sendo um par usado para enviar e o outro para receber. É justamente devido ao uso de apenas dois dos pares de cabos que permite que estas placas possam funcionar com apenas quatro contatos.

Se os outros quatro contatos realmente não servissem para nada todos os cabos de rede teriam apenas 4 fios e custariam metade do preço. mas não é bem assim. Em primeiro lugar, o uso de apenas dois pares se restringe apenas ao padrão de 100 megabits. No Gigabit Ethernet todos os quatro pares são usados.

Os quatro pares são também usados no padrão 100BaseT4, que é o padrão de 100 megabits para cabos de categoria 3. Ele que elimina o modo full-duplex e utiliza todos os quatro pares do cabo, reduzindo assim a taxa de sinalização.

O 100BaseT4 utiliza uma sinalização mais complexa onde um dos pares envia dados da estação para o hub, outro envia do hub para a estação e os outros dois são alocados para uma direção ou outra, de acordo com quem está transmitindo, de forma que apenas três dos pares são usados para transmitir dados simultaneamente. Como os cabos de categoria 3 suportam freqüências de até 16 MHz, quase 6 vezes menos que os de categoria 5, foi necessário criar um sistema complicado de codificação, que utiliza uma sinalização ternária, com o uso de três sinais diferentes (em vez de dois, como no sistema binário). Com três combinações por par de cabo e três pares de cabo, temos um total de 27 combinações possíveis por ciclo, suficiente para transmitir 4 bits (16 combinações), combinados com sinais adicionais de redundância. Redes com apenas 4 contatos não suportam o 100BaseT4.

Uma coisa que me chamou a atenção na placa da LG é que o disquete inclui um driver for Linux.

Originalmente a placa é detectada no Linux usando o módulo via-rhine. Ela foi detectada automaticamente no Mandrake 9.1 e no Kurumin 2.0 onde testei, mas em caso de qualquer problema você pode carregá-lo manualmente usando o comando “modprobe via-rhine“. Mesmo assim, o driver pode ser útil se você estiver usando uma distribuição antiga, que ainda não inclua suporte nativo.

Também não existe problema em instalar o driver em uma distribuição que já ofereça suporte à placa, ele simplesmente substitui o driver antigo. Não percebi nenhum ganho de desempenho, mas pode ser que existam outras melhorias. Ele vem com o fonte… você pode dar uma olhada se entender alguma coisa de C 🙂

Como de praxe, para instalar o drive você precisa ter o gcc e o pacote kernel-headers instalados. Eles já vem instalados por padrão no Kurumin 2.0. No Mandrake você deve marcar a categoria “Desenvolvimento” durante a instalação, ou instalá-los posteriormente através do gerenciador de software no Mandrake Control Center.

Para instalá-lo, copie e descompacte o arquivo /linux/rhinefet.tar do disquete em uma pasta qualquer do HD. Dentro da pasta você encontrará um arquivo linux.txt com as instruções de instalação. Mas, indo direto ao ponto, logue-se como root e rode o comando:

make install

gdh3
Isto gerará um arquivo rhinefet.o dentro da pasta, que é um driver gerado especificamente para o Kernel da sua máquina. Se você der uma olhada na pasta /lib/modules/2.4.20-xfs/kernel/drivers/net/ vai ver que ele foi copiado para lá e o módulo antigo foi renomeado para via-rhine.o.backup. Os módulos são parte integrante do Kernel, por isso os módulos para uma determinada distribuição não funcionam em outra, a menos que por uma enorme coincidência as duas utilizem exatamente a mesma versão do Kernel. Justamente por isso, o driver vem em código fonte, para permitir que seja instalado em várias distribuições diferentes.

O comando:

insmod rhinefet

conclui a instalação e já tenta carregar o driver.

O próximo passo é fazer com que o novo módulo seja carregado durante o boot. Para isso abra o arquivo /etc/modules.conf e adicione esta linha no final do arquivo:

alias eth0 rhinefet

(o eth0 é o dispositivo da placa de rede, pode ser eth1 ou eth2 se você tiver mais de uma placa)

Aproveite para editar também o arquivo /etc/modules e remover a linha “via-rhine” que tenta carregar o módulo antigo (não é realmente necessário, mas não custa manter o sistema limpo não é mesmo?).

Agora só falta os fabricantes de softmodems aderirem à moda e começarem a incluir drivers for Linux, mesmo que proprietários nos CDs de instalação. Mesmo que ainda seja necessário compilar o driver e fazer outras modificações manualmente, o simples fato de ter um mãos um driver já testado já faz toda a diferença.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X