Mi amigo inGNUcious hace unos días se aventuro con OpenBSD en su laptop. Para conectarse utilizando Wi-Fi, contaba con su placa Broadcom BCM4312, la cual actualmente no se encuentra soportada en OpenBSD 4.6, y ademas una placa USB, que suele dar algunos problemas en GNU/Linux, y que en OpenBSD no funcionaba naturalmente. Esta placa es una TP-Link TL-WN422G con el chipset Zydas 1112, que utiliza naturalmente el módulo zd1211rw.
Esta placa puede ser configurada utilizando el estándar IEEE 802.11b y también IEEE 802.11g (el más usado en nuestros días). La interface es USB 2.0, como la mayoria de los dispositivos actuales, y presente en casi cualquier computadora.
En cuanto a los modos soportados es posible configurarla como AD-HOC, Managed, como así también como AP (por software, obviamente). Fisicamente cuenta con una pequeña antena omnidireccional de 4dbi, que puede ser retirada y sustituida por una mas potente y tiene la posibilidad de ser utilizada con cifrado WEP, WPA/WPA2 y WPA-PSK/WPA2-PSK (TKIP/AES).
El problema y la solución
Una noche, inGNUcious, se olvido esta placa USB TP-Link en mi casa. Lo que provoco que al verla intente hacerla funcionar sobre el ArchLinux, que tengo instalado en mi laptop. El interés me surgio a raiz de querer comprarle a inGNUcious esta placa, Asi que eso hise, en una aburrida madrugada en la cual no tenia absolutamente nada para hacer. Calente el mate y conecte la placa a mi laptop, e intente levantarla:
#: iwconfig wlan0 IEEE 802.11bg ESSID:"" Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated Tx-Power=0 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Bien, hasta aqui todo parece normal. Pero esto escondia un importante problema, al intentar scanear en busca de alguna red wireless, la misma no funcionaba, por lo cual, le di un vistazo a dmesg.
usb 2-2: new high speed USB device using ehci_hcd and address 3
usb 2-2: configuration #1 chosen from 1 choice
cfg80211: Using static regulatory domain info
cfg80211: Regulatory domain: US
usbcore: registered new interface driver zd1211rw
usb 2-2: firmware: requesting zd1211/zd1211b_ub
usb 2-2: Could not load firmware file zd1211/zd1211b_ub. Error number -2
zd1211rw 2-2:1.0: couldn't load firmware. Error number -2
Bien, el problema esta a la vista!. Al conectarse la placa, el modulo usado por la misma zd1211rw, intenta cargar un firmware llamado zd1211/zd1211b_ub. Me fije en el directorio /lib/firmware/ a ver si el mismo existia, pero naturalmente, no se encontraba.
Entonces busque en los repositorios, utilizando yaourt, esperando que se encuentre algún PKGBUILD para instalar el mismo y efectivamente se encontraba, y no en AUR, sino que en Core!. Asi que lo instalé.
#: yaourt -Ss zd1211
core/zd1211-firmware 1.4-2 - Firmware for the in-kernel26 zd1211rw wireless driver
#: yaourt -S zd1211-firmware
Bien, ahora al volver a conectar la placa USB, nos encontramos con el siguiente mensaje, al hacer dmesg:
usb 2-2: new high speed USB device using ehci_hcd and address 5
usb 2-2: configuration #1 chosen from 1 choice
usb 2-2: reset high speed USB device using ehci_hcd and address 5
phy2: Selected rate control algorithm 'minstrel'
zd1211rw 2-2:1.0: phy2
Por lo cual, el firmware a sido cargado correctamente y ya podemos disfrutar de esta placa TP-Link TL-WN422G en nuestro ArchLinux. Ahora solo nos queda levantarla, para comenzar a utilizarla.
#: ifconfig wlan0 up
Y listo, estamos en condiciones de conectarnos!. Cabe destacar, que al momento de escribir este post, me encuentro conectado utilizando esta flamante TP-Link
.

prueba =)
hise va con c –>hice