Recentemente um familiar, usuário de PC-BSD em seu laptop adquiriu um serviço com a operadora de telefonia Vivo. Não pouco feliz com o fato de ter na família um usuário de BSD como Desktop, com mais de 50 anos de idade e completamente alheio à tecnologia, a não ser no quesito "usuário final", fui compelido (intimado) a configurar o tal VivoZap no laptop em questão, e como se não bastasse, quis compartilhar com seus outros amigos de trabalho, durante o almoço. Então além de fazer o PC-BSD atuar como servidor DHCP, o primeiro detalhe ainda tinha que ser estudado. Pois bem, segue então as instruções necessárias para configurar e usar MSM em seu FreeBSD/PC-BSD, conseguindo de fato algo realmente próximo de mobilidade de dados em seu laptop, sem depender de GPRS ou estar perto de uma zona WiFi. Para seguir essas instruções no PC-BSD, o primeiro passo é sincronizar os fontes, com csup -g -L 2 -h cvsup2.freebsd.org /usr/share/examples/cvsup/stable-supfile. Todas as outras instruções são exatamente iguais, para FreeBSD e PC-BSD. Leia o artigo completo para configurar e usar MSM (VIVOZAP) no FreeBSD.
Configurando e usando MSM (VIVOZAP) no FreeBSD.
Vivozap é uma implementação de uma tecnologia intríseca a tecnologia CDMA, chamada MSM (Mobile Station Modem). O MSM essencialmente faz a modulação da informação analógica, recebida pela tecnologia móvel CDMA, comum a aparelhos celulares da VIVO, a maior operadora CDMA do país. Assim sendo, a tecnologia MSM no país ficou conhecida pelo nome comercial que a VIVO deu à seu produto, Vivo Zap. Todavia, as instruções aqui dispostas podem ser utilizadas na configuração de MSM de forma geral, com pequenas modificações noa configuração do ppp. Note que é importante esclarecer algumas considerações técnicas e comerciais sobre a abordagem da tecnologia MSM. De acordo com a Vivo, o produto Vivo Zap 3G trabalha com velocidades de 2.4Mbps. De fato essa taxa pode ser alcançada com alguns produtos MSM, da Qualcomm e também os AirPrime, usados por operadoras como a Verizon. Todavia, as taxas mais comuns dos aparelhos chegam no máximo a 500Kbit/s, e é com essa taxa máxima que você deve contar normalmente, especialmente se utilizar produtos Qualcomm. Descobrindo qual seu modem MSM. Para saber qual device você tem em mãos, utilize o usbdevs com o argumento -v: usbdevs -v
Você encontrará uma linha similar a essa: addr 126: full speed, power 100 mA, config 1, Qualcomm CDMA MSM Modem (0x17da), Qualcomm(0x0c88), rev 0.01
Observe com especial atenção os valores em hexadecimal, o primeiro valor representa o identificador do produto, enquanto o segundo representa o fabricante do produto. Adicionando suporte ao seu MSM no FreeBSD Dave Andersen portou do NetBSD para FreeBSD o driver para o modem MSM AirPrime PC5220, e as instruções de configuração desse, podem ser observada na página de Andersen, em: http://www.cs.cmu.edu/~dga/dot/fbsd_pc5220/
Essa placa contudo não é muito comum no Brasil. Felizmente contudo, as instruções de controle desse driver são compatíveis com qualquer modem MSM, incluindo o que você provavelmente dispõe em mãos. Bastam modificações acerca dos identificadores (em hexadecimal) do fabricante (vendo) e do produto, adquiridos anteriormente na saída do usbdevs -v. # cd /usr/src/sys/dev/usb/ # fetch http://www.cs.cmu.edu/~dga/dot/fbsd_pc5220/ugencom.c
Edite esse fonte, e na linha 183 do arquivo, edite-a, substituindo USB_VENDOR_AIRPRIME, USB_PRODUCT_AIRPRIME_PC5220, -1 por USB_VENDOR_QUALCOMM3, USB_PRODUCT_QUALCOMM3_CDMA_MSM, -1 O bloco ficará similar a: ugencom_products [] = { /* Evil hack! */ // { USB_VENDOR_AIRPRIME, USB_PRODUCT_AIRPRIME_PC5220, -1 }, { USB_VENDOR_QUALCOMM3, USB_PRODUCT_QUALCOMM3_CDMA_MSM, -1 }, { 0, 0 } };
Agora edite o arquivo /usr/src/sys/dev/usb/usbdevs e ao final do arquivo crie um novo bloco de entradas como esse: vendor QUALCOMM3 Qualcomm product QUALCOMM3 CDMA_MSM CDMA Technologies MSM modem
Adeque essas entradas aos valores observados anteriormente pela saída do usbdevs -v. Por organização, adicione um comentário adequado à essa entrada, tal qual a entrada anterior. O final do seu arquivo ficará similar a: /* Kyocera KPC650 & Qualcomm3 MMS Modems */ vendor QUALCOMM3 0x0c88 Qualcomm product QUALCOMM3 CDMA_MSM 0x17da CDMA Technologies MSM modem
Informe o FreeBSD que o novo arquivo faz parte do kernel Como indicado na página de Dave Andersen, liste o novo arquivo como parte do kernel, editando o arquivo /usr/src/sys/conf/files, e por volta da linha 1017, antes da entrada urio e após uplcom adicione a entrada apontando para o novo arquivo. O trecho da modificação ficará assim: dev/usb/ums.c optional ums dev/usb/uplcom.c optional uplcom ucom dev/usb/ugencom.c optional ugencom ucom dev/usb/urio.c optional urio
Se preferir use o pequeno patch provido por Andersen no site mencionado.
Recompile seu kernel Edite seu arquivo de configuração de kernel, em /usr/src/sys//conf/, e nele, e nele adicione as entradas: device ucom device ugencom
Por exemplo: echo "device ucom" >> /usr/src/sys/i386/conf/MK echo "device ugencom" >> /usr/src/sys/i386/conf/MK
E recompile seu kernel: cd /usr/src make buildkernel KERNCONF=MK make installkernel KERNCONF=MK
No próximo boot você poderá observar o dispositivo no probing do kernel, se ele estiver plugado durante o boot. Se não estiver, ao plugar, ele será reconhecido como dispositivo USB (apesar de ser PCMCIA). O dispositivo de controle será /dev/cuaU0 (primeiro USB serial, caso esse seja o único USB serial, se não for o único, o device será /dev/cuaU1 ou similar). Configurando e iniciando a conexão MSM (VivoZap) A conexão deve ser estabelecida usando protocolo ppp, então edite o /etc/ppp/ppp.conf e adicione: vivozap: set device /dev/cuaU0 set speed 230400 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ \"\" AT OK-AT-OK ATE1Q0s7=60 OK \\dATDT\\T TIMEOUT 40 CONNECT" set phone "#777" set authname "@vivozap.com.br" set authkey "" set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 add default HISADDR enable dns
Note que é importante manter set phone "#777". Com isso o ppp enviará OK "ATDT#777" no chat de negociação com a outra ponta. Se omitir, use OK "ATDT#777" no chat do ppp.conf(5) via set dial. Outra consideração fundamental: caso não tenha costume de usar ppp no FreeBSD note que todas as entradas após o label da conexão ppp (nesse caso o label) é vivozap: tem um espaço. Portanto vivozap: no ppp.conf(5) não tem espaço algum no início da linha e todas as outras entradas tem. Conectando-se manualmente A partir desse momento gasta digitar, na mão ppp -ddial vivozap
Ou se preferir, entre no console ppp com o comando ppp # ppp Working in interactive mode Using interface: tun0 ppp ON claire> dial vivozap
Conectando-se automaticamente Caso deseje iniciar a conexão MMS de seu laptop automaticamente após o boot, sempre que precisar se conectar (por demanda) configure o /etc/rc.conf iniciando o ppp em modo "demand dial", adicionando:
ppp_enable="YES" ppp_mode="ddial" ppp_profile="vivozap" Finalmente, se por algum motivo quiser servir (compartilhar) a conexão com mais alguma estação, configure o modo nat builtin do ppp também:
ppp_nat="YES" Considerações finais Lembre-se, essa configuração servirá tanto para os dispositivos PCMCIA da Qualcomm quantos Kyocera (que usam o chipset da Qualcomm), que de fato são os mais comuns. Se você suepeitar que a operadora ofereça mais velocidade de transmissão, reajuste a taxa de comunicação serial modificando o parâmetro set speed XXX
do ppp.conf(5). Apenas tenha em mente que o valor da velocidade deve ser sempre múltiplo de 115200. No exemplo estamos usando 115200*2. Boa sorte. |