Páginas

segunda-feira, 29 de junho de 2009

Instalação de Modens 3g em Servidores Linux (Via Console) - Gentoo BSD

A algum tempo atrás na empresa qual trabalho tive de instalar os Modens 3g de modo que ficassem transparente sua conexão e funcionassem como servidor inicializando e conectando em background. Na época os Modens 3g eram bem desconhecidos e deu muito trabalho para achar informações concretas de como fazer algo do gênero, mas após uma reunião de pedaços de tutoriais consegui fazer algo simples, que funciona para todo tipo de Modem USB, já postei este tutorial em outros lugares, mas agora estou re-postando em meu Blog pessoal para um registro e exemplo mais detalhado do que foi utilizado.

Instalação do Modem YISO S893v USB
(Vivo Zap)

Requerimentos:


* Kernel 2.6.20 ou Superior
* Wvdial
* Libusb

Instalação:


Primeiro iremos verificar sua versão do kernel da seguinte maneira:

#uname -r
2.6.26-2-amd6

Depois verificaremos se existem os módulos compilados no kernel com os seguintes comandos.

# zgrep "CONFIG_USB_SERIAL_GENERIC" /proc/config.gz
# CONFIG_USB_SERIAL is not set
# zgrep "CONFIG_USB_SERIAL_OPTION" /proc/config.gz
# CONFIG_USB_SERIAL_OPTION is not set
# zgrep "CONFIG_PPP" /proc/config.gz
# CONFIG_PPP is not set
# zgrep "CONFIG_PPP_ASYNC" /proc/config.gz
# CONFIG_PPP_ASYNC is not set

Como vemos, as saídas são “is not set” não estão setadas, então será necessário compilar o kernel para sua utilização, de modo que cada resultado seja como as linhas a baixo.

CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_OPTION=m

Como o kernel segue um menu padrão vamos utilizar o método básico de compilação para habilitar os módulos necessários.

Primeiramente vamos entrar no diretório do kernel corrente e gerar o menu com os seguintes comandos.

#cd /usr/src/linux
#make menuconfig

Então seguindo o roteiro abaixo para facilitar, deixe os items com (*) compilado e (m).

Devices Drivers --> USB Support --> [M] USB Serial Converter Support --> [*]USB Generic Serial Driver
[M]USB Driver for GSM and CDMA Modem
Device Drivers --> Network Device Support --> [M] PPP (point-to-pont protocol) support
[M] PPP support for async serial ports

Após todas as marcações de “Exit” até a seguinte pergunta aparecer “Do you wish to save your new kernel configuration?“ clique em “Yes” e seu kernel está salvo, agora só falta compila-lo e substitui lo no diretório do grub onde você definiu na instalação.

#make && modules-install
#cp arch//boot/bzImage /boot/

Reinicie o computador e verifique os primeiros itens novamente.

Agora faremos a parte pratica, conecte o modem na USB, no teste utilizaremos o modem Vivo Yiso de mesa, mas eu também testei com os 2 modelos da Huawei da Claro/Tim e com os modelos da Aiko.

Digite o seguinte comando, ele ira exibir uma saída com informações sobre todos os devices e portas usb:

#lsusb -v

A saida segue um padrão, então todos os campos são idênticos basta você procurar agora o local onde está escrito Yiso (Fabricante do Modem).

...
idVendor 0x0eab
idProduct 0xc893
bcdDevice 0.00
iManufacturer 1 YISO Wireless
iProduct 2 YISO Wireless 1XEVDO Modem]
...

Agora faremos com que o Linux reconheça os devices necessários (ttyUSB) para o funcionamento do módulo instalando o módulo com o vendor e o product selecionados anteriormente da seguinte maneira:

# insmod `modprobe –l | grep usbserial.ko` vendor=0x0eab product=0xc893

Feito isto o modem já deve funcionar e para verificar vamos verificar o log padrão do sistema em “/var/log” para saber se os ttyUSB foram atribuidos corretamente.

# tail /var/log/messages

A resposta deste comando deverar gerar diversas linhas entre elas as sentenças abaixo deverão aparecer.

... generic converter now attached to ttyUSB0
... generic converter now attached to ttyUSB1

Se as sentenças estiverem corretas o modem está pronto para utilização.

CONFIGURANDO O MODEM


Crie um arquivo chamado wvdial.conf dentro do diretório /etc/ com o seguinte comando:

# touch /etc/wvdial.conf


Abaixo segue um exemplo da configuração de dentro deste arquivo utilizada para o Vivo Zap, cada modem exige um tipo de configuração do WvDial diferente, e ela varia muito do gosto de cada um também, caso queiram algumas configurações só enviar Comentários solicitando que eu enviarei.

[Dialer Defaults]
Modem = /dev/ttyUSB0
Modem Type = Analog Modem
Baud = 460800
Init1 = ATZ
Init2 =
Init3 =
Area Code =
Phone = #777
Username = DDDTELEFONE@vivozap.com.br
Password = vivo
Ask Password = 0
Dial Command = ATDT
New PPPD = yes
Stupid Mode = 1
Compuserve = 0
Force Address =
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 1

Agora para conectar-se na internet e deixar o discador utilizaremos o seguinte comando:

# vwdial &

Ele exibira a seguinte saída no console, isto significa

--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT#777
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Mon Jul 16 02:05:58 2007
--> Pid of pppd: 10683
--> pppd: @ [06][08]
--> Using interface ppp0
--> pppd: @ [06][08]
--> pppd: @ [06][08]
--> pppd: @ [06][08]
--> pppd: @ [06][08]
--> pppd: @ [06][08]
--> pppd: @ [06][08]
--> local IP address 10.205.53.190
--> pppd: @ [06][08]
--> remote IP address 10.64.64.64
--> pppd: @ [06][08]
--> primary DNS address 10.223.246.102
--> pppd: @ [06][08]
--> secondary DNS address 10.223.246.103
--> pppd: @ [06][08]


No meu caso no Gentoo eu fiz um script de inicialização para inseri-lo no “init.d” ai depende da necessidade de cada um, caso precisem de ajuda para algo do gênero só chamar.

Espero que tenham gostado da revisão.

6 comentários:

  1. Hugo,
    Sou novo no linux e já vou tentar fazer com que meu gentoo conecte com o meu modem mf100 da Vivo.
    Tenho uma rede compartilhada aqui na minha casa com o vizinho e gostaria de saber se teria como postar uma dica de como configurar o gentoo para compartilhar a minha conexão do modem 3G da Vivo e se é possível eu configurar o limite de banda para cada hum ?
    Desde já muito obrigado !

    ResponderExcluir
  2. Cara, é possível sim, para compartilhar ele no Linux você precisa fazer uma jogada no IPtables, da mesma maneira que se faz para compartilhar a internet vinda de uma eth0 mas vai ser a ppp0, o controle de banda também é feito através do iptables com um módulo de bandwitch, se você não conhece nada dos dois no "viva o linux" tem uns tutoriais muito bons sobre compartilhar internet com o iptables.

    abração.

    ResponderExcluir
  3. Hugo,
    estou tentando realizar este seu tutorial, mas já estou me deparando com um problema aqui.
    Esta apresentando a seguinte informação: zgrep "CONFIG_USB_SERIAL_GENERIC" /proc/config.gz
    gzip: /proc/config.gz: No such file or directory
    ou será que na minha distro é em outro diretório?
    Podes me dar um help?

    ResponderExcluir
  4. Vamos lá... seu gentoo é qual versão? qual kernel? como você o instalou? vc compilou o kernel ou utilizou o livecd LIVE ou o INSTALL?

    Estes passos são para efetuar se você compilou um kernel, ele automaticamente vem o /proc/config.gz que é quase a mesma coisa do .config dentro do /usr/src/linux/

    Abração...

    ResponderExcluir
  5. Bom, a versão do meu gentoo é a ultima acho que a 10, quanto ao kernel, eu compilei manualmente, ou seja, dentro do diretório /usr/src/linux e a versão do meu kernel é a: 2.6.30-r8. Eu ainda não consegui instalar a o KDE pois tive um problema ao instalar o Xorg, mas o que estou tentando configurar este notebook como um router da conexão 3g Vivo.

    ResponderExcluir