iwi wlan FreeBSD 7.0

Str

Member
Hi,
ich hab mir vor kurzem FreeBSD 7.0-Current installiert und meien wlan Karte (ipw2200bg) zum laufen bewegen können, allerdings läuft das ganze sehr instabil:

Ich bekomme wenn ich die Karte aktiviert lasse nach ~10-20 Minuten eine höhere Aktivität der Karte (wie ich am Wlan-Led-aufleuchte-lämpchen-was-auch-immer meines notebooks sehe) und dann eine "daueraktivität" (also lämpchen bleibt durchgehend an) und kurz darauf einen freeze...

Wenn ich das System ohne iwi laufen lasse läuft es tadellos, und es tritt eben nur bei höherer aktivitt der karte auf...

/boot/loader.conf:
if_iwi_enable="YES"
legal.intel_iwi.license_ack=1
wlan_load="YES"
firmware_load="YES"
iwi_bss_load="YES"
iwi_ibss_load="YES"
iwi_monitor_load="YES"

/etc/rc.conf:
# -- sysinstall generated deltas -- # Wed Dec 5 19:10:40 2007
# Created: Wed Dec 5 19:10:40 2007
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
inetd_enable="NO"
keymap="german.iso"
linux_enable="YES"
iwi_enable="YES"

Scheinbar läuft die Karte ohne Firmware (habe hier auch im Forum gelesen bei einer onboard karte wär das auch möglich, und man braucht die firmware nur bei einer "outboard" karte...?), und alle versuche die firmware in die karte zu laden schlugen auch fehl (iwi-firmware-2.4_7, die 2.4_8 hab ich noch nicht probiert)... (daraufhin hab ich die 2.4_7 wieder runtergeschmissen, hat ja eben ohne "funktioniert"... mit der 2.4_7 hatt ich auch das gleiche freeze problem)... (ok, ich muss wohl wegen der firmware noch die /boot/loader.conf anpassen, aber hauptsache die karte läuft erstmal..)

Mein Workaround den ich mir für Dinge bei denen ich permanent wlan zugang brauchewie zb jetz wo ich grade anfange mich mit FreeBSD zu beschäftigen das beziehen von software aus den ports wäre 2 skripte die das wlan alle 5 minuten neu starten samt treiber neuladen und ein skript das entsprechend des echo $? werts von make install make install wieder neus tartet oder eben nicht... wer dich wohl gleich schreiben...

Kann mir jemand weiterhelfen?

PS: google.de/bsd genutzt und vorher durchaus gesucht.
 
Der iwi_enable="YES" Eintrag in der rc.conf ist obsolet, da du die Firmware schon durch den Eintrag iwi_bss_load="YES" in der loader.conf. Ansonsten würde ich mal schauen ob es einen Interruptstorm gibt.
 
Meinst du damit die IRQ Verteilung bzw dass sich die Karte einen IRQ mit andere "IRQ lastigen" Geräten teilt...? hm... sowiet ich weiss wir ddas doch bereits vom Booten im Bios festgelegt, und ich nutze ein Debian GNU/Linux sowie relativ selte win WinXP auf dem selben notebook, und dort funktioniert alles tadellos... Wenn IRQ vom Kernel verteilt werden sähe das natürlich wieder anders aus...

@rc.conf: k, werd ich dann anpassen :)

cu,
Str
 
Hallo Str,

schau dir das ganze mal mit systat an:
Code:
 systat -vmstat 1

Wenn es ein Interrupt Storm ist, kannst du ihn so am besten sehen.
 
hm... das klingt jetzt vermutlich banal, aber nach eingabe des befehls kann ich nichts lesen... ich sehe nur noch oben nen paar infos so ca 4 zeilen und dann is der rest des bildschirms leer... (hab ich direkt auf nem tty eingegeben, da ich x11 nicht installiert habe)

ich hab versucht das ganze mit tee und auch per umleitung in eine datei umzuleiten, leider hat zur das zweite halbwegs funktioniert und da kam praktisch ein unlesbarer kauderwelsch bei raus... Da ich momentan unter einen Windows Betriebsystem sitze kann ich die Datei hier ncht anhängen, könnte ich allerdings nachher noch hinzufügen...
 
Entschuldigung, war mein Fehler... der gleiche dumme tippfehler hat sich an den richtigen Stellen ein paar mal wiederholt, weswegen ich die ausgabe fehlinterpretierte...

Also ich habe bei aktiviertem iwi Treiber sah die entsprechnede Stelle bei den IRQs folgendermassen aus

[Zahl die meistens 1-3 war, manchmal auch 9 oder 11] rl0 iwi0 2

Ich nehme mal an die 2 hinten steht für den irq2... und die erste zahl ist die Auslastung...? wäre zumindest logisch..
 
Also ich hab jetzt endlich nen wenig Zeit gefunden mich mit den manpages auseinande zu setzen und ich denke ich bin jetzt relativ sicher dass es tatsächlich an einem solchen Interrupt Storm liegt, meine Netzwerkkarte (welche unter GNU/Linux IRQ19 zugeordnet wird) wird IRQ20 zugeordnet, über diesen Interrupt läuft auch meine WLAN Karte... Da ich die Netzwerkkarte sowieso nicht benötige, war die logische Konsequenz das Einbinden dieser zu unterbinden, also wollt ich mit kldstat nachschauen ob ich das entsprechende Kernelmodul finde.. denkste, anscheinend nicht als Kernelmodul auffindbar... Das würde ja implizieren dass dieser Treiber direkt in den Kernel kompiliert ist... Leider habe ich keinerlei Ahnung wie ich das überprüfen könnte oder den IRQ ändern könnte oder die Sache anders angehen könnte, und entsprechende Suchbegriffe leiten mich auch nicht zum Ziel...

Bei der Netzwerkkarte handelt es sich um eine RealTek RTL8139... Danke schonmal!
 
Du kannst mit
Code:
kldstat -v
sehen, welche Treiber im Kernel einkompiliert sind.
Gggf. kannst du die IRQ Einstellung BIOS aendern oder die Karte ganz abschalten.
Tipp: Du moechtest auch die Option "Plug 'n' Play OS" im BIOS deaktivieren, das bringt nur Aerger. Siehe: IRQ 19 für die Netzwerkkarte unter Linux und IRQ 20 unter FreeBSD....
 
hm... Ich hab nen PhoenixBios und da gibts derartige ootionen oder generell was bzgl irqs anscheinend nicht..

hm der treiber für die karte ist if_rl, ich hab nun versucht in die loader.conf if_rl_enable="NO" bzw if_rl_load="NO" einzutragen, hat beides nichts genützt, also vermute ich mal das ganze steckt fest im Kernel...

Ber igendwie scheine ich da was falsch verstanden zu haben: Auszug aus dem Manual:

Tipp: In der Voreinstellung werden beim Bau eines angepassten Kernels stets alle Kernelmodule neu gebaut. Wollen Sie Ihren Kernel schneller bauen oder nur bestimmte Module bauen, sollten Sie /etc/make.conf anpassen, bevor Sie Ihren Kernel bauen:

Also wird alles gebaut (es sei denn ich setze die override variable in der make.conf ), aber als modul? Andererseits zeigt kldstat ohne -v alle aktiven Module an, das sind jedoch nur ein paar (bei mir if_iwi, iwi_bss, iwi_ibss, iwi_monitor), und mit -v bekomme ich in der Tat viele "Module" aufgelistet, die nach obiger Information ja nun in den Kernel fest einkompiliert sind...
 
kldstat zeigt nur die dynamisch nachgeladenen Module an,
kldstat -v zusätzlich die, die im Kernel schon fest drin sind.

Die Einträge in /etc/make.conf bzw. /etc/src.conf ab FreeBSD 7 verhindern, dass die entsprechenden Module bzw. Userland-Komponenten wie BIND oder Sendmail gebaut werden.
Dadurch kann man Kompilierungszeit und Platz auf der Festplatte sparen.

Du willst aber /usr/src/sys/i386/conf/GENERIC umkopieren und auf deine Bedürfnisse anpassen, nämlich
device if_rl
entfernen und danach den Kernel neu kompilieren.
Wie das geht, kannst du hier nachlesen:
http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/kernelconfig.html

Dadurch wird der rl Treiber nicht in den Kernel mit einkompiliert und du kannst ihn bei Gebrauch dynamisch mit
kldload if_rl
nachladen.
 
hm ich kompiliere grade den Kernel, klappt soweit ganz gut... zwischendurch hat ich nen weiteren freeze den ich erst relativ spät bemerkt habe, mir ist dann aufgefallen dass ich vergessen hab die entsprechenden Zeilen aus der loader.conf zu nehmen, ich denke mal jetzt wirds gehen...

Beim booten nach dem freeze konnte ich auch ne nachricht vernehmen, sie lautete irgendwo in der Richtung:

Kernel Dumps on /dev/ad0s2b
Entropy harvesting: interrupt ethernet point_to_point kickstart.
ad0s2b=meine swap partition

Keine garantie dass das da 100%ig so stand, habe in var/log eigenartiger weise von dieser nachricht nichts mehr gefunden...

Grad hat sich der Rechner wieder gefreezet: habe grad den status mit systat -vmstat 1 auf tty2 beobnachtet und aufeinmal freeze... hm diesmal war iwi 100%ig aus... vllt liegts doch an was anderem..? Wobei die hohe netzwerkaktivität der wlan karte bei den ersten paar malen dann ein großer zufall gewesen sein müsste...

Interessanterweise passiert mir wie ich selber merke das ganze anscheinend nur beim Kompilieren, wenn ich mich richtig erinnere: zum ersten mal geschah es kurz nach der Installation, ich hab mir vim kompiliert... danach noch ein paar mal, dann bei xorg & bash samt meinen skript das mir wenig geholfen hat dass die karte alle 5 minuten ausgeschaltet und neu initialisiert hat... jetzt grade wieder beim kompilieren...

EDIT: Bootnachricht korrigiert, grade wieder erschienen.. ist jetzt 100%ig korrigiert
 
Last edited:
hm,
ist es möglich eine .tbz version der iwi-firmware-kmod für Freebsd-6.2 zu bekommen?

Mit 7.0 hab ich oben erwähntes Problem, und mit 6.2 habe ich ohne iwi-firmware-kmod keinerlei WLAN Verbindung, was mit meiner Internet Verbindung gleichzusetzen ist... beides bringt mich insgesamt nicht wirklich weiter :rolleyes: .

Ich konnte zwar durch die Fehlermeldung von pkg_add die position der packages auf dem FreeBSD Server ausfindig machen ( ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/ ? ),
aber das entsprechende Packet gab es dort nicht. Logisch, ist ja ein Kernelmodul, sowas sollte man nicht vorgefertigt installieren wenn mich nicht alles täuscht...

Irgendwelche anderen Ideen wie ich 6.2 lauffähig WLAN fähig bekommen könnte...?

PS: habe über google.de/bsd einige topics über einen Freeze bei 7.0 gefunden, welche zwar direkt nicht viel mit meinen Problem zu tun haben aber ich denke 6.2 zu testen wird nicht schaden...
 
Dank der Flexibilität eines laptops konnte ich mir die firmware für 6.2 kompilieren, wlan ging ab dann...

Scheinbar hat sich das Problem mit 6.2 erledigt.. schon ein make buildworld & buildkernel durchlaufen gelassen und mir nen wenig was aus den ports kompiliert, mit aktivem wlan, dateien probeweise runtergeladen... alles kein problem... hab jetzt auch device rl aus dem kernel entfernt, will ja nich da dennoch irq 20 von beiden geräten genutzt werden würde irgendwas provozieren für ein gerät das ich idR nicht brauche...

Vielen Dank allen für die Hilfe!
 
Back
Top