Ein Blog von Eduard Dopler

Artikel-Schlagworte: „Tipps“

Zurück zur Gesamtübersicht auf der Startseite.

Intel-WLAN-Treiber iwlagn für Monitoring fit machen/patchen

Sonntag, 27. März 2011


Zum WLAN-Verschlüsselungsalgorithmus WEP gibt es eigentlich nur dreierlei zu sagen: Es ist unsicher, es ist unsicher und es ist unsicher. Ich denke, dass inzwischen jeder halbwegs technikaffine Mensch mitbekommen hat, dass dieses System innerhalb von wenigen Minuten, gar Sekunden, geknackt werden kann. Wie einfach und schnell das geht, kann man als Ubuntu-Nutzer leicht mit einem Software-Toolkit aus den offiziellen Paketquellen am eigenen Drahtlosnetzwerk testen. Wie das genau geht, wird in zahllosen Tutorials im Internet erklärt, darum soll es hier nicht gehen. Als Eigentümer des Intel-WLAN-Chips WiFi 5100 muss man vorher aber einige Hürden meistern, nämlich den dazugehörigen Treiber iwlagn patchen. Dazu folgt eine Problembeschreibung und Anleitung.

Vorwort

Jeder nicht versierte Nutzer wird feststellen, dass sich dieser Text nicht an ihn richtet. Wer mit den Begrifflichkeiten nichts verbindet, sollte den „lustigen Hack“ lieber überdenken. Und ausdrücklich: Das Patchen dient nur dem Monitoring-Modus. Wer mit seinem WLAN nichts Derartiges ausführen möchte, kann (und sollte) es also getrost sein lassen.

Kein Problem

Kein Problem hat der Treiber mit dem allgemeinen Monitoring. Er lässt sich wie gewohnt aktivieren.

Das (minus) erste Problem

Problematisch wird es erst, wenn man sich mit seinem Access Point verbinden möchte: Denn dann gibt es einen Fehler mit der Rückmeldung des aktuellen Kanals der Monitor-Schnittstelle (bei mir mon0). Er liefert immer -1, sodass folgende Fehlermeldung entstehen kann:

mon0 is on channel -1, but the AP uses channel 6

Das behebt ein einfacher Patch mit einem einleuchtenden Namen wie „channel negative minus one“. Das Patchen läuft wie gewohnt und sollte auch mit aktuellen Kerneln wie 2.6.38 funktionieren.

Das zweite Problem

Etwas schwieriger ist das Verständnis des zweiten Patches, weil er an mehreren Stellen des Treibers ansetzt, um die Injektion zu ermöglichen. Ich benutze einen Patch, der sich um die FRAG, die ACK und RADIOTAP kümmert und für den 2.6.32-er entwickelt wurde. Mehrere Hunks davon funktionieren problemlos, doch bei einem (oder zwei?) musste ich Hand anlegen und die Zusätze in der dazugehörigen Datei selbst einfügen – was komplizierter klingt, als es ist. Ein Texteditor mit Suchfunktion reicht völlig.

Kernel oder Treiber patchen?

Obwohl ich bisher davon sprach, den Treiber zu patchen, hat sich bei mir die compat-wireless-Sammlung ein wenig zickig angestellt. Da ich meine Kernel aber selbst kompiliere, ist es ein Leichtes, die zwei Patches bei jeder Kernel-Kompilierung hinzuzufügen. Deswegen ist das meine favorisierte Lösung.

Seitdem Probleme?

Übrigens konnte ich seit dem „neuen“ Treiber keine Probleme mit meiner normalen WLAN-Verbindung feststellen. Man erhält also den WLAN-Treiber iwlagn, bei dem man ohne Modulwechsel normale Verbindungen aufbauen kann und den Monitoring-Modus nutzen kann.
Ach ja: WEP ist unsicher.

[ This blog entry is also available in English. ]

Mein erster eigener Kernel

Sonntag, 20. Februar 2011

Tux, der Linux-Pinguin
Woohoo! Ist es normal, so euphorisch zu sein, wenn man erfolgreich seinen ersten eigenen Kernel kompiliert hat? Egal, ich bin es.

$ uname -r
2.6.37.1-candela

Das meldet mir die Konsole seit gestern Abend. Und der Kernel läuft einwandfrei.
Es folgt eine kleine Erfolgsgeschichte bzw. wie ich vorgegangen bin.

Ist ja schön und gut – aber warum?

Natürlich darf man sich zurecht fragen, warum man sich überhaupt an die Arbeit machen sollte, sich einen Kernel zu backen, wenn es doch so viele fertige, auch aktuelle, gibt. Kurzum: Man soll/muss nicht. Trotzdem kann es gerechtfertigt sein. Das ubuntuusers-Wiki gibt die wichtigsten Gründe dafür ganz treffsicher wieder. Zitat:

  • Man ist ein Kernel-Entwickler oder -Tester,
  • man möchte den Kernel auf eine spezielle Art kompilieren (z.B. um experimentelle Funktionen zu nutzen),
  • man besitzt Hardware, die der offizielle Ubuntu-Kernel nicht unterstützt
  • oder man ist einfach nur neugierig.

Ich bin dann wohl ein Repräsentant des letzten Falles.

Und wie?

Zu meiner Vorgehensweise: Schaut man ins Internet, erschlagen einen die Informationen, die es zum Thema Kernel-Kompilierung gibt und mir ging es so, dass ich nicht wusste, welcher Quelle ich den Vorzug geben soll. Nachdem ich aber ein Werkzeug gefunden hatte, das einem den Großteil der Arbeit abnimmt, waren die meisten How-Tos und Tutorials überflüssig. Dieses magische Tool heißt KernelCheck (Debian-Paket-Download auf der Projektseite/Sourceforge).
KernelCheck lädt die Informationen zu den aktuell erhältlichen Kerneln von kernel.org und kann jeden davon automatisch herunterladen. Anschließend bietet es an, einige empfohlene Einstellungen vom Tool vornehmen zu lassen, wie z. B. die Vorkonfiguration von ALSA und Grafiktreibern. Wählt man dazu noch die benutzerdefinierte Installation, kann man über eine Konsole Patches einspielen. Für ein funktionierendes ureadahead benötigte ich z. B. einen Patch, der im ubuntuusers-Forum veröffentlicht wurde. Im Anschluss kann man die Kernelkonfiguration vornehmen und der Kompiliervorgang startet.

Und was stelle ich ein?

Ja, die Kernelkonfiguration. Damit steht und fällt die Aktion. Mit über 3600 Wahlmöglichkeiten zwischen einkompilieren oder nicht und manchmal auch noch als Modul kompilieren verliert man da schnell den Überblick – so man denn je einen hatte. Ich habe mir nach anfänglichem Schock über ihren Umfang doch die Kernel-Seeds zu Gemüte geführt, eine gut strukturierte Informationsseite über (fast) alle Kerneloptionen. Wobei ich zugeben muss, dass diese Art, jede Stellschraube einzeln abzuklappern, sehr mühsam ist. Trotzdem kann ich es allen Interessenten nur ans Herz legen – schließlich soll die gesamte Aktion ja nicht an der Faulheit scheitern. Ohne die nötige Ausdauer kann man es IMHO auch gleich sein lassen.

Wie lange dauert so eine Kernelkompilierung?

Das Kompilieren selbst dauerte auf meinem 2,3 GHz-Mobilprozessor mit 4 GB RAM ziemlich genau 30 Minuten 15 Minuten. Neben der Systemleistung ist dies aber auch vor allem von den gewählten Einstellungen abhängig – Faustregel: je mehr, desto länger. Ich habe sehr viel abgewählt, weil ich weder Funkmasten noch Netzwerk-Backbones oder 20 Jahre alte Hardware betreibe.
Deutlich mehr Zeit in Anspruch nimmt hingegen das Durchgehen der einzelnen Konfigurationen. Aber wie gesagt: Für einen gut angepassten, minimalistischen Kernel lohnt sich die Arbeit.

Trivia

  • Mein erster Versuch war übrigens schon vorletzte Woche. Da hatte ich allerdings die kleine, aber feine Option CONFIG_RFKILL nicht gesetzt, was dazu führte, dass mein WLAN inklusive Bluetooth nur aktiviert wurde, wenn ich den Hardware-Schalter dafür vor dem Systemstart umlegte bzw. im laufenden Betrieb die WLAN-Module rund um iwlagn neulud. Daraufhin dachte ich mir, dass ich nun auch warten kann, bis das erste Update zum neuen 2.6.37-er Kernel erscheint. Wie das Leben so spielt, hat dieses Minor-Release historisch lange auf sich warten lassen.
  • Image und Headers haben bei mir nun einen Umfang von zusammen 23 MB 16 MB. Zum Vergleich: Der Mainline-Kernel wiegt 44 MB.
  • Es existiert ein Video, das eine Beispielkompilierung zeigt. Das ist vielleicht ganz praktisch zum Verständnis des Patchens.
  • Ich sage es vielleicht noch einmal ausdrücklich: Einen eigenen Kernel zu kompilieren kann Spaß machen und sinnvoll sein. Trotzdem bringt es nicht immer etwas und man kann damit auch Schaden anrichten, weswegen man es sich eventuell zweimal überlegen sollte.

Fazit

Was will ich mit diesem Beitrag sagen? Vielleicht, dass es Spaß machen kann, so tief in ein System einzugreifen. Dass es in Linux mehr Stellschrauben gibt, als man sieht. Dass auf dieser Ebene eine ungeheure, selten geschätzte Arbeit liegt.
Vielleicht auch, dass Linux-Nutzer zu sein so vieles heißen kann. Wenn man will, benutzt man es wie andere (Multimedia-)Betriebssysteme auch. Möchte man aber mehr, so steht einem auch das frei.
Zu viel erwarten darf man allerdings nicht. Wenn man nicht gerade auf Bleeding-Edge-Treiber aus dem neusten Kernel angewiesen ist, wird sich das erlebte System nicht deutlich von einem mit vorkompiliertem Kernel unterscheiden.

Also: Man kann sich einen eigenen Kernel backen. Man kann es aber auch sein lassen.

Update am 11.03.2011 18:21

Farbmanagement in GIMP: Wie sehen Bilder nach dem Drucken aus?

Donnerstag, 17. Februar 2011

Ein anderer Artikeltitel könnte auch lauten: „Wie nutze ich die Farbprofile des Canon MP640 unter Linux?“ Oder: „Farbmanagement für Anfänger“. Aber ich versuche es mal mit diesem hier.

Jeder, der zu Hause Bilder druckt, kennt die Enttäuschung: „Hmm, das Foto sah auf dem Bildschirm aber schöner aus.“ Auch wenn sich die Qualität des Druckens nicht ins Unendliche steigern lässt, kann man zumindest vor dem Druck schon erfahren, wie die Grafik oder das Portrait annähernd auf Papier aussehen wird.

Profisache Farbverwaltung

Farbverwaltung/-management im Allgemeinen ist ein komplexes Thema. Wer sich näher damit beschäftigen möchte, kommt um eine weiterführende Lektüre nicht herum (für den Anfang tut es auch Wikipedia). An dieser Stelle möchte ich nur kurz die Bedeutung von ICC-/ICM-Profilen anreißen.

Profile

Farbprofile sind Daten, die in einer bestimmen Kombination von Ein- und Ausgabegeräten erzeugt wurden. Ziel ist es, vom ersten bis zum letzten Glied eine farbsichere Anzeige von visuellem Inhalt zu erhalten, das heißt zum Beispiel, dass ein Foto von der Aufnahme über die Bearbeitung bis hin zum Druck identisch aussehen soll. Für den Grafiker hat das den Vorteil, dass er zu jedem Zeitpunkt weiß, wie sein Bild am Ende vom Betrachter gesehen wird. Diese Profile nun enthalten jene Farbinformationen, die nötig sind, um das Bild so anzuzeigen, wie das Ausgabegerät des Profils es tun würde. Man kann sie also als Filter bezeichnen, die Farbwerte übersetzen.

Schema zur Veranschaulichung von Farbmanagement

Was GIMP nicht alles kann!

Auch wenn GIMP von professionellen Grafikern häufig Kritik einstecken muss – berechtigt oder nicht – besitzt es die Option, Farbprofile auf die Bildausgabe anzuwenden. Dazu geht man in GIMP 2.6 in die Einstellungen und findet unter Farbverwaltung die möglichen Konfigurationsmöglichkeiten.

Screenshot der Farbverwaltungseinstellungen von GIMP

Der Arbeitsmodus legt den Anzeigemodus fest. Wählt man hier Farbkorrigierte Darstellung, wird das Bildschirmprofil angewendet. Über Farbanpassung des Bildschirms regelt man, wie die Farben berechnet werden (z. B. angelehnt an die Wahrnehmung). Wählt man dort hingegen Drucksimulation, wird das Drucksimulationsprofil geladen. Auch hier ist wieder eine Farbanpassung möglich.

Voraussetzung: Farbprofile

Natürlich muss man erst einmal Farbprofile der Ausgabegeräte (Drucker und Monitor) besitzen. Viele Hersteller bieten sie ihren Kunden auf den mitgelieferten Installationsmedien an. So lagen meinem Canon MP640 einige Profile bei, die alle auf diesen Drucker und einige Papiere des Herstellers eingestellt waren. Die Benennung der Dateien ist ein wenig kryptisch, deswegen folgt nun eine Übersicht der Bedeutung einiger dieser Profile.

  • CNBA2CA0.icm: Canon MP640 series PR1 (Photopapier Pro Q1)
  • CNBA2CB0.icm: Canon MP640 series PR2 (Photopapier Pro Q2)
  • CNBA2CC0.icm: Canon MP640 series PR3 (Photopapier Pro Q3)
  • CNBA2DB0.icm: Canon MP640 series MP2 (Mattes Photo Q2)
  • CNBA2MB0.icm: Canon MP640 series GL2/SG2 (Photo Semi-Gloss Q2)
  • CNBA2MC0.icm: Canon MP640 series GL3/SG3 (Photo Semi-Gloss Q2)
  • CNBA2NB0.icm: Canon MP640 series PT2 (Photo Platinum Q2)
  • CNBA2NC0.icm: Canon MP640 series PT3 (Photo Platinum Q3)
  • cnbjprn3.icm: Canon IJ Color Printer Profile 2005 (generisches Profil?)
  • CNFRB0.icm: Canon MP640 ser Reflective

Dabei stehen die Ziffern für die Qualitätsstufe des Papiers, von 1 (höchste) bis 3. Die Abkürzungen repräsentieren die Papierarten. Weitere Typen sind PP (Glossy II), GP (Photopapier Everyday Use), HR (Hochauflösendes Papier), TR (T-Shirt-Drucke) und PS (Photosticker).

Anwendung

Stellt man nun ein solches Profil ein und wählt Drucksimulation, sollte man die resultierenden Farben nach dem Druck schon vor diesem besser abschätzen können und sich dadurch die ein oder andere Enttäuschung ersparen.

Ein Screenshot eines Bildes ohne und mit Drucksimulation (zur besseren Unterscheidung können sie in unterschiedlichen Tabs geöffnet und verglichen werden):
Ein Foto von Rosen mit RGB-Farbspirale (ohne Drucksimulationsprofil)
Ein Foto von Rosen mit RGB-Farbspirale (mit Drucksimulationsprofil)

DuckDuckGo — die wahrscheinlich beste Google-Alternative

Freitag, 11. Februar 2011

Ente Ente mach!

Okay, seien wir mal ehrlich. So ziemlich jeder von uns nutzt Google zig mal täglich. Auch ich. Bis jetzt.

Warum Google?

Ich hätte wirklich nicht gedacht, dass ich eine Suchmaschine finde, die es mit Google aufnehmen kann. Warum? Weil Google gut ist. Allein schon wegen seiner finanziellen Möglichkeiten hat es genug Ressourcen, um technisch top zu sein. Deswegen dachte ich – und das wurde mir nach mehreren Ausflügen zu alternativen Suchmaschinen vorerst bestätigt – dass da keiner heran kommt. Ich meine, Bing ist okay, Yahoo auch und Exalead so lala. Aber trotzdem fand ich mich nach kurzer Zeit immer wieder, wie ich das g in die Firefox-Leiste eingab, mein Suchkürzel für: Google eben.

Aaaber:

Doch dann kam dieser Blog-Post und ich probierte es aus. Die Funktionen-Übersicht überzeugt mich schon mal. Auch die Suchgeschwindigkeit. Und die netten Javascript-Effekte, wie das automatische Nachladen der nächsten Ergebnisseite, wenn man nach unten scrollt. Und dann erst die !Bangs, also die Abkürzungen für häufige Suchanfragen. So reicht ein !python print, um die offizielle Dokumentation des print-Befehls der Programmiersprache Python anzuzeigen.
Nicht zu vergessen die direkte Weiterleitung an die erste gefundene Seite, wenn ein Ausrufezeichen im Suchstring vorkommt. Und so weiter

Warum also DDG und nicht mehr Google?

Man sieht: Ich bin begeistert. Gebt euch einen Ruck, fügt DuckDuckGo zu eurem Browser hinzu und probiert es aus.