martes, diciembre 05, 2006

Y ahora la wifi: Intel Corporation PRO/Wireless 2200BG

Vamos hacer que linux reconozca la tarjeta wifi del portátil. La tarjeta es 0000:02:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05). Este portátil se conoce como Intel Centrino.

Vamos a las fuentes kernel: make menuconfig
Device Drivers -> Network device support
[*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
< > Intel PRO/Wireless 2200BG and 2915ABG Network Connection

OJO: Desactivado Intel PRO/Wireless 2200BG and 2915ABG Network Connection

Device Drivers -> Generic Driver Options:
[*] Select only drivers that don't need compile-time external firmwar
[*] Prevent firmware from being built
<m> Userspace firmware loading support

Networking:
[*] Networking support
< > Generic IEEE 802.11 Networking Stack

OJO: Desactivado Generic IEEE 802.11 Networking Stack

Cryptographic options:
[*] Cryptographic API
<m> AES cipher algorithms (i586)
<m> ARC4 cipher algorithm
<m> Michael MIC keyed digest algorithm

Library routines:
<m> CRC32 functions

Ahora nos descargamos los fuentes del driver y el firmware. Todo esto está en http://ipw2200.sourceforge.net/firmware.php y http://ipw2200.sourceforge.net/downloads.php.

Todas las fuentes y firmware los dejo en /usr/src.

Las instrucciones son para la versión 3.0 de firmware y 1.2.0 del driver.

Para compilar el driver necesitamos ieee80211 subsystem for Linux, los fuentes están http://ieee80211.sourceforge.net/downloads.php. La versión que voy a utilizar es 1.2.15
tar xf ieee80211-1.2.15.tgz
cd ieee80211-1.2.15
make
make install

Con esto instala en /lib/modules/2.6.18.3/net/ieee80211/ los módulos necesarios.
ieee80211_crypt_ccmp.ko ieee80211_crypt_tkip.ko ieee80211.ko
ieee80211_crypt.ko ieee80211_crypt_wep.ko

Ahora el driver:

tar xf ipw2200-1.2.0.tgz
cd ipw2200-1.2.0
make KSRC=/usr/src/linux
make KSRC=/usr/src/linux install

/usr/src/linux es dónde están los fuentes de linux

Ya tenemos instalado en /lib/modules/2.6.18.3/kernel/drivers/net/wireless/ el módulo ipw2200.ko

Por último instalamos el firmware:
tar xf ipw2200-fw-3.0.tgz
cd ipw2200-fw-3.0
cp -v *.fw /lib/firmware/

Veamos si está todo bien:
modprobe firmware_class
modprobe crc32

modprobe ieee80211
tail /var/log/kern.log
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, 1.2.15
ieee80211: Copyright (C) 2004-2005 Intel Corporation jketreno@linux.intel.com
modprobe ieee80211_crypt_wep
tail /var/log/kern.log
ieee80211_crypt: registered algorithm 'WEP'

modprobe ipw2200
tail /var/log/kern.log
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.0dmq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
PCI: Found IRQ 11 for device 0000:02:04.0
PCI: Sharing IRQ 11 with 0000:02:08.0
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: Detected geography ZZD (13 802.11bg channels, 0 802.11a channels)

No borro los directorios con las fuentes.

Para que la tarjeta wifi sea eth1:
borramos /etc/udev/rules.d/75-persistent-net-generator.rules
y creamos/editamos /etc/udev/rules.d/70-persistent-net.rules con la siguiente linea: SUBSYSTEM=="net", SYSFS{address}=="DIRECCION_MAC", NAME="eth1"

Para saber la DIRECCION_MAC: cat /sys/class/net/eth1/address o con ip addre campo link/ether

Ok, todo tiene buena pinta. Ahora tenemos que instalar Wireless Tools.

Para ello seguimos los pasos de BLFS.

No hay comentarios: