Category Archives: Uncategorized

Microsoft Visual C++ 6 und CMake

Warum man eine steinalte Entwicklungsumgebung mit einem modernen Build-System zusammen benutzen will, lässt sich nicht nur mit »Weil es geht!« begründen, es gibt sogar handfeste Argumente dafür, doch der Reihe nach.

Aus Gründen hab ich hier einige MFC-Projekte vorliegen, die in Visual Studio 6 entwickelt wurden, für das hier auch eine gültige Enterprise-Lizenz existiert. Bekommen habe ich Quellcode eines älteren Projekts ohne die Projektdateien. Neu zu entwickeln ist ein vergleichbares Programm und da Entwicklungsumgebung und KnowHow verfügbar sind, wird das neue Projekt eben auch in Visual Studio 6 entwickelt, die Programme laufen ja trotzdem.

Mit CMake füge ich dem Quellcode jetzt einfach die passenden Dateien mit dem Namen “CMakeList.txt” hinzu und lasse mir von CMake ein Projekt für VS6 erzeugen. Vorteil: ich brauche keine Projektdateien im Versionsverwaltungssystem ablegen, kann mir das auschecken wohin ich will und mein Quellcodebaum enthält nur das nötigste. De facto war ich so sogar in der Lage, das alte Projekt, wo mir die Projektdateien fehlten, mit CMake zu bauen und dem auf die Finger zu gucken. Soviel zum »warum«, es folgt jetzt das »wie« …

Zunächst mal sei gesagt, wenn schon Visual Studio 6, dann auch das letzte Service Pack installieren. Ist ein FAQ1 und das Service Pack gibt’s bei Microsoft.

Da ich hier eine MFC-Anwendung entwickeln will, also ein Tool mit GUI, reicht mir der reine Code nicht aus, sondern ist sind noch ressource files nötig. Bevor ich also später die Projektdateien mit CMake generieren lasse, erzeuge ich mit dem Assistenten von Visual Studio ein neues MFC-Projekt, in meinem Fall »Dialogfeldbasierend«:

MFC-Anwendungs-Assistent Dialogfeldbasierend

Den Rest des Assistenten klickt man nach eigenen Vorstellungen durch und dann kann man Visual Studio erstmal wieder schließen. Man hat jetzt einen Ordner vorliegen, in dem folgende Dateien liegen:

von VS6 erzeugte Dateien für ein neues MFC-Projekt

Davon kopieren wir jetzt den Ordner res und folgende Dateien an einen neuen Ort:

  • foo.aps
  • foo.clw
  • foo.cpp
  • foo.h
  • foo.rc
  • fooDlg.cpp
  • fooDlg.h
  • Resource.h
  • StdAfx.cpp
  • StdAfx.h

Das ist jetzt unser neuer Source-Ordner und dort wird nun eine Datei namens CMakeLists.txt angelegt. Fortgeschrittene CMake-Nutzer können das auch auf getrennte Unterordner für Programmcode, Header und externe Ressourcen aufteilen, spar ich mir hier mal und zeige nur wie das mit einer einzigen CMakeLists.txt aussehen kann:

project(foo)
cmake_minimum_required(VERSION 2.8)

find_package(MFC)

set(FOO-H
    foo.h
    fooDlg.h
    Resource.h
    StdAfx.h
)

set(FOO-RC
    foo.rc
)

set(FOO-SRC
    foo.cpp
    fooDlg.cpp
    StdAfx.cpp
)

add_definitions(-D_AFXDLL)
set(CMAKE_MFC_FLAG 2)
add_executable(${PROJECT_NAME} WIN32
    ${FOO-H}
    ${FOO-RC}
    ${FOO-SRC}
)

install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX})

Zu set(CMAKE_MFC_FLAG 2) bitte nochmal selbständig die Doku lesen und nicht verwirren lassen, die dort gezeigten Code-Abschnitte sind aus älteren Versionen vom Installer von CMake selbst kopiert. Wie eingangs angedeutet, machen wir jetzt einen Build außerhalb des Source-Verzeichnisses und rufen dazu das CMake-GUI auf:

CMake GUI für unser Mini-Projekt

Nach einem Klick auf Configure wird man nach dem Generator gefragt. Dort wählt man Visual Studio 6 aus der Liste und bestätigt. Ein weiterer Klick auf Generate erzeugt dann die Projektdateien im zuvor eingestellten Build-Ordner, alles oben im Screenshot zu sehen. Mit einem Doppelklick auf die Datei foo.dsw öffnet sich dann Visual Studio und man kann sein Projekt bauen. Schick auch, dass es gleich ein Unterprojekt gibt, was einem die Anwendung installiert. Theoretisch gibt’s auch noch CPack, womit man sich dann noch gleich einen Installer backen kann, aber das würde jetzt hier zu weit führen. ;-)

das von CMake erzeugte VC6-Projekt

Wenn das alles soweit schön kompiliert, kann man den Source-Ordner so nehmen wie er ist und in das Versionsverwaltungssystem seiner Wahl packen. Projektdateien für Visual Studio generiert sich dann jeder Entwickler selbst mit CMake. Bisschen umständlich ist das später beim Hinzufügen von neuen Dateien ins Projekt, weil man die CMakeLists.txt parallel pflegen muss, aber das ist es meiner Meinung nach wert.

  1. Visual Studio 6 Compiler : Freezing CMake Configuration []

Deactivate Nautilus automount in KDE

Auf meinem Laptop (Samsung NC10) läuft zu meiner vollen Zufriedenheit ein Debian Squeeze mit KDE. Seit einiger Zeit wurde beim Anstecken externer Datenträger (USB-Stick, SD-Karte, …) derselbe automatisch gemountet und es wurde Nautilus geöffnet, der Dateimanager von Gnome. Dieses Verhalten hat mich ziemlich genervt, weil ich a) selbst entscheiden möchte, ob ich was mounten will oder nicht, so wie das bei KDE auch default ist und weil b) ein Dateimanager geöffnet wird, den ich eigentlich gar nicht benutze (bzw. benutzen will).

Bei der Recherche im Netz stieß ich auch folgenden Foreneintrag: newly installed KDE: don’t want Nautilus window when USB memory inserted. Die dort beschriebene Lösung funktioniert im Prinzip, nur halt wie dort bereits erwähnt, nicht genau so.

Ich habe dann das Paket gconf-editor installiert und den entsprechenden Editor gestartet. Die Keys hatten sich tatsächlich geändert, aber waren auffindbar:

Ich habe die Haken bei den Keys media_automount und media_automount_open entfernt und damit das von mir gewünschte Verhalten wieder hergestellt. :-)

Farbige, seitenweise Diffs mit Mercurial

Bei der Mitarbeit an verschiedenen Projekten ist man heutzutage beinahe schon gezwungen sich mit verschiedenen Versionsverwaltungssystemen auseinanderzusetzen. Ich selbst benutze am liebsten Mercurial, aber es gibt auch Projekte, wo Git oder Subversion benutzt werden. Alle haben ihre Vor- und Nachteile aber so gewisse Dinge, die das eine per default macht, hätte man gern auch im anderen und bei einigen Dingen bekommt man das sogar hin.

Ein wirklich praktisches Feature von Git ist beispielsweise, dass es bei einem `git diff` den Output farbig und im Pager darstellt. Um dieses Verhalten in Subversion nutzen zu können, kann man ein externes Skript nutzen, das ich letztens im Netz gefunden habe: Color highlighted diffs with git, svn and cvs. Für Mercurial hab ich mich gerade nochmal selbst auf die Suche gemacht und folgende Lösung gefunden:

Im Grunde muss man nur die beiden Erweiterungen color und pager aktivieren und konfigurieren. Das sieht bei mir in der ~/.hgrc jetzt wie folgt aus:

[extensions]
color =
pager =

[pager]
pager = LESS='FSRX' less

Die Aktivierung der Extensions ist selbsterklärend, die Optionen habe ich so von der Wikiseite zur pager-Extension übernommen bzw. über `man less` nochmal nachgelesen. Wichtig hier ist auf jeden Fall das ‘R’, damit die Farbcodes von less auch interpretriert werden.

Debian Squeeze Release Kuchen

Debian Squeeze ist veröffentlicht worden und zur Feier des Tages hab ich mal einen Kuchen mit Debian-Logo gebacken:

img_2503

Okay, war schon letztes Wochenende und ich war bisschen enttäuscht, dass niemand auf der Geburtstagsparty einer guten Freundin das Debian-Logo erkannt hat, aber der Kuchen war lecker und Debian rockt einfach und ist es wert mit Kuchen gefeiert zu werden!

IPv6 in Debian und Ubuntu deaktivieren

In Netzen, wo jemand anderes Admin ist, kann man sich nicht alles aussuchen, unter anderem nicht, wann auf IPv6 umgestellt wird. In einem speziellen Netz, bekam ich kürzlich die Bitte IPv6 bis auf weiteres zu deaktivieren. Was bei Windows XP ein Häkchen ist, erfordert unter Debian und Ubuntu je nach Version unterschiedliche Schritte. Die Informationen dazu im Netz sind vielfältig und widersprüchlich, daher hier nochmal meine Lösungen. Ob das jeweils geklappt hat, kann man mit `ifconfig` oder `ip addr show` überprüfen, auch ein `netstat -lt` sollte dann keine Dienste mehr zeigen, die auf IPv6 lauschen.

Debian 5.0 Lenny

‘ipv6’ ist hier noch ein Kernelmodul, es genügt ein Eintrag in der Datei /etc/modprobe.d/blacklist – vorausgesetzt, man verwendet den Distributionskernel 2.6.26, bei einem neueren Kernel aus den Backports sieht das ggf. schon aus wie bei Squeeze, hab ich jetzt hier nicht extra geprüft.

# ipv6
blacklist ipv6

Debian 6.0 Squeeze

IPv6 ist hier direkt in den Kernel kompiliert. Es kann über sysctl deaktiviert werden. Laut /etc/sysctl.d/README.sysctl trägt man das am besten in /etc/sysctl.d/local.conf ein. Der Eintrag lautet wie folgt:

net.ipv6.conf.all.disable_ipv6=1

Ubuntu 10.04 Lucid

Hier verhält es sich ähnlich wie bei Debian Squeeze. Allein die Datei in /etc/sysctl.d bekommt hier einen anderen Namen. Laut /etc/sysctl.d/README soll sie so heißen:

End-users can use 60-*.conf and above

Ich hab die Datei 60-disableipv6.conf genannt, der Inhalt ist ebenso:

net.ipv6.conf.all.disable_ipv6=1

Seltsame Suchbegriffe

Im Gegensatz zu anderen Blogs stolpern die meisten Leute hier mit eher gewöhnlichen Suchbegriffen rein. Da wollen die Leute wissen, bei man bei Subversion zu einer früheren Revision zurückkehrt, mit Perl Passwörter generiert oder haben irgendein Problem mit Grub 2 unter Debian. Die meisten Besucher dieses Blogs scheinen tatsächlich über Google her zu finden. Die wenigsten hinterlassen Kommentare, aber wir bilden uns einfach ein, unsere Beiträge wären hilfreich. ;-)

Manchmal sind aber auch Perlen unter den Suchanfragen, wo ich mir ein Grinsen nicht verkneifen kann. Die schönsten aus dem vergangenen Jahr sind nun hier gesammelt und kommentiert, viel Vergnügen.

13.5.2009 – 10:38 Yahoo: programmieren pferd unicode

Ich will nicht sagen, dass mich täglich beschäftigt, was derjenige finden wollte, aber jedesmal wenn ich den Entwurf für den Beitrag aufgemacht habe, rollte so ein WTF vor meinem inneren Auge vorbei. Ich versteh’s nicht. Was macht das Pferd in dieser Suchanfrage?

27.7.2009 – 20:44: welches dev hat lvm unter eisfair

Oh das ist leicht zu beantworten, nein warte … ganz so leicht dann doch nicht. Bei LVM unterscheidet man ja die Physical Volumes von den Volume Groups und von den Logical Volumes. Da gibt es also mindestens zwei in Frage kommende Devices, die von der Partition, die nachher als Physical Volume in die Volume Group gehängt wird und jedes Logical Volume bekommt auch noch mal ein Device. Wenn das so ist, verweigere ich die Aussage.

30.07.2009 – 14:24 Google: Beheben ließ sich das in meiner Debian-Installation dann einfach durch die Installation der Pakete firmware-ipw2×00 und firmware-linux.

Das kuriose an dieser Suchanfrage: da schreibt jemand einen ganzen Satz, der exakt so lautet, wie der, den ich in meinem Beitrag geschrieben habe. Also ich such mich nicht selbst auf diese Weise. Wieso tut man sowas?

02.08.2009 – 20:24 Google: eisfair web konfiguration

Vielleicht hätte ich den Beitrag wie Andreas Your Questions Answered nennen sollen. Um auf die Frage zurückzukommen: ein Webinterface für die Konfiguration gibt es bei eisfair nicht und es ist auch kurzfristig keins geplant. Wenn es eins geben sollte, müsste das kompatibel zur Konfiguration auf der Konsole1 sein, was erstmal grundlegende Umbauten auf noch tieferen Ebenen erfordern würde. Kurz und gut: gibt’s nicht und hat im eisfair-Team auch keine Priorität.

11.11.2009 – 09:10 Google: C Platte wird beim Hochfahren immer auf Resistenz geprüft warum?

Resistenz? Wogegen? Viren etwa? Das kann einem natürlich leicht passieren, wenn man ein Betriebssystem benutzt, dass seine Partitionen mit C, D, E usw. bezeichnet. *fg*

05.12.2009 – 22:15 Google: warum ist ein multimessenger mehr hackbar als die normalen?

Mehr Angriffsvektoren, weil mehr Protokolle mit mehr potentiellen Lücken? Aber wer da Bedenken hat: es gibt ja zum Glück auch reine Jabber-Clients. :D

09.03.2010 – 20:31 T-Online: was ist wenn bei gmx ich keine neuen nachrichte sehen kann?

Du hast keine Freunde! :P

23.04.2010 – 06:31 Google: bin ich online zu sehen wenn ich mich bei gmx einlogge?

Im Prinzip ja. ;)

17.05.2010 – 14:51 Google: www auweia keys

Je länger ich darüber nachdenke, was hier wohl gesucht wurde, desto eher kommt mir ein gewisses Pferd in den Sinn …

07.06.2010 – 01:03 Google: wordpress passwort generator knacken

Da, da habt Ihr’s. Die Leute suchen danach, wie sie die Keys knacken können, die von dem WordPress Passwort Generator ausgespuckt werden. Lieber selbst generieren, beispielsweise unter Debian/Ubuntu mit dem Programmpaket pwgen oder eben noch besser selbst schreiben so ein Programm.

25.06.2010 – 08:00 Google: utf-8 funktioniert nicht

Tut es wohl!!1elf! :P

14.07.2010 – 22:53 Google: gegenteil generator

Den hätte ich auch gern. Aktuell bitte um mir das Gegenteil von Müdigkeit zu generieren, oder das Gegenteil von Dauerhitze oder das Gegenteil von …

  1. die übrigens kinderleicht ist, wenn man mal über seinen Klickibuntischatten springt []

HowTo: Syntaxhighlighting für Graphviz in Notepad++

Für die 8 Stunden am Tag, wo ich gezwungen bin, Windows zu benutzen, ist Notepad++ der Editor meiner Wahl. Eingebaut ist Syntaxhighlighting für eine ganze Reihe von Programmiersprachen, zum Teil auch recht exotische Sachen, aber natürlich nicht alles, was irgendwie möglich ist. Ein derartiger Fall ist Graphviz, die bekannte Software zur Visualisierung von Graphen. Ich benutze das hier um Zustandsmaschinen zu visualisieren. Die Dateien schreibe ich manuell, was zwar bisschen Arbeit macht, aber Änderungen sind doch deutlich schneller einzupflegen als wenn ich das beispielsweise in Inkscape zeichnen würde.

Vor ein paar Wochen hatte ich mal unmotiviert im Netz recherchiert, wie es mit Syntaxhighlighting für Graphviz in Notepad++ aussieht, kurz und gut: schlecht. Allerdings hat der Editor eine interessante Funktion, mit der man sich schnell selbst ein rudimentäres Syntaxhighlighting zusammenklicken kann. Einfach im Menü auf Ansicht und dann Benutzerdefinierte Sprache …1 klicken. Da öffnet sich ein Fenster, wo man dann erstmal auf »Neue erstellen« klickt. Für die Einstellungen, die ich jetzt für Graphviz gemacht habe, hab ich mal ein paar Screenshots angelegt:

Auf dem vierten Screenshot sieht man bereits das Endergebnis. So ganz perfekt ist es nicht. Folding funktioniert nicht und die Marker für Kommentarblöcke müssen zwingend von Leerzeichen umschlossen sein, damit der Block erkannt wird. Ansonsten bin ich ganz zufrieden, besser als völlig ohne ist es allemal.

Wer sich das nicht selbst zusammenklicken will, kann auch die Datei userDefineLang.xml von hier laden. In dieser speichert Notepad++ diese Einstellungen nämlich und zwar unter Windows XP im Pfad C:\Dokumente und Einstellungen\adahl\Anwendungsdaten\Notepad++2

Achtung: Wenn Ihr selbst schon eigene Einstellungen für andere Sprachen definiert habt, nicht einfach überschreiben, damit die alten Sachen nicht verloren geben! Aber die Datei ist XML, da sollte man sich leicht den passenden Teil rausziehen können.

  1. bzw. View und dann User Define Dialog… []
  2. Pfad natürlich an lokale Gegebenheiten anpassen! []

Gebrauchte Daten kaufen

In den letzten Wochen habe ich für dienstliche Zwecke vier alte Speicherkarten vom Typ MMC gebraucht bei der elektronischen Bucht erstanden. Auf allen vieren waren noch Daten drauf. Sicher, die waren frisch formatiert, aber alle nur im Schnelldurchlauf. Neues Dateisystem anlegen und fertig. Kein einziger der Verkäufer hielt es für notwendig, wirklich alle Daten zu löschen.

Ich bin nun kein Forensiker und meine Zeit für solchen Spielkram ist begrenzt. Aber da ich den coolen Hex-Editor Bless sowieso installiert und Images der Karten angelegt hatte, um Partitionstabellen und Volume Boot Records zu untersuchen, hab ich natürlich noch kurz weiter über die Dumps geschaut. Beim wirklich nur flüchtigen drüber Gucken habe ich Kartendaten für ein Navigationsgerät, Musikdateien im mp3-Format und Tabellen mit Adressen von Ärzten1 gefunden. Gerade bei letzterem handelt es sich um sensible Daten, die man vermutlich nicht wissentlich weitergegeben hat. Da rollen sich mir ja dann schon die Fußnägel hoch.

Damit die ganze Aufregung hier nicht umsonst ist, noch ein kleiner Tipp, wie man hier zwei Fliegen mit einer Klappe schlagen kann. Man benutzt einfach das Tool badblocks unter Linux im Schreibmodus. Vorsicht ist angebracht, mit Datenträgern, die man noch braucht, wenn aber wirklich alles gelöscht werden kann, dann hier der Auszug aus der manpage mit der passenden Option:

-w Use write-mode test. With this option, badblocks scans for bad blocks by writing some patterns (0xaa, 0x55, 0xff, 0x00) on every block of the device, reading every block and comparing the contents.

Das Programm schreibt also bestimmte Muster auf die Karte und liest diese dann nochmal zurück und zwar für jeden einzelnen Block. Wenn Fehler dabei auftreten, werden die gemeldet und man kann den Datenträger wegwerfen. Wenn keine Fehler auftreten, kann man die Karte ruhigen Gewissens verkaufen und sicher sein, dass ausschließlich Nullen drauf stehen.

Ganz wichtig: damit das funktioniert, führt man badblocks mit root-Rechten aus und lässt es auf das ganze Device los. Da muss man vorher das passende rausfinden und 100% (und kein µ weniger) sicher sein, dass man das richtige erwischt hat. Wenn noch ein Filesystem auf der Karte ist, einfach mounten und mit mount nach dem Device gucken. Oder mit dmesg anzeigen lassen, wie die Karte beim Anstecken erkannt wurde. Oder aus /proc/partitions das Device mit der passenden Größe ablesen. Oder am besten alle Möglichkeiten zusammen. Der fertige Befehl in meinem Fall hier und heute:

badblocks -sw /dev/sde

Falls man nun gerade kein Linux zur Hand hat, bitte in Windows beim Formatieren unbedingt vermeiden die »Schnellformatierung« zu aktivieren. Oder am besten nach der Formatierung nochmal das Programm h2testw der c’t drüber laufen und Daten schreiben lassen, damit wenigstens die Adressdaten der Homöopathen verschwinden. Nicht dass die am Ende noch wer aufsucht, oder vermöbelt oder potenziert oder so …

Ach ja und abgesehen vom Verkaufen von alten Datenträgern: die erwähnten Programme sollte man auch auf jeden frisch neu erworbenen Datenträger loslassen, um sicherzugehen, dass der auch funktioniert. Ist mir nämlich in den letzten Wochen mit einer neuen Festplatte und einem neuen USB-Stick passiert, dass die gleich vom Start weg defekt waren und umgetauscht werden mussten.

  1. und Homöopathen, man beachte die Unterscheidung … ;) []

Logitech-HID mit Debian Sid

Nutzer der Unstable-Variante von Debian (auch als Debian Sid bekannt) bekommen ja bekanntlich regelmäßig Gratisabenteuer aus dem Bereich der Systemadimistration geschenkt; sozusagen ein Quest-Abo.

Problem des Tages: Einen Systemstart nach dem letzten Update funktionierten Bluetooth-Tastatur und -Maus von Logitech nicht mehr, in meinem Fall konkret das Dinovo-Set.

Ich habe häufiger Ärger mit Logitech unter Linux, meistens ließ sich das aber mit einem Reset des Bluetooth-Dongles1 beheben. Dieses Mal nicht, der Fehler war persistent.
dmesg, logs und Modulliste waren soweit korrekt, es war alles da, was für die Geräte gebraucht würde und es wurde laut lsusb auch alles erkannt. Nur funktionierte einfach nichts. $SUCHMASCHINE lieferte dafür auch keine weiteren Ergebnisse.

Letztendlich habe ich das Problem in den udev-Regeln2, speziell der Datei 70-hid2hci.rules gefunden. Dort steht in Zeile 15:

RUN+="hid2hci --method=logitech-hid --devpath=%p"

Ein kurzer Blick auf die Manpage zeigt, dass der Aufruf nicht korrekt ist. Ich habe die Zeile so abgeändert:

RUN+="hid2hci --method=logitech --mode=hid --devpath=%p"

Seit dem funktionieren Tastatur und Maus wieder einwandfrei.

Die Regel deckt einen großen Bereich von Logitech-Produkten ab, das Problem tritt also wohl auch dort auf. Debian-Bugreport kommt dann später noch.

  1. Abziehen und wieder dranstecken. ;) []
  2. zu finden unter /lib/udev/rules.d/ []

Zurück im Jahr 2000 mit fli4l

Ich befinde mich gerade auf den Chemnitzer Linux-Tagen 2010 am Stand von eisfair und fli4l. Unser überaus schicker Standrouter1 ist ein sogenanntes WRAP Board, also schon bisschen abgehangen. Der Hersteller hat hier leider keine Pufferbatterie für die RTC vorgesehen, so dass die Uhr nach jedem Stromausfall am 1.1.2000 um 0:00 (UTC) losläuft.

Nun läuft selbstverständlich fli4l (in der aktuellen Version 3.4.0) auf der Kiste und dort gibt es das Paket (bei fli4l traditionell opt genannt) chrony, was eben chrony bereitstellt, einen kleinen Dienst um die Zeit über NTP abzugleichen. Den Sprung von 2000 auf 2010 möchte der aber nicht automatisch abgleichen, so dass hier ein manueller Eingriff erforderlich ist. Die nötige Prozedur ist leider nicht ganz selbsterklärend, daher hier das kurze HowTo, wie man dort vorgehen kann.

Schritt 1: Den chronyd mit den richtigen Optionen neu starten. Per default wird dort bloß -r gesetzt. Die Option -s erlaubt auch das Setzen der RTC über chrony. Also erstmal per ssh einloggen. Dann:

killall chronyd
chronyd -r -s

Schritt 2: Beim chronyd einloggen. Dazu gibt man auf der Shell einfach chronyc ein. Per default darf man dann erstmal fast nichts, aber man kann das vom Paketmaintainer hinterlegte Passwort eingeben, um mehr Rechte zu erlangen. Bitte wie folgt eingeben:

chronyc
password dummy

Schritt 3: Die Zeit setzen. Dazu erlaubt man sich das zunächst mal mit dem Befehl manual, dann setzt man die Zeit und dann sagt man ihm noch, dass er das auch der RTC verklickern soll. Beim Setzen der Zeit reicht es das auf eine Minute genau zu machen, den Rest erledigt chrony später ganz normal per NTP.

manual on
settime 2010-03-14 08:55

Bei der Eingabe von settime springt die von chronyd erzeugte CPU-Last auf über 90%. Nach einem weiteren Neustart von chronyd, ist die Zeit gesetzt, ich kann nicht sagen warum, aber der pragmatische Ansatz funktioniert hier. Also:

killall chronyd
chronyd -r -s

Jetzt passt schonmal die Systemzeit, ein rtcdata im chronyc zeigt aber noch die alte Zeit der RTC. Also führt man hier nochmal ein trimrtc aus. Die Änderung braucht ein paar Minuten um übernommen zu werden, das geschieht aber dann automatisch.

So, und jetzt wo die Zeit vom Messerouter richtig eingestellt ist, freuen wir uns auf den zweiten Tag hier. Gestern war es schon gut besucht und es waren viele freundliche Interessenten am Stand. Der Sonntag Morgen läuft etwas ruhiger an, da könnte man eigentlich nochmal einen Kaffee trinken …

Update: die so gesetzte Uhrzeit übersteht auch einen Soft Reboot. D.h. wenn man das WRAP hinter eine USV hängt, braucht man die ganze Prozedur nur einmal auszuführen! ;-)

  1. wo alle Besucher nur fragen, wo man die Hardware kaufen kann []