cs:uzivatel:hw:karty:broadcom_wireless_802.11b_g:skripty_acer

Skripty pro wifi Broadcom BCM43xx

Úvod

Následující skripty mi celkem dobře fungují na Acer Aspire 3023WLMi. Omlouvám se, předem, za některé “lamácké” konstrukce, ale můžete skripty vylepšit, pokud chcete.

Prerekvizity

K provozu mi dobře posloužil nainstalovaný ndiswrapper a WPA Supplicant, takže doporučuji si je nainstalovat do systému. Jsou potřeba také wireless-tools (bývají standartně součástí mnoha distribucí).

Také je potřeba ovladač z Windows ze stránek Aceru (eventuálně jiný ovladač ze stránek výrobce).

K aktivaci bezdrátového připojení se používá ve Windows tlačítko, toho se mi nepodařilo v Linuxu ještě dosáhnout. K aktivaci přídavného hardwaru a signalizační LED budete potřebovat acer_acpi.

Pro uživatele Gentoo Linuxu:

# emerge wireless-tools

# emerge ndiswrapper

# echo "net-wireless/wpa_supplicant -qt4 qt3" >> /etc/portage/package.use

# echo "app-laptop/acer_acpi ~*" >> /etc/portage/package.keywords

# emerge net-wireless/wpa_supplicant 

# emerge acer_acpi

Konfigurace ndiswrapperu

Předpokládejme, že jste si rozbalili Windowsovské ovladače BCM43xx karet do adresáře /windowsdrivers.

# ndiswrapper -i /windowsdrivers/bcmwl5.inf
# ndiswrapper -m

To by mělo stačit.

Konfigurace wpa_supplicantu

Je třeba mít stažený certifikát CESNETu a nakopírovaný v adresáři /etc/ssl/certs.

Vyšel jsem ze zdejšího návodu k WPA Suppliantu.

Soubor /etc/wpa_supplicant/wpa_supplicant.conf by mohl vypadat nějak takto:

ctrl_interface_group=0
ap_scan=1


network={
        priority=5
        ssid="eduroam"
        scan_ssid=1
        key_mgmt=WPA-EAP
        eap=PEAP
        identity="username@domena"
        proto=WPA
        password="vase_heslo"
        ca_cert="/etc/ssl/certs/cesnet-ca.pem"
        # phase1="peaplabel=0"
        phase2="auth=MSCHAPV2"
}
network={
        ssid="eduroam-simple"
        key_mgmt=NONE
        priority=4
}

Nahrání modulů

Předpokládejme korektní instalaci, je nejprve nutné nahrát acer_acpi:

modprobe acer_acpi

Nyní by měl existovat adresář /proc/acpi/acer.

Vlastní skripty

Skripty jsem rozdělil na 3 části - spuštění wifi, spuštění wpa_supplicantu, vypnutí wifi. Místo skriptu na spouštění wpa_supplicantu, lze použít skript, který zajistí připojení do jiné wifi sítě, například s WEPem nebo bez šifrování.

Spouštěcí skript - start-wifi.sh

#!/bin/bash

#odstranění možného modulu bcm43xx, pokud je přítomen, testoval jsem ho také ale nešlo mi to
rmmod bcm43xx

#nahrání ndiswrapperu
modprobe ndiswrapper

#spuštění wifi, oranžová LED by měla začít blikat
echo -n "enabled: 1" > /proc/acpi/acer/wireless
#pauza
sleep 1

#rozhraní wifi je eth1, nikoli wlan0 jako je v jiných návodech

#tohle je něco, ale nevím co, zabraňuje to asi automatickému přiřazení sítě,možná to lze vypustit
iwconfig eth1 essid "none"

#spuštění rozhraní, možná lze vypustit
ifconfig eth1 up

Skript - wpa_supp.sh

#!/bin/bash
#spuštění wifi
/etc/wifi-scripts/start-wifi.sh

#čekání
sleep 1
wpa_supplicant -Dwext -ieth1 -c /etc/wpa_supplicant/wpa_supplicant.conf &

#tady by se to mohlo vylepšit, protože někdy DHCP server hapruje a nic nepřiřadí
sleep 5
dhcpcd eth1

Vypnutí wifi - stop_wifi.sh

!/bin/bash
#vypojení wifi
echo -n "enabled: 0" > /proc/acpi/acer/wireless
#zastavení rozhraní
/etc/init.d/net.eth1 stop

# "prasecké" zabití wpa_supplicantu
killall wpa_supplicant
rmmod ndiswrapper

# tohle je trochu lepší, ale taky nic moc, zabití DHCP

DHCPPID=`cat /var/run/dhcpcd-eth1.pid`
echo "Killing DHCPCD PID="$DHCPPID"..."
# možná by stačil SIGTERM, ale chci mít jistotu :-))
kill -s SIGKILL $DHCPPID
rm /var/run/dhcpcd-eth1.pid

Závěr

Ačkoli jsou ty skripty naškrábané “na koleni” a v rychlosti, tak většinou fungují. LOL

V KDE jsem si vytvořil takové efektní menu na spouštění wifi :-P.

:cs:uzivatel:hw:karty:broadcom_wireless_802.11b_g:wifi.png

Připomínky mi zasílejte na mail - — Vojtěch Sázel 19.03.2007 16:55

Last modified:: 2007/03/20 13:56