Eu tenho meu laptop ArchLux conectado através de um script de shell. Isto é para um dos roteadores WEP (eu sei, eu sei ...) que eu uso:
#!/bin/bash
DEV=$(iw dev | awk '/Interface/ {interf=$2} END {print interf}')
PIDFILE=/var/run/dhcpcd-$DEV.pid
if [[ -f $PIDFILE ]] && kill -0 $(cat /var/run/dhcpcd-$DEV.pid)
then
dhcpcd -k $DEV
fi
ifconfig $DEV down
sleep 1
iwconfig $DEV mode managed
ifconfig $DEV up
iwconfig $DEV channel 1
iwconfig $DEV key 4567ABCDEF
iwconfig $DEV essid 'ACTIONTEC'
iwconfig $DEV ap 00:0d:51:BF:FE:E1
sleep 5
dhcpcd --noarp $DEV
Cada passo faz apenas uma coisa, então é fácil descobrir onde está o problema. O laptop usado para executar o Slackware, sob o qual eu escrevi o script, mas parece funcionar bem sob o Arch também.