Em um desktop comum existem situações em que você vai precisar de fazer uso da internet.
Conectar-se à internet em modo texto é muito útil em computadores sem o ambiente gráfico instalado, em que você não consegue utilizar discadores gráficos como o kppp, e em situações de emergência como em servidores ou quando teve algum problema na configuração da placa de vídeo e precise buscar informações, baixar drivers, tutoriais etc.
Com internet em modo texto, pode se usar o
links para navegar,
wget para download,
ftp,
ssh e outros para transferência de arquivos e muitas outras coisas...
No
Linux existem vários discadores para o modo texto como o
dip,
wvdial e o
linuxppp, que é nacional.
Como já tinha uma experiência anterior com o wvdial, ele foi a minha primeira escolha.
Wvdial
O wvdial é um discador em modo texto do
GNU/Linux, encontrado em quase todas as distribuições (se não todas).
Para instalá-lo no Debian basta:
# apt-get install wvdial
Como configurá-lo?
O wvdial possui um utilitário para configuração do modem: o
wvdialconf.
O wvdialconf faz a detecção do dispositivo do modem automaticamente e faz a configuração do arquivo
/etc/wvdial.conf.
# wvdialconf
Scanning your serial ports for a modem.
Port Scan<*1>: Scanning ttySL0 first, /dev/modem is a link to it.
ttySL0<*1>: ATQ0 V1 E1 -- OK
ttySL0<*1>: ATQ0 V1 E1 Z -- OK
ttySL0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttySL0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttySL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttySL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttySL0<*1>: Modem Identifier: ATI -- 56000
ttySL0<*1>: Speed 4800: AT -- OK
ttySL0<*1>: Speed 9600: AT -- OK
ttySL0<*1>: Speed 19200: AT -- OK
ttySL0<*1>: Speed 38400: AT -- OK
ttySL0<*1>: Speed 57600: AT -- OK
ttySL0<*1>: Speed 115200: AT -- OK
ttySL0<*1>: Speed 230400: AT -- OK
ttySL0<*1>: Speed 460800: AT -- OK
ttySL0<*1>: Max speed is 460800; that should be safe.
ttySL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
Found a modem on /dev/ttySL0, using link /dev/modem in config.
Modem configuration written to /etc/wvdial.conf.
ttySL0<Info>: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
Você pode ver o resultado da autoconfiguração do wvdialconf com o seguinte comando:
# cat /etc/wvdial.conf
[Dialer Defaults]
Modem = /dev/modem
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem
; Phone = <Target Phone Number>
; Username = <Your Login Name>
; Password = <Your Password>
Nem sempre a detecção automática acerta nas configurações. Neste caso, basta apenas editar o arquivo e corrigir as opções erradas.
Após a configuração automática você deve editar o arquivo /etc/wvdial.conf e editar os itens Phone, Username e Password, removendo os comentários (;) e colocando o telefone de discagem, seu login e senha.
O wvdial possui uma infinidade de opções que podem ser incluídas no wvdial.conf que a detecção automática não faz.
Abaixo segue um exemplo:
[Dialer Defaults]
Modem = [local do dev do modem]
ISDN = off
Modem Type = Analog Modem
Baud = 115200
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 =
Init4 =
Init5 =
Init6 =
Init7 =
Init8 =
Init9 =
Phone = [número a ser discado]
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Dial Prefix =
Dial Attempts = 1
Dial Command = [discagem tom=ATM1L3DT pulso=ATM1L3DT]
Ask Password = off
Password = [senha]
Username = [usuario@provedor.com.br]
Auto Reconnect = off
Abort on Busy = on
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on
;Minimize = off
;Dock = on
;Do NOT edit this file by hand!
Abaixo segue o meu arquivo wvdial.conf:
[Dialer Defaults]
Modem = /dev/ttySL0
ISDN = off
Modem Type = Analog Modem
Baud = 115200
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 =
Init4 =
Init5 =
Init6 =
Init7 =
Init8 =
Init9 =
Phone = 34465515
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Dial Prefix =
Dial Attempts = 1
Dial Command = ATM1L3DT
Ask Password = off
Password = [minha senha]
Username = [usuario@provedor.com.br]
Auto Reconnect = off
Abort on Busy = on
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on
;Minimize = off
;Dock = on
;Do NOT edit this file by hand!
Após feita a configuração, basta executar o comando como root:
# wvdial
Se houver problemas na configuração do arquivo /etc/wvdial.conf a conexão pode falhar, neste caso edite o arquivo e tente novamente.
Para não ter problema com permissões, faça a alteração do arquivo /etc/wvdial.conf com o seguinte comando:
# chmod 640 /etc/wvdial.conf
E depois altere os grupos de acesso com o seguinte comando:
# chown root:dialout /etc/wvdial.conf
Em uma listagem com o comando ls -l /etc a linha referente ao arquivo wvdial.conf deve ficar da seguinte maneira:
-rw-r----- 1 root dialout 616 2006-12-16 22:55 /etc/wvdial.conf
Para permitir que um usuário normal se conecte usando o wvdial, execute o comando:
# usermod -G dialout "usuário"
ou
# usermod -G dialout,tty,dip,audio,video,plugdev,voice,fax,cdrom,floppy "usuário"
Nem todos os grupos são necessários, mas são os recomendados.
Para winmodems você deve incluir a seguinte linha:
Stupid Mode = yes
Strings otimizadas para modem Intel 537
Alguns modelos de winmodems podem encontrar problemas ao se conectar utilizando o wvdial. O modem intel 537 é um exemplo disso. Eu utilizava um intel 537 para fazer a conexão discada utilizando o kppp, porém quando passei a usá-lo no modo texto com o wvdial, a conexão não durava mais que alguns segundos.
Como tinha um amigo que tinha o mesmo modelo de modem e utilizava ele com o Windows XP, resolvi dar uma xeretada nas strings que o driver original utilizava e tentar aplicá-lo na configuração do wvdial para ver se resolvia o meu problema.
Abaixo segue o arquivo de configuração /etc/wvdial.conf contendo as strings de inicialização otimizadas para o modem Intel 537 (na verdade, pode funcionar com outros modelos de modem, mas não tenho certeza).
[Dialer Defaults]
Phone = XXXXXXX
Username = usuario@provedor.com.br
Password = XXXXXXXXX
New PPPD = yes
Modem = /dev/modem
Baud = 57600
Init1 = AT
Init2 = AT&F E0 Q0 X4 S0=0 &D2 &C1 &S0 V1 W4 E1
Init3 = ATS7=60S30=0L0M0+ES=3,0,2;%C1+DS=3,0;+DS44=3,0;&K3X4
Init4 = at+vcid=1
Init5 = ATS0=0
ISDN = 0
Stupid Mode = 1
Modem Type = Analog Modem
Essas strings resolveram maravilhosamente o meu problema de conexão, mas não que dizer que irá resolver o seu... Use por sua conta e risco!
Resolvendo problemas de conexão com modems HSP56 e driver slmodem
Para que você use o wvdial com o driver slmodem, é preciso passar um parâmetro ao wvdial para que ele não faça a checagem do carrier (portadora).
Para isso, com algum editor de textos abra o arquivo /etc/wvdial.conf e edite o arquivo acrescentando, após a série de comandos ATZ, o seguinte parâmetro:
Carrier Check = no
Pronto, agora o wvdial não irá mais checar se há portadora ou não.
Mas atenção, é preciso editar o arquivo /etc/resolv.conf acrescentando o número IP dos servidores DNS primário e secundário do seu provedor.
Contate o suporte e informe-se acerca destes números IPs. O arquivo deverá ter, mais ou menos, o seguinte:
nameserver 200.204.0.10
nameserver 200.204.0.138
Também altere o "baud" do arquivo de configuração do seu /etc/wvdial.conf para 115200, que é o mais usual.
Strings otimizadas para modem Netodragon LG LMi56N
[Dialer Defaults]
Modem = /dev/modem
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem
Phone = 40040221
Stupid Mode = on
Password = minhasenha
Username = usuario@provedor.com.br
Como já disse antes, o wvdial é muito flexível, basta saber usá-lo.