Bootsplash

Angelegt von Andreas Steinel Sun, 16 Dec 2007 13:49:00 GMT

Heute wollte ich mir das schöne Feature des Screenshots-beim-Ruhezustand von MacOS auf Linux portieren. An sich funktioniert das recht einfach: Man muss nur ein Screenshot machen, diesen noch etwas bearbeiten und dann in usplash einbauen. Bis hier hin hat auch alles prima funktioniert :-/

Leider wurde der Splash-Vorgang von Linux sehr verändert (in Bezug auf meine letzte Erfahrungen mit Boosplash vor einigen Jahren). Dadurch ist es nicht mehr so einfach kurzfristig ein Bild beim Booten einblenden zu lassen. Man muss initamfs neu bauen und dies nimmt schonmal einige Zeit in Anspruch und ist somit total unpraktikabel!

Nichtsdestotrotz möchte ich hier meine Schritte kurz erläutern:

  1. Screenshot erstellen
    import -window root -silent -type Grayscale \
    -resize 800x600 /tmp/screenshot.png
  2. Screenshot overlay erstellen
    composite -compose dst-over /tmp/screenshot
    /path/to/linux.png /tmp/overlay.png
  3. Das ganze würde dann z.B. so aussehen:

Danach muss man die PNG-Datei in C-Code verwandeln, diesen kompilieren und nach /usr/lib/usplash/ kopieren und danach weitere Schritte wie die alternatives updaten, kernel mittels dpkg neu konfigurieren oder das initramfs neubauen. (Näheres kann man hier herausfinden)

Leider alles viel zu langsam um es bei jedem Ruhezustand auszuführen.

Eine Lösung mit nur einer Bilddatei laden – so wie es vor Jahren mal war – wäre hier bestimmt besser gewesen. Vielleicht sollte man nochmals einen Kernel selbst bauen und dort gleich das “normale” Bootsplash ausprobieren. Vielleicht funktioniert das befriedigend.

Posted in  | keine Kommentare | keine Trackbacks

Kalender erstellen in LaTeX

Angelegt von Andreas Steinel Thu, 06 Dec 2007 15:15:00 GMT

Mir ist kein Weg bekannt, einen Kalender mit Bildern schnell in LaTeX zu erstellen, also hab ich mir etwas geschrieben, was diese Arbeit für mich erledigt.

Der erzeugte Kalender sieht wie folgt aus:

Man kann das Jahr und die Bilder angeben, die für jeden Monat verwendet werden sollen. Danach erzeugt das Skript mit Hilfe des Konsolenprogrammes cal den Kalender und man kann die Datei calendar.tex mittels pdflatex übersetzen.

Das Programm kann man hier herunterladen.

Posted in ,  | keine Kommentare | keine Trackbacks

Fast Bilateral Filtering GIMP-Plugin

Angelegt von Andreas Steinel Thu, 06 Dec 2007 01:53:00 GMT

Ich habe mir gerade ein Fast Bilateral Filtering in meinem GIMP-Framework erstellt (hat so knapp eine Stunde gedauert) und habe es als Linux und FreeBSD-Version hier online gestellt.

Die jeweilige Datei einfach in den Ordner ~/.gimp-2.4/plug-ins kopieren und GIMP neustarten.

Der Effekt sieht – mehrfach angewendet – aus wie Toon-Shading:

Mit dem GIMP-Plugin kann man die zwei Parameter des Verfahrens einstellen, sowie die Anzahl der Iterationen angeben. Die Software ist natürlich ohne Gewähr und die Benutzung ist auf eigene Gefahr.

Posted in , , , ,  | keine Kommentare | keine Trackbacks

Nokia 6300

Angelegt von Andreas Steinel Tue, 04 Dec 2007 18:36:00 GMT

Vor einigen Tagen ich mir das Nokia 6300 gekauft und werde immer wieder (positiv) überrascht. Natürlich kann das Handy mit iSync synchronisieren (Gerätedatei erforderlich) und ich habe eben herausgefunden, daß es auch prima als externe Festplatte benutzt werden kann. Sogar unter Linux klappt es out-of-the-box. Einfachmittels USB mit dem Rechner verbinden und Datenspeicher auswählen und schon funktionierts.

Vielleicht bin ich einfach zu verwöhnt durch meine DSLR, aber diese Handy-Kameras sind alle totaler Müll: Rauschen ist enorm! (Eigentlich ja klar bei der extrem kleinen Sensorfläche)

Aber alles in Allem ein sehr gutes Handy und empfehlenswert.

Posted in ,  | keine Kommentare | keine Trackbacks

C/C++ und Debugging

Angelegt von Andreas Steinel Thu, 08 Nov 2007 00:18:00 GMT

Da ich seit einigen Wochen wieder etwas in die C/C++-Programmierung unter Linux/FreeBSD eingestiegen bin traf mich wiedereinmal der Schlag – oder besser – der SegFault. Einige Interessante Links zu Programmen, Tipps und Erkenntnisse im Überblick:

  • Linux und FreeBSD lassen Threads unterschiedlich abstürzen: FreeBSD killt den ganzen Prozess, Linux hingegen nur den Thread. Somit kann man prima den Mutterthread aushungern lassen, wenn er auf den Thread wartet.
  • Man sollte immer assert verwenden um Constraints zu prüfen, das erspart eine Menge Debugarbeit
  • const ist immer dein Freund (weiterlesen)
  • Memory Leaks kann man prima mit valgrind aufspüren, man muss sie dann nurnoch verstehen :-p
  • An Codingstandards sollte man sich halten um einem selbst und vorallem anderen (auch dem älteren ich) das Leben nicht unnötig schwer zu machen.
  • Ein Blick in die C++-Programming-FAQ ist oft hilfreich.
  • Ein Blick in ein C++-Buch eröffnet einen immer wieder neue Welten – valgrind dankt – denn mit new [] instanzierte Objekte wollen mit delete [] gelöscht werden.
  • Es gibt nix schöneres als ein abort mit glibc-error mit Stack Corruption und gdb kannt nicht mehr weiterhelfen (Hier hilft eigentlich immer valgrind)
  • printf’s Parameter auf einen Blick

Posted in , ,  | keine Kommentare | keine Trackbacks

Wiedergutmachung

Angelegt von Andreas Steinel Tue, 06 Nov 2007 14:16:00 GMT

Da ich nach dem gestrigen Schrecken etwas aufbauendes brauchte, kaufte ich heute zum ersten Mal ein Elektrogerät bei Aldi. Der Tipp kam übrigends von einem Bekannten:

Ein nagelneuer HP Colorlaserjet 2600nse mit Netzwerkanschluß. Das Gerät kostete knapp 240 Euro, was laut diversen Preissuchmaschinen mit 10 Euro noch unter dem günstigen Anbieter liegt. Das Gerät ist schwer, groß und macht einen soliden Eindruck. Die Druckqualität in Orndung, jedoch gibt es pro Farbe einen extra Toner (insg. 4), welche mit knapp 40 Euro pro Stück zu Buche schlagen. Die Füllmenge reicht laut Hersteller für ca. 2500 Seiten. Ich bin mal gespannt.

Der Drucker wurde ins Netzwerk integriert und CUPS kann auf ihm drucken.

Posted in ,  | keine Kommentare | keine Trackbacks

SegFaults

Angelegt von Andreas Steinel Fri, 19 Oct 2007 11:28:00 GMT

Hier ein Beispielcode um einen SegFault unter Linux/Unix abzufangen. Mich hat es interessiert, ob soetwas möglich ist und ja es ist möglich:

#include <signal.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

void sig_handler(int sig)
{
     printf("Signal %i occured ... exiting\n", sig);
     exit(0);
}

int main()
{   
    struct sigaction act;
    memset(&act, 0, sizeof(act));
    act.sa_handler = sig_handler;       // define signal handler
    act.sa_flags   = SA_RESETHAND;      // reset to default after execution

    sigaction(SIGSEGV, &act, NULL);     // register signal handler

    printf("%s\n",0x001);               // produce segfault
    return 0;
}

Posted in , ,  | keine Kommentare | keine Trackbacks

Internet-Radio

Angelegt von Andreas Steinel Thu, 18 Oct 2007 11:07:00 GMT

Ich habe gestern – mehr aus Zufall heraus – die Sendung “SternTV” auf RTL gesehen, bei der es um Filesharing und vorallem um legalen Download von Musik aus dem Internet ging. Der legale weg sei Rippen von Internetradio, da dort die Abgaben an Künstler über die GEMA bereits enthalten wäre. Es wurde auf folgenden Internetartikel verwiesen.

Natürlich gibts auch einen Weg für Linux/Unix mit dem man Internetradio direkt mitschneiden kann. Hierfür kann man z.B. KStreamRipper verwenden. Die Radiolisten bekommt man bequem von der oben genannten Seite oder direkt von Shoutcast.

Nun steht dem legalen Downloaden von Musik nichts mehr im Wege.

Posted in ,  | keine Kommentare | keine Trackbacks

NVidia und TV-Out

Angelegt von Andreas Steinel Wed, 17 Oct 2007 22:01:00 GMT

Mit folgendem Eintrag in die Device-Section der xorg.conf kann man die Konfiguration von X zur Laufzeit mit dem Programm nvidia-settings ändern und z.B. den TV-Out an und ausschalten.

Option "DynamicTwinView""true"

Getestet mit Ubuntu 7.10

Posted in  | keine Kommentare | keine Trackbacks

Vergleich freier virtueller Maschinen

Angelegt von Andreas Steinel Tue, 16 Oct 2007 14:01:00 GMT

Ich wollte herausfinden, welche virtuelle Maschine unter Linux am schnellsten ist und wie komfortabel man sie bedienen kann.

Zur Auswahl stehen drei freie Virtualisierungslösungen (VL):

Bridging-Problem: Nur VMWare kann out-of-the-box bridging. Bei beiden alternativen VL muss man selbst Hand anlegen und bridging über die bridgetools und das TAP-Interface selbst erstellen (z.b. QEmu, Virtual Box)

Geschwindigkeitsvergleich auf Basis des Programmes MiniBench und den Tests Whetstone und Dhrystone. Desweiteren versuche ich einen objektiven Eindruck der Bedienbarkeit der GUI zu vermitteln. Der Benchmark wurde unter Windows 2000 Professional mit SP4 und aller weiterer Updates durchgeführt. Die jeweiligen VM-Additions wurden installiert – Gast-System-Treiber – (QEmu hat so weit ich weiß keine).

  QEmu Virtual Box VMWare Player
Dhrystone 2238.81 2327.84 960.00
Whetstone 1692.05 1742.16 705.88
GUI langsam schnell schnell

Ich kann mir nicht erklären, warum VMWare so schlechte Benchmarkergebnisse hat. Es fühlt sich mit VirtualBox im Gegensatz zu QEMu sehr flüssig an. Die GUI-Geschwindigkeit lässt sich wohl auf die Fehlenden VM Additions zurückführen.

Man sollte noch erwähnen, daß VirtualBox im Vergleich zu VMWare Player klar gewinnt, da VMWare Player nur vorgefertige VMen abspielen kann. Grundsätzlich kann man diese Images auch verändern und selbst erstellen, aber nur mit extra Programmen wie dem VMManager. Desweiteren kenne ich keine Möglichkeit im VMWare Player zu Laufzeit CD-Images zu wechseln. Dies ist bei VirtualBox wesentlich einfacher …. ja sogar QEmu kann dies.

Wobei das wirklich ein Problem des VMWare Player ist, VMWare Workstation kann dies natürlich alles, ist jedoch nicht kostenlos.

Fazit: Wenn man nur vorgefertige Images verwenden möchte ist man mit dem VMWare Player gut bedient. Für anspruchsvollere Benutzer istVirtualBox sehr zu empfehlen. QEmu ist auch eine Alternative aber bleibt momentan hinter den beiden anderen VL wegen fehlender Treiber für die VM zurück.

QEmu ist jedoch für die meisten Nicht-Linux/Nicht-Windows-Systeme die einzige schnelle Möglichkeit andere Betriebssysteme zu Emulieren.

Posted in  | keine Kommentare | keine Trackbacks