linux

Crear bugs en bugzilla a partir de un email

Crear bugs en bugzilla a partir de un email

Introducción

Bugzilla ofrece la posibilidad de poder crear bugs a partir de emails que recibe a través de un ejecutable python que tiene email_in.pl. El email tiene que tener un formato especifico para que bugzilla lo entienda y pueda crear el bug correctamente.

Configuración

Requisitos

Lo primero que tenemos que comprobar es si tenemos todos los módulos de perl necesarios para que funcione. Para comprobarlo tendremos que ejecutar el siguiente comando:

>> ./checksetup.pl --check-modules

Los módulos de perl que he detectado que necesita son los siguientes (si me dejo alguno me lo decís y lo añado)

  • Email-Reply
  • Class-C3
  • Email-MIME-Attachment-Stripper

Si os falta alguno tendreis que instalarlos ya sea con el instalador de perl o si existen los paquetes de estos módulos en el repositorio de vuestra distribución de linux, hacerlo desde ahí.

También necesitaremos un servidor de correo electrónico para que reciba los emails que luego redirigirá a bugzilla. (En esta guía no vamos a entrar a explicar como montar un servidor de correo electrónico, por lo que damos por hecho que ya tenéis un servidor de correo electrónico instalado en la misma máquina que el bugzilla)

Configurar el servidor de email

Para conectar el servidor de correo electrónico con el bugzilla tenemos que redirigir los emails a una cuenta que elijamos (por ejemplo: bug-submit@TU_DOMINIO.COM) al ejecutable de bugzilla que tratará estos emails.

Para ello, en el archivo /etc/aliases añadimos la siguiente línea que indica que los emails recibidos por la cuenta bug-submit@TU_DOMINIO.COM se los envíe al ejecutable email_in.pl de bugzilla para que cree el bug:

# Test para crear un bug desde email en bugzilla
bug-submit: "|/PATH_A_TU_BUGZILLA/email_in.pl -vvv 2>/var/log/bugzilla_emailin.log"

Configurar Bugzilla

Entramos en la Administración de bugzilla, luego le damos a Parámetros y ahora le damos a la sección Correo electrónico (http://yesa.cps.unizar.es/bugzilla4/editparams.cgi?section=mta) y en el campo mailfrom ponemos bug-submit@TU_DOMINIO.COM. Le damos al botón Guardar Cambios y ya esta.

Funcionamiento

Lo primero es simular que recibimos un email pasándole un fichero que describe un email por la entrada al ejecutable que lee los emails de bugzilla.

Guardamos en un fichero (por ejemplo emailTest.txt) un ejemplo de email (acordaros de cambiar en email de destino bug-submit@TU_DOMINIO.COM por la dirección en la que escuche bugzilla, el email del que lo envía USUARIO@SU_DOMINIO.COM por una que corresponda a una cuenta del bugzilla y por último cambiar el producto y componente por uno de vuestro bugzilla donde queráis crear el bug):

Delivered-To:  bug-submit@TU_DOMINIO.COM
Received: by 10.68.47.230 with SMTP id g6cs99712pbn;
        Mon, 4 Jul 2011 02:12:03 -0700 (PDT)
Received: by 10.227.162.129 with SMTP id v1mr3783487wbx.63.1309770722829;
        Mon, 04 Jul 2011 02:12:02 -0700 (PDT)
Return-Path: <USUARIO@SU_DOMINIO.COM>
Received: from isuela.unizar.es (isuela.unizar.es [155.210.1.53])
        by mx.google.com with ESMTPS id ek19si11909570wbb.69.2011.07.04.02.12.02
        (version=TLSv1/SSLv3 cipher=OTHER);
        Mon, 04 Jul 2011 02:12:02 -0700 (PDT)
Received-SPF: pass (google.com: domain of USUARIO@SU_DOMINIO.COM designates 155.210.1.53 as permitted sender) client-ip=155.210.1.53;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of USUARIO@SU_DOMINIO.COM designates 155.210.1.53 as permitted sender) smtp.mail=USUARIO@SU_DOMINIO.COM
Received: from queiles.unizar.es (hordedb.unizar.es [155.210.1.33])
    by isuela.unizar.es (8.13.8/8.13.8/Debian-3) with SMTP id p649BxVm017299
    for bug-submit@TU_DOMINIO.COM; Mon, 4 Jul 2011 11:11:59 +0200
Received: from huecha.unizar.es (huecha.unizar.es [155.210.1.51])
    by queiles.unizar.es (8.13.8/8.13.8/Debian-3) with ESMTP id p649C1tH025070
    (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
    for <bug-submit@TU_DOMINIO.COM>; Mon, 4 Jul 2011 11:12:01 +0200
Received: from [155.210.155.156] (filemonpi2.cps.unizar.es [155.210.155.152])
    (authenticated bits=0)
    by huecha.unizar.es (8.13.8/8.13.8/Debian-3) with ESMTP id p649BurT031554;
    Mon, 4 Jul 2011 11:11:59 +0200
Message-ID: <4E1183DB.8050204@unizar.es>
Date: Mon, 04 Jul 2011 11:11:55 +0200
From: =?ISO-8859-1?Q?M=AA_Jos=E9_P=E9rez?= <USUARIO@SU_DOMINIO.COM>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11
MIME-Version: 1.0
To: =?ISO-8859-1?Q?bugzilla <bug-submit@TU_DOMINIO.COM>
Subject: Prueba
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Mail-Scanned: Criba 2.0 + Clamd & Bogofilter

@product TU_PRODUCTO
@component TU_COMPONENTE
@summary Prueba de bug
@version unspecified
@op_sys Linux
@platform PC

Descripcion del bug

Se lo pasamos al ejecutable de bugzilla que se encarga de reciir los emails para crear los bugs:

>> ./email_in.pl < emailTest.txt

Si todo ha funcionado se habrá creado el bug en el bugzilla a partir del email.

Ahora lo siguiente será probar que enviando un email desde una dirección de email que corresponda con una cuenta del bugzilla. Si sigue funcionando ya tenemos todo hecho.

Para saber como se llaman los campos que tenemos que poner en el email para crear el bug con los datos que queramos podemos mirar la documentación en esta url: http://www.bugzilla.org/docs/4.0/en/html/api/Bugzilla/WebService/Bug.htm...

Errores

Error Can't locate Email/Reply.pm

Al ejecutar el programa que lee los emails que recibe bugzilla, obtenemos el siguiente error:

>> ./email_in.pl --help
Can't locate Email/Reply.pm
...

Solución

El problema esta en que falta el módulo Email-Reply de perl. Para instalarlo tendremos que instalar el paquete de nombre perl-Email-Reply a través de nuestro gestor de paquetes favorito o ejecutando el siguiente comando:

>> sudo yum install perl-Email-Reply

Error Can't locate Algorithm/C3.pm

Al ejecutar el programa que lee los emails que recibe bugzilla, obtenemos el siguiente error:

>> ./email_in.pl --help
Can't locate Algorithm/C3.pm in @INC (@INC contains: . lib/i386-linux-thread-multi lib /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8) at lib/Class/C3.pm line 25.
BEGIN failed--compilation aborted at lib/Class/C3.pm line 29.
Compilation failed in require at lib/MRO/Compat.pm line 27.
BEGIN failed--compilation aborted at lib/MRO/Compat.pm line 44.
Compilation failed in require at lib/Email/Abstract.pm line 7.
BEGIN failed--compilation aborted at lib/Email/Abstract.pm line 7.
Compilation failed in require at lib/Email/Reply.pm line 4.
BEGIN failed--compilation aborted at lib/Email/Reply.pm line 4.
Compilation failed in require at ./email_in.pl line 39.
BEGIN failed--compilation aborted at ./email_in.pl line 39.
...

Solución

El problema esta en que falta el módulo Class-C3 de perl. Para instalarlo tendremos que instalar el paquete de nombre perl-Class-C3 a través de nuestro gestor de paquetes favorito o ejecutando el siguiente comando:

>> yum install perl-Class-C3

Error Can't locate Email/MIME/Attachment/Stripper.pm

Al ejecutar el programa que lee los emails que recibe bugzilla, obtenemos el siguiente error:

>> ./email_in.pl --help
Can't locate Email/MIME/Attachment/Stripper.pm in @INC
...

Solución

El problema esta en que falta el módulo Email-MIME-Attachment-Stripper de perl. Para instalarlo tendremos que instalar el paquete de nombre perl-Email-MIME-Attachment-Stripper a través de nuestro gestor de paquetes favorito o ejecutando el siguiente comando:

>> yum install perl-Email-MIME-Attachment-Stripper

Error Service unavailable

Al enviar un email a la dirección que lee bugzilla, nos muestra el siguiente error en el log:

>> tail -100 /var/log/maillog
...
Jul  6 09:35:33 ia3 smrsh: uid 8: attempt to use "email_in.pl -vvv" (stat failed)
Jul  6 09:35:33 ia3 sendmail[15394]: p667ZX5R015393: to="|/var/www/bugzilla/email_in.pl -vvv", ctladdr=<bug-submit@dominio.com> (8/0), delay=00:00:00, xdelay=00:00:00, mailer=prog, pri=30703, dsn=5.0.0, stat=Service unavailable
Jul  6 09:35:33 ia3 sendmail[15394]: p667ZX5R015393: p667ZX5R015394: DSN: Service unavailable
...

Solución

Este problema puede deberse a que el email se envía desde una cuenta de email que no pertenece a ninguna cuenta del bugzilla. Por lo que tendremos que enviar el email con una dirección email que corresponda a una cuenta de bugzilla.

Cargar diccionarios de Babylon en Stardict

Stardict

Introducción

Stardict es un programa que te permite acceder a diccionarios que cargas en él. Lo que me gusta de él es que puedes tenerlo ejecutándose en segundo plano y al seleccionar un texto en cualquier aplicación, te aparecerá un pop-up con el contenido de esa palabra en los diccionarios. Por lo que si tienes un diccionario de Inglés a Español puedes usarlo de traductor.

El problema que tiene es que los diccionarios no vienen con el programa y tienes que buscar algo por internet que pueda usarlo el programa. Esta guía se concentra en facilitar esta tarea.

Instalación

Primero vamos a instalar el programa. Este se encuentra en los repositorios de ubuntu. Por lo tanto solo tendremos que instalar el paquete de nombre stardict-gnome desde nuestro gestor de paquetes preferido o sino ejecutar el siguiente comando desde la consola:

>> sudo apt-get install stardict-gnome

Una vez tenemos instalado el programa, vamos a cargar varios diccionarios en él. Los diccionarios nos los bajaremos de internet y para convertirlos en un formato que pueda usar stardict tendremos que instalar además otro programa. Así que desde nuestro gestor de paquetes preferido instalamos el paquete de nombre stardict-tools o ejecutamos el siguiente comando:

>> sudo apt-get install stardict-tools

Lo siguiente es conseguir por internet los diccionarios que queramos usar. Una de las páginas que proporciona diccionarios gratuitos que nos van a servir es Babylon. Entonces buscamos y descargamos los diccionarios que queramos de la web de Babylon (http://www.babylon.com/free-dictionaries/) (en mi caso me voy a poner uno de Español a Inglés y otro de Inglés a español)

Cuando terminen de descargarse los diccionarios que queremos usar, empezamos el proceso haciendo los siguientes pasos:

  • Abrimos el programa de conversión de formatos  de diccionarios ejecutando el siguiente comando desde una consola:

>> stardict-editor

  • Comprobamos que estamos en la ventana Compile.
  • Le damos al botón Browse...
  • Seleccionamos uno de los archivos de extensión bgl.
  • Cambiamos la selección a BGL file.
  • Le damos al botón Build.
  • Si todo ha ido bien, nos pondrá: Done.
  • Este proceso nos habrá generado un fichero del mismo nombre pero con extensión babylon.
  • Entonces le volvemos a dar al botón Browse...
  • Seleccionamos el fichero de extensión babylon.
  • Cambiamos la selección a Babylon file.
  • Le volvemos a dar al botón Build.
  • Si todo ha ido bien, al final nos pondrá: Done!.
  • Y veremos que nos ha generado unos ficheros de extensión idx, ifo, syn y dz.
  • Por último cerramos el programa.

Repetimos estos pasos con cada diccionario que queramos cargar.

Una vez que tengamos todos los archivos generados (idx, ifo, syn y dz), los copiamos a la carpeta /usr/share/stardict/dic/. Por último abrimos el programa y ya veremos los diccionarios en las preferencias.

Renombrar las fotos añadiendole la fecha exif al principio en linux

Fotos ordenadas por fecha

Introducción

Muchas veces tenemos fotografías del mismo día pero tomadas con diferentes cámaras de fotos. Cada una le da a las imágenes usa nombres diferentes, por lo que para ordenarlas cronológicamente no es nada fácil. Por suerte, la mayoría  de las cámaras almacena en las fotos datos como la fecha y hora que tenía la cámara cuando fue tomada (se llaman datos exif). Gracias a esto, podemos extraer estos datos y usarlos para renombrar las fotografías. Así podremos ordenarlas cronológicamente.

Para ello necesitamos tener primero instalado el programa exif (con algunas fotos no me funcionaba y lo tube que hacer con libimage-exiftool-perl). Si no lo tenemos, solo hay que instalar el paquete llamado exif (o libimage-exiftool-perl) a través de nuestro gestor de paquetes preferido o con el siguiente comando:

>> sudo apt-get install exif

 

>> sudo apt-get install libimage-exiftool-perl

Añadir la fecha al nombre de las fotos

Para añadir la fecha al comienzo del nombre del fichero tendremos que ejecutar uno de los dos siguientes comandos:

>> for i in *.jpg; do dst=$(exif -t 0x9003 -m "$i" ) && dst_esc=$(echo $dst | sed 's/ /_/g' | sed 's/:/-/g' ) && mv "$i" "$dst_esc $i" ; done

 

>> for i in *.jpg; do dst=$(exiftool -T -createdate "$i" ) && dst_esc=$(echo $dst | sed 's/ /_/g' | sed 's/:/-/g' ) && mv "$i" "$dst_esc $i" ; done

Explicación de cada parte del comando:

  • Para hacer solo esto con las fotos que tienen de extensión .jpg pondremos lo siguiente (si nuestras fotos tienen otra extensión cambiaremos esta) :  
  • Extraemos de la imagen la fecha en la que se tomó:
>> exif -t 0x9003 -m  DSC00024.JPG
2006:10:13 03:17:3

 

>> exiftool -T -createdate DSC00024.JPG
2006:10:13 03:17:3
  • Como no me gustan los espacios en los nombres de los archivos, lo cambio por _ con el siguiente comando:   
  • Como no me gustan los : en los nombres de los archivos los cambio por - con el siguiente comando:   

Quitar la fecha del nombre de las fotos

Para quitar la fecha que hemos añadido en el anterior paso solo tenemos que eliminar los primeros 19 caracteres del nombre que corresponden con la fecha (YYYY:MM:DD-HH:MM:SS). Esto lo haremos con el siguiente comando:

>> for i in ????-??-??_??-??-??*; do oldname=$(echo "$i" | sed 's/...................\(.*\)/\1/' ) && mv "$i" "$oldname" ; done

Explicación de cada parte del comando:

  • Solo queremos renombrar los archivos que tienen la fecha. Estos los conseguimos con lo siguiente: for i in ????-??-??_??-??-??*; do

Editar los datos Exif de las fotos

Puede ser que cuando hicieramos las fotos, la fecha de la cámara estuviera mal puesta. Para modificar la fecha y hora de los datos exif de las fotos, podemos utilizar el comando exiv2. Si no lo tenemos instalado, solo tenemos que instalar el paquete exiv2 desde nuestro gestor de paquetes preferidos o ejecutando el siguiente comando:

>> sudo apt-get install exiv2

Una vez ya lo tenemos instalado podemos empezar a modificar los datos exif. A continuación tenéis unos ejemplos de uso:

  • Sumar 3 años:
>> exiv2 -Y 3 *.JPG
  • Sumar 2 meses:
>> exiv2 -O 2 *.JPG
  • Sumar 5 días:
>> exiv2 -D 5 *.JPG
  • Sumar 3 horas:
>> exiv2 -a 03:00:00 *.JPG
  • Sumar 10 minutos:
>> exiv2 -a 00:10:00 *.JPG
  • Sumar 27 segundos:
>> exiv2 -a 00:00:27 *.JPG

(si queremos restar en vez de sumar, solo tendremos que poner números negativos)

Migración de una instalación de mldonkey

Migración de una instalación de mldonkey

En este artículo os voy a explicar como podéis migrar la configuración de una instalación del servidor de mldonkey de una máquina a otra diferente (ya sea por un cambio de máquina, por formatear, etc) y así no perder la configuración para que los demás usuarios nos sigan identificando como el mismo con los puntos conseguidos.

Lo primero de todo es parar el servicio por si se esta ejecutando:

>> sudo /etc/init.d/mldonkey-server stop

Una vez parado, vamos ha hacer una copia de seguridad de los archivos que vamos a sustituir:

>> sudo tar -zcvf mldonkey.tar.gz /var/lib/mldonkey

Ahora podemos reemplazar los ficheros actuales por los de la otra instalación que estamos migrando. Como ejemplo considero que tengo la carpeta de la antigua instalación del servidor mldonkey en /mnt/var/lib/mldonkey. Lo que hay que hacer es: borrar la configuración nueva, copiar la antigua configuración y poner al usuario mldonkey de propietario de estos archivos:

>> cd /var/lib/mldonkey
>> sudo rm -R .
>> sudo cp -R /mnt/var/lib/mldonkey/* .
>> sudo chown mldonkey:mldonkey -R .

Una vez que tenemos la antigua configuración, tenemos que actualizar un parámetro de ella (el uid del usuario mldonkey). Para saber el uid del usuario mldonkey en la máquina en la que esta instalado el servidor, debemos ejecutar el siguiente comando (como podéis ver el uid del usuario mldonkey es 115):

>> more /etc/passwd | grep mldonkey
...
mldonkey:x:115:123::/var/lib/mldonkey:/bin/false
...

Una vez tenemos el uid del usuario mldonkey, tendremos que ir al archivo /var/lib/mldonkey/downloads.ini y buscar la línea en la que se indica este parámetro y le ponemos el actual:

run_as_useruid = 132

Ya tenemos el servidor mldonkey listo y lo podemos volver a arrancar:

>> sudo /etc/init.d/mldonkey-server start

Wifi usb 300 Mbps con antena externa de 5dBi

Wifi usb 300

Introducción

Como algunos ya sabréis, me he comprado un nuevo wifi usb compatible con el protocolo 802.11n (300 Mbps) y con posibilidad de ponerle una antena externa para coger una mejor señal (ya que con el conceptronic que tenía antes, últimamente se me desconectaba cada dos por tres). También mire que fuera compatible con Linux. Y después de probarlo, la verdad es que estoy muy satisfecho con él. Además como se le puede cambiar la antena, si un día necesito coger señales wifi más débiles, siempre me puedo comprar una antena mejor que esta.

Me lo compre en ebay por unos 9 €. No tiene marca, pero si lo queréis aquí tenéis una lista con el mismo artículo.

Las principales características de este usb wifi son las siguientes:

  • Soporta los estándares IEEE 802.11n, 802.11g y IEEE 802.11b
  • USB 2.0
  • 1x2 MIMO technology
  • Antena externa de alta potencia de 5dBi
  • Chipset : RTL8191SU
  • Brand New
  • No soporta la banda de frecuencia de 5GHz
  • Métodos de modulación: BPSK/ QPSK/ 16-QAM/ 64-QAM/ DBPSK/ DQPSK/ CCK
  • Poder de transmisión:
    • IEEE 802.11n: 16 dBm (Max)
    • IEEE 802.11g: 19 dBm (Max)
    • IEEE 802.11b: 22 dBm (Max)
  • Modos de seguridad: 64/128-bit WEP, TKIP, AES, WPA and WPA2
  • Banda de frecuencia: 2.4GHz ISM Band*
  • Ratios de transferencia:
    • IEEE 802.11n 300Mbps (Max)
    • IEEE 802.11g 54Mbps (Max)
    • IEEE 802.11b 11Mbps (Max)
  • Ancho de banda:
    • 40MHz for 300Mbps
    • 20MHz for 150Mbps

Instalación

Conectándolo directamente a mi Ubuntu Lucid 10.04 no me ha funcionado. Entonces he intentado instalar el driver del chipset RTL8191SU de Realtek. Para bajar el driver, solo hay que ir a la web de Realtek y en la sección de descargas bajar el correspondiente al chipset de nuestro usb. Una vez lo hemos bajado tenemos que hacer lo siguiente:

>> unzip RTL8191SU_usb_linux_v2.6.0006.20100625.zip
>> cd rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100625/driver
>> tar -zxvf rtl8712_8188_8191_8192SU_usb_linux_v2.6.6.0.20100625.tar.gz
>> cd rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100625
>> make

Aunque no daba ningún error al compilarlo, me aparecían muchos warning como este:

warning: cast from pointer to integer of different size

Este error según he mirado por internet, suele ser provocado porque el código fuente no es compatible con la arquitectura de tu sistema operativo (el código fuente del driver era para 32 bits y yo tengo un Ubuntu de 64). Luego vi que en los requisitos del driver (que estaban en un power point que venía en el zip del driver) ponía eso.

Entonces mire que errores ponía al enchufar el usb sin instalar nada y si que se cargaba un módulo y este daba un error:

>> dmesg
[  195.680081] usb 1-4: new high speed USB device using ehci_hcd and address 9
[  195.833672] usb 1-4: configuration #1 chosen from 1 choice
[  195.834915] ==>ep_num:4, in_ep_num:1, out_ep_num:3
[  195.834922] ==>RtInPipes:3 
[  195.834927] ==>RtOutPipes:4  6  13 
[  195.834935] ==>txqueue_to_outpipemap for BK, BE, VI, VO, HCCA, TXCMD, MGNT, HIGH, BEACON:
[  195.834939] 1  1  0  0  2  2  2  2  2 
[  196.139432] Dot11d_Init()
[  196.155693] udev: renamed network interface wlan0 to wlan2
[  196.174397] rtl819xU: --->FirmwareDownload92S()
[  196.174402]
[  196.174413] usb 1-4: firmware: requesting RTL8192SU/rtl8192sfw.bin
[  196.178980] rtl819xU:request firmware fail!
[  196.178984]
[  196.179288] rtl819xU:Firmware Download Fail!!a
[  196.179290]
[  196.195633] rtl819xU: --->FirmwareDownload92S()
[  196.195637]
[  196.195652] usb 1-4: firmware: requesting RTL8192SU/rtl8192sfw.bin
[  196.203679] rtl819xU:request firmware fail!
[  196.203683]
[  196.204052] rtl819xU:Firmware Download Fail!!a
[  196.204055]
[  196.204060] rtl819xU:ERR!!! _rtl8192_up(): initialization is failed!
[  196.204063]
[  196.225748] rtl819xU: --->FirmwareDownload92S()
[  196.225756]
[  196.225768] usb 1-4: firmware: requesting RTL8192SU/rtl8192sfw.bin
[  196.243640] rtl819xU:request firmware fail!
[  196.243647]
[  196.245835] rtl819xU:Firmware Download Fail!!a
[  196.245840]
[  196.259225] rtl819xU: --->FirmwareDownload92S()
[  196.259232]
[  196.259246] usb 1-4: firmware: requesting RTL8192SU/rtl8192sfw.bin
[  196.286315] rtl819xU:request firmware fail!
[  196.286319]
[  196.287270] rtl819xU:Firmware Download Fail!!a
[  196.287273]
[  196.287281] rtl819xU:ERR!!! _rtl8192_up(): initialization is failed!

Como podemos ver, el módulo rtl819xU esta buscando el archivo /lib/firmware/RTL8192SU/rtl8192sfw.bin y no lo encuentra. Así que tendremos que ponerlo a mano. Para ello, en la carpeta /lib/firmware tenemos que crear una carpeta de nombre RTL8192SU y poner el archivo rtl8192sfw.bin que lo podemos bajar de aquí.

>> cd /lib/firmware
>> sudo mkdir RTL8192SU
>> cd RTL8192SU
>> sudo wget http://svn.debian.org/wsvn/kernel/dists/trunk/firmware-nonfree/realtek/RTL8192SU/rtl8192sfw.bin

Una vez hemos hecho lo anterior, volvemos a conectar el usb y ya nos funcionará correctamente.

>> dmesg
[  233.370036] usb 1-4: new high speed USB device using ehci_hcd and address 10
[  233.523575] usb 1-4: configuration #1 chosen from 1 choice
[  233.524816] ==>ep_num:4, in_ep_num:1, out_ep_num:3
[  233.524821] ==>RtInPipes:3 
[  233.524826] ==>RtOutPipes:4  6  13 
[  233.524833] ==>txqueue_to_outpipemap for BK, BE, VI, VO, HCCA, TXCMD, MGNT, HIGH, BEACON:
[  233.524837] 1  1  0  0  2  2  2  2  2 
[  233.834091] Dot11d_Init()
[  233.850132] udev: renamed network interface wlan0 to wlan2
[  233.869694] rtl819xU: --->FirmwareDownload92S()
[  233.869703]
[  233.869718] usb 1-4: firmware: requesting RTL8192SU/rtl8192sfw.bin
[  233.875771] rtl819xU:signature:8192, version:902b, size:30, imemsize:7408, sram size:9688
[  233.875775]
[  233.875887] rtl819xU:--->FirmwareDownloadCode()
[  233.875889]
[  233.875982] rtl819xU:--->FirmwareCheckReady(): LoadStaus(1),
[  233.877709] rtl819xU:<---FirmwareCheckReady(): LoadFWStatus(1), rtStatus(0)
[  233.877714]
[  233.877722] rtl819xU:--->FirmwareDownloadCode()
[  233.877724]
[  233.877864] rtl819xU:--->FirmwareCheckReady(): LoadStaus(2),
[  233.880317] rtl819xU:-->FirmwareEnableCPU()
[  233.880326]
[  233.882682] rtl819xU:IMEM Ready after CPU has refilled.
[  233.882689]
[  233.882695] rtl819xU:<--FirmwareEnableCPU(): rtStatus(0x0)
[  233.882698]
[  233.882703] rtl819xU:<---FirmwareCheckReady(): LoadFWStatus(2), rtStatus(0)
[  233.882705]
[  233.882711] rtl819xU:--->FirmwareDownloadCode()
[  233.882713]
[  233.882726] rtl819xU:--->FirmwareCheckReady(): LoadStaus(3),
[  233.883052] rtl819xU:DMEM code download success, CPUStatus(0x3f)
[  233.883054]
[  233.884426] rtl819xU:Polling Load Firmware ready, CPUStatus(ff)
[  233.884428]
[  233.885674] rtl819xU:FirmwareCheckReady(): Current RCR settings(0x157e20e)
[  233.885676]
[  233.885929] rtl819xU:<---FirmwareCheckReady(): LoadFWStatus(3), rtStatus(0)
[  233.885932]
[  233.885935] rtl819xU:Firmware Download Success!!
[  233.885937]
[  236.714949] ADDRCONF(NETDEV_UP): wlan2: link is not ready
[  257.057024] Linking with INTROWIFI2,channel:10, qos:0, myHT:1, networkHT:0, mode:6
[  257.057048] Linking with INTROWIFI2,channel:10, qos:0, myHT:1, networkHT:0, mode:6
[  257.057203] =====>rtl8192SU_link_change 1
[  257.059179] <=====rtl8192SU_link_change 2
[  257.059190] ===>ieee80211_associate_procedure_wq(), chan:10
[  257.110653] rtl819xU:==>SetBWModeCallback8192SUsbWorkItem()  Switch to 20MHz bandwidth
[  257.110660]
[  257.128254] rtl819xU:<==SetBWModeCallback8192SUsbWorkItem()
[  257.128276] =================>ieee80211_authentication_req():auth->algorithm is 0
[  257.133893] rtl819xU:rtl8192_qos_association_resp: network->flags = 2,0
[  257.133896]
[  257.133920] rtl819xU:qos active process with associate response received
[  257.133922]
[  257.133933] Associated successfully
[  257.133938] Using G rates:108
[  257.133942] Successfully associated, ht not enabled(0, 0)
[  257.133946] =====>rtl8192SU_link_change 1
[  257.137239] =============>ARFR0+rate_index*4:0xfff
[  257.146983] <=====rtl8192SU_link_change 2
[  257.146989] ============>normal associate
[  257.147744] ADDRCONF(NETDEV_CHANGE): wlan2: link becomes ready
[  262.092467] alg name:CCMP
[  262.092498] rtl819xU:EnableHWSecurityConfig8192:, hwsec:1, pairwise_key:4, SECR_value:c
[  262.092501]
[  262.092782] rtl819xU:====>to setKey(), dev:ffff8800544c0000, EntryNo:4, KeyIndex:0, KeyType:4, MacAddr00:1a:2b:19:61:c3
[  262.092786]
[  262.096875] alg name:CCMP
[  262.096888] rtl819xU:====>to setKey(), dev:ffff8800544c0000, EntryNo:1, KeyIndex:1, KeyType:4, MacAddrff:ff:ff:ff:ff:ff

Por si os interesan los datos de este usb:

>> lsusb
...
Bus 001 Device 004: ID 0bda:8172 Realtek Semiconductor Corp.
...