El otro día me quedé sin poder probar la conexión inalámbrica en Raspbmc porque los puertos USB de la Raspberry Pi no dan suficiente potencia para la antena WiFi USB que tengo. Cada puerto USB proporciona hasta 100mA, y parece que el consumo de la antena oscila entre 150mA y 200mA, por lo que no es suficiente. Quizá conectando un cable USB en Y desde los dos USB podría llegar a funcionar, pero nos quedaríamos sin puertos USB libres.
Una solución que funciona es utilizar un concentrador (o hub) USB con alimentación externa. Además, podemos conectar la alimentación de la Raspberry Pi al concentrador, por lo que no necesitaremos dos enchufes.
Configurar una conexión inalámbrica en Raspbmc con una antena WiFi USB es parecido a lo que hay que hacer para configurarla en debian, pero como Raspbmc utiliza Network Manager, la configuraremos a través de éste.
La antena que tengo es una Conceptronic CT-WN4320Z con chip ZD1211 y que
funciona con el controlador ZyDAS. Dado que el firmware para este chip no
es libre, deberemos habilitar los repositorios non-free
editando el
fichero /etc/apt/sources.list
:
deb http://ftp.debian.org/debian stable main non-free
deb http://ftp.debian.org/debian/ squeeze-updates main non-free
deb http://security.debian.org/ squeeze/updates main non-free
Actualizamos los repositorios:
$ sudo aptitude update
Instalamos el controlador zd1211-firmware
:
$ sudo aptitude install zd1211-firmware
Los siguientes paquetes puede que no sean estrictamente necesarios, pero
si queremos ejecutar comandos como lsusb
, iwconfig
, iwlist
,
wpa_supplicant
, etc. los vamos a necesitar. El paquete wpasupplicant
lo he instalado porque he estado probando la conexión antes de hacerlo a
través de Network Manager. Para instalarlos:
$ sudo aptitude install usbutils wireless-tools wpasupplicant
Vamos al directorio /etc/NetworkManager/system-connections
, o lo
creamos si no existía, y creamos el fichero wlan0
:
[connection]
id=wlan0
uuid=11111111-1111-1111-1111-111111111111
type=802-11-wireless
autoconnect=true
timestamp=0
[802-11-wireless]
ssid=77;89;83;83;73;68;
mode=infrastructure
security=802-11-wireless-security
[802-11-wireless-security]
key-mgmt=wpa-psk
psk=very long long password
[ipv4]
method=manual
dns=208.67.222.222;208.67.220.220;
addresses1=192.168.50.2;24;192.168.50.1;
[ipv6]
method=ignore
El fichero es bastante explicativo. De esta manera se configura una conexión con cifrado WPA2 e IP fija. A destacar:
- El identificador de la conexión
id
no tiene por qué ser el nombre de la interfaz, pero así es fácil identificarla. - El
uuid
debe ser único para todas las conexiones. - El SSID debe convertirse al valor decimal de los caracteres en ASCII
separados por punto y coma. Por ejemplo, si el SSID es MYSSID,
podemos ejecutar
python -c "print ';'.join(str(ord(c)) for c in 'MYSSID')+';'"
lo que nos devuelve77;89;83;83;73;68;
. El punto y coma del final es importante. - La frase de paso, que se especifica en
psk
, no es necesario ponerla entre comillas aunque contenga espacios. - Los DNS son los de OpenDNS.
- La dirección IP asignada es
192.168.50.2
, la máscara de red24
, es decir,255.255.255.0
y la puerta de enlace192.168.50.1
.
Si en lugar de IP fija queremos usar DHCP, sustituimos la sección
[ipv4]
por:
[ipv4]
method=auto
dhcp-client-id=xbmc
dhcp-hostname=xbmc
Una vez que hemos terminado de editar el fichero, le cambiamos los permisos:
$ sudo chmod 600 /etc/NetworkManager/system-connections/wlan0
Esto es importante, porque si el fichero no tiene las restricciones de usuario y permisos, Network Manager lo ignorará.
Mediante el siguiente comando levantamos la conexión:
$ nmcli con up id wlan0
Eso, o reiniciamos la Raspberry Pi.
Como curiosidad, podemos consultar el UUID de las conexiones activas ejecutando:
$ nmcli con status
NAME UUID DEVICES SCOPE DEFAULT VPN
wlan0 11111111-1111-1111-1111-111111111111 wlan0 system yes no
O listar todas las conexiones con:
$ nmcli con list
NAME UUID TYPE SCOPE TIMESTAMP-REAL
wlan0 11111111-1111-1111-1111-111111111111 802-11-wireless system Tue Jul 2 21:08:07 2012
Auto eth0 9ab5123b-s912-5215-cad2-b98fe521592d 802-3-ethernet system Mon Jul 2 20:48:03 2012
NAME UUID TYPE SCOPE TIMESTAMP-REAL
Referencias
» Configuring a NetworkManager Wireless Connection without Graphics