|
Instalando
e configurando Modem
|
Download |
Imprimir |
Com certeza você já ouviu algum colega falar que para instalar o Modem e agora as placas Wireless no Linux é uma tarefa complicada para usuários iniciantes, mas não é. Abaixo seguem alguns conceitos que você deve saber antes de instalar um Modem no Linux.
Para fazer uma instalação de um modem você deve ter conhecimentos Intermediário de Linux tais como: instalação de pacotes e de programas fontes, compactação e descompactação de arquivos, configuração do kernel, módulos, mensagens de logs e etc.
Os modems utilizam portas de comunicação serial, onde temos quatro portas padrão seriais de comunicação que são identificadas por uma porta de I/O (Entrada e Saída) e um canal de interrupção IRQ como mostra a tabela abaixo
|
Dispositivo no Linux |
Dispositivo no Windows |
IRQ
|
I/O |
|
/dev/ttyS0 |
COM1 |
4 |
0x03f8 |
|
/dev/ttyS1 |
COM2 |
3 |
0x02f8 |
|
/dev/ttyS2 |
COM3 |
4 |
0x03f8 |
|
/dev/ttyS3 |
COM4 |
3 |
0x02f8 |
Repare que as portas de comunicação serial ttyS0 e ttyS2 utilizam o mesmo canal de interrupção IRQ 4 e as portas ttyS1 e ttyS3 utilizam o mesmo IRQ 3, dessa forma temos duas portas disponíveis, que geralmente são as portas ttyS0 e ttyS1. Os modems também podem utilizar uma porta de I/O e um canal de comunicação de IRQ diferente do padrão de ttyS0 a ttyS3, por exemplo ttyS4, ttyS5, ...
|
Softmodems e Hardmodems |
Grande parte das placas de fax-modem PCI não são suportadas pelo Linux pelo fato de serem softmodems, ou seja, são modems de software (winmodems – linmodemns). Já os hardmodems (modems de hardware) são suportados pelo Linux e podem ser configurados sem precisar instalar o driver do modem.
|
Hardmodems |
Os modems hardmodems são suportados pelo kernel do Linux por que possuem um driver padrão, para ser usado por hardmodems que possuem todos os circuitos necessários para seu funcionamento e exigindo a utilização de poucos recursos do processador.
Abaixo temos uma imagem de um hardmodem US Robotics 56K PCI, com os componentes que o diferencia de um softmodem onde são descritos abaixo na imagem.
|
|
Transformador – Protege o modem contra oscilações de voltagens vindas da linha telefônica
Relay – Responsável pela conexão física entre o modem e a linha telefônica
Speaker – Responsável pelo som de discagem do modem
Capacitores – Armazenam energia
DSP – (digital signal processor – processador de sinal digital) é um microprocessador especializado especialmente em processamento de sinal digital.
UART – (universal asynchronous receiver transmitter – transmissor de recebimento universal assíncrono) é um circuito integrado desenvolvido para para implementação da interface de comunicação serial
Buffer – Armazena os dados recebidos temporariamente e os transmite quando o processador estiver desocupado
Memória Flash – É onde ficar armazenado o firmware do modem (programa que fica embutido dentro do dispositivo de hardware do modem)
Mov – É uma espécie de fusível usado para proteger o modem contra oscilações de energia
Codec – Faz a transformação dos sinais digitais em analógicos a serem transmitidos pela linha telefônica
|
Softmodems |
Os softmodmens não possuem todos os circuitos necessários para seu funcionamento, e exigindo a utilização do processador para controlar seus circuitos através de softwares para emular suas funções e diminuindo o desempenho do processador.
Muitos fabricantes de softmodems desenvolvem drivers diferentes, o que levaram fabricantes e hackers ao desenvolvimento de um driver padrão de softmodem para Linux e Windows. Para baixar os drivers de softmodems para Linux acesse o site do fabricante tais como: US Robotics Intel, Conexant, PCTel, Lucent, Motorola ou o site www.linmodems.org
Abaixo temos duas imagens de softmodem : a esquerda um Robotics e a direita um PCTel, onde é usado um chip chamado DAA que substitui a UART, o buffer, o Chip DSP, o Codec e a Memória Flash.
|
|
|
Exibindo informações do Modem |
Agora vamos descobrir o modelo e o fabricante do Modem com o comando lspci especificando pela seção Communication referente ao Modem
|
$ lspci -v | grep Communication 00:08.0 Communication controller: PCTel Inc HSP MicroModem 56 (rev 01) Subsystem: PCTel Inc HSP MicroModem 56 Flags: medium devsel, IRQ 11 I/O ports at c000 [size=64] Capabilities: <access denied> |
Exiba o Modem com o comando lshw e procure pela seção communication , onde informa que é um Modem do fabricante PCTel e modelo HSP MicroModem.
|
$ lshw | less *-communication UNCLAIMED description: Communication controller product: HSP MicroModem 56 vendor: PCTel Inc physical id: 8 bus info: pci@00:08.0 version: 01 width: 32 bits clock: 33MHz capabilities: cap_list configuration: latency=0 resources: ioport:c000-c03f irq:11 |
|
Configuração de Hardmodems |
Para a configurar um hardmodem não é necessário baixar o driver e instala-lo, é necessário apenas:
Configurar as portas seriais que vai de ttyS0 (COM1) até ttyS3 (COM4) ou criando seu próprio dispositivo com o comando MAKEDEV.
Obter os endereços IRQ e I/O do modem através do comando lspci -v
Instalar o pacote setserial a partir do CD ou DVD de instalação da sua distribuição Linux ou através dos repositórios da internet da sua distribuição Linux
Por exemplo no Debian, Ubuntu ou Kurumin você pode instalar o pacote com apt-get
|
# apt-get install setserial |
Primeiramente descubra os endereço I/O e o canal de interrupção IRQ do modem com lspci -v
|
$ lspci -v | grep Communication 00:08.0 Communication controller: US Robotics/3Com 56K FaxModem Model 5610 (rev 01) Subsystem: US Robotics/3Com Flags: medium devsel, IRQ 10 I/O ports at d000 [size=64] Capabilities: <access denied> |
Repare acima os valores do canal de interrupção IRQ 10 e a porta de comunicação I/O 0xd000 (“0x“ é usado para especificar o endereço hexadecimal da porta).
Atenção caso tenha um mouse serial conectado no dispositivo /dev/ttyS0, use um dispositivo diferente para o modem
Agora que temos dos dados de IRQ e I/O, falta agora obter os dados da porta serial e UART do modem com o comando abaixo:
|
# cat /proc/tty/driver/serial serinfo:1.0 driver:5.05c revision:2001-07-08
0: uart:16550A port:3F8 irq:4 baud:1200 tx:8 rx:116309 fe:22 brk:16
RTS|DTR|DSR
1: uart:unknown port:2F8 irq:3
2: uart:unknown port:3E8 irq:4
3: uart:unknown port:2E8 irq:3
4: uart:16550A port:d000 irq:10 tx:0 rx:0 CTS|DSR
5: uart:unknown port:1A8 irq:9
|
Perceba que o saída do comando acima exibe o IRQ 10 que se encontra na linha 4, que indica que o modem está conectado no dispositivo ttyS4 (COM5 do Windows). Agora temos os dados necessários para configurar o modem:
IRQ 10
Endereço I/O 0xd000
Dispositivo ttyS4
UART 16550A
Agora exibindo os dispositivos em /dev/ repare que temos ttyS0, ttyS1, ttyS2 e ttyS3 que é o padrão, mas não existe o dispositivo /dev/ttyS4, onde devemos criá-lo com comando MAKEDEV ou mknod como mostra o exemplo abaixo.
Utilizando o comando MAKEDEV para criar o dispositovo no Debian o dispositivo será criado dentro do diretório /dev/.static/dev, onde você pode criar um link simbólico apontando para o dispositivo e em outras distribuições Linux como Fedora será criado em /dev/.]
Debian
|
# cd /dev # MAKEDEV ttyS4 # ls -l .static/dev/ttyS4 crw-rw---- 1 root dialout 4, 68 2008-04-26 12:05 .static/dev/ttyS4 # ln -s .static/dev/ttyS4 /dev/ttyS4 # ls -l ttyS4 lrwxrwxrwx 1 root root 17 2008-04-26 12:09 ttyS4 -> .static/dev/ttyS4 |
Fedora
|
# cd /dev # MAKEDEV ttyS4 # ls -l ttyS4 lrwxrwxrwx 1 root root 17 2008-04-26 12:09 ttyS4 -> /dev/ttyS4 |
Usando o comando mknod você deve especificar o número MAIOR (neste caso 4) e MENOR (neste caso 68) e mudar as permissões para o usuário root e dialout como mostra os comandos abaixo:
|
# cd /dev # mknod ttyS4 c 4 68 # chown root.dialout ttyS4 # chmod 660 ttyS4 # ls -l ttyS[0-4] crw-rw---- 1 root dialout 4, 64 2008-04-26 07:01 ttyS0 crw-rw---- 1 root dialout 4, 65 2008-04-26 07:01 ttyS1 crw-rw---- 1 root dialout 4, 66 2008-04-26 07:01 ttyS2 crw-rw---- 1 root dialout 4, 67 2008-04-26 07:01 ttyS3 crw-rw---- 1 root dialout 4, 68 2008-04-26 07:01 ttyS4 |
* Lembre-se que esses comandos acima devem ser incluídos na inicialização do sistema no arquivo /etc/rc.local
Agora que temos os dados necessários podemos configurar o modem especificando o dispositivo ttyS4, o canal IRQ 10, o endereço I/O 0xd000 e a UART usada pelo dispositivo com o comando setserial
|
# setserial /dev/ttyS4 irq 10 uart 16550A |
Você também pode especificar o canal IRQ e a porta I/O
|
# setserial /dev/ttyS4 irq 10 port 0xd000 uart 16550A |
Você pode usar mais opções do comando setserial, tais como :
^fourport – configura a porta
^auto_irq – tenta determinar um IRQ durante a autoconfiguração
skit_test – não faz o teste de UART durante a autoconfiguração
autoconfig – configura automaticamente a porta serial
spd_vhi – velocidade de transmissão suportada pelo modem 115kb, para outros valores digite setserial --help
|
# setserial /dev/ttyS4 port 0xd000 irq 10 ^fourport ^auto_irq skit_test autoconfig spd_vhi |
Agora crie um link simbólico para o dispositivo do modem
|
# ln -s /dev/ttyS4 /dev/modem |
Pronto agora é só usar os discadores kppp no ambiente gráfico Kde ou Gnome ou wvdial em modo texto.
|
Configuração de Softmodems |
Para instalar um modem softmodem é necessário baixar e instalar o driver da internet
|
Obtendo informações sobre o driver para Softmodems |
Para baixar o driver do modem precisamos acessar o site do fabricante ou dos sites abaixo para obter mais Informações sobre o modem.
A primeira coisa que devemos fazer é baixar o script para detectar informações sobre o modem
http://linmodems.technion.ac.il/packages/scanModem.gz
Baixe o script e descompacte e mude suas permissões para executável
|
$ gunzip scanModem.gz $ chmod +x scanModem |
Agora logue como root e execute o script
|
$ su # ./scanModem |
Pronto será gerado uma pasta chamada Modem, onde será gerado o arquivo ModemData.txt e outro arquivo com o nome do seu modem, por exemplo no meu caso gerou o arquivo Pctel.txt referente ao meu modem com informações e instruções de instalação.
Analisando o arquivo /Modem/ModemData.txt é informado várias informações sobre o modem como PCI ID, IRQ, modelo e o driver pctel-0.9.7-9-rht-8.tar.gz que deve ser baixado do site http://linmodems.technion.ac.il/pctel-linux.
Repare que também é informado sobre o pacote com os arquivos de inclusão do kernel atual (uname -r), que neste meu caso é linux-headers-2.6.18-4-686.
|
$ less Modem/ModemData.txt PCI slot PCI ID SubsystemID Name ---------- --------- --------- -------------- 00:08.0 134d:7891 134d:0001 Communication controller: PCTel Inc HSP MicroModem 56 Modem chipset detected on CLASS="Class 0780: 134d:7891" NAME="Communication controller: PCTel Inc HSP MicroModem 56 " PCIDEV=134d:7891 SUBSYS=134d:0001 IRQ=11 IDENT=PCTEL
At http://linmodems.technion.ac.il/pctel-linux Get the pctel-0.9.7-9-rht-8.tar.gz Unpack under Linux with: tar zxf pctel*.tar.gz If compiling is necessary packages must be installed, providing: linux-headers-2.6.18-4-686 |
Analisando o arquivo Modem/Pctel.txt é informado que utilizando kernel 2.6.x (onde x é a versão do kernel) podemos baixar o driver pctel-0.9.7-9-rht-8 e que é exibido o PCI ID (134d:7891), o nome (PCtel HSP), o chipset (PCT 789T) e o driver HAL (pct789) do nosso modem.
|
$ less Modem/Pctel.txt Under 2.6.x kernels, these modems are supported by the pctel-0.9.7-9-rht-8 From the README file therein:
PCI ID (x) Name Chip(set) HAL ~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~ 134d:7890 PCtel HSP MicroModem 56 PCT789T-C1 pct789 134d:7891 PCtel HSP MicroModem 56 PCT 789T pct789 |
Para saber o número do PCI ID do modem execute o comando lspci -nn
|
$ lspci -nn 00:08.0 Communication controller [0780]: PCTel Inc HSP MicroModem 56 [134d:7891] (rev 01) |
No site abaixo você escolhe o chipset do fabricante e obtêm informações detalhadas sobre o chip do modem e endereços de ID PCI do modem que podemos obter através do comando lspci -nn.
http://xmodem.org/chipsets/dips/roster.html
Lista de drivers de fabricantes
http://linmodems.technion.ac.il/resources.html
Lista de todos os drivers de vários fabricantes
http://linmodems.technion.ac.il/packages/
|
Baixando e instalando o driver |
Agora que executamos o script scanModem onde obtemos as informações sobre o driver do modem pctel-0.9.7-9-rht-8.tar.gz, podemos baixa-lo do site http://linmodems.technion.ac.il/pctel-linux usando o navegador web ou o comando wget.
|
$ wget -cv http://linmodems.technion.ac.il/pctel-linux/pctel-0.9.7-9-rht-8.tar.gz |
Após baixar o arquivo descompacte-o com com comandos tar
|
$ tar -xvzf pctel-0.9.7-9-rht-8.tar.gz |
Será criado o diretório pctel-0.9.7-9-rht-8 onde podemos ver as instruções de instalação através do arquivo README que veremos abaixo
|
$ cd pctel-0.9.7-9-rht-8 $ less README |
Pré-requisito
Antes de instalar qualquer programa ou modem é necessário estar logado como root e instalar em seu computador os pacotes de desenvolvimento:
primeiramente você deve estar logado como root
gcc – compilador da linguagem de programação C
linux-source – código fonte do kernel (linux-source no Debian e similares), (kernel-dev no Fedora) e em outras distribuições kernel-source.
linux-kernel-headers – arquivos de inclusão (include) do código fonte do kernel
linux-headers-`uname -r` - arquivos de inclusão do kernel atual, onde uname -r é a versão do kernel (Ex: linux-headers-2.6.18-4-686), ao instalar este pacote será instalado também o pacote linux-kbuild-2.6.18.
libncurses5-dev – biblioteca de desenvolvimento necessária para a compilação do kernel
libc6-dev – biblioteca de desenvolvimento usada pelo compilador C e pelos arquivos de include do kernel
Em distribuições Linux Debian, Ubuntu e Kurumin podemos procurar os pacotes com o comando apt-cache search e instalar os pacotes necessários para instalar o driver com apt-get install.
Antes de localizar e instalar os pacotes, verifique se a configuração do repositório apt-get está correta com as linhas abaixo do arquivo /etc/apt/source.list
|
# /etc/apt/source.list deb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib deb http://ftp.us.debian.org/debian etch main contrib non-free |
Não esqueça de atualizar a lista de pacotes com o comando apt-get update
|
# apt-get update |
|
# apt-cache linux-source linux-source-2.6.18 - Linux kernel source for version 2.6.18 with Debian patches |
Repare este pacote deve ter a mesma versão do kernel atual como mostra saída de uname -r
|
$ uname -r 2.6.18-4-686 |
|
# apt-cache linux-headers-`uname -r` linux-headers-2.6.18-4-686 - Header files for Linux 2.6.18 on PPro/Celeron/PII/PIII/P4 |
|
# apt-get install gcc linux-source-2.6.18 linux-kernel-headers linux-headers-2.6.18-4-686 libncurses5-dev |
Você pode instalar um de cada vez também
|
# apt-get install gcc #
apt-get install linux-source-2.6.18 |
Após instalar os pacote acima linux-source-2.6.18 será gerado baixado o código fonte do kernel no diretório /usr/src, onde você terá que descompacta-lo e criar um link simbólico apontando para o diretório do kernel descompactado.
|
# cd /usr/src # tar -xvjf linux-source-2.6.18.tar.bz2 # ln -s linux-source-2.6.18 linux |
Pronto agora você pode instalar o modem, onde lendo o arquivo README temos duas opções de instalação:
A primeira opção de instalação é mais fácil, basta você entrar no diretório onde você descompactou o driver e executar o script setup (colocando um ponto “.” e uma barra “/” antes do script), onde no final será exibida a mensagem "installation done” (instalação feita).
|
# cd pctel-0.9.7-9-rht-8 # ./setup |
A segunda opção de instalação você entrar no diretório onde você descompactou o driver e entrar no subdiretório src, e executar os comandos ./configure -manual, make e make install.
|
# cd pctel-0.9.7-9-rht-8 # cd src |
Ao executar o comando ./configure -manual, são exibidas as opções para você escolher o driver do modem e neste caso escolhemos pct789 onde foi obtido na seção de informações sobre o modem acima)
|
# ./configure -manual please enter your hal type choose one of: pct789, cm8738, i8xx, sis, via686a hal type: pct789 |
Agora compile o driver e instale
|
# make # make install |
Carregue os módulos referentes ao driver para kernel 2.6 abaixo
|
# modprobe linmodem # modprobe pctel # modprobe pctel_hw |
Após carregar os módulos linmodem, pctel e pctel_hw, execute o comando dmesg e tail para ver os logs de instalação.
|
# dmesg linmodem: version magic '2.6.18 SMP mod_unload 586 REGPARM gcc-4.1' should be '2.6.18-4-686 SMP mod_unload 686 REGPARM gcc-4.1' linmodem(1265): linmodem v0.1 loaded pctel_hw: module license 'GPL linked with proprietary libraries' taints kernel. pctel_hw(155): PCTel hardware driver version 0.9.7-9-rht-8 for PCT789
pctel(477): pctel v0.1 loaded ACPI: PCI Interrupt 0000:00:08.0[A] -> GSI 16 (level, low) -> IRQ 209 pctel_pci(233): PCTel device[0000:00:08.0](0x40) found 134d:7891 (rev 01), iobase=0xc000, irq=209. pctel_pci(609): Setup PCI port: port 0xc000, irq 209, type 0, membase 00000000, ops 00000000 ttyS_PCTEL0 at I/O 0xc000 (irq = 209) is a PCTel |
|
# tail /var/log/ Apr 27 01:03:18 localhost kernel: linmodem(1265): linmodem v0.1 loaded Apr 27 01:03:26 localhost kernel: pctel_hw: module license 'GPL linked with proprietary libraries' taints kernel. Apr 27 01:03:26 localhost kernel: pctel_hw(155): PCTel hardware driver version 0.9.7-9-rht-8 for PCT789 Apr 27 01:03:26 localhost kernel: Apr 27 01:03:26 localhost kernel: pctel(477): pctel v0.1 loaded Apr 27 01:03:26 localhost kernel: ACPI: PCI Interrupt 0000:00:08.0[A] -> GSI 16 (level, low) -> IRQ 209 Apr 27 01:03:26 localhost kernel: pctel_pci(233): PCTel device[0000:00:08.0](0x40) found 134d:7891 (rev 01), iobase=0xc000, irq=209. Apr 27 01:03:26 localhost kernel: pctel_pci(609): Setup PCI port: port 0xc000, irq 209, type 0, membase 00000000, ops 00000000 Apr 27 01:03:26 localhost kernel: ttyS_PCTEL0 at I/O 0xc000 (irq = 209) is a PCTel |
Repare que já for criado o link simbólico para o modem em /dev/mouse apontando para o dispositivo do modem ttyS_PCTEL0
|
$ ls -l /dev/modem lrwxrwxrwx 1 root root 11 2008-04-27 01:03 /dev/modem -> ttyS_PCTEL0 |
Pronto o modem está instalado e pronto para ser usado utilizando os discadores kppp no ambiente gráfico ou wvdial em modo texto.
|
Configurando os discadores |
Para acessar a internet podemos utilizar os discadores kppp e wvdial
kppp
Para instalar o kppp em distribuições Debian e similares execute o comando abaixo:
|
# apt-get install kppp |
Para acessar o kppp pelo Gnome clique em :
Aplicações
Internet
KPPP
|
|
Para acessar o KPPP pelo kde clique em :
Menu K
Internet
KPPP
|
|
Para configurar o KPPP clique no botão Configurar, acesse a aba Contas e clique no botão Nova
|
|
|
|
|
Agora clique no botão Configuração Manual |
|
|
|
Depois digite um nome para a conexão e clique no botão Adicionar para digitar o telefone do seu provedor. |
|
|
|
|
|
Após informar o telefone do provedor clique na aba Modems |
|
|
|
Na aba Modems clique no botão Nova, e de na aba Dispositivo digite um nome para o modem (Ex: PCTel) e na opção Dispositivo de Modem escolha /dev/modem. |
|
|
|
|
|
Agora para testar o modem clique no botão Perguntar ao Modem, e se aparecer a barra de progresso significa que o modem está instalado e está tudo certo. |
|
|
|
|
|
|
|
Pronto a configuração do modem está pronta, agora faltar configurar o DNS do provedor, clique no botão OK na aba Modems e clique na aba Contas e depois no botão Editar. |
|
|
|
|
|
Na aba DNS digite o nome do domínio (Ex: ig.com.br) e escolha a opção Manual para informar os endereços IP do DNS do seu provedor e não esqueça de marcar a opção “Desabilitar servidores DNS existentes durante a conexão”. Depois e só clicar em OK e digitar o nome de usuário e senha e clicar no botão Conectar. |
|
|
|
|
wvdial
Para instalar o wvdial em distribuições Debian e similares execute o comando abaixo:
|
# apt-get install wvdial |
Para configurar o wvdial e criar o arquivo de configuração /etc/wvdial.conf, execute o comando abaixo:
|
# wvdialconf /etc/wvdial.conf |
Agora edite o arquivo /etc/wvdial.conf e retire o comentário das linhas Phone (onde deve ser especificado o telefone do provedor neste caso do IG 3355 0102), Username (onde deve ser especificado o usuário) e Password (onde deve ser especificado a senha).
# vi /etc/wvdial.conf
|
# /etc/wvdial.conf [Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = Analog Modem Phone = 33550102 ISDN = 0 Password = 123456 New PPPD = yes Username = usuario@provedor.com.br Modem = /dev/modem Baud = 115200 |
Agora adicione os servidores DNS do seu provedor no arquivo /etc/resolv.conf, que neste exemplo está sendo usado o provedor IG
|
# /etc/resolv.conf nameserver 200.225.157.104 nameserver 200.225.157.105 |
Conectando a internet pelo wvdial
Para conectar-se a internet execute o comando abaixo:
|
|