Jugando con el adaptador WiFi

Hoy me eche Ubuntu en el notebook, le puse unos repositorios de Debian para poder tener mis paquetes actualizados tratando de levantar la tarjeta WiFi ya que el driver y el firmware venian medios anticuados. Bueno la cosa que hice un apt-get upgrade y me instalo un montón de cosas que me mataron el sistema. Me dio una lata profunda entrar a picar y ver cual era el error, asi que decidí insistir con Fedora Core 3, ahora si con mas tiempo para poder meterle mano para optimizar el OS y lograr que funque mas rápido.

Lo primero es lo primero… hacer un upgrade al sistema, para lo cual necesite instalar apt para FC3 y hacer un update..

1
2
[root@movil etc]# apt-get update
[root@movil etc]# apt-get upgrade

Luego de hacer el upgrade al sistema, ahora le toca upgrade al Kernel:

1
[root@movil etc]# apt-get install kernel#2.6.9-1.681_FC3

Una vez instalado el nuevo Kernel, toca el reboot de rigor y luego a instalar el software variado, llamese anjuta, xmms, mplayer, devhelp y glade.

Ahora lo entretenido… instalar WiFi en linux

Primero antes de todo, deben verificar que tarjeta (hardware) tienen instalada en su sistema, en este caso en el notebook tengo un adaptador DLink DWL-G650+, en realidad lo que importa del adaptador no es el adaptador en si… sino que el chipset que tiene dentro, para ver el chipset y el adaptador tenemos varias opciones:

1
[root@movil etc]# dmesg

… y revisar el hardware conectado…

1
2
[root@movil etc]# lspci
02:00.0 Texas Instruments ACX 111 54Mbps Wireless Interface

nos queda mas claro… y podemos saber que el chipset es Texas Instrument acx111.

1
2
[root@movil etc]# lspci -n
02:00.0 Class 0280: 104c:9066

un poco mas complejo pero mas exacto…observemos el último numero que aparece luego de ejecutar ese comando, en este caso 9066.

  • 8400 corresponde a un chipset ACX100
  • 8401 corresponde a un chipset ACX100
  • 9066 corresponde a un chipset ACX111

Luego de indentificar mi chipset del adaptador WiFi procedemos a bajar el driver para poder instalarlo en nuestro sistema (en este caso y solo en este caso instalare ACX100/111, todo va a depender del tipo de chipset que tengan), les dejo una lista de compatibilidad para que puedan mirar si su hardware es soportado por este driver. De lo contrario a bajar ndiswrapper o LinuxAnt para poder utilizar los drivers de WintendoXp :P.

Bajando el controlador para acx100/111 desde este link que es parte de The ACX100/ACX111 wireless network driver project.
Una vez bajado el driver, hay que descomprimirlo, ojala en la carpeta del usuario, en este caso /home/pcollaog/download/, veamos paso a paso, en este caso utilice el ultimo archivo que habian en el servidor acx100-0.2.0pre8_plus_fixes_40.tar.gz

1
[pcollaog@movil downloads]$ tar zxvf acx100-0.2.0pre8_plus_fixes_40.tar.gz

Requisitos mínimos para la instalacion o mas bie herramientas necesarias.

  • gcc
  • GNU make
  • Verificar los modulos del kernel y algunos archivos necesarios (/lib/modules/2.6.9-1.681_FC3/build/Makefile)
  • Verificar los modulos del kernel y algunos archivos necesarios (/lib/modules/2.6.9-1.681_FC3/build/.config)
  • wireless-tools

Compilando…

…luego debemos convertirnos en root para poder compilar e instalar el driver, tarea administrativa…

1
2
3
4
5
[pcollaog@movil ~]$ su -l root
[root@movil ~]# cd /home/pcollaog/downloads/acx100-0.2.0pre8_plus_fixes_40
[root@movil acx100-0.2.0pre8_plus_fixes_40]# make
*** Compilation finished. Make sure to copy required firmware files to /usr/share/acx/ before proceeding! ***
make[1]: Leaving directory `/home/craig/acx100-0.2.0pre8_plus_fixes_40/src'

Con eso finalmente tenemos compilado el driver de nuestra tarjeta WiFi, lo que nos queda por hacer es instalar el Firmware de nuestro adaptador.

Instalando el driver y el firmware

El archivo trae una aplicacion o mas bien un script que permite descargar automáticamente el driver y el firmware desde la pagina de los proveedores. Este script se encuentra en acx100-0.2.0pre8_plus_fixes_40/scipt.

Entonces ejecutamos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[pcollaog@movil ~]$ su -l root
[root@movil ~]# cd /home/pcollaog/downloads/acx100-0.2.0pre8_plus_fixes_40/
[root@movil scripts]# cd script
[root@movil scripts]# sh fetch_firmware

Locating a suitable download tool...
which: no lspci in (/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/pcollaog/bin)

Searching for ACX1xx cards on this system...
lspci not found! (package pciutils): Cannot determine wireless card type!

Which firmware files package would you like to download?

a) for ACX100 (TNETW1100) chipset based cards
b) for ACX111 (TNETW1130/1230) chipset based cards
c) for both chipsets
d) none

Eliges el tipo de chipset que tiene tu tarjeta (en caso de error editar el archivo “fetch_firmware” y dentro del script estan los sitios ftp de donde saca los drivers del proveedor, encontrar a mano el mejor y modificar dicho script, tambien se puede hacer a mano)

En mi caso elijo la opción “b” y me baja los contralodes de la DLW-G650+ los extrae y saca algunos archivos que luego deja en el directorio del usuario “~/downloads/acx100-0.2.0pre8_plus_fixes_40/firmware”.
Para terminar la instalacion del firmware debemos crear una carpeta (como root) en donde dejaremos los archivos que el driver WiFi va a utilizar, hacemos:

1
2
3
[pcollaog@movil ~]$ su -l root
[root@movil ~]# mkdir /usr/share/acx
[root@movil ~]# cp /home/pcollaog/downloads/acx100-0.2.0pre8_plus_fixes_40/firmware/*.BIN /usr/share/acx/

Hasta ahora estariamos listos, solo queda modificar el script “start_net” que esta dentro del directorio “script” y que tiene el siguiente aspecto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/bash

#########################################
# start_net script #
# acx100 project #
# acx100.sourceforge.net #
# edited by arnie urnotwelcome@gmx.de #
#########################################
# with modifications by craig #
# summary at end of file #
#########################################

# Please edit below

# syntax is: VARIABLENAME=VALUE, with _no_ spaces in between
# make sure to _preserve_ any double-quotes (")
# text beginning with the comment delimiter (#) is ignored
# make sure to _preserve_ at least one space before any
# comment delimiters (#) that do not begin a line
# "uncommenting" a line means to remove it's leading "#" character

ESSID="any"
#ESSID="network_down" # THIS IS CASE SeNsItIvE!! any == associate to any ESSID
# Default rate configured as 11Mbps to not cause speed problems (while
# using auto rate) or connection problems (while not using auto rate)
# with non-22Mbps hardware...
RATE=11M
AUTORATE=1 # only disable auto rate if you know what you're doing...
CHAN=1 # it's useful to try to stick to channels 1, 6 or 11 only, since these don't overlap with other channels
#SHORTPREAMBLE=1 # set a value of 1 in order to force "Short Preamble" (incompatible with very old WLAN hardware!) instead of peer autodetect
#TXPOWER=20 # 0..20 (dBm) (18dBm is firmware default) overly large setting might perhaps destroy your radio eventually!
MODE=Managed # Managed for infrastructure, Ad-hoc for peer-to-peer, or Auto to auto-select depending on environment
DEBUG=0xb # 0xffff for maximum debug info, 0 for none

# WEP Key(s)
# ascii keys (passphrase) should look like this: KEY="s:asciikey"
# hex keys should look like this: KEY="4378c2f43a"

# most wep users will want to use this line
KEY=""

# [ *** NOTE ***: WEP still doesn't work with acx111 cards yet! ]

# alternatively, you can uncomment and use these lines to
# set all 4 possible WEP keys
#KEY1="1234567890" #WEP64
#KEY2="1234567890"
#KEY3="1234567890"
#KEY4="1234567890"
# you must select which of the 4 keys above to use here:
#KEY="[1]" # for KEY1, "[2]" for KEY2, etc

ALG=open # open == Open System, restricted == Shared Key

#IP address

USE_DHCP=1 # set to 1 for auto configuration instead of fixed IP setting

IP=192.168.1.98 # set this if you did not set USE_DHCP=1
NETMASK=255.255.255.0 # set this if you did not set USE_DHCP=1
GATEWAY=192.168.1.254 # set this if you did not set USE_DHCP=1

LED_OFF=0 # set to 1 to turn off the power LED to save power

MTU_576=0 # set to 1 if you have buffer management problems

# DO NOT EDIT BELOW THIS LINE
##################################################################

Este archivo contiene la informacion para poder conectarnos a una red WiFi, como son los canales a los cuales vamos a acceder, la configuración IP, tipos de encriptación (lamentablemente para ACX111 no esta implementado WEP) y el ESSID o nombre de la red WiFi.

Ahora levantemos la interfaz de red:

1
2
3
4
5
6
7
8
9
10
[root@movil scripts]# ./start_net
using wlan0.
Module successfully inserted.
Setting rate to 11M auto.
Setting channel 1.
Going to try to join or setup ESSID any.
Setting mode to Managed.
Waiting for association...10 9 8 7 6 5 4 3 2 1 FAILED.
Error: wlan0 failed to associate, can't use DHCP for IP address.
Interface has been set up successfully.
Author

Francisco Collao

Posted on

2004-11-27

Updated on

2023-06-07

Licensed under

Comentarios