Articles with tag “software” (page 3 of 4):

Linux Segmentation fault Fehlercodes

On in “Linux” by Tblue
Tags: ,

Nach einem Mainboard-Wechsel habe ich des öfteren Segfaults und Kernel panics auf meinem Linux-Rechner (wie ja schon im Blog erwähnt). In der Ausgabe von dmesg sieht das dann so aus:

X[2672]: segfault at 1a4 ip 0819288a sp bf9bec60 error 4 in Xorg[8048000+196000]

Hm, toll, der größte Teil davon werden wohl Speicheradressen sein, aber was ist Fehler 4? Nach kurzem Suchen fand ich heraus, dass das (für einen x86-Prozessor) in der Quelltext-Datei arch/x86/mm/fault.c steht:

/*
 * Page fault error code bits
 *    bit 0 == 0 means no page found, 1 means protection fault
 *    bit 1 == 0 means read, 1 means write
 *    bit 2 == 0 means kernel, 1 means user-mode
 *    bit 3 == 1 means use of reserved bit detected
 *    bit 4 == 1 means fault was an instruction fetch
 */
#define PF_PROT     (1<<0)
#define PF_WRITE    (1<<1)
#define PF_USER     (1<<2)
#define PF_RSVD     (1<<3)
#define PF_INSTR    (1<<4)

Wir haben also die Zahl 1, bzw. 00000001 (wenn man annimmt, dass ein Byte acht Bits sind). Mittels des Operators << werden alle Bits in dem Byte um eine Stelle nach links verschoben (“geshiftet”). Das heißt:

PF_PROT  = 00000001
PF_WRITE = 00000010
PF_USER  = 00000100
PF_RSVD  = 00001000
PF_INSTR = 00010000

So, 4 entspricht im Dualsystem 100 bzw. 00000100, also PF_USER. Also ein “page fault” beim Lesen im user mode. Oder so. Jedenfalls ist (mir) die Bedeutung von Fehler 4 nun etwas klarer.

Nachtrag:

Natürlich können auch Kombinationen der obigen Werte auftreten, z. B. würde Fehler 6 im Dualsystem 110 bzw. 00000110 entsprechen, was das Ergebnis einer logischen ODER-Verknüpfung von PF_WRITE und PF_USER ist:

     00000010
ODER 00000100
-------------
     00000110

Das wäre ein page fault beim Schreiben im user mode.

Wine 1.0 und Firefox 3 veröffentlicht

On in “News” by Tblue1 comment
Tags: , ,

Jetzt heißt es für mich warten, bis der zuständige Arch Linux-Paketmaintainer seinen Firefox-Build fertiggestellt hat. ;) Warum selber downloaden/bauen, wenn das doch der Maintainer macht. :)

Gerade bei heise.de gelesen: Wine hat nach 15 Jahren Entwicklungszeit endlich Version 1.0 erreicht! Auch hier heißt es wieder warten, meine Wine-Builds brauchten immer etwas (mit einem P4 3GHz und 512MB RAM auch kein Wunder). Bei einer stabilen Version warte ich aber lieber auf die Paketmanagement-Version.

Schöner Tag heute, irgendwie.

Firefox 3 kommt

On in “News” by Tblue
Tags: , ,

Noch ca. 30 Minuten bis zur Freigabe von Firefox 3. Mal sehen, was es neues gibt, laut Presse soll Firefox ja u. a. weniger RAM verbrauchen, was mir bei 512MB RAM gelegen kommt. Der relativ hohe RAM-Verbrauch von Firefox 2 hat mich zu Opera wechseln lassen, aber wenn der neue Firefox wirklich schneller sein sollte, werde ich wohl wieder (halb ;)) zurückwechseln. Opera ist wirklich schnell und hat Features, für die man bei Firefox Erweiterungen benötigen würde. Von Opera gabs ja vor einigen Tagen auch Version 9.5 (und mit Opera Dragonfly gibt es nun auch ein Firebug-Äquivalent).

So, und nun höre ich weiter Nine Inch Nails und Korn. :)

Vorratsdatenspeicherungs-Pagepeel: Plugin für b2evolution

On in “Devstuff” by Tblue1 comment
Tags: , , ,

Ich machs kurz: Ich habe mir ein b2evolution-Plugin geschrieben, das das Pagepeel des AK Vorratsdatenspeicherung einblendet. Es gibt ein paar Konfigurationseinstellungen, ich bin jetzt allerdings zu müde, das genauer zu erklären. Eine kleine Dokumentation zu den Einstellungen liegt bei.

Download (Version 1.0.2; getestet mit b2evolution 2.4.2, funktioniert evtl. auch mit früheren Versionen; veröffentlicht unter der GPL v2).

Installation: Zip-Archiv entpacken und den enthaltenen Ordner in das Verzeichnis plugins verschieben, im Backend Plugin aktivieren, Blog-IDs in den Plugin-Einstellungen eintragen, freuen. :) Kritik ist natürlich willkommen.

Patch für Phorum 5.2.7: User hinzufügen per ACP

On in “Devstuff” by Tblue
Tags: , , ,

Und noch ein Patch für Phorum. Diesmal fehlte mir die Möglichkeit, neue User direkt im Admin Control Panel hinzufügen zu können und nicht immer den Umweg über das öffentliche Registrierungsformular nehmen zu müssen.

Der Patch besteht aus der Datei useradd.php, die in den Ordner /include/admin gehört und einem Patch, der einen Link (Users/Groups -> Add Users) im ACP-Menü hinzufügt.

Der Patch ist so winzig, dass man ihn per Hand einpflegen kann (eine Zeile). Dazu öffnet man /include/admin/header.php und fügt nach Zeile 460 folgende Zeile ein:

$menu->add('Add Users', 'useradd', 'Allows administrator to add new users.');

Alternativ kann man natürlich auch das Programm patch und das Patchfile (siehe unten) verwenden. Der Befehl patch -p1 < pfad/zur/patchdatei.patch muss im Phorum-Basisverzeichnis ausgeführt werden. So, wie der Befehl hier gezeigt wird, funktioniert er mit (fast?) allen Unix/Linux-Shells.

Downloads:

Auch hier gilt: Ich hafte nicht für etwaige Schäden, die durch diesen Patch entstehen, die Verwendung erfolgt auf eigene Gefahr. Es besteht kein Anspruch auf Funktionstüchtigkeit.

Ansonsten wünsche ich aber viel Vergnügen ;) und ermuntere zu Kritik.