From UnderLinux Wiki
Slackware 10.2 + HermesAP
Introdução
Este documento descreve como configurar um cartão wireless (orinoco, avaya, wavelan, etc) no Slackware Linux 10.2 em modo Master (modo access point). Não trato sobre a instalação e configuração inicial do Slackware Linux. Caso tenha interesse na instalação leia aqui.
Isenção de Responsabilidade
Não assumo responsabilidade em caso de danos ou perdas de garantia que pode ocasionar o uso, devido ou indevido, da informação existente neste documento. Se decidir fazer é por sua conta e risco. Aceito questões do tipo: “não consegui configurar, seguindo os procedimentos aqui descritos”, mas não aceito questões do tipo: “não consegui configurar e estou com problemas por sua culpa”.
Instalação
Para instalar e configurar HermesAP, a primeira coisa a fazer, é “baixar” os fontes dos seguintes drivers:
pcmcia-cs-3.2.8
HermesAP
Uma vez baixados, teremos que compilar o kernel com as seguintes opções:
1 – Desativar o suporte a PCMCIA do kernel, pois vamos utilizar o driver PCMCIA compilando os fontes e aplicar os módulos do HermesAP.
Fig. : General Setup/PCMCIA CardBus Support
2 - Ativar suporte wireless, mas não ativar suporte a nenhum módulo de cartões wireless, para que seja suportado apenas os módulos instalados pelo driver PCMCIA.
Fig. : Network device support/Wireless LAN (Non-hamradio)
3 - Ativar suporte devfs ao kernel e também as opções "Automatically mount at boot" e "Debug devfs".
Fig. : File systems / /dev file system support
Antes de recompilar o Kernel
No Slackware 10.2 temos um problema quanto ao devfs, pois o mesmo não vem instalado. Temos que acessar o site www.slackware.org e baixar o devfs-1.3.25-noarch-2.tgz, pacote este do Slackware 9.1 e instalar com o comando:
root@hermes:/usr/src#installpkg devfsd-1.3.5-noarch.2.tgz
Após a instalação editar o arquivo:
root@hermes:/usr/src#pico /etc/rc.d/rc.S
adicionar as linhas:
# Start devfsd if necessary
if [ -r /dev/.devfsd ]; then
if [ -x /sbin/devfsd ]; then
echo "Starting devfs daemon: /sbin/devfsd /dev"
/sbin/devfsd /dev
fi
fi
CRTL+X para salvar
Recompilar o Kernel
Para quem não sabe como recompilar o kernel sugiro uma lida aqui
Uma vez recompilado o kernel, reiniciar o sistema.
Configuração
Agora iremos configurar o driver PCMCIA, com os módulos do HermesAP. Para isto vamos descompactar os drivers PCMCIA e o HermesAP em /usr/src.
Para descompactar o PCMCIA:
root@hermes:/usr/src/tar xvzf pcmcia-cs-3.2.8.tar.gz
Para descompactar o hermesap:
root@hermes:/usr/src/tar xvjf hermesap-0.2.tar.bz2
O driver HermesAP depois de descompactado possui vários arquivos de outros chipsets, mas no momento só nos interessa a que contém o driver para cartões com chipset hermes, que nesta versão está em “/usr/src/hermesap-0.2/driver/orinoco-0.13c/”. Acessamos o diretório e apagamos o Makefile, porque não vamos compilá-lo aqui; para apagá-lo "rm Makefile" e agora copiamos o conteúdo do diretório para "/usr/src/pcmcia-cs-3.2.4/wireless" com o comando "cp * /usr/src/pcmcia-cs-3.2.8/wireless".
Desta forma temos o driver PCMCIA com suporte HermesAP, agora vamos a compilar e instalar o driver PCMCIA.
Preparando
root@hermes:/usr/src/pcmcia-cs-3.2.8# make config
-------- Linux PCMCIA Configuration Script --------
The default responses for each question are correct for most users.
Consult the PCMCIA-HOWTO for additional info about each option.
Linux kernel source directory [/usr/src/linux]:
The kernel source tree is version 2.4.32.
The current kernel build date is Ter Abr 4 17:53:04 2006.
Build 'trusting' versions of card utilities (y/n) [n]:
Include 32-bit (CardBus) card support (y/n) [y]:
Include PnP BIOS resource checking (y/n) [n]:
Module install directory [/lib/modules/2.4.32]:
Kernel configuration options:
Kernel-tree PCMCIA support is disabled.
Symmetric multiprocessing support is disabled.
Preemptive kernel support is disabled.
Realtime Hardware Abstraction Layer is disabled.
High memory support is disabled.
PCI BIOS support is enabled.
Power management (APM) support is enabled.
SCSI support is enabled.
IEEE 1394 (FireWire) support is disabled.
Networking support is enabled.
Radio network interface support is enabled.
Token Ring device support is enabled.
Fast switching is disabled.
Frame Diverter is disabled.
Module version checking is disabled.
Kernel debugging support is disabled.
/proc filesystem support is enabled.
PAE support is disabled.
The standalone Adaptec APA1480 CardBus driver is not supported with
this kernel. If you need it, use the kernel PCMCIA subsystem.
The standalone IEEE 1394 CardBus drivers are not supported with this
kernel. If you need them, use the kernel PCMCIA subsystem.
It looks like you have a BSD-ish init file setup.
You'll need to edit /etc/rc.d/rc.S to invoke /etc/rc.d/rc.pcmcia
so that PCMCIA services will start at boot time.
Configuration successful.
root@hermes:/usr/src/pcmcia-cs-3.2.8#
Compilando
root@hermes:/usr/src/pcmcia-cs-3.2.8# make all
...
...
make[1]: Leaving directory `/usr/src/pcmcia-cs-3.2.8/debug-tools'
make[1]: Entering directory `/usr/src/pcmcia-cs-3.2.8/man'
make[1]: Nada a ser feito para `all'.
make[1]: Leaving directory `/usr/src/pcmcia-cs-3.2.8/man'
make[1]: Entering directory `/usr/src/pcmcia-cs-3.2.8/etc'
make[2]: Entering directory `/usr/src/pcmcia-cs-3.2.8/etc/cis'
make[2]: Nada a ser feito para `all'.
make[2]: Leaving directory `/usr/src/pcmcia-cs-3.2.8/etc/cis'
make[1]: Leaving directory `/usr/src/pcmcia-cs-3.2.8/etc'
root@hermes:/usr/src/pcmcia-cs-3.2.8#
Instalando
root@hermes:/usr/src/pcmcia-cs-3.2.8# make install
make[1]: Entering directory `/usr/src/pcmcia-cs-3.2.8/modules'
...
...
make[2]: Leaving directory `/usr/src/pcmcia-cs-3.2.8/etc/cis'
-> Installing PCMCIA startup script as /etc/rc.d/rc.pcmcia
-> Updating client scripts in /etc/pcmcia
-> Running depmod...
make[1]: Leaving directory `/usr/src/pcmcia-cs-3.2.8/etc'
root@hermes:/usr/src/pcmcia-cs-3.2.8#
Até este ponto, já temos instalado o driver PCMCIA. Reiniciamos o sistema, pois é necessário para evitarmos possíveis erros com a montagem de interface ethX, com o sistema de arquivos devfs. Uma vez reiniciado o sistema, configuramos para que tenha a saída a Internet através da LAN e vamos executar alguns scripts que vem junto com o driver HermesAP.
Inserir um novo firmware no cartão
root@hermes:/usr/src/hermes/firmware# ./hfwget.sh
--04:03:54-- ftp://ftp.avaya.com/incoming/Up1cku9/tsoweb/avayawireless/AV_WINXP_PC_USB_SR0201.zip
=> `AV_WINXP_PC_USB_SR0201.zip'
Resolvendo ftp.avaya.com... 216.74.138.8
Connecting to ftp.avaya.com|216.74.138.8|:21... conectado!
Logando como anonymous ... Logado!
==> SYST ... feito. ==> PWD ... feito.
==> TYPE I ... feito. ==> CWD /incoming/Up1cku9/tsoweb/avayawireless ... feito.
==> PASV ... feito. ==> RETR AV_WINXP_PC_USB_SR0201.zip ... feito.
Tamanho: 6,211,983 (5.9M) (sem autoridade)
100%[====================================>] 6,211,983 108.57K/s ETA 00:00
04:04:59 (100.97 KB/s) - `AV_WINXP_PC_USB_SR0201.zip' saved [6211983]
gcc -Wall -o hfwget hfwget.c
...
...
All dumps complete.
-rw-r--r-- 1 root root 170930 2006-04-05 04:04 R1085800.hfw
-rw-r--r-- 1 root root 130578 2006-04-05 04:04 T1085800.hfw
root@hermes:/usr/src/hermes/firmware#
Este script conecta-se ao ftp da Avaya e “baixa” alguns drives, extrai e compila um binário, o qual vamos utilizar agora para o firmware do cartão.
Nota: Este script necessita o unzip instalado.
Temos agora tudo que é necessário, falta somente realizar o processo de carregar a flash para o cartão. Pelos testes realizados, cheguei a conclusão que o firmware não se atualiza fisicamente no cartão, é feito mediante software, monta o dispositivo wireless em /dev e escreve nele, então o Linux crê que o firmware é o que indicamos.
Para fazer isto existe um script que se encarrega desta tarefa de acordo com os procedimentos a seguir:
Primeiro “derrubar” a interface wireless para que se possa escrever na mesma em /dev:
root@hermes:/usr/src/hermes/hfw# ifconfig eth0 down
Agora rodamos o script de carregar a flash do cartão wireless (ethX)
root@hermes:/usr/src/hermes/hfw#./hfwload eth0 ../firmware/T1085800.hfw
...
...
no matching PDA entry for plugrecord 00000161 100
hfw_upload: 0
firmware [OK]
nota: T1085800.hfw é o binário que baixado e compilado pelo script hwfget.
Pronto, está funcionando! :)
root@hermes:/usr/src/hermes/hfw## iwconfig
lo no wireless extensions.
eth1 IEEE 802.11-DS ESSID:"non-specified SSID !!" Nickname:"HERMES"
Mode:Master Frequency:2.422GHz Access Point: 00:00:00:00:00:00
Bit Rate:11Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Antes de “levantar” a interface wireless configuramos um essid.
root@hermes:/usr/src/hermes/hfw#iwconfig eth0 essid teste
“Levantamos” a interface
root@hermes:/usr/src/hermes/hfw#ifconfig eth0 up
root@hermes:/usr/src/hermes/hfw#ifconfig
eth0 Link encap:Ethernet HWaddr 00:10:5A:D4:3D:6E
inet addr:192.168.0.50 Bcast:192.168.0.63 Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:733 errors:0 dropped:0 overruns:0 carrier:733
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:18702 (18.2 KiB)
Interrupt:3 Base address:0x300
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:439 errors:0 dropped:0 overruns:0 frame:0
TX packets:439 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:43438 (42.4 KiB) TX bytes:43438 (42.4 KiB)
Conclusões
A versão que usamos do HermesAP suporta:
Criptografia WEP
Ocultar SSID
Mudança de canal
Fontes
baseado em HermesAP Howto por: Daniel Martínez Ponce dmescal@madridwireless.net Versión 1.0, 17/04/2003, DMP
http://sourceforge.net/projects/pcmcia-cs
http://hunz.org
http://www.slackware.org
Autor
Tradução livre por: Sérgio Souza
sergio at soho.eti.br