|
[16/05]
:. Yahoo! abre Search Monkey para desenvolvedores [16/05] :. Facebook recusa participação no Google Friend Connect [16/05] :. DOCTYPE, enciclopédia do Google para desenvolvedores web [16/05] :. Mais detalhes sobre o Asus Eee PC 901, baseado no Atom [16/05] :. Estudante inventa alternativa aos transistores de silício [16/05] :. Samsung demonstra notebook com tela AMOLED [16/05] :. Sobre a condenação de Hans Reiser [16/05] :. OLPC: agora com Windows [15/05] :. VirtualKeyboard, um teclado internacionalizado para sites [15/05] :. Fotos do Asus Eee PC 901, baseado no Atom [15/05] :. Microsoft TouchWall, o Surface de parede [15/05] :. Adobe lança Flash Player 10 Beta [15/05] :. QGtkStyle, aplicações em Qt com visual nativo do Gnome/GTK [15/05] :. Moonlight, uma implementação livre do MS Silverlight [15/05] :. MSI Wind: o Eee killer :. Mais noticias » |
No Linux, todos os dispositivos da máquina, incluindo o HD, memória, placa de rede, etc. são acessados através de um módulo de Kernel, análogo ao driver de dispositivo que usaríamos no Windows. Este módulo recebe as informações que devem ser enviadas ao dispositivo através de um arquivo especial, criado dentro da pasta "/dev". Ao "salvar" alguma informação dentro do arquivo "/dev/modem", por exemplo, ela é enviada para o modem. Usando a formatação adequada, é possível até mesmo controlar o modem e transmitir dados escrevendo no arquivo. No caso das placas de rede, o procedimento é um pouco mais complexo, pois é preciso utilizar o TCP/IP ou outro protocolo de rede, mas a idéia central continua sendo a mesma. Os programas se comunicam com a placa de rede utilizando um "device", ou seja, um arquivo especial dentro da pasta "/dev". A placa de rede é vista pelo sistema com o dispositivo "eth0". Caso você tenha mais de uma, a segunda torna-se a "eth1", a terceira passa a ser a "eth2" e assim por diante. Ao conectar via acesso discado, seja via modem ou seja via ADSL PPPoE (com o modem configurado como bridge), é criada a interface virtual "ppp0". O "eth" vem de "Ethernet", enquanto o "ppp" vem de "Point to Point Protocol". Com relação ao acesso discado, a principal dificuldade é instalar o driver necessário para ativar o modem. Até por volta de 1998, a maioria dos modems vendidos eram hardmodems. Eles são fáceis de configurar, pois o modem executa via hardware todas as funções necessárias. Você precisa apenas configurar o discador para procurar o modem na porta serial correta. As possibilidades vão da porta /dev/ttyS0 (com 1) à porta /dev/ttyS4 (com 5). A forma mais rápida de descobrir o device correto é simplesmente abrir o kppp e testar na base da tentativa e erro na opção "Dispositivo de Modem". Infelizmente, os hardmodems são raridade hoje em dia, pois são muito mais caros. Os softmodems dominaram rapidamente o mercado, pois são mais simples e custam uma fração do preço. Neles, a maior parte das funções são executadas por um software incluído no driver do modem. O sistema envia os comandos AT para o driver (e não mais diretamente ao modem) e ele (driver) se encarrega de modular o sinal, fazer a correção de erros e os demais passos necessários. Ao usar um softmodem, não adianta indicar diretamente a porta do modem no kppp: você precisa ter o driver instalado, ou nada feito. Temos aqui uma comparação entre um hardmodem US Robotics de 56k, ainda em versão ISA, e um softmodem PCI barato, baseado em um chipset Intel 537, que mostra as diferenças no volume de componentes usados: O hardmodem inclui um processador relativamente poderoso, combinado com um grande volume de chips auxiliares, enquanto o softmodem inclui apenas um chip DSP simples que, essencialmente, atua como uma interface entre o driver (executado pelo processador principal) e a linha telefônica. Como costumo dizer, os modems discados são provavelmente a única família de componentes que regrediu em relação aos que tínhamos na década de 1990. Aqui vai um pequeno resumo dos drivers disponíveis para as distribuições Linux recentes, que utilizam o Kernel 2.6.14 em diante. Eles já vem pré-instalados em algumas distribuições, mas na maioria dos casos você vai precisar instalar os drivers manualmente. Você pode identificar o modem usando o comando "lspci", que lista todas as placas PCI instaladas na placa-mãe. Procure pela linha iniciada com "Modem" ou "Communication controller", como em:
A marca do modem, na maioria dos casos, não diz muito, pois o chipset do modem é projetado por um fabricante, produzido por outros e comprado por um número maior ainda de pequenos fabricantes que montam as placas. Estas são então vendidas por um sem número de empresas que apenas colocam sua própria marca. Independentemente do seu modem ser LG, Kayomi, Clone ou o que quer que seja, o que importa mesmo é o chipset usado. Os modems discados são provavelmente a categoria de dispositivos com suporte mais precário no Linux. É uma espécie de problema cultural. Quase todos os desenvolvedores e usuários avançados (que são os que podem desenvolver drivers e dar suporte a eles) migraram rapidamente para as conexões via ADSL, cabo, rádio e outras modalidades de banda larga assim que elas se tornaram acessíveis. Os fabricantes vêem os modems como uma forma de commoditie, um tipo de dispositivo barato, vendido com margem reduzida de lucro, no qual não vale a pena fazer grandes investimentos. Muitas vezes não investem sequer em resolver os problemas do driver for Windows, quanto mais em desenvolver e dar suporte para uma versão Linux. Desenvolver um driver para um softmodem é uma tarefa complexa, pois é preciso implementar via software todas as funções que o modem propriamente dito não executa, como a modulação do sinal, correção de erros e muito mais. Para você ter uma idéia, o módulo de kernel para placas de rede com chipset SiS900 tem apenas 22 kbytes, enquanto o módulo que dá suporte aos softmodems com chipset Intel 537EP fica com 1.5 MB depois de compilado, mais de 60 vezes maior. No final, temos uma situação em que os fabricantes têm pouco interesse em desenvolver um driver e não divulgam as especificações. Poucos desenvolvedores têm interesse em encarar o hérculeo trabalho de desenvolver um driver fazendo engenharia reversa simplesmente porque não acessam via modem e, para completar, cada vez mais gente acessa via banda larga, fazendo com que a demanda por drivers seja cada vez menor. Mesmo assim, vários modems possuem suporte no Linux. Pesquisando um pouco, você pode comprar diretamente um modem compatível e assim evitar muitas dores de cabeça. Se você tem em mãos um modem que não possui driver, não perca tempo com ele: venda ou troque com alguém que usa Windows e compre um modem suportado. Se puder, resolva o problema definitivamente, comprando um hardmodem externo (ligado ao PC através da porta serial), como alguns modelos comercializados pela Dlink, Trendnet e US Robotics, ou migrando para algum plano de banda larga. Voltando aos drivers, a partir do Kernel 2.6.14 passou a vir incluído um pequeno conjunto de drivers open-source, desenvolvidos pela equipe do Alsa, responsável pelo desenvolvimento dos drivers para placas de som. Até certo ponto, um modem tem uma função similar à de uma placa de som: ele transforma sinais digitais em sinais analógicos e vice-versa. Um modem inclui muitas funções adicionais, como modulação de dados, compressão e correção de erros, mas os desenvolvedores têm conseguido superar as dificuldades. Os módulos disponíveis são: snd-intel8x0m: Este driver dá suporte aos modems Intel AC97, encontrados em muitos notebooks (incluindo a maioria dos Centrinos), aos modems onboard encontrados em placas com chipset nVidia nForce e também a alguns modems PCI com chipset Intel ou PC-Tel. Uma observação é que, em alguns casos, carregar o driver do modem faz com que a placa de som pare de funcionar. snd-atiixp-modem: Ele dá suporte aos modems onboard encontrados em notebooks com o chipset ATI IXP. Apesar da ATI ser uma novata no ramo de chipsets, o modem é bem suportado e mantém conexões estáveis. snd-via82xxx-modem: Este é um driver ainda em estágio inicial de desenvolvimento, que dá suporte aos modems onboard encontrados em placas-mãe recentes, com chipset VIA. Note que muitas placas, sobretudo as PC-Chips, incluem modems AMR, que funcionam com o driver para modems Intel AC'97 ou com o slamr (que veremos a seguir). snd-ali5451-modem: Também em estágio inicial de desenvolvimento, dá suporte aos modems onboard de placas com o chipset ALI 5451, encontrado em algumas placas de baixo custo. Para usar qualquer um dos quatro, comece carregando o driver usando o comando "modprobe" (como root), como em:
Em seguida, você precisa instalar o "slmodemd", o utilitário que faz a interface entre o driver e o sistema, criando o dispositivo de comunicação. Se você está usando uma distribuição derivada do Debian, pode instalá-lo via apt-get:
Em outras distribuições, procure pelo pacote "slmodem" ou "sl-modem". Caso ele não esteja disponível, resta a opção de instalá-lo a partir do código fonte. Nesse caso, você vai precisar ter instalados os pacotes de desenvolvimento. No Ubuntu, instale os pacotes "build-essential", "gcc", "g++" e "libasound2-dev":
O próximo passo é baixar o pacote "slmodem-2.9.9d-alsa.tar.gz", ou a versão mais recente no momento em que estiver lendo este texto, no: Descompacte o arquivo, acesse a pasta que será criada e rode os comandos:
Depois de instalado, execute-o incluindo o parâmetro "--alsa", que especifica que ele deve usar o driver do alsa, como em:
O "killall slmodemd" é importante, pois se houver outra instância ativa, ele não conseguirá acessar o modem e retornará um erro. O "modem:1" especifica o dispositivo do modem (da forma como é referenciado pelo driver). Dependendo da versão do driver usada, o modem pode ser visto como "modem:1", "hw:1", "modem:0" (atribuído geralmente ao ATI IXP) ou "hw:0" (comum em notebooks Centrino). Você pode testar as 4 possibilidades até encontrar o correto no seu caso. Ao executar o comando, incluindo o parâmetro correto, você verá uma mensagem como:
Use `/dev/ttySL0' as modem device, Ctrl+C for termination. Como pode ver, o slmodemd é um programa que fica residente. Ao fechá-lo, o acesso ao modem é desativado. Se não quiser que ele obstrua o terminal, use o "&" no final do comando. O "/dev/ttySL0" é o dispositivo por onde o modem é acessado. Crie o link "/dev/modem" apontando para ele, assim fica muito mais fácil localizar o modem dentro do programa de discagem:
A partir daí você pode conectar usando o kppp, indicando o dispositivo "/dev/modem" na opção "Dispositivo de Modem" e configurando a conexão com o provedor na aba "ligar". Este é o resultado do relatório gerado pelo "perguntar ao modem" do KPPP de um Intel AC'97 usado no HP NX6110. Como pode ver, ele é detectado como se fosse um modem Smartlink, por causa do uso do slmodemd. A pista para o driver que está realmente sendo usado é a linha "modem:1 alsa modem driver". Outro driver muito usado é o "slamr", uma espécie de "curinga", um driver desenvolvido pela Smartlink que funciona com os modems PC-Tel onboard (ele consegue ativar simultaneamente o modem e o som onboard, ao contrário do driver antigo) e também em modems PCI LG Netodragon e até mesmo com alguns modelos de modems Intel. Você pode baixar a versão mais recente do driver no mesmo link do pacote do slmodemd: Neste caso, você baixa o arquivo sem "alsa" no nome, como em "slmodem-2.9.11.tar.gz". Você precisa da versão 2.9.11 ou mais recente, pois as antigas não compilam em distribuições com o Kernel 2.6.13 ou mais recente. Para instalar o driver, você precisa ter instalado (além dos compiladores que vimos há pouco) o pacote com os headers (ou o código fonte completo, dependendo da distribuição) do Kernel em uso. No Ubuntu, use o comando "uname -a" para verificar a versão do Kernel carregado na memória e instale os headers via apt-get, especificando a versão, como em:
Com tudo nos lugares, descompacte o arquivo, acesse a pasta que será criada e rode os comandos "make" e "make install" (este último como root), como em:
Antes de discar, você precisa carregar o driver e executar o slmodemd. Se preferir, crie um script para não precisar ficar digitando-os manualmente a cada conexão:
Temos ainda os drivers comerciais para modemsConexant HSF e HCF, desenvolvidos pela Linuxant. Os drivers funcionam, mas custam US$ 19, o que acaba sendo mais caro que comprar outro modem. No site está disponível uma versão demo, onde a conexão fica limitada a 14.4k: http://www.linuxant.com/drivers. A Intel chegou a desenvolver drivers para os modems 537 e 537EP, os famosos "Intel Ambient", muito comuns há algum tempo atrás. Os drivers ainda estão disponíveis no http://linmodems.technion.ac.il/packages/Intel, mas não possuem muita utilidade hoje em dia, pois não dão suporte aos modems Intel atuais (os mais baratos, que usam um chip DSP pequenininho) e não compilam nas versões recentes do Kernel, da 2.6.13 em diante. Outro exemplo de driver obsoleto é o driver para modems Lucent/Agere, que não funciona com os modelos atuais (os V92, com chipset "sv92") e que, por isso, não tem mais tanta utilidade hoje em dia. De qualquer forma, caso você tenha um modem antigo, fabricado entre 2000 e 2002, pode baixar o driver disponível no: http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6/.
|
||||||||||||||||||||