Gentoo wLan

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Orinoco Gold (Proxim PCMCIA) mit PCMCIA Treiber und WPA unter gen2vdr v2.0

Dieses kleine Howto ist eine Kombination aus mehreren Anleitungen aus dem Internet und diversen Foren. Im Kern geht es darum eine PCMCIA WLan Karte mit WPA unter gen2vdr anzubinden. Dieses miniHowTo ist sicherlich auch für andere Karten geeignet da viele Dinge grundsätzlich auf allen Distris gleich sind. Der "Nachteil" bei Gento ist, dass es keinerlei "klicki Bunti" Obefläche gibt.

Als Voraussetzung gilt, dass es möglich ist eine Verbindung zum Internet aufzubauen (noch über normales LAN), da einige Pakete nachinstalliert werden müssen. Grundlagen wie SSH Verbindung etc. werde ich hier nicht näher erläutern, da diese Eingaben auch alle von der Konsole direkt durchgeführt werden können. Ich gehe davon aus, dass alle Befehle als root durchgeführt werden.

Meine Empfehlung ist ganz klar zuerst sein Gentoo auf den neuesten Stand zu bringen. Dies funktioniert über die Eingabe folgender Befehle.

emerge --sync
emerge portage
layman -S

So, Zeit für Kaffe #1, da dies je nach Internetverbindung und Prozessorgeschwindigkeit doch einiges an Zeit brauchen kann. Danach müssen die notwendigen Werkzeuge (für später) nachinstalliert werden.

emerge pcmcia-cs wireless-tools madwifi-ng madwifi-ng-tools wpa_supplicant
emerge dhcpcd

dhcpcd ist möglicherweise schon installiert, aber sicherheitshalber einfach nochmal angeben. Wenns schon drauf ist, dann passts, emerge kümmert sich automatisch darum, falls dieser noch nicht installiert sein sollte.

Kompilierung der notwendigen Kernelmodule

zuerst müssen möglicherweise die Kernelmodule ausgewählt, neu konfiguriert und installiert werden. Je nachdem kann man evtl. auch den Kernel für seine Prozessorarchitektur optimieren. Hier gilt - wie immer: alles auf eigene Gefahr! Sollte das System im Anschluss nicht mehr booten, dann hilft nur Knoppix weiter.

cd /usr/src/linux
make menuconfig

Danach im NCurses Menü die entsprechenden Optionen wählen. In meinem Fall waren dies:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
    PCCARD (PCMCIA/CardBus) support  --->
        <M>   CardBus yenta-compatible bridge support

Danach die Networking Module

Networking  --->
    Wireless  --->
        <M> Generic IEEE 802.11 Networking Stack

und die entsprechenden Treiber für die Orinoco

Device Drivers  --->
    [*] Network device support  --->
        Wireless LAN  --->
            [*] Wireless LAN (IEEE 802.11)
            <M>   Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)

Alles speichern und beenden. Jetzt müssen die Kernelmodule kompiliert und installiert werden mit:

make && make modules_install

An dieser Stelle empfehle ich Kaffe #2. Nachdem alles kompiliert und installiert wurde empfiehlt sich hier ein Neustart.

SCHRITT 2: Cardbus Brücke in Betrieb nehmen

Wenn alles kompiliert und installiert wurde, das System neu gestartet wurde kann man nun prüfen ob eine kompatible Brücke vorliegt

lspci

Wenn lspci dann sowas ausspuckt wie:

...
00:0c.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev 81)
...

dann hat er was gefunden (ich wusste, dass ich die Brücke hier mit dem YENTA ansprechen kann. Jetzt kann man versuchen mit dem yenta_socket das Modul zu laden.

modprobe yenta_socket

jetzt mit dmesg die Ausgabe ansehen, könnte so aussehen

dmesg
Yenta: CardBus bridge found at 0000:00:0c.0 [0000:0000]
Yenta: ISA IRQ mask 0x0000, PCI irq 10
Socket status: 30000820
pccard: CardBus card inserted into slot 0
ath_hal: module license 'Proprietary' taints kernel.
ath_hal: 0.9.18.0 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
wlan: 0.8.4.2 (0.9.3.3)
ath_pci: 0.9.4.5 (0.9.3.3)
PCI: Enabling device 0000:02:00.0 (0000 -> 0002)
ACPI: PCI Interrupt 0000:02:00.0[A] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10
ath_rate_sample: 1.2 (0.9.3.3)
wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: H/W encryption support: WEP AES AES_CCM TKIP
wifi0: mac 5.6 phy 4.1 radio 1.7
wifi0: Use hw queue 1 for WME_AC_BE traffic
wifi0: Use hw queue 0 for WME_AC_BK traffic
wifi0: Use hw queue 2 for WME_AC_VI traffic
wifi0: Use hw queue 3 for WME_AC_VO traffic
wifi0: Use hw queue 8 for CAB traffic
wifi0: Use hw queue 9 for beacons
wifi0: Atheros 5212: mem=0x14000000, irq=10

Erfolg! Er hat auch schon die Netzwerkkarte erkannt! Jetzt noch die Netzwerkkarte nachladen:

modprobe ath_pci

evtl. die Kernelnrachrichten mit dmesg prüfen aber eigentlich sollte iwconfig nun schon was ausspucken.

iwconfig
ath0      IEEE 802.11b  ESSID:""  Nickname:""
          Mode:Managed  Channel:0  Access Point: Not-Associated   
          Bit Rate:0 kb/s   Tx-Power:0 dBm   Sensitivity=1/1  
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=0/70  Signal level=0 dBm  Noise level=0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

wenn man soweit ist, dann passt soweit alles vorab... Dank den WLan Tools kann man nun versuchen, den AP mal zu scannen...

ifconfig ath0 up
modprobe wlan_scan_sta
wlanconfig ath0 list scan

Wenn dann ein Ergebnis der Art kommt:

SSID            BSSID              CHAN RATE  S:N   INT CAPS
meine_wlan_SSID     00:10:f0:40:ab:08    2   54M 16:0   100 EP   RSN WPA WME

dann passt alles wunderbar vorab... Kann sein, dass die SSID verborgen wird, dies hängt aber dann von der AP Konfiguration ab.

Für alles weitere nun das Interface wieder runterfahren mit:

ifconfig ath0 down

Jetzt muss man nur noch Autostart und WPA hinbekommen.

Netzwerkkarte Startscript einbinden

Das System kennt ath0 in diesem Fall noch nicht, deshalb muss ein kleines Startscript für das Netzwerkinterface erzeugt werden. Dadurch, dass iwconfig im vorhergehenden Schritt auch schon das richtige Interface ausgespuckt hat, empfiehlt es sich, dass ein vorhandenes Startscript einfach umgelinkt wird. Am Einfachsten gehts mit folgenden Befehlen:

cd /etc/init.d
ln -s net.lo net.ath0

Danach könnte man die Karte mit

/etc/init.d/net.ath0 start/stop/restart

Netzwerkkarte mit WPA an den AP binden

Dies wird mit wpa_supplicant realisiert. Zuerst muss eine Grundkonfiguration erzeugt werden. Dazu wird das Programm 'wpa_passphrase' verwendet:

wpa_passphrase meine_wlan_SSID mein_geheimer_wpa_schluessel

wobei "mein_geheimer_wpa_schluessel" der PSK eueres WPA verschlüsselten AP ist.

Der obige Befehl erzeugt folgendes Ergebnis:

network={
	ssid="meine_wlan_SSID"
	#psk="mein_geheimer_wpa_schluessel"
	psk=6fe5a2b85f63283874b8d4653e99ff97296782a97934ca9af68657618192ecfc
}

Man kann dies gleich in die entsprechende Konfigurationsdatei schreiben lassen mit:

wpa_passphrase meine_wlan_SSID mein_geheimer_wpa_schluessel >> /etc/wpa_supplicant/wpa_supplicant.conf

Als nächstes die Datei /etc/wpa_supplicant/wpa_supplicant.conf dann wie folgt anpassen

...
network={
	ssid="meine_wlan_SSID"
	#psk="mein_geheimer_wpa_schluessel"
	psk=6fe5a2b85f63283874b8d4653e99ff97296782a97934ca9af68657618192ecfc
       key_mgmt=WPA-PSK
       proto=WPA
       pairwise=TKIP
} 
...

Es empfiehlt sich die Zeile #psk=“...“ aus Sicherheitsgründen zu löschen, wenn alles funktioniert.

Dann die Datei entsprechend schützen:

chmod 640 /etc/wpa_supplicant/wpa_supplicant.conf

So, jetzt sollten alle Vorkehrungen getroffen sein damit das Ding mit WPA loslegen kann.

Netzwerkkarte testen

Zeit für einen ersten Test, daher nun die Netzwerkkarte manuell konfigurieren, damit man sehen kann, ob es funktioniert.. Rekapitulation:

  • Die Module wurden kompiliert
  • Die Module yenta_socket und ath_pci sind geladen
  • Die Konfiguration mit wpa_passphrase wurde erzeugt

um nun die Netzwerkkarte mit einer statischen IP (192.168.0.199) am AP mit der SSID "meine_wlan_SSID" zu testen müssen folgende Befehle abgesetzt werden. Natürlich nur exemplarisch, bitte euere IP etc. entsprechend euerer Konfiguration wählen.

iwconfig ath0 essid „meine_wlan_SSID“
ifconfig ath0 192.168.0.199 up
wpa_supplicant -dd -Dwext -iath0 -c/etc/wpa_supplicant/wpa_supplicant.conf

Wenn alles glatt geht läuft die Karte nun mit einer Menge wüster Meldungen am Bildschirm. Am Einfachsten in einer zweiten Konsole anmelden und mit ifconfig prüfen was passiert ist, normales Netzwerkkabel ziehen und Kommunikation testen. Wenn nun alles geklappt hat mit STRG+C abbrechen und im letzten Schritt die Karte dauerhaft einbinden.

Netzwerkkarte zum automatischen Start einbinden

Die Datei /etc/conf.d/net anpassen und um folgende Zeilen ergänzen

modules=("wpa_supplicant")
wpa_supplicant_ath0="-Dwext"
wpa_timeout_ath0=60
config_ath0=( "dhcp" )
dhcpcd_ath0="-t 10 -h vdr01"

Dadurch wird angewiesen, dass die Netzwerkkarte eine DHCP Adresse beziehen soll. Es handelt sich hier um eine Standarddatei und alles weitere kann in den Manpages nachgelesen werden. Die Module müssen beim Start natürlich auch geladen werden und daher folgende Datei modifizieren: /etc/modules.autoload.d/kernel-2.6 Die folgenden Zeilen (natürlich ohne ...) müssen angefügt werden, damit die Kernelmodule automatisch hochgezogen werden. Hier ist die Reihenfolge wichtig, also zuerst die PCMCIA Brücke hochbringen und dann die Karte:

...
yenta_socket
ath_pci

Als letzter Schritt muss die Karte noch in das default runlevel aufgenommen werden mit:

rc-update add net.ath0 default

das wars... booten und gut...

An dieser Stelle gilt mein Dank allen, von deren Seiten ich diese Informationen zusammengetragen habe. Leider waren dies so viele auch englischssprache und für andere Distris, so dass ich dieses Wissen für alle hier kurz und bündig zusammengefasst habe.