Modem 3G no
Linux, em alguns casos, é uma caixinha de surpresa. Com o modelo
Sony Ericsson não é diferente. Utilizava o Ubuntu 9.04 e a regra para funcionar era, adicionar um regra ao udev, simples. Cria-se o arquivo
/etc/udev/rules.d/50-md300modem.rules com o seguinte conteúdo:
ACTION!="add", GOTO="3G_End"
BUS=="usb", SYSFS{idProduct}=="d0cf", SYSFS{idVendor}=="0fce", RUN+="/bin/sh -c 'echo 3 > /sys/%p/device/bConfigurationValue'"
LABEL="3G_End"
O que essa regra faz? Simples, se for o modem MD300, ou seja, produto d0cf e do fabricante 0fce, então ele muda o conteúdo do arquivo bConfigurationValue para 3, desabilitando a funcionalidade de pendrive do e habilitando apenas a função do modem.
Fiz um upgrade do Ubuntu para o 10.04 sem remover o 9.04. É ruim porque não é um upgrade real e muitos arquivos de configurações ficam antigos e não se percebe muita diferença. Neste caso o modem funcionava normalmente, não precisei fazer nada.
Troquei meu HD, e fiz uma instalação do zero do Ubuntu. Pois bem, o modem não funcionou mais e descobri algumas mudanças no udev, e vi que seria só alterar o arquivo para ficar assim:
ACTION!="add", GOTO="3G_End"
SUBSYSTEMS=="usb", ATTRS{idProduct}=="d0cf", ATTRS{idVendor}=="0fce", RUN+="/bin/sh -c 'echo 3 > /sys/%p/bConfigurationValue'"
LABEL="3G_End"
Resumindo, o SYSFS foi depreciado e usa-se o ATTRS. O BUS também depreciado e substitui-se por SUBSYSTEMS. Depois disso foi só reiniciar o udev e pronto.