Baikal CalDAV: Wenn sich ein Kalender nicht synchronisiert

Vor kurzem habe ich bei der Baikal CalDAV Installation auf einem meiner Raspberry PIs einen Fehler festgestellt. Ein selten benutzter Kalender nahm zwar von allen Geräten (MacBook, iPad, iPhone) neue Termine klaglos an, aber die Synchronisation zwischen den Geräten funktionierte scheinbar überhaupt nicht. Alle anderen auf dem gleichen Account laufenden Kalender synchronisierten sich jedoch klaglos.

Der Übeltäter war wohl ein nicht ganz korrekt durchgelaufenes Update auf die neues Baikal Version. In der zum besagten Kalender gehörenden Zeile in der SQLite Tabelle Calendars war kein Wert für „synctoken“ eingetragen.

Eigentlich ist der Token für die Synchronisation eine einfache Zahl (Integer). Bei einer Änderung der Daten im Kalender wird der synctoken um eins erhöht. Jeder Client braucht dann nur seinen lokalen Token mit dem des Servers zu vergleichen und sieht sofort, ob es eine Änderung gegeben hat (ohne dafür jedes Mal alle Einträge des Kalenders vergleichen zu müssen). Wenn es also keinen eingetragenen Synctoken gibt, kann es auch mit der Synchronisation nicht klappen. Daher musste für die Fehlerbehebung einfach nur eine „1“ als Wert für synctoken eingetragen werden.

  1. Auf dem Baikal Server „sqlite3“ als Admin starten:
    sudo sqlite3
  2. Die Datenbank von Baikal laden (ggf. den Pfad anpassen!) (Befehl mit Enter absenden):
    .open /usr/share/nginx/www/baikal/Specific/db/db.sqlite
  3. Datenbankinhalt der Tabelle „calendars“ ausgeben lassen (Befehl mit Enter absenden):
    SELECT * FROM calendars;
  4. Der Anfang der Ausgabe für jeden Kalender sieht so ähnlich aus:
    ID|principals/BENUTZERNAME|KALENDERNAME|KALENDERID|SYNCTOKEN|KALENDERBESCHREIBUNG|2|#FARBCODE|BEGIN:VCALENDAR

    Wenn an der Stelle SYNCTOKEN keine Zahl steht, sondern einfach zwei Striche (Pipe-Symbole) mit oder ohne Leerzeichen nacheinander kommen, dann ist der synctoken für diesen Kalender nicht gesetzt. Die ID (ganz vorne in der Zeile) für diesen Kalender merken.

  5. Synctoken manuell setzen (Befehl mit Ender absenden):
    UPDATE calendars SET synctoken = 1 WHERE id = ID;

    Bei diesem Befehl bitte das groß geschriebene ID am Ende durch die in Schritt 4 gemerkte Zahl (ID) ersetzen.

  6. sqlite3 beenden (Befehl mit Ender absenden):
    .exit

Jetzt sollte auch dieser Kalender korrekt zwischen allen Geräten synchronisiert werden.

MediathekView 12@Mac OS X: „Kann nicht geöffnet werden“

Wer von einer älteren Version von MediathekView auf die gerade aktuelle Version 12 wechselt, wird beim Versuch die neue Version zu starten, eventuell von einer Fehlermeldung begrüßt. Diese besagt, dass MediathekView nicht geöffnet werden könnte. Zum Glück lässt sich dieses Problem jedoch relativ einfach umgehen:

  1. Den Finder aufrufen und dort in den Ordner „Programme“ wechseln.
  2. Die „MediathekView.app“ auswählen, dann Enter drücken und die Datei zum Beispiel in „MediathekView12.app“ umbenennen.
  3. Jetzt versuchen, die „MediathekView12.app“ mit Doppelklick zu öffnen.
  4. Das Öffnen sollte mit einem Warndialog, das es sich nicht um eine App aus dem Mac App Store oder einen verifizierten Entwickler handelt,  verweigert werden.
  5. Nun die „Systemeinstellungen“ aufrufen und dort den Punkt „Sicherheit“ auswählen.
  6. Im Tab „Allgemein“ sollte unten stehen, dass das Öffnen von MediathekView12.app blockiert wurde und ein Button „Dennoch öffnen“ auftauchen. Diesen anklicken.
  7. Kurz warten bis MediathekView startet und dann schließen.
  8. Zum Schluss wieder in den Ordner „Programme“ im Finder wechseln und „MediathekView12.app“ in „MediathekView.app“ umbenennen (oder einfach den alternativen Namen beibehalten).

Nach diesen Änderungen sollte MediathekView wieder wie gewohnt starten.

Die jeweils aktuelle Version von MediathekView kann unter den folgenden beiden Links heruntergeladen werden:

Nachdem der Entwickler des Programms kürzlich sein Engagement einstellte, hat sich nun ein Projektteam für die Weiterführung gefunden. MediathekView wird uns daher zum Glück erhalten bleiben und auch weiterhin mit aktuellen Programmlisten versorgt werden. Wer die Entwickler bei ihrer Arbeit unterstützen möchte, findet auf den verlinkten Seiten entsprechende Spendenmöglichkeiten.

HP EliteBook Folio G1 – Teil 3: Docking Station unter Linux

Beim HP EliteBook Folio G1 gestaltet es sich unter GNU/Linux, trotz oder gerade wegen Thunderbolt 3 fähigen USB-C-Anschlüssen, nicht gerade leicht, eine funktionierende Docking Station Lösung zu finden.

HP selber bietet zwei Dockingstationen an, die über USB-C bzw. USB-C-Thunderbolt 3 angeschlossen werden. Beide funktionieren unter Linux nur theoretisch, haben praktisch aber keinen großen Nutzen.

  1. HP Elite USB-C Docking Station
    Diese Docking-Station verfügt über USB-C Power Delivery, 1 x HDMI, 1 x DisplayPort, 1 x Audio, 1 x Ethernet, 4 x USB.
    Unter Linux funktioniert: USB-C Power Delivery und USB
    Unter Linux funktioniert nicht: HDMI und DisplayPort (beide nutzen DisplayLink und nicht Alternate DisplayMode)
    Unter Linux nicht getestet: Ethernet und Audio
  2. HP Elite Thunderbolt 3 Docking Station
    Diese Docking-Station verfügt über USB-C Power Delivery, 2 x DisplayPort, 1 x VGA, 1 x USB-C Thunderbolt 3 Paththrough , 1 x Audio, 1 x Ethernet, 4 x USB, An-/Ausschalter für Notebook.
    Unter Linux funktioniert: USB-C Power Delivery und An-/Ausschalter
    Unter Linux funktioniert nicht: DisplayPort, VGA, USB-C Thunderbolt 3 Paththrough
    Unter Linux nicht getestet: Ethernet und Audio
  3. AUKEY USB C Hub auf 4 Port USB 3.0 + USB C Port mit PD
    Dieser Adapter verfügt über USB-C Power Delivery, 1 x HDMI, 4 x USB.
    Unter Linux funktioniert: USB-C Power Delivery, HDMI und USB

Der Aukey Adapter funktioniert im Gegensatz zu den HP Docking-Stationen. Allerdings gibt es ein, wie ich finde deutlich vernehmbares Coil-Whine. Außerdem muss man auf die Stromversorgung achten. Mit dem original HP USB-C Netzteil des Folio G1 funktioniert der Aukey Adapter. Es funktioniert aber z.B. nicht, die HP Elite Thunderbolt 3 Docking Station als Stromspender für den Aukey Adapter zu benutzen. Generell verfährt HP beim Folio G1 wohl so, dass nur der eigene Adapter das Notebook überhaupt laden kann, weil USB-C Netzteile von anderen Herstellern nicht vertrauenswürdig sein. Es gibt jedoch mindestens einen Bericht, nach dem das Innergie PowerGear Slim USB Typ-C Netzteil funktionieren soll.

Weitere USB-C Adapter, die ich getestet habe:

  1. AUKEY USB C Adapter auf DisplayPort für Type C Geräte
    Dieser Adapter funktioniert weder unter GNU/Linux noch unter Windows 10. Der DisplayPort liefert kein Bild.
  2. USB-C zu HDMI Adapter für das MacBook 12
    Der USB-C auf HDMI Adapter funktioniert unter GNU/Linux und Windows 10 auch mit 4k 60Hz problemlos.