Posts Tagged “usb”

Una asociación me ha encargado mirar ofertas de conexión móvil a Internet, con estos requisitos:

  • Módem USB que sea compatible con GNU/Linux, concretamente con *ubuntu 10.10.
  • Perfil de uso a diario y para no mucho tráfico.
  • Respecto a las ofertas que van con volumen máximo de datos, una vez superado ese valor no se quiere que haya un cargo extra en la factura, pero no importaría que la velocidad baje (ya veremos luego si se deteriora demasiado el servicio).
  • Sin permanencia.

Con estas condiciones y tras mirar unas cuantas ofertas, me decanto por Simyo (internamente es la operadora holandesa KPN):

  • Módem Huawei E1550: 19 € (éste y el resto de precios van con IVA incluido). Características: HSDPA de 3,6 Mbps y es libre; de todos modos, por internet circula algún programa para liberar módems Huawei.
  • Tarifa plana de 1 Gb de tráfico por mes (al superarlo baja la velocidad): 17,69 €/mes. Ojo, al de 4 meses parece que este precio sube, pero como no hay permanencia y el módem es libre para irnos a otra parte, seguro que se podrá negociar algo.

Respecto a la permanencia, sí es obligatoria si se hace el pedido en tienda, pero por teléfono o internet no. Se paga con tarjeta de crédito, y los gastos de envío son 7 €. Me ha llegado en 5 días. En mi caso, la única pega ha sido que no admiten pedidos para asociaciones, pero para las facturas mensuales he indicado el nº de cuenta de la asociación y listo.

Con independencia del sistema operativo empleado, los valores a configurar para un módem como éste son:

  • El PIN, asociado a la SIM recibida.
  • La información de conexión de la operadora Simyo en España: Nº de teléfono *99# y APN gprs-service.com (no requiere ni usuario ni password concretos; se puede indicar lo que sea).

Repasando la saga de módems USB, observo satisfecho que ha habido una evolución positiva a nivel de usabilidad, de modo que en Ubuntu 10.10 es posible hacer la configuración mediante ventanas y sin necesidad de entrar a consola: unas cuantas para configuración (una sola vez), y otra para meter el PIN (cada vez que se enchufa el módem, aunque se puede hacer que “se recuerde”). De todos modos, las ventanas de configuración sugieren los valores de conexión a Simyo que he indicado arriba (nº de teléfono y APN) gracias al paquete mobile-broadband-provider-info, que contiene los XMLs con datos de operadoras por países.

Aunque soy de Kubuntu más que de Ubuntu, la versión 10.10 de esta distro que va con KDE 4.5 no permite esta facilidad de configuración usable, pero Alex Fiestas, gran desarrollador de KDE, me confirma que va a estar en la próxima KDE 4.6 que justo sale en estos días.

Y para quienes quieran hacer una conexión por consola, algunas instrucciones:

  • Nombre de dispositivo asociado: /dev/ttyUSB0 (según con qué programa se haga la conexión no es necesario saber cuál es).
  • Para meter el pin, una vez conectado el módem se puede usar un script en Perl que circula por ahí o bien hacer un simple:
  • echo "AT+CPIN=1234" >/dev/ttyUSB0
  • Si se emplea wvdial para hacer la conexión (haciendo sudo wvdial), hay que instalar el paquete wvdial e indicar en el /etc/wvdial.conf :
  • Init1 = ATZ
    Init2 = AT+CGDCONT=1,"IP","gprs-service.com"
    Modem Type = Analog Modem
    Baud = 460800
    New PPPD = yes
    Modem = /dev/ttyUSB0
    ISDN = 0
    Phone = *99#
    Username = *
    Password = *
  • Este dispositivo tiene, además de la función de módem, la de sistema de almacenamiento. Con la versión *ubuntu 10.10 esto no importa, pero con otras más antiguas puede ser necesario indicarle que su uso sea el de módem (con usb_modeswitch como comenté).

Para acabar, todos estos módems funcionan mediante comandos AT por línea serie (sobre USB). Algunos fabricantes publican especificaciones genéricas como este lomo de 178 hojas, o si no hay páginas sobre un módem concreto como ésta.

  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • BarraPunto
  • email
  • Google Buzz
  • Identi.ca
  • LinkedIn
  • Meneame
  • PDF
  • RSS
  • Slashdot

Comments No Hay Comentarios »

Tengo algunos ficheros con información personal de los que quiero guardar copias seguras en un disco y un pendrive USB y, sin pretender descubrir la pólvora en este post, voy a aprovechar para conocer un poco las alternativas disponibles.

Respecto al nivel al que hacer la encriptación, una clasificación posible sería:

  1. Las que son a nivel de disco/partición/sistema de ficheros (aquí una comparativa). Una muy buena tabla es ésta de wikipedia.
  2. Las que operan sobre ficheros individuales.

Otros criterios para el software concreto serían, ej: en el caso de Linux, si el software está en User space o Kernel space, las funcionalidades adicionales ([des]encriptación, firma, generación de claves, resumen o hash), o los algoritmos empleados.

Juntando la lista de wikipedia por una parte, y  por otra haciendo apt-cache search crypt y limpiando el listado que me aparece (librerías, wrappers, GUIs, -dev, -dbg, encriptación hardware,…), recojo en el wiki mis notas.

No hay un criterio claro de cuál es la mejor opción, y voy a probar con encriptación de una partición mediante LUKS. Este método encripta en base a una passphrase (la pide nada menos que 3 veces), y no requiere un fichero físico de llaves privada/pública. Los pasos a seguir son:

1) Particionar el disco USB. En mi caso como tiene 1 Tb y voy a hacer backup de todo mi disco duro, hago 2 particiones de 500 Gb cada una. De este modo podré jugar con copias rotativas.

2) Formatear con LUKS; cambio el sistema de ficheros FAT por defecto a ext3 porque me interesa almacenar los atributos de propietarios de ficheros y algún otro; (tarda más que en FAT porque tiene que crear las tablas de inodos,…):

# luksformat -t ext3 /dev/sdh1
Creating encrypted device on /dev/sdh1...
WARNING!
========
Sobrescribirá los datos en /dev/sdh1 de forma irrevocable.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Orden satisfactoria.
Please enter your passphrase again to verify it
Enter LUKS passphrase:
key slot 0 unlocked.
Orden satisfactoria.
mke2fs ...

A pesar de que da algún aviso de device busy (quizás por estar en dolphin, KDE,…) funciona a la perfección, y si se desconecta y se vuelve a conectar el dispositivo, en Kubuntu 9.10 pide automáticamente el password y ya está listo para usarlo.

Haciendo lsmod puedo comprobar cómo están:

aes_generic
aes_x86_64
cbc
cryptd
dm_crypt
sha256_generic

Al repetir el formateo para la segunda partición y conectarlo, por algún motivo no hace el montaje correctamente en el dolphin, pero probando a hacer este par de líneas de comandos sí que se ven ambas particiones en dolphin:

sudo cryptsetup luksOpen /dev/sdh1 XX
sudo cryptsetup luksOpen /dev/sdh2 YY

(Se obvia la de sudo mount /dev/mapper/XX /media/disk1). Para cerrarlo sería:

sudo umount /media/disk
sudo cryptsetup luksClose XX

Si se quiere ver el estado hacer sudo cryptsetup status XX

Por indicar algún dato más, me ha tardado 3 h y 20 min en copiar unos 300 Gb al disco usb. Para la próxima, como usaré rsync y el grueso de la información no cambia demasiado, será mucho más rápido.

That’s all, folks!

  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • BarraPunto
  • email
  • Google Buzz
  • Identi.ca
  • LinkedIn
  • Meneame
  • PDF
  • RSS
  • Slashdot

Comments No Hay Comentarios »

Si se tiene arrancada una máquina virtual (en adelante VM) con VirtualBox, en la cual se haya configurado un filtro USB adecuado (o incluso uno vacío que permita todo USB), al conectar un dispositivo USB (pendrive, disco externo) es necesario ir al menú Dispositivos>Dispositivos USB y seleccionar el recién conectado para que habilitarlo en la VM.

Pero si una VM se arranca mediante VBoxSDL dicho menú no existe, y entonces no es posible que la VM vea el nuevo dispositivo. ¿Solución? Emplear udev y hacer que el nuevo dispositivo se conecte a la VM en ejecución.

Para ello, hay que crear una nueva regla ej. el fichero /etc/udev/rules.d/90-usb-virtualbox.rules con este contenido:
SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/local/sbin/usb-virtualbox.sh"

De este modo, al conectar (“add”) un dispositivo “usb”, se lanza el programa indicado pasándole la información por variables de entorno. Respecto al script /usr/local/sbin/usb-virtualbox.sh (que habrá de ser ejecutable), sería:

#!/bin/bash
U=usuario_de_la_vm
A=$(env | grep DEVPATH | cut -f 5-6 -d /)
S=$(su $U -c "VBoxManage list usbhost" | grep "$A" | awk '{print $2}' )
su $U -c "VBoxManage controlvm nombre_de_la_VM usbattach $S"

Ojo: si la VM es Windows y tras conectar un disco externo USB aparece un icono en la bandeja de sistema indicando que hay un dispositivo conectado, pero no se ve el contenido en el explorador de archivos, la causa puede ser que el sistema de ficheros del disco sea ext3, y en este caso habría que emplear un software como Ext2Fsd (es GPL).

  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • BarraPunto
  • email
  • Google Buzz
  • Identi.ca
  • LinkedIn
  • Meneame
  • PDF
  • RSS
  • Slashdot

Comments No Hay Comentarios »

Me dejan unos dispositivos wifi USB para ver si los hacemos funcionar en GNU/Linux:

Empiezo con el de Telefónica: al conectarlo, si hubiera funcionado a la primera habría aparecido algún nuevo interface de red wifi, pero no ha sido así y además tengo una versión relativamente actual (Kubuntu 9.10 con un kernel 2.6.31-16). ¿Cómo proceder? Cuento los tres pasos:

1) Identificar qué dispositivo es. Aunque en la etiqueta pegada aparece “Amper”, haciendo lsusb indica:

Bus 002 Device 005: ID 083a:e501 Accton Technology Corp. ZD1211B

Hay que anotar el identificador del fabricante 083a (en principio Accton) y el del dispositivo e501. Googleando encuentro que ZD viene de ZyDAS, y que el chipset tiene varias denominaciones: Atheros AR5007UG, AR2524/AR5524, ZyDAS ZD1211B.

2) Buscar información de drivers en internet. Veo que alguna gente ha usado ndiswrapper, pero tratemos de emplear algo más “nativo”. Voy a los dispositivos USB en linuxwireless.org, donde compruebo que hay varias entradas para el 083a y ninguna para el e501. Pero entrando en la página del driver zd1211rw, veo que sí se hace referencia al ZD1211B. En la misma página, voy al enlace de Adding new USB device IDs to the driver y pruebo estas gloriosas líneas:

modprobe zd1211rw
echo "083a e501 FFFFFFFF FFFFFFFF 0 0 1">/sys/bus/usb/drivers/zd1211rw/new_id

Entonces surge un pop-up en el gestor de red, y ya aparece el nuevo interface wlan1.

En el kernel 2.6.32 este lío no es necesario: apuntado a la lista zd1211-devs, me ha escrito Hin-Tak Leung desde U.K., quien añadió el ID al driver para después subirlo a la 2.6.32.  Hin-Tak Leung es uno de los mantenedores de otro driver wifi del kernel, el RTL8187, y de los drivers de impresión ghostscript PCL XL. Thanks a lot for your contributions. ¿No es genial que haya gente por todo el mundo echando una mano?

3) Determinados dispositivos, no sólo los usb o los wireless, requieren un firmware. Veo que es este caso, y el firmware se carga al hacer ifconfig wlan1 up (explicación aquí). Concretamente el paquete es:

  • En ubuntu: linux-firmware
  • En debian: zd1211-firmware

Vamos con los otros dos dispositivos USB wifi. Haciendo lsusb se muestra:

  • 0ace:1211 Zydas
  • 050d:8053 Belkin

Con un kernel 2.6.32 han funcionado correctamente. El Zydas usa también idénticos módulo del kernel y firmware que el de Telefónica, y respecto al Belkin, para saber cuál era el firmware en Debian (en Ubuntu es en ambos linux-firmware) simplemente he hecho ifconfig up y he mirado en dmesg alguna cadena indicadora de lo que intentaba cargar. Resultado: rt2870. Buscando con apt-cache search el paquete resulta ser firmware-ralink.

Éxito total.

  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • BarraPunto
  • email
  • Google Buzz
  • Identi.ca
  • LinkedIn
  • Meneame
  • PDF
  • RSS
  • Slashdot

Comments 11 Comentarios »

El Alcatel One Touch X200 es otro módem HSUPA que puede alcanzar velocidades de 7.2 Mbps/2 Mbps según el fabricante. Además del módem, el dispositivo contiene la típica memoria accesible, que en la versión que distribuye Euskaltel contiene ficheros de configuración para Windows y Mac OS X, y tiene Zero CD ROM (autoinstalación al conectarlo la primera vez).

Puede ser usado también como pendrive, pues cuenta con una ranura para insertar una tarjeta microSD de hasta 4 Gb.


En Kubuntu 9.10 AMD64 con kernel 2.6.31-14-generic hay un doble problema al conectarlo:

  • Sólo es considerado como dispositivo de almacenamiento USB y no como módem USB: al conectarlo el kernel carga únicamente el módulo usb_storage y monta el acceso a los ficheros de instalación que vienen dentro.
  • Aunque haya una tarjeta microSD insertada no la reconoce.

Para solucionarlo, hay que usar el software libre usb_modeswitch. Actualmente no hay paquete para Ubuntu, y al bajar el tar.bz2 existe un ejecutable para 32 bits. Para recompilarlo se necesita el paquete libsub-dev. Después, se copia usb_modeswitch.conf a /etc y se descomentan las líneas correspondientes al dispositivo según lo indicado al hacer lsusb:

DefaultVendor=  0x1bbb
DefaultProduct= 0xf000
TargetVendor=   0x1bbb
TargetProduct=  0x0000
MessageContent="555....000"

Al ejecutar usb_modeswitch y hacer lsusb de nuevo, el identificador de fabricante:producto pasa de 1bbb:f000 a 1bbb:0000. Se puede comprobar que el módulo (del kernel) option sí da soporte a este dispositivo:

$ modinfo option | grep -i 1bbb
alias: usb:v1BBBp0000d*dc*dsc*dp*ic*isc*ip*

También se crean /dev/ttyUSB0, /dev/ttyUSB1 y /dev/ttyUSB2 (éste es el necesario para la conexión), y en caso de que haya una tarjeta microSD es montada automáticamente. (Nota: estos pasos no son instantáneos, como se puede comprobar con el Network Manager de KDE).

Por lo demás, la configuración de wvdial para Euskaltel con este módem es idéntica a la del Huawei E170 sin más que emplear /dev/ttyUSB2.

A futuro KDE y Gnome integrarán mejor este tipo de dispositivos con el fin de simplificar su uso al máximo.

  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • BarraPunto
  • email
  • Google Buzz
  • Identi.ca
  • LinkedIn
  • Meneame
  • PDF
  • RSS
  • Slashdot

Comments 12 Comentarios »

Cada vez están más popularizados los módems USB para acceso móvil a Internet. La evolución de estas tecnologías, dicho en una línea, es algo así:

2G=GSM -> 2.5G=GPRS -> 2.75G=EDGE -> 3G=UMTS -> 3.5G=HSDPA -> 3.75G=HSUPA (-> 4G)

A efectos prácticos, dos datos importantes de cada una son las velocidades de subida/bajada, y el área de cobertura. Ésta última depende de la operadora, y cuanto más moderna sea la tecnología suele estar más restringida a núcleos urbanos.

El Huawei E170 tiene capacidad para HSUPA, y según el fabricante puede alcanzar 7.2 Mbps/2 Mbps.

Los modems USB para HSPA (=HSDPA+HSUPA) tienen además una memoria en la que hay ficheros, ej. el Huawei distribuido por Euskaltel viene con su software para Windows (instalador, drivers, etc.). Cuando se conecta en Windows por primera vez, aparece un nuevo dispositivo de almacenamiento y salta al autoinstalador del mismo.

¿Cómo usarlo en GNU/Linux? Hay unos cuantos tutoriales por ahí, y aquí va otro incidiendo en que sea un poco didáctico.

Versión gráfica

Aunque siempre se podría dejar un icono en el escritorio con los comandos wvdial que indicaré abajo, existe una herramienta gráfica llamada umtsmon con soporte para GPRS, EDGE, WCDMA, UMTS, HSDPA. No hay paquete para Ubuntu/Debian, pero se compila y funciona (en su versión 0.9; la 0.10alpha da algún fallo). Entre otras funcionalidades, permite:

  • Gestionar perfiles de conexión, ej. según operadoras.
  • Seleccionar tecnologías de radio (GPRS, EDGE,…).
  • Enviar SMSs.
  • Cambiar el PIN y recuperarlo con el PUK en caso de invalidez del mismo.
  • Seleccionar entre operadores disponibles.

Versión “geek”

Internamente estos módems se comunican con el PC mediante comandos AT (al igual que los módems antiguos) vía serie sobre USB, y hacen la conexión por PPP.

Al conectar físicamente el Huawei E170, el kernel lo detecta y automáticamente carga algunos módulos y crea entradas nuevas en /dev:

  • usbserial: se encarga de comunicaciones serie sobre USB (aquí un artículo de esto).
  • option: para módems GSM, dependiente de usbserial. Entre éste y el anterior crean /dev/ttyUSB0 (es el que se usa para la conexión) y /dev/ttyUSB1.
  • usb_storage: crea un dispositivo de almacenamiento de la forma /dev/srN, que puede ser montado (pseudo CDROM SCSI con filesystem iso9660) para acceder a los ficheros de la memoria USB.

En el espacio de usuario hace falta un programa para la conexión mediante comandos AT, ej. wvdial. Hay 2 fases: primero indicar el PIN, y después hacer la conexión. Dejo la configuración en el wiki.

  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • BarraPunto
  • email
  • Google Buzz
  • Identi.ca
  • LinkedIn
  • Meneame
  • PDF
  • RSS
  • Slashdot

Comments No Hay Comentarios »