Recentemente adquiri uma placa de internet móvel do Sapo. Neste momento as placas comercializadas são as Huawei E180, que como já é hábito, vêm com drivers para Windows e Mac. Por ser uma placa recente no mercado, as perspectivas de encontrar suporte para Gnu/Linux não eram boas.
No site do fabricante nenhuma referência ao Linux, e um pedido de informação sobre isso, resultou no seguinte:
"Your feedback subject: E180
Huawei reply: Dear Customer: Thanks for your attention to our product! We are sorry to tell you,E180 don't support Linux OS at present。We only have drivers for WIN/vista/2000/XP /MAC now .Kind regards."
Ao que respondi:
"Well i have it working now under Linux. So it would be nice in the future for you to provide drivers and sfotware for this operating system. Not everybody uses Windows our Mac."
Talvez este tipo de atitude, multiplicada por muitos mais utilizadores, começasse a ter algum efeito nos fabricantes de hardware.
Após uma pesquisa no Google, encontrei uma página que me ajudou bastante. O problema destas pens de internet móvell, é que são ao mesmo tempo modem's e unidades de cdrom, que contêm os drivers necessários para a instalação do modem. No Windows, ao inserir a placa esta inicia o modo CDROM e depois de instalado o modem, alterna o estado para Modem. No Linux esta alternância de estado, não é automática.
1º - Alternar modo da placa (USB_ModeSwitch)
Para contornar este problema, utilizei o programa USB_ModeSwitch. Para instalar, basta ir buscar a fonte, compilar e copiar o binário usb_modeswitch para /sbin e o ficheiro usb_modeswitch.conf para /etc.
Este programa lê as configurações do ficheiro usb_modeswitch.conf, onde se encontram as identificações (ID) dos Fabricantes e Vendedores. Estas informações encontram-se comentadas, pelo que é necessário abrir o ficheiro e descomentar a secção do fabricante da placa, e colocar os IDs certos para Fabricante e Vendedor.
Para sabermos os IDs da nossa placa, basta um lsusb para nos mostrar a informação que precisamos:
#lsusb
Bus 002 Device 007: ID 0951:1603 Kingston Technology Data Traveler 1GB/2GB Pen Drive
Bus 002 Device 006: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
Neste caso, tenho na primeira linha a minha pen USB, e na 2a linha a pen da internet móvel, onde se pode ver o ID que precisamos ID 12d1:1003, o id do fabricante e o 12d1 e o do produto 1003.
Editamos o ficheiro usb_modeswitch.conf
#vi /etc/usb_modeswitch.conf
E na parte correspondente ao fabricante Huawei, descomentamos as linhas e alteramos os IDs caso seja necessário, como o meu ficheiro só trazia uma secção para o modelo E170, acrescentei uma secção nova e ficou assim:
########################################################
# Huawei E180
#
# Contributor: Bruno Queiros
DefaultVendor= 0x12d1;
DefaultProduct= 0x1003
# choose one of these:
;DetachStorageOnly=1
HuaweiMode=1
A parte importante é a descomentação da linha HuaweiMode=1 que transforma a pen num modem.
2º Criar a ligação /dev/ttyUSB0
Primeiro é necessário criar um script para o udev e gravá-lo como /sbin/usb_modeswitch.sh:
#!/bin/sh
# close these FDs to detach from udev
exec 1<&- 2<&- 5<&- 7<&-
sh -c "sleep 4; /usr/bin/usb_modeswitch" &
exit 0
Depois é necessário dizer ao processo udev para executar este script sempre que inserimos o modem, e depois disso carregar o módulo usb_serial:
# vi /etc/udev/rules.d/66-huawei.rules
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1003", RUN+="/sbin/usb_modeswitch.sh"
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1003", RUN+="/sbin/modprobe usbserial vendor=0x12d1 product=0x1003"
O importante é acertar nos ID's do fabricante e do produto, e no comando do script e do modprobe.
Neste momento, devemos ter a ligação para /dev/ttyUSB0 criado.
3º Executar a marcação para o ISP
Finalmente é ncessário executar a ligação para o nosso ISP, neste caso o Sapo. Pode-se utilizar qualquer programa de marcação para isto, mas como eu gosto das coisas simples, eu escolhi o wvdial. Este programa lê as informações do ficheiro /etc/wvdial.conf e de seguida executa a marcação. O meu ficheiro contém 2 marcações, uma para a padrão e outra para o Sapo:
[Dialer sapo]
username = 123
baud = 115200
password = 123
stupid mode = on
dial command = ATDT
modem type = Analog Modem
phone = *99#
init5 = AT+CGDCONT=1,"IP","internet"
init3 = ATQ0V1E1S0=0&C1&D2+FCLASS=0
init2 = ATZ
modem = /dev/ttyUSB0
isdn = 0
Finalmente, para executar a marcação, executamos o comando:
#wvdial sapo
Se tudo correr bem, devemos ter um link ppp0 criado e podemos começar a navegar.
ppp0 Link encap:Point-to-Point Protocol
inet addr:89.214.32.241 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:37320 errors:0 dropped:0 overruns:0 frame:0
TX packets:35855 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:30571808 (29.1 MiB) TX bytes:5150106 (4.9 MiB)
Para desligar basta Control+C na consola onde foi executado o comando.
Informação retirada de http://chankle.org/blog/index.php?/archives/24-Using-Huawei-E180-modem-in-linux-RHEL5.html.
Apesar disto ser o suficiente para utilizar a placa de internet, dá sempre jeito neste tipo de ligações que costumam ter pouco tráfego disponível, termos uma ferramenta para podermos visualizar o tráfego que estamos a consumir. Existem várias, mas escolhi uma simples e bastante funcional o pywvdial.
O pywvdial, permite marcar a ligação, e verificar o tráfego que se está a consumir, só é pena não ter um histórico, onde se pudesse verifcar o tráfego consumido no dia, na semana ou no mês.
O pywvdial, não é mais que um front-end para o wvdial, e lê o mesmo ficheiro de configuração, contudo necessita que tenhamos uma ligação com o nome Default, pelo que acrescentei a mesma ao ficheiro /etc/wvdial.conf
[Dialer Defaults]
baud = 115200
dial command = ATDT
username = 123
password = 123
stupid mode = on
ask password = off
phone = *99#
init5 = AT+CGDCONT=1,"IP","internet"
init3 = ATQ0V1E1S0=0&C1&D2+FCLASS=0
init2 = ATZ
login = 123
modem = /dev/ttyUSB0
Não é preciso ter 2 entradas iguais, basta terem uma com esse nome, importante também é que, esta ferramenta precisa ser executada com permissões de root, pelo que no KDE basta um ALT+F2, escrever o comando pywvdial, e clicar em opções, correr como outro utilizador - root.
Interface
Informação sobre o tráfego
De momento a aplicação está em inglês, mas assim que tiver algum tempo, vou tentar traduzi-la para Português, e também sugerir a inclusão da visualização de um histórico detalhado do tráfego.
Os únicos aspectos negativos, são o facto de não haver um software próprio para a gestão da ligação e do tráfego e o facto de a luz estar sempre ligada e não piscar.
A subscrição é anónima e gera, no máximo, um e-mail por dia.
. Ora venha de lá esse voti...
. Slackware -Current e o no...
. Tornar Kde 4.X.X mais ráp...
. Frases
. Funcionamento do Google S...
. Gnome 3