3G Huawei E173
En los foros encontré que agregando una par de lineas a laconfiguración de usb_modeswitch el huawei E173 funcionaba correctamente (Aquí un ejemplo) , sin embargo, lo primero que noté es que el id del producto de aquellos que ya lo habían hecho funcionar era distinto:
ID 12d1:1436 Huawei Technologies Co., Ltd. (En el caso del foro)
ID 12d1:1c24 Huawei Technologies Co., Ltd. (En mi caso)
Supuse que esto sería solo diferencia por el país, ydecidí seguir el ejemplo, cambiando los idProduct por 1c24.
También noté que el idProduct después de intentar hacer el switcheo cambiaba a "1c23" y no a "1001,1406,140b,140c,1412,141b,1433,14ac" como se muestra en el foro, total que hice los cambios pertinentes y después de varios intentos logré que usb_modeswitch funcionara, pero seguía sin ser reconocido como modem, aunque este fue el primerpaso.
A continuación pongo lo que se debe realizar para que usb_modeswitch funcione de este modo:
1. usb_modeswitch
Creamos un archivo nuevo en donde definimos las configuraciones del modem, en mi caso lo puse en /etc/usb_modeswitch.d/E173 y agregamos el siguiente contenido (esto se realiza como root):
DefaultVendor= 0x12d1
DefaultProduct=0x1c24
TargetVendor= 0x12d1TargetProduct= 0x1c23
CheckSuccess=5
MessageContent="55534243000000000000000000000011060000000000000000000000000000"
Como ya dijimos anteriormente DefaultVendor y DefaultProduct son los id del fabricante y del producto respectivamente.
TargetVendor y TargetProduct son los id que tendrá después de hacer el switch.
CheckSuccess es la cantidad de veces con retardo de 1 segundo quechecará que el
switch se haya realizado correctamente.
MessageContent es una cadena hexadecimal que le indica el modo a cambiar al dispositivo (Este último lo tuve que sacar preguntando en un foro).
Ahora se debe agregar una regla de udev para que al momento de conectar modem haga el switch.
Abrimos (como root) el archivo /lib/udev/rules.d/40-usb_modeswitch.rules y agregamos lasiguiente regla (casi al final justo antes de la linea 'LABEL="modeswitch_rules_end"')
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1c24", RUN+="/usr/sbin/usb_modeswitch -c /etc/usb_modeswitch.d/E173"
Esto le dice a udev que cuando detecte que se conecte un dispositivo con el product y vendor especificados, ejecute el comando que está en RUN (/usr/sbin/usb_modeswitch -c/etc/usb_modeswitch.d/E173), es decir usb_modeswitch con la configuración que creamos anteriormente.
En caso de algunas distros como debian o ubuntu hay que reiniciar udev para que tome el cambio:
sudo /etc/init.d/udev restart
En caso de Arch el camio es automático.
Hasta ahí hicimos un switcheo de modo, pero no está reconocido como modem, continué con mi búsqueda y encontré un driver que alparecer ya es algo antiguo, de igual modo decidí descargarlo y probarlo, pero al momento de ejecutar el install pude ver que descomprimía el código fuente (gracias a tux venía el código) del driver y lo compilaba, pero no era tan fácil, enviaba un error al momento de compilar diciendo que no encontraba la función ioctl :( así que de nuevo a google, descubrí que al parecer la función ioctl fuedeprecada a partir de la versión 2.6.27 del kernel lo cual era un problema, pero esta función fue reemplazada por unlocked_ioctl (a modificar el código), desafortunadamente el script de instalación descomprimia el código solo al momento de instalar para compilar, así que me di cuenta que no podría hacer la modificación directamente, (bendito comando sed) opté por modificar el script de instalación...
Regístrate para leer el documento completo.