An der Kalender-Funktion arbeiten#

Die Kalender Funktion wird durch verschiedene Komponenten bereitgestellt:

  • Die Calendar App, stellt die Benutzerschnittstelle zur Verfügung

  • Evolution Data Server (oft als „EDS“ abgekürzt), der das Backend bereitstellt in dem Deine Kalender gespeichert werden

  • sync-monitor, der für das Management der Synchronisation mit Remote-Kalendern verantwortliche Dienst

  • SyncEvolution, der für die Durchführung der Synchronisation mit WebDAV/CalDAV Remote-Kalendern verantwortliche Dienst

Fehlersuche#

The most convenient way to run commands on the device and collect logs is by opening a remote shell. This can be done by using Shell access via ADB or Shell access via SSH. In the following sections, it’s assumed that you’ve got access to a terminal console to the device.

Planung und Probleme mit dem Account#

If you are not sure whether the calendar is being synchronised, or whether the operation is successful, sync-monitor is the component that needs to be examined. This service should always be running in the background, and its logs can be found in ~/.cache/upstart/sync-monitor.log. In order to see them printed in real-time as you operate on the device, you can run this command:

tail -f .cache/upstart/sync-monitor.log

These logs should be enough to give you an idea on whether your calendar accounts are recognised, and whether a synchronisation is scheduled, happening, and completing successfully.

Calendar data synchronisation issues#

Follow these steps one you are confident that a synchronisation of your account is at least attempted, and want to investigate a synchronisation failure or issues with missing or duplicate items. On the device, it’s possible to run syncevolution in debug mode. To do so, kill any existing processes:

pkill sync-evo

Then, start the syncevolution process with the proper environment variable:

SYNCEVOLUTION_DEBUG=1 /usr/lib/arm-linux-gnueabihf/syncevolution/syncevo-dbus-server

Öffne an dieser stelle die Kalender App (wenn sie nicht schon geöffnet ist) und starte Manuel die Synchronisation (Die Synchronisation ist nur verfügbar wenn das Gerät mit dem Internet verbunden ist): alle Ausgaben werden im Terminal erscheinen.

In some cases, the output from syncevolution might not be enough: for example, the raw HTTP data is usually not printed. Should you need to see that as well, then you’ll have to modify a configuration file as well. syncevolution’s configuration files are located under ~/.config/syncevolution/, in a subdirectory whose name takes the form <provider-name>-<account-id>. There might be stale directories as well, referring to old accounts which have been since deleted. To find out what accounts are still valid, you can invoke the account-console tool like this:

account-console list

This will print the list of the current valid accounts. Once you’ve figured out what is the account you are interested in, open the file ~/.config/syncevolution/<account>/peers/target-config/config.ini and set the loglevel variable to a higher value (11 seems enough to print all the HTTP traffic):

# level of detail for log messages:
# - 0 (or unset) = INFO messages without log file, DEBUG with log file
# - 1 = only ERROR messages
# - 2 = also INFO messages
# - 3 = also DEBUG messages
# > 3 = increasing amounts of debug messages for developers
loglevel = 11

Note that in order for these changes to take effect, you’ll need to restart the syncevolution process again, as explained above.