Wir bauen uns ein /dev/raw1394 unter Ubuntu Natty

Mit dem Wechsel von Ubuntu 10.10 auf 11.04 hat sich nicht nur die Oberfläche geändert, sondern auch ein bisschen was im Unterbau. So wurde z.B. der alte Firewire-Stack ieee1394 durch den neuen Juju-Stack ersetzt.

https://ieee1394.wiki.kernel.org/index.php/Juju_Migration

Alles neu, toll, wenig bunt … und nicht abwärtskompatibel.

Die Probleme fangen dann an, wenn man nun über “alte” Programme (z.B. Kino) versucht etwas von der DV-Cam aufzunehmen. All diese Programme sind nämlich noch auf den alten Stack und damit auf das Device /dev/raw1394 angewiesen.
Da sich bei den wenigsten das Aufnahmedevice einstellen lässt, ist eine Verlinkung unter /dev die wohl einfachste Lösung:

sudo ln -s /dev/fw0 /dev/raw1394
sudo chmod 777 /dev/raw1394

Icinga und mk-livestatus

Gerade eben bin ich über ein Problem gestopert, welches mir etwas Kopfzerbrechen bereitet hat.
Für eine NagVis-Grafik habe ich in der Icinga-Konfiguration kurz eine neue Servicegruppe angelegt. Obwohl ein kurzer Check mit

/usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg

keine Probleme angezeigt hat, ist Icinga nicht mehr gestartet.

Nach

[1314104494] livestatus: Hint: please try out OMD - the Open Monitoring Distribution
[1314104494] livestatus: Please visit OMD at http://omdistro.org
[1314104494] Event broker module '/usr/local/lib/mk-livestatus/livestatus.o' initialized successfully.
[1314104494] idomod: IDOMOD 1.4.1 (05-11-2011) Copyright (c) 2005-2008 Ethan Galstad (nagios@nagios.org), Copyright (c) 2009-2011 Icinga Development Team (http://www.icinga.org))
[1314104494] idomod: Successfully connected to data sink.  0 queued items to flush.
[1314104494] Event broker module '/usr/local/icinga/bin/idomod.o' initialized successfully.
[1314104508] SERVICE FLAPPING ALERT: server.localhost;check_load;STARTED; Service appears to have started flapping (20.9% change >= 20.0% threshold)
[1314104511] TIMEPERIOD TRANSITION: 24x7;-1;1
[1314104511] TIMEPERIOD TRANSITION: shortWorkhours;-1;1
[1314104511] TIMEPERIOD TRANSITION: workhours;-1;1
[1314104570] livestatus: Couldn't write 16 bytes to client socket: Broken pipe

war irgendwie Schluß und der Icinga-Prozess hat sich wieder verabschiedet.

Da die letze Meldung irgendwas mit mk-livestatus zu tun hat, hab ich an der Stelle angesetzt. Das Unix-Socket kann folgendermaßen geprüft werden:

echo 'GET hosts' | unixcat /usr/local/icinga/var/rw/live

Da aber hier, trotz vorhandenem File, auch eine Fehlermeldung kam, hab ich mal ein bisschen in die Doku geschaut. Zuerst wollte ich mal schauen, was mk-livestatus überhaupt tut. Dies kann man erzwingen, wenn man dem Modul den Parameter debug=1 mit gibt.

define module{
        module_name     mk-livestatus
        module_type     neb
        path            /usr/local/lib/mk-livestatus/livestatus.o
        args            /usr/local/icinga/var/rw/live debug=1
	}

Leider hat dies auch nicht mehr Informationen zu Tage gebracht, da wohl das Problem gleich beim starten des mk-livestatus passiert. Die letzte Ausgabe war folgende

[1314104384] TIMEPERIOD TRANSITION: shortWorkhours;-1;1
[1314104384] TIMEPERIOD TRANSITION: workhours;-1;1
[1314104449] livestatus: Starting 10 client threads
[1314104449] livestatus: Query: GET services
[1314104449] livestatus: Query: GET services

Beim durchlesen der möglichen Optionen bin ich dann auf die Option thread_stack_size gestoßen.
Folgendes gibt die Doku dazu her

  • This parameter sets the size of the stack of each client thread. In versions before 1.1.4, the stack size was set to 8 MB (pthread default). The new default value is 64 KB. A small stack reduces virtual memory usage and also save CPU ressources. A too small value will probably crash your Nagios process, though. You have been warned…
  • In der Tat war das der richtige Ansatz. Die Stack-Size des Prozesse erhöht sich mit Anzahl der zu checkenden Hosts und Services. Die aktuelle Stack-Size kann im proc-Filesystem ausgelesen werden. Dazu die PID des Icinga-Prozesses suchen und ein

    cat /proc/<pid>/smaps
    </pid>

    durchführen und den Block suchen, der mit [stack] beginnt:

    ...
    7fff03bb4000-7fff03be6000 rw-p 00000000 00:00 0                          [stack]
    Size:                204 kB
    Rss:                  68 kB
    Pss:                  16 kB
    Shared_Clean:          0 kB
    Shared_Dirty:         56 kB
    Private_Clean:         0 kB
    Private_Dirty:        12 kB
    Referenced:           68 kB
    Swap:                  0 kB
    KernelPageSize:        4 kB
    MMUPageSize:           4 kB
    ...

    Die Zeile mit Rss zeigt dann den aktuell verwendeten Speicher an. In diesem Fall sind es mittlerweile 68kB.
    Die Default Option liegt bei 64kB, so dass diese 4kB wohl zum unweigerlichen Absturz des Icinga-Prozesses führen.

    Um das ganze wieder zum laufen zu bringen, muss das Borker-Modul mit einem angepassten thread_stack_size gestartet werden.

    define module{
            module_name     mk-livestatus
            module_type     neb
            path            /usr/local/lib/mk-livestatus/livestatus.o
            args            /usr/local/icinga/var/rw/live thread_stack_size=131072
    	}

    Knapp 128kB (131072 byte) sollten eigentlich für die nächsten Checks ausreichen.
    Aktuell sind es 302 Hosts und 3937 Services. Ziel nach der Migration von Nagios auf Icinga sind 1563 Hosts und 8887 Services … Mal sehen, was noch so alles auftaucht :-)

    Atheros Communications Inc. AR9287 unter Ubuntu / Linux Mint

    Es gibt mal wieder einen ziemlich ätzenden Bug im aktuellen in Ubuntu 11.04 und Linux Mint 11 verwendetem Kernel. Dieser äussert sich so, dass zwar eine Netzwerkverbindung mit einer AR9287 hergestellt werden kann, die Verbindung aber nicht von Dauer ist.

    Folgend verschafft zumidnest temporär Abhilfe:

    /etc/modprobe.d/ath9k.conf

    options ath9k nohwcrypt=1

    Emil hat seinen Freund verloren!!!

    HILFE, EMIL HAT SEINEN FREUND VERLOREN!!!

    Wir suchen dringend ein Exemplar des Ikea Kuscheltiers “GOSSIG SPANIEL”.
    Wer hat noch ein Exemplar zuhause und würde es für Emil entbehren. Gekauft 2009 bei IKEA (GOSIG SPANIEL).

    ES GIBT NATÜRLICH AUCH EINE BELOHNUNG!!!

    Bitte per Mail melden … Ich stelle dann den Kontakt zu Emils Eltern her.

    Resizing Konsole crashes the whole system

    Nachdem mich Unity mittlerweile nicht so ganz überzeugen konnte und Gnome2 vermutlich vom aussterben bedroht ist (Gnome3 steht ja mittlerweile auch zur Verfügung), habe ich mich entschlossen wieder zurück zu KDE zu wechseln.
    Bei der Neuinstallation von Kubuntu 11.04 bin ich dann auf einen sehr ärgerlichen Fehler gestoßen:

    Nachdem der originale NVIDIA-Treiber installiert wird, hängt sich KDE bei einem Doppelklick auf die Titelleiste oder beim ändern der Fenstergröße einfach auf.
    Der SSH-Zugriff funktioniert zwar noch, X ist aber definitiv tot und lässt sich durch nichts mehr zum Leben erwecken.

    Im Syslog und mit Dmesg ist noch etwas in der Art

    ...
    [ 1623.494466] NVRM: Xid (0000:01:00): 13, 0001 00000000 00005097 000015e0 00000000 00000100
    [ 1637.600063] NVRM: Xid (0000:01:00): 8, Channel 00000001
    [ 1639.600033] NVRM: os_schedule: Attempted to yield the CPU while in atomic or interrupt context
    ...

    zu sehen …

    Soweit ich feststellen konnte, tritt das Verhalten mit dem Nouveau-Treiber nur sehr selten auf.

    Abhilfe schafft in diesem Fall die Installation eines neuen, “inoffiziellen” NVidia-Treibers von https://launchpad.net/~philip5/+archive/extra

    Für Natty sind die Paketquellen hier verfügbar:

    deb http://ppa.launchpad.net/philip5/extra/ubuntu natty main 
    deb-src http://ppa.launchpad.net/philip5/extra/ubuntu natty main

    Durch ein

    sudo apt-get install -u nvidia-current

    wird der Treiber installiert.