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