Revista Do Linux
 
EDIÇÃO DO MÊS
 CD do Mês

 Capa
 Entrevista
 Corporativo
 Programação
 Segurança
 Ferramenta
 Produto
 Hardware
 

O que é WinModem?

WinModem é marca registrada da 3Com, mas acabou virando sinônimo de modem controlado por software

WinModems são modems cujas partes do hardware foram removidas e substituídas por software que executa a mesma função, relegando à sua CPU tarefas como compressão de dados, correção de erros, protocolos de comunicação, entre outras. Apesar de ser marca registrada da 3Com, por analogia a palavra WinModem, acabou virando sinônimo de modem controlado por software. A maior vantagem deles é o preço, já que com a remoção de componentes o custo de produção cai e eles podem ser revendidos a um preço menor. Em contrapartida, suas desvantagens são inúmeras. Além de a maioria dos modelos só funcionar no Windows, existe ainda toda a carga de processamento gerada pelo software que executa as funções que faltam no hardware. O resultado é uma carga maior no processamento, o que gera a "lentidão" constatada em máquinas que possuem WinModems. E quando sua CPU não agüenta a tarefa, a conexão simplesmente cai. (Lei de Murphy: geralmente no meio daquele dowload gigantesco, que já estava quase no final).

Infelizmente WinModems são muito populares, sendo o padrão nas máquinas de vários fabricantes e a escolha de consumidores desavisados ou que não querem gastar. Até pouco tempo atrás fazer um WinModem funcionar no Linux era praticamente impossível, mas hoje, graças à cooperação de alguns fabricantes e à tenacidade dos desenvolvedores, o cenário está mudando e já é possível fazer alguns modelos funcionar no Linux. Esses modelos recebem o apelido de "LinModems".

Reconhecendo um WinModem

Não é difícil reconhecer um WinModem, geralmente basta olhar a caixa. Evite siglas como WinModem, SoftModem, HSP, HSF, HCF, HaM, Host-Controlled ou Controller-Less modem. Desconfie dos que exibem na caixa requisitos mínimos de sistema algo como: "Pentium 233 MMX ou superior". É impossível se guiar pelo fabricante, pois praticamente todos eles, da PCTel à 3Com, produzem WinModems. Para assegurar que não está levando gato por lebre, compre um modem externo, pois todos são modems "de verdade". Num notebook, fique de olho: apesar de não serem comuns, existem WinModems PCMCIA, e vários notebooks com modem interno utilizam WinModems. Finalmente, evite os modelos USB. O suporte a esses dispositivos ainda não é um "padrão" entre as distros Linux (algumas suportam vários, outras suportam alguns, outras não suportam USB etc.), e há até WinModems USB.

Por que não funcionam no Linux?

Cada fabricante baseia seu modem em conjuntos de chips ou chipsets específicos e geralmente incompatíveis entre si, e cada um escolhe quais componentes de seus modems serão substituídos por software, contribuindo ainda mais para a incompatibilidade. Para completar o caos, a maioria dos fabricantes não libera o código-fonte do software usado nesses modens e nem as especificações do hardware, fazendo da tarefa de escrever um driver GPL, com pouca ou nenhuma informação, um verdadeiro pesadelo.

Drivers e versão do kernel

Alguns poucos fabricantes, de olho em um mercado promissor, liberaram drivers Linux para seus WinModems. Contudo, os drivers são, em sua maioria, distribuídos como módulos binários para versões específicas do kernel, apresentando problemas (ou não funcionando) em máquinas com um kernel diferente daquele no qual os módulos foram compilados. Então, antes de se animar porque seu modem é suportado, verifique se há um driver para a versão do kernel que você usa, senão nada feito. Um driver deve, em teoria, funcionar com qualquer modem que utilize o chipset para o qual foi escrito. Na Tabela 1 há uma pequena lista de chipsets suportados pelo Linux, seus fabricantes e as versões do kernel em que são suportados.

Para descobrir qual o chipset usado em seu modem, digite, como root, o comando lspci -vv e procure os dados de seu modem, algo parecido com o mostrado no quadro abaixo.

Com nome do fabricante e modelo, consulte a lista de compatibilidade de WinModems, disponível no site WinModems are not modems; Linux information page, ou uma versão condensada no site da Revista do Linux, na seção Artigos On-Line. Nessa lista há, com o modelo do modem, o chipset usado, e consultando a Tabela 1 você descobre qual driver suporta esse chipset. Por exemplo, através do comando lspci -vv descubro que meu modem é um Lucent Microelectronics 56k WinModem. Ainda consultando a tabela nos sites acima citados, vejo que ele utiliza o chipset Lucent 1646T00/1034AH (Mars-2). Consultando a tabela de chipsets, vejo que o chipset Lucent Mars é suportado e que existem drivers para kernels da série 2.2 e 2.4. De posse do driver, basta instalá-lo. Em alguns casos, é só inserir o módulo no kernel (através do insmod), em outros é necessário criar um device específico para o modem (com o mknod, por exemplo), ou compilar o módulo, mas nada muito complexo, se seguidas as instruções que acompanham cada driver. Para facilitar, incluímos em nosso site, junto com as tabelas de compatibilidade, links para os drivers de cada chipset suportado pelo Linux.

Tabela 1
FabricanteChipsetVersão do Kernel
Ambient Technologies/Cirrus Logic342x, 562x, 565xN/A
AT&T/LucentVenus e LT WinModem (Luna, Apollo e Mars)2.2x e 2.4x
Conexant/RockwellACF e HSF2.2.14, 2.2.16 e 2.2.17
ESSTeledrive2.2.12
IBMMWave ACP (Thinkpad 600, 600E, 770x2.2.16
IntelHam MD5628D2.2.12 e 2.2.18
PCTelHSP Micromodem2.2x
* N/A - Informação não disponível

Saída do comando lspci -vv

00:0a.0 Communication controller: Lucent Microelectronics 56k WinModem (rev 01)
Subsystem: Lucent Microelectronics LT WinModem 56k Data+Fax+Voice+Dsvd
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 252 min, 14 max, 0 set
Interrupt: pin A routed to IRQ 12
Region 0: Memory at de000000 (32-bit, non-prefetchable)
Region 1: I/O ports at 8800
Region 2: I/O ports at 8400
Capabilities: [f8] Power Management version 2
Flags: PMEClk- AuxPwr- DSI+ D1- D2+ PME-
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

Para saber mais

LinModem HOWTO - walbran.org/sean/linux/linmodem-howto-all.html

Linmodems.org - www.linmodems.org

Artigos on-line da Revista do Linux - www.revistadolinux.com.br/artigos

WinModems are not Modems; Linux information page www.idir.net/~gromitkc/20010302a.html


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux