linux

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.
...

Instalar jdk en ubuntu

Instalar jdk de sun/oracle en ubuntu

Por defecto ubuntu trae una versión libre de código abierto de java. Pero si queremos instalar la versión oficial de JDK de Sun (Oracle), tendremos que añadir el repositorio de canonical y luego instalar el paque sun-java6-jdk. Un ejemplo para ubuntu 10.04 sería el siguiente:

>> sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
>> sudo aptitude update
>> sudo aptitude install sun-java6-jdk

Si nuestra versión de ubuntu no es la 10.04 (lucid), tendremos que capbiar en el primero comando y poner nuestra versión:

dapper
edgy
feisty
gutsy
hardy
intrepid
jaunty
karmic
lucid
maverick

Instalar el Java de Sun en Centos

Instalar el Java de sun en Centos

En el repositorio oficial de Centos solo esta el OpenJDK de Java y a veces necesitamos obtener el de Sun (ya sea por clases que no se incluyen en otras versiones de java o por el motivo qeu sea).

Para instalarlo tendremos que ir a la páguina de descarga del JDK de Sun para bajar el instalador. Una vez bajado procedemos a instalarlo y a registrarlo en las alternativas del comando java para finalizar indicando que use la versión que hemos instalado cuando ejecute java.

Una vez que hemos bajado el ejecutable (en nuestro caso jdk-6u19-linux-i586-rpm.bin), lo instalamos con los siguientes comandos:

>> chmod a+x jdk-6u19-linux-i586-rpm.bin
>> sudo ./jdk-6u19-linux-i586-rpm.bin

Ahora indicamos al sistema que en la ruta donde hemos instalado java (en nuestro caso /usr/java/jdk1.6.0_19/bin/java), hay una implementación de java:

>> sudo /usr/sbin/update-alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_19/bin/java 20000

Por último ejecutamos el siguiente comando para poder elegir de entre las implementaciones de java instaladas en el sistema, la que queramos usar (que en nuestro caso es la opción 4):

>> sudo /usr/sbin/update-alternatives --config java
 
Hay 4 programas que proporcionan 'java'.
 
  Selección    Comando
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java
   2           /usr/lib/jvm/jre-1.5.0-sun/bin/java
 + 3           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
*  4           /usr/java/jdk1.6.0_19/bin/java
 
Presione Intro para mantener la selección actual[+], o escriba el número de la selección:  4

Ahora comprobamos que se ejecuta la versión correcta:

>> java -version
java version "1.6.0_19"
Java(TM) SE Runtime Environment (build 1.6.0_19-b04)
Java HotSpot(TM) Client VM (build 16.2-b04, mixed mode, sharing)

Por lo tanto ya tenemos el java jdk de sun funcionando en nuestro Centos.

Distribuir contenido