Beiträge getagged mit kernel

ath5k – Wireless Probleme mit Channel 13

Wer eine Wireless-LAN Karte von Atheros sein Eigen nennt, kann Probleme beim Verbinden mit verschiedenen Netzen haben.
Genauer gesagt ist es nicht möglich mit Netzen oberhalb des Channels 11 Verbindung aufzunehmen wie im nächsten Quote festgehalten.

iwlist wlan0 freq
wlan0 11 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Current Frequency:2.412 GHz (Channel 1)

So jedenfalls sah es bei mir aus – daher werde ich hier in einer kurzen Step-by-Step Manual meine Schritte zum Erfolg festhalten.
Ich fahre derzeit mit einem Debian Squeeze (also testing) System mit einem normalen 2.6.30 Repositorykernel.

Die Karte weist sich wie folgt aus:

lspci -v
02:00.0 Ethernet controller: Atheros Communications Inc. AR5001 Wireless Network Adapter (rev 01)
Subsystem: Hewlett-Packard Company Device 137b
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at 92600000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 2
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
Capabilities: [60] Express Legacy Endpoint, MSI 00
Capabilities: [90] MSI-X: Enable- Count=1 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel < ?>
Kernel driver in use: ath5k

Wichtig wird im Verlauf der Aktion noch der Speicherbereich – in meinem Fall also 92600000 – dazu später mehr.

Zuerst sollte man sich mittels modinfo über die möglichen Parameter schlau machen – ich liste nun also die möglichen Optionen der entsprechenden Module auf.

modinfo ath5k | grep ^parm
parm: nohwcrypt:Disable hardware encryption. (int)

Hardware Encryption deaktivieren ist bei ath5k also möglich.

modinfo mac80211 | grep ^parm
parm: ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use (charp)

Control Algorithmus konfigurieren – besser nicht 😉

modinfo cfg80211 | grep ^parm
parm: ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)

Das Modul gibt die Möglichkeit, einen Domain Code zu laden. Das schaut nach einem guten Ansatz aus. Wenn man nun also das Modul deaktiviert und mit der Option ieee80211_regdom=EU lädt, sollte sich doch etwas tun – tjoa, leider Fehlanzeige.
Hintergrund: In der EU sind WLAN Netze zw. Kanal 1 und 13 erlaubt – in USA und UK hingegen bewegt sich das Spektrum zw. 1 und 11. Hier muss man also ansetzen. Leider bringt der Optionsaufruf des genannten Modules nicht den gewünschten Erfolg mit sich.
Nach einer kleinen Recherche zeigt sich: die Firmware der Karte gibt wohl den „Takt“ an – somit muss man sich diese mal genauer anschauen.
Auf einer Unterseite von MadWifi (Danke für dieses Tool an dieser Stelle!!) wird ein Werkzeug namens ath_info vorgestellt – mit diesem sollte man das Problem in den Griff bekommen. Wie auf der Seite schon deutlich zu lesen ist: VERWENDUNG AUF EIGENE GEFAHR!! Wenn man mit den Optionen nicht vertraut ist, sich unsicher fühlt oder einfach nicht weiß was hier geschieht – Bitte lasst es einfach bleiben und stellt euren Accesspoint auf einen Kanal zwischen 1 und 11 ein. Gewährleistung geben ich jedenfalls keine, damit das klar ist!

Jedenfalls wurde dieses Werkzeug von mir benutzt, mittels

svn co http://madwifi-project.org/svn/ath_info/trunk ath_info
cd ath_info/
make

war es schnell einsatzbereit.

Nun zurück zur Speicheradresse zu Beginn des Beitrags – mit dieser wird das Gerät definiert, es muss nur ein „0x“ davor gestellt werden. In meinem Fall sah das dann so aus: ./ath_info 0x92600000
Eine Meldung wie Warning: Invalid EEPROM Magic number! habe ich erfolgreich ignoriert. Wichtig war der Informationsgehalt des ersten Abschnittes:

/============== EEPROM Information =============
| EEPROM Version: 5.3 | EEPROM Size: 4 kbit |
| EEMAP: 2 | Reg. Domain: 0x67 |
|================= Capabilities ================|
| 802.11a Support: no | Turbo-A disabled: yes |
| 802.11b Support: no | Turbo-G disabled: yes |
| 802.11g Support: yes | 2GHz XR disabled: yes |
| RFKill Support: yes | 5GHz XR disabled: yes |
| 32kHz Crystal: no | |
===============================================/

Reg. Domain: 0x67 – dieser Wert muss angepasst werden wie ich einem Blog entnehmen konnte.

./ath_info -w -g 1:0 0x92600000 regdomain 0

Mit diesem Befehl hebt man den Schreibschutz des ersten (von 4) Steuerregister auf, setzt die Regdomain auf 0 und schreibt dies in den EEPROM nach Bestätigung.

Nachtrag: Seit Kernelversion 2.6.32 habe ich die regdomain auf 68 (=EU1 World) gestellt – mit 0 hat es nicht mehr funktioniert!!
Es gilt nun

./ath_info -w -g 1:0 0x92600000 regdomain 68

ath_regdom_wlan_tips.pdf

new GPIO CR 0000000c DO 00000000 DI 00000009
regdomain (0x00bf) := 0x0000
WARNING: The write function may easy brick your device or
violate state regulation on frequency usage.
Proceed on your own risk!
Shall I write the above value(s)? (y/n)
y
writing *0x00bf := 0x0000
restoring GPIO CR c -> 0

Mit ./ath_info 0x92600000 habe ich das überprüft und tatsächlich steht da jetzt Reg. Domain: 0x00
Um das zu komplettieren, sollte man die Option ieee80211_regdom=EU beim oben genannten Modul laden.

echo options cfg80211 ieee80211_regdom=EU > /etc/modprobe.d/wlan.conf

Dies ist nur eine der verfügbaren Möglichkeiten – hauptsache, es funktioniert 😉
Nachdem ich dann das ath5k Modul wieder geladen habe, konnten tatsächlich die 2 vermissten Kanäle gescannt werden.

iwlist wlan0 freq
wlan0 13 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Current Frequency=2.412 GHz (Channel 1)

Super! Danke an MadWifi und an den Blogschreiber von Blog Archi www.eee-blog.de
Nochmals: Ich übernehme keine Gewähr für eventuelle Hardwareschäden 😉 Viel Erfolg!

, , , ,

Keine Kommentare

/proc/cpuinfo flags

Wer mehr über seine CPU und deren Fähigkeiten erfahren möchte, bedient sich in der Regel der in /proc/cpuinfo ausgewiesenen Informationen.
Die Flags geben genau Auskunft ob zB der Prozessor mit 64bit arbeitet oder ob Virtualisierungsunterstützungen im Prozessor implementiert sind.

Wer auf die Antwort auf die 64bit Frage suchen sollte, gleich vorab: das Flag „lm“ weist auf diese Fähigkeit hin – gleichbedeutend mit „longmode“.

Was aber sagen die anderen Flags aus? Klar, man kann jeden Flag ergooglen oder in Wikipedia nachschlagen – komfortabel ist das jedoch nicht.

Die Antwort findet sich großteils in einem von Intel bereitgestellten Dokument – dort werden ab Kapitel 3.1.2.3 die Flags etwas ausführlicher in Ihrer Bedeutung genannt.

Auch AMD hat ein solches Dokument bereitgestellt, dort sind die Informationen verteilt zu finden.

Die Dokumente können auch hier bezogen werden. IntelAMD

Ich hoffe diese Infos sind für den einen oder anderen hilfreich. 😉

, ,

1 Kommentar