domingo, 13 de setembro de 2009

Internet 3G Vivo com modem MF100 no Opensuse Linux

Depois de Meses sem colocar nada nesse blog, aproveito pra escrever algo que é de extrema utilidade, que com certeza ajuda bastante gente, e que é algo que faz muito perderem algumas horas de labuta até que se consiga fazer funcionar. Eu mesmo perdí bastante tempo, consultei vários posts de vários forums, consultei o guiadohardware e, enfim, eles foram úteis, mas a maioria deles so falava de alguns modems específicos em algumas distribuições específicas. Ou melhor, quase que na totalidade, falavam sobre ubuntu 9.x.x e modem MF626, que é do mesmo fabricante do aqui tratado MF100, mas que não é exatamente o mesmo. O MF100 é este exibido na foto que se segue
E que os leitores, é claro, me perdoarão pela edição medíocre.
Devo dizer que este tutorial foi feito baseado em meus procedimentos numa distro opensuse 11.1 de 64 bits, o que no entanto não quer dizer que não funcione em outras variantes mais antigas desta distro, ou em sistemas de 32 bits, já que não se necessita de drivers - ou melhor, o único necessário já está embutido no sistema - e o esqueleto geral dos arquivos e dispositivos do opensuse mudou muito pouco (se mudou) desde que se começou a usar o udev lá pela versão 10.

A princípio, quando meteres o dito modem na usb, ele o reconhecerá como um cdrom usb, igualzinho como ocorre no windows. Daí ele monta e lá tem um softwarezinho que é pra ser igualzinho a aquele que tem pro windows mesmo, de conexão, que cria um ícone na sua área de trabalho e talz.. Meu conselho é que se ignore este, por que eu mesmo não o ví em sequer um instante funcionar. Primeiro tens que instalar uma biblioteca do qt3 pra ele mostrar a cara e depois ele não vai funcionar mesmo! Fica lá a vida toda tentando conectar e nunca conecta.

Então, o que primeiro vais precisar, é, lógico, daqueles pacotes básicos de conexão, tais quais o pppd e wvdial. Eles já vem como default na maioria das instalações, e se não vieram, não se preocupe, pois eles estão disponíveis nos repositórios padrões. Precisarás também de um pequeno software chamado usb_modeswitch que foi feito independentemente por um cara aí, e que serve pra fazer teu sistema parar de enxergar o modem como um cd, e passar a enxergar como um modem mesmo. Como indica o nome. Ele está disponível nos repositórios padrões do opensuse, bastando, como root, executar num terminal qualquer:
#>zypper in usb_modeswitch

E obviamente, confirmar a instalação. Ou se preferires, vai pelo Yast mesmo e instala isso aí.
O usb_modeswitch tem um arquivo de configuração, a saber /etc/usb_modeswitch.conf
Neste, haverá linhas comentadas (com '#' ou ';') e linhas descomentadas. Isto é, este arquivo deve estar coerente com o tipo de modem que tu tens, já que esse usb_modeswitch serve pra vários e vários modems. Minha experiência mostra que o MF100 é similar a um outro modelo, o MF628+, que por sua vez é similar ao MF628 e portanto, comentando tudo neste arquivo e deixando a sessão do MF628+ descomentada, teu modem irá funcionar. O arquivo ficaria assim:
Depois, tens que instalar uma regra para o udev rodar o usb_modeswitch automaticamente a cada vez que tu plugares o modem. Lí em muitos lugares, configurações milaborantes, mas pra mim bastou (e funfou) criar o arquivo /etc/udev/rules.d/95-ZTE-MF100.rules com o seguinte conteúdo:

SUBSYSTEM=="usb", SYSFS{idProduct}=="2000", SYSFS{idVendor}=="19d2", RUN+="/usr/sbin/usb_modeswitch"



Rodas um /etc/init.d/haldaemon restart para que ele carregue essas configurações. Ou reinicia mesmo (to na duvida se isso é realmente necessário).
Daí agora, o sistema deve entener que se plugou um modem usb no sistema, e deverá carregar seu driver(usbserial) automaticamente. Se isto não ocorrer, poderá usar ao invés da linha citada acima, esta:

SUBSYSTEM=="usb", SYSFS{idProduct}=="2000", SYSFS{idVendor}=="19d2", RUN+="/usr/sbin/usb_modeswitch", RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0x2000"

Só a título de curiosidade, esses parâmetros '2000' e '19d2' são conseguidos através do comando lsusb. Se teu modem for diferente, quem sabe analisando a identificação no lsusb e modificando o arquivo citado de acordo, funcione...
Serão criados os devices /dev/ttyUSB0, /dev/ttyUSB1 e /dev/ttyUSB0. Se deres um ls em /dev e aparecer esses três aí, tá tudo Ok e agora podes finalmente configurar seu discador predileto para acessar a internet. Aqueles mesmo que você usava nos tempos de internet discada. Os discadores devem ser configurados para usar o modem em /dev/ttyUSB2. Abaixo, uma configuração para o wvdial,(/etc/wvdial.conf) funcionou assim:

[Dialer Defaults]
Modem = /dev/ttyUSB2

Baud = 921600

DialCommand = ATDT
Check Def Route = on

FlowControl = Hardware(CRTSCTS)
Username = vivo

Password = vivo

Phone = *99#

Stupid mode = 1

Auto Reconnect = on
Auto DNS = on

Init1 = ATZ

Init2 = ATQ0 V1 E1 S0=0 &C1 &D2

Init3 = AT+CGDCONT=1,"IP","zap.vivo.com.br"

ISDN = 0
Modem Type = Analog Modem


A terceira linha do init (Init3) não me foi estritamente necessária, mas há quem diga que é. Eu particularmente não gosto muito do wvdial porque tem que ser rodado num terminal e como root (posso estar enganado novamente). Usei o kppp, mas antes de poder usá-lo, o sistema diz que o executável /usr/sbin/pppd deve ter o bit setuid setado, o que pode ser feito com:

>#chmod u+s /usr/sbin/pppd

Daí agora, jaz! Toda a configuração que eu fiz para o kppp foi baseada neste arquivo do wvdial e pode ser resumida pelos dois screenshots que se seguem.




Se depois disso,quiseres ainda experimentar usar o discador da vivo (que tem a vantagem de permitir o envio de sms), faz antes um backup do wvdial.conf, porque o programinha da vivo sobrescreve ele.

sexta-feira, 16 de janeiro de 2009

Como escrever em japonês no linux

Assim como muitos, (na verdade, acho que são poucos) eu ando aprendendo japonês devagarinho através da Internet, catando um material aqui, outro acolá e tal. Conseguir digital japonês no computador é uma coisa que ajuda bastante. No Windows Xp, acho que boa parte do pessoal consegue. Mas eu sempre tive uma dorzinha de cabeça em fazer isso funcionar no Linux, porque, como sabemos, no linux as coisas são um pouco mais complicadas por conta de que não temos um sistema com tudo unificado como é no Windows. Cada coisa no sistema é um programa e não ta tudo exatamente interligado. Daí tem que se caçar direitinho como se funcionam as coisas, mas com um pouco de fé tudo se resolve.
Pra se digitar japonês em linux, precisa-se de:

  • Um X Input Method, ou xim para os íntimos. Como sabemos, o X é o servidor gráfico dos unixes, ou seja, o programa responsável por fazer com que o ambiente gráfico exista. O input method, é um programa responsável por fazer a "injeção" de caracteres dentro do servidor X, assim como temos o IME pra Windows.
  • Uma engine (um backend) de conversão para o xim. Pode-se instalar alguns ao invés de um, e trocar entre um e outro durante a digitação.
  • Tabelas de conversão de caracteres para o(s) backends de conversão.
  • Um "switch engine" pra trocar entre os backends.
Em geral, usando-se os gerenciadores de pacotes de sua distro preferida, isto implica em escolher uns três ou quatro pacotes e o resto vem sozinho como dependencias. Existem uma meia dúzia de xim's disponíveis por aí, tais quais: Nicolatter, kinput2, xcin, scim. Utilizarei aqui o Scim. Ele tem a vantagem de suportar vários backends e/ou vários idiomas de entrada. O kinput2 por exemplo só serve pra japonês. Com o Scim, pode-se escrever em japones, coreano, chines e mais outros tantos idiomas. O melhor backend de conversão pra japonês que eu achei foi o Anthy. Muito embora eu tenha instalado aqui o Anthy e mais o Canna e SKK e você pode conviver harmoniosamente com todos eles. Instalei ainda as tabelas que tem o nome de scim-tables-ja. Existem ainda outras tabelas pra outros idiomas. Em resumo, pra conseguir uma instalação funcional pra Kde e Gnome, é suficiente instalar:

  • scim
  • scim-anthy
  • anthy
  • scim-tables-ja
  • im-switch
  • skim
O scim instala por padrão um frontend para gnome afim de realizar suas configurações. Ele fica como um icone no tray do sistema.O skim, é o frontend para Kde equivalente. Taí o iconezinho do gnome

Ele muda para o icone do backend asssim que vc ativar a escrita pelo scim, coisa que normalmente é feita pelo atalho ctrl+space. Mas isso será exposto depois, porque agora vem a parte chata.


Para que funcione a contento, é necessário dizer ao X que ele deve usar um xim. Isto é feito normalmente adicionando-se algumas linhas a algum arquivo de configuração de inicialização do X. Eu tive a oportunidade de fazê-lo em duas distribuições. Usando opensuse 11.1 (acho que a partir da versão 9 em diante já é assim) bastou-me editar o arquivo ~/.profile e adicionar a seguinte linha

export INPUT_METHOD=scim

já no debian e outros, esse arquivo de configuração muda e em geral devem ser adicionadas mais linhas. Aqui por exemplo diz como se faz a configuração no ubuntu. Este outro link dá instruções para o mandriva. Mas a página em si é bastante interessante pra qualquer um por indicar o processo de forma meio genérica, em especial nesta parte de "environmental variables" que tem as variáveis de ambiente que a maioria das distros usa. Pra fazer o sistema funcionar no debian, devo dizer que não pude muito me c
onfiar no google. Foi difícil saber como é que era e foi mais por fuçação e experimentação. Mas descobri que no debian existia já as linhas que eu queria em determinado arquivo que fica em /etc/X11/xinit/xinput.d/ja_JP. O problema é que o debian não lia isso porque ele sempre lê um arquivo deste mesmo diretório, só que chamado "default". Então, o mais prático neste caso é renomear o arquivo default pra um outro nome qualquer, e depois copiar o arquivo ja_JP pra default. Isso se resume a essas poucas linhas no terminal

># cd /etc/X11/xinit/xinput.d/
>#mv default default.bak

>#cp ja_JP default

Obviamente, deves estar como root pra fazer isso. Depois disso, basta reiniciar o X e se tudo deu certo, o incone que postei ai em cima deve aparecer em seu icon tray. Daí agora, podes experimentar abrir um gedit ou kwrite e pressionar ctrl+espaço e digitar seus primeiros hiraganas. Clicando com o botao esquerdo do mouse sobre o ícone do scim, pode-se escolher entre os vários idiomas de entrada ou backends de conversão. Clicando-se com o botão direito, pode-se configurar dentre outras coisas, os atalhos de teclado
para as funções do scim. Pode-se por exemplo mudar as teclas de ativação (em trigger) e o que faz mudar de engine (Next input Method).
Usando-se o anthy, pode-se ainda criar atalhos para trocar de katakana pra hiragana e vice-versa (indo naquela aba alí do anthy). E como no windows, digitando qualquer coisa e pressionando a barra de espaço, ele faz a conversão dos caracteres em kanjis, com direito a escolha de candidatos. A entrada default e em hiragana, mas pressionando-se F7 muda-se o que ta escrito pra katakana.
Bem, é isso aí! Espero que tenha sido de alguma valia. Para maiores detalhes:
  • http://www.h4.dion.ne.jp/~apricots/scim-anthy/howto.html
  • http://www.scim-im.org/
  • www.google.com.br