Grand Sorcerer
Posts: 13,528
Karma: 78910202
Join Date: Nov 2007
Location: Toronto
Device: Libra H2O, Libra Colour
This is probably a rather unusual edge case.
Kovid has added the ability to calibre to allow the
Connect to Folder operation (found in the
Connect/Share menu) to also specify a device type for the connection. This is extremely useful in my case where my main conputer right now is a ChromeBook. While yes, calibre does run in the ChromeOS linux development environent (crostini / penguin), one drawback is USB support/removable device support is limited inb that all that can be done is to share the device's file system with the Linux environment. All shared devices are then accesible via the
/mnt/chromeos mount point on the Linux side; the device is NOT seen as a USB device; rather the mount is via
9p file system.
Testing has shown that the 9p file system does not support some of the I/O operations required by sqlite (used by Kobo to access the KoboReader.sqlite database). These I/O operations are required due to the database having Write Ahead Logging enabled (WAL).
I found though that if I simply cloned the Kobo storage to local storage and had calibre open the local copy all worked (including Kobo Utiities plugins).
The fun however occurs when I point calibre to the
/mnt/chromeos/removable/KOBOeReader directory. Kovid has implemented a workaround for the file system issues by copying the Kobo database to local storage, letting calibre access that copy and then on disconnect, copying the database back to the Kobo. Changes for this copying can be found in recent changes to the Kobo driver (look in both
devices/kobo/driver.py and the new
devices/kobo/db.by modules).
In this case, while some of the Kobo Utilities functions DO function, both the
Check the device database and
Compress the device database functions fail; probably due to the plugin obtaining the location of the true database (i.e.
/mnt/chromeos/removable/KOBOeReader/.kobo/KoboReader.sqlite and not the copy that the driver has created.
This testing has been performed using preview release 7.26.102 and the current GitHub source.
You can find the discussions leading up to this change in the following thread
Wish for Device Driver mount point
Spoiler :
Code:
ApplicationPaletteChange event ignored
Using calibre Qt style: True
Failed to load resource: 'commit.txt' from the plugin zip file: /home/peterjt/.config/calibre/plugins/OverDrive Libby.zip
Traceback (most recent call last):
File "/home/peterjt/work/calibre-master/src/calibre/customize/zipplugin.py", line 46, in get_resources
ans[name] = zf.read(name)
^^^^^^^^^^^^^
File "zipfile.py", line 1510, in read
File "zipfile.py", line 1547, in open
File "zipfile.py", line 1476, in getinfo
KeyError: "There is no item named 'commit.txt' in the archive"
[overdrive_libby/0.2.3] Loaded 1 items from file cache /home/peterjt/.config/calibre/plugins/overdrive_libby.libraries.json
[overdrive_libby/0.2.3] Loaded 0 items from file cache /home/peterjt/.config/calibre/plugins/overdrive_libby.media.json
Failed to create system tray icon, your desktop environment probably does not support the StatusNotifier spec https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/
EpubMerge: DEBUG: 2025-03-09 13:51:56,886: calibre_plugins.epubmerge.epubmerge_plugin(156): macmenuhack file_path:/home/peterjt/.config/calibre/plugins/fanficfare_macmenuhack.txt
QRhiGles2: Failed to create temporary context
QRhiGles2: Failed to create context
This plugin does not support createPlatformVulkanInstance
QVulkanInstance: Failed to initialize Vulkan
Unable to detect GPU vendor.
WebEngineContext is used before QtWebEngineQuick::initialize() or OpenGL context creation failed.
calibre Debug log
calibre 7.26.103* embedded-python: True
Linux-6.6.65-06377-gaae6fc9ba7df-x86_64-with-glibc2.36 Linux ('64bit', 'ELF')
('Linux', '6.6.65-06377-gaae6fc9ba7df', '#1 SMP PREEMPT_DYNAMIC Wed, 8 Jan 2025 13:19:21 -0800')
Python 3.11.5
Interface language: None
EXE path: /opt/calibre/bin/calibre-debug
Successfully initialized third party plugins: DeACSM (0, 0, 16) && LCPL Input (0, 0, 5) && DeDRM (10, 0, 9) && Backup Configuration Folder (1, 1, 2) && EpubMerge (3, 2, 0) && Find Duplicates (1, 10, 9) && Goodreads (1, 8, 2) && Kobo Metadata (1, 10, 0) && Kobo Utilities (2, 18, 4) && Manage Series (1, 5, 2) && OverDrive Libby (0, 2, 3) && Quality Check (1, 13, 16) && Reading List (1, 15, 4) && Standard Ebooks (1, 0, 0)
calibre 7.26.103* embedded-python: True
Linux-6.6.65-06377-gaae6fc9ba7df-x86_64-with-glibc2.36 Linux ('64bit', 'ELF')
('Linux', '6.6.65-06377-gaae6fc9ba7df', '#1 SMP PREEMPT_DYNAMIC Wed, 8 Jan 2025 13:19:21 -0800')
Python 3.11.5
Interface language: None
EXE path: /opt/calibre/bin/calibre-debug
Successfully initialized third party plugins: DeACSM (0, 0, 16) && LCPL Input (0, 0, 5) && DeDRM (10, 0, 9) && Backup Configuration Folder (1, 1, 2) && EpubMerge (3, 2, 0) && Find Duplicates (1, 10, 9) && Goodreads (1, 8, 2) && Kobo Metadata (1, 10, 0) && Kobo Utilities (2, 18, 4) && Manage Series (1, 5, 2) && OverDrive Libby (0, 2, 3) && Quality Check (1, 13, 16) && Reading List (1, 15, 4) && Standard Ebooks (1, 0, 0)
QPA platform: xcb
devicePixelRatio: 1.25
logicalDpi: 96.0 x 96.0
physicalDpi: 96.09458128078816 x 96.25263157894736
[0.00] Starting up...
[0.00] Showing splash screen...
[1.08] splash screen shown
[1.08] Initializing db...
[1.57] db initialized
[1.57] Constructing main UI...
DEBUG: 0.0 Kobo Utilities Configuration - CreateNewCustomColumn is supported
[3.77] GUI main window shown
DEBUG: 2.0 No Kobo Touch, Glo or Mini appears to be connected
DEBUG: 2.0 rebuild_menus - self.supports_ratings=None, self.supports_tiles=None
DEBUG: 2.0 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG: 2.0 device_driver_name - could not load extended driver. Exception= No module named 'calibre_plugins.kobotouch_extended'
DEBUG: 2.0 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders
Driver: KoboTouch'
DEBUG: 2.0 device_driver_name - could not load extended driver. Exception= No module named 'calibre_plugins.kobotouch_extended'
[3.90] main UI initialized...
[3.90] Hiding splash screen
[3.90] splash screen hidden
[3.90] Started up in 3.90 seconds with 2864 books
[3.90] Starting the smartdevice driver
SMART_DEV ( 0.00: 0.001) _attach_to_port try ip address "" on port 9090
SMART_DEV ( 0.94: 0.837) _startup_on_demand listening on port 9090
SMART_DEV ( 0.96: 0.000) _attach_to_port try ip address "" on port 54982
SMART_DEV ( 0.97: 0.000) _startup_on_demand broadcast socket listening on port 54982
[4.89] Finished starting smartdevice
SMART_DEV ( 2.06: 1.087) run All IP addresses {'lo': [{'addr': '127.0.0.1', 'netmask': '255.0.0.0', 'peer': '127.0.0.1'}], 'docker0': [{'addr': '172.17.0.1', 'netmask': '255.255.0.0', 'broadcast': '172.17.255.255'}], 'eth0': [{'addr': '100.115.92.205', 'netmask': '255.255.255.240', 'broadcast': '100.115.92.207'}]}
DEBUG: 0.0 Kobo: I/O error connecting to /mnt/chromeos/removable/KOBOeReader/.kobo/KoboReader.sqlite copying it into temporary storage and connecting there
DEBUG: 1.1 Database Version: 175
DEBUG: 22.7 KoboUtilities:_on_device_connection_changed - self.plugin_device_connection_changed.__class__: <class 'PyQt6.QtCore.pyqtBoundSignal'>
DEBUG: 22.7 Methods for self.plugin_device_connection_changed: ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'connect', 'disconnect', 'emit', 'signal']
DEBUG: 22.7 Have a Kobo device connected connected
DEBUG: 22.7 BEGIN Get Device Path
DEBUG: 22.7 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 22.7 END Get Device Path
DEBUG: 22.7 KoboUtilities:get_device - self.device_path="/mnt/chromeos/removable/KOBOeReader/"
DEBUG: 22.7 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG: 22.7 device_driver_name - could not load extended driver. Exception= No module named 'calibre_plugins.kobotouch_extended'
DEBUG: 22.7 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders
Driver: KoboTouch'
Job: 0 Get device information started
DeviceJob: 0 Get device information done, calling callback
DeviceJob: 0 Get device information callback returned
Job: 1 Set library information started
DeviceJob: 1 Set library information done, calling callback
DeviceJob: 1 Set library information callback returned
Job: 2 Get list of books on device started
DEBUG: 1.4 KoboTouch:books - oncard='None'
DEBUG: 1.4 KoboTouch:books - oncard='None', prefix='/mnt/chromeos/removable/KOBOeReader/'
DEBUG: 1.4 device_version_info - start
DEBUG: 1.4 device_version_info - version_file=/mnt/chromeos/removable/KOBOeReader/.kobo/version
DEBUG: 1.4 device_version_info - have opened version_file
DEBUG: 1.4 device_version_info - self._device_version_info= ['N4283C0013322', '4.9.77', '4.41.23145', '4.9.77', '4.9.77', '00000000-0000-0000-0000-000000000390']
DEBUG: 1.4 Kobo device: Kobo Clara Colour
DEBUG: 1.4 Version of driver: (2, 6, 0) Has kepubs: True
DEBUG: 1.4 Version of firmware: (4, 41, 23145) Has kepubs: True
DEBUG: 1.4 Firmware supports cover image tree: True
DEBUG: 1.4 KoboTouch:books - opts.extra_customization= []
DEBUG: 1.4 KoboTouch:books - driver options= Driver:KoboTouch, Options - format_map: ['kepub', 'epub', 'pdf', 'txt', 'cbz', 'cbr'], use_subdirs: True, read_metadata: True, use_author_sort: False, save_template: {author_sort}/{title} - {authors}, extra_customization: [], manage_collections: True, use_collections_columns: True, collections_columns: , use_collections_template: False, collections_template: , create_collections: False, delete_empty_collections: False, ignore_collections_names: , upload_covers: False, dithered_covers: False, keep_cover_aspect: False, upload_grayscale: False, letterbox_fs_covers: False, letterbox_fs_covers_color: #000000, png_covers: False, show_archived_books: False, show_previews: False, show_recommendations: False, update_series: True, force_series_id: False, update_core_metadata: False, update_purchased_kepubs: False, update_device_metadata: True, update_subtitle: False, subtitle_template: , update_bookstats: False, bookstats_wordcount_template: , bookstats_pagecount_template: , bookstats_timetoread_upper_template: , bookstats_timetoread_lower_template: , kepubify: True, template_for_kepubify: None, modify_css: False, per_device_css: {}, override_kobo_replace_existing: True, affect_hyphenation: False, disable_hyphenation: False, hyphenation_min_chars: 6, hyphenation_min_chars_before: 3, hyphenation_min_chars_after: 3, hyphenation_limit_lines: 2, support_newer_firmware: False, debugging_title: , driver_version: 2.6.0
DEBUG: 1.4 KoboTouch:books - prefs['manage_device_metadata']= on_connect
DEBUG: 1.4 KoboTouch:books - set_debugging_title to ''
DEBUG: 1.4 KoboTouch:books - length bl=0
Job: 0 Get device information finished
No details available.
Job: 1 Set library information finished
No details available.
DEBUG: 1.8 KoboTouch:books - length bl after sync=249
DEBUG: 1.8 KoboTouch:books - reading device database
DEBUG: 1.8 KoboTouch:books - shelf list: ['Paddington Bear', 'Inspector Alan Banks', 'Finished_2019', 'The Kingston Cycle', 'A Thursday Next Novel', 'Capucine Culinary Mystery', 'finished', 'Rivers of London', 'Library', 'Bewdley', 'Keto', 'Reference', 'Instant Pot', 'Wishlist', 'The Inheritance cycle', 'Foundation', 'Chef Maurice Mysteries', 'Finished_2022', 'Reading', 'Slow Cooker', 'Finished_2014', 'Robert Langdon', 'News', 'Cooking', 'The Locked Tomb Trilogy', 'Kay Harker', 'Finished_2013', 'Finished_2017', 'ReadingList']
DEBUG: 1.8 KoboTouch:books - query= SELECT Title, Attribution, DateCreated, ContentID, MimeType, ContentType, ImageId, ReadStatus, Description, Publisher , ___ExpirationStatus, FavouritesIndex, Accessibility, Language, IsDownloaded, ISBN, Series, SeriesNumber, ___UserID, ExternalId, Subtitle, SeriesID, SeriesNumberFloat, StorePages, StoreWordCount, StoreTimeToReadLowerEstimate, StoreTimeToReadUpperEstimate FROM content WHERE BookID IS NULL AND ((Accessibility = -1 AND IsDownloaded in ('true', 1 )) OR (Accessibility IN (1,2,8,9) and IsDownloaded in ('true', 1)) ) AND (externalId IS NULL OR externalId = '') AND contentId NOT LIKE 'file:///mnt/sd/%'
DEBUG: 2.4 KoboTouch:books - automatically managing metadata
DEBUG: 2.4 KoboTouch:books - self.kobo_series_dict= {'Highlands & Islands Detective': '4537cd63-0683-56de-8a58-cc8a98e1e91f', 'Tom Swift': '3549cc7d-adad-517a-ba45-88de67e93831', 'Air Fryer': '9722f8e6-adc8-5564-b36e-cf8cce8ab8ef', 'Air Fryer Recipes For Beginners': '86fcf323-8026-5602-83ff-2f65855fbb03', 'Step-by-Step Instant Pot Cookbooks': 'a4992e3a-0e9d-5cd0-99b2-a2782d03d586', 'Paksenarrion Series Combo Volumes': '49ee9352-abaa-5428-8afd-17c9a6f6f077', 'Honor Harrington': '47d6044d-bddd-5bc1-92bc-b24d4b335124', 'Dark Wen': '91ef627a-285d-5dff-a89f-fb1d77e144bf', 'DS Peter Gayle thriller series': 'ca710216-33a5-5113-87ca-25d11bd0ddf7', 'The Supernatural and Elder Threat Assessment Agency': '3c63d432-f5e7-558e-8456-a1f2c72d6b95', 'The Contessa Munroe Mysteries': 'c7c5b1c9-0699-5fb4-9c42-a3a974fa0bdc', 'Patrick Smythe': '7ac7d109-4975-51d1-94a5-bebcc6c13847', 'A kirsten Stewart Thriller': '61f39916-157b-547d-bcdd-e92868b045d9', 'Betty Crocker Big Book': '84d2c516-e2e7-5b61-ae60-69d19109955f', 'A Patrick Smythe Mystery Thriller': '7ac7d109-4975-51d1-94a5-bebcc6c13847', 'Diabetic Cookbooks': 'dfee5633-9c98-56f9-8437-e4f89070b959', 'Infinity Engines: Missions': 'c43d18b1-dfaa-5429-83f9-9d17e31995d4', 'The Twisted Christmas Trilogy': '69c24b85-e4dd-56da-adfd-ae3647eff020', 'Chronicles of Amber': '750d7509-36a9-5c9f-9156-e6f11edb5396', 'The Cecelia and Kate Novels': '8fae7074-1bc2-5483-bdd9-3a4cec0beb61', 'Thursday Next': '3083703b-e344-5978-a070-0c98267c33ad', 'Chef Maurice Mysteries': 'c565a3cc-c448-5498-92f4-8b14cc960127', 'The C.T. Ferguson Mysteries': '7dc1d572-3050-5df7-b065-fd6ef3a8a2ff', 'DCI Alec McKay': '0e776875-7d8e-5743-b856-013f503b1b34', 'Siobhan Duffy Mysteries': '613019a8-783a-58d3-bfe6-60ae9f463656', 'Betty Crocker Cooking': 'b41cad75-bb5f-504d-9241-69aaacbb3d35', 'Inspector Zoë Janssen Thriller': 'c7f0208c-85fd-5ec1-8789-e8dd945d5956', 'The Connection Trilogy': '7378bc9c-d310-5ce9-95ba-81405dc8f448', 'The Kat Bronsky Thrillers': '1845a7cd-f564-5526-b298-c3fe7a8cdf74', 'Kat and Mouse Mysteries': '5700259a-98ee-526f-aceb-a4ac7a54373b', 'The Forrester Detective Agency Mysteries': '3c9e1f71-609f-589a-b61f-dff42bf0dac7', 'DS Ashley Knight': '66fbdd23-3309-5eab-83b8-22e5825e7233', 'Lockwood & Co.': 'd7bf6426-71aa-5c59-820e-03259afb669e', 'The Outlaws Scarlett and Browne': 'da43d135-8aaf-5a51-9c82-cf8483c3ba25', 'The Empyrean': '757721be-b164-5c8b-8dab-94138b6474c9'}
DEBUG: 4.1 KoboTouch:books - about to sync_booklists
DEBUG: 4.1 USBMS: starting sync_booklists
DEBUG: 4.6 USBMS: finished sync_booklists
DEBUG: 4.6 KoboTouch:books - have done sync_booklists
DEBUG: 4.6 KoboTouch:books - end - oncard='None'
DEBUG: 4.6 KoboTouch:books - oncard='carda'
DEBUG: 4.6 KoboTouch:books - Asked to process 'carda', but do not have one!
DEBUG: 4.6 KoboTouch:books - oncard='cardb'
DEBUG: 4.6 KoboTouch:books - Asked to process 'cardb', but do not have one!
DeviceJob: 2 Get list of books on device done, calling callback
DEBUG: 4.6 DeviceJob: metadata_downloaded: Starting set_books_in_library
DEBUG: 4.7 DeviceJob: set_books_in_library: books to process= 249
DEBUG: 4.7 DeviceJob: set_books_in_library finished: time= 0.005827188491821289
DEBUG: 4.7 DeviceJob: metadata_downloaded: updating views
DEBUG: 4.8 DeviceJob: metadata_downloaded: syncing
DEBUG: 4.8 DeviceJob: metadata_downloaded: refreshing ondevice
DEBUG: 4.8 DeviceJob: metadata_downloaded: sending metadata_available signal
DEBUG: 26.4 KoboUtilites:_on_device_metadata_available - Start
DEBUG: 26.4 Have a Kobo device connected connected
DEBUG: 26.4 BEGIN Get Device Path
DEBUG: 26.4 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 26.4 END Get Device Path
DEBUG: 26.4 KoboUtilities:get_device - self.device_path="/mnt/chromeos/removable/KOBOeReader/"
DEBUG: 26.4 KoboUtilities:get_device - drive_info: {'main': {'device_store_uuid': '9cb03268-113b-4d0a-9065-f9d8a4ff2278', 'device_name': 'Kobo Libra Colour', 'location_code': 'main', 'last_library_uuid': 'd1da7663-faf7-415f-8e8e-df0b96a35965', 'calibre_version': '7.26.103', 'date_last_connected': '2025-03-09T17:52:17.644250+00:00', 'prefix': '/mnt/chromeos/removable/KOBOeReader/'}}
DEBUG: 26.4 migrate_library_config_if_required - start
DEBUG: 26.4 get_library_config - library_config: {'SchemaVersion': 0.1, 'profiles': {'Default': {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '', 'percentReadColumn': '', 'ratingColumn': 'rating', 'restOfBookEstimateColumn': '', 'timeSpentReadingColumn': ''}, 'forDevice': None, 'storeOptionsStore': {'doNotStoreIfReopened': False, 'promptToStore': True, 'storeIfMoreRecent': False, 'storeOnConnect': False}}}}
DEBUG: 26.4 KoboUtilities:get_device - device_name: Kobo Libra Colour
DEBUG: 26.4 get_plugin_pref - start - store_name='commonOptionsStore', option='individualDeviceOptions'
DEBUG: 26.4 get_prefs - start - store_name='backupOptionsStore'
DEBUG: 26.4 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG: 26.4 KoboUtilities:set_toolbar_button_tooltip - device connected. self.device.fwversion= (4, 41, 23145)
DEBUG: 26.4 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders
Connected Device: Kobo Libra Colour
Firmware version: 4.41.23145
Driver: KoboTouch'
DEBUG: 26.4 KoboUtilites:_on_device_metadata_available - self.current_device_profile: None
DEBUG: 26.4 KoboUtilites:_on_device_metadata_available - self.current_backup_config: {'doDailyBackp': False, 'backupEachCOnnection': True, 'backupCopiesToKeepSpin': 5, 'backupDestDirectory': '/home/peterjt/kobobackup', 'backupZipDatabase': True}
DEBUG: 26.4 KoboUtilites:_on_device_metadata_available - About to start auto backup
DEBUG: 26.4 auto_backup_device_database - start
DEBUG: 26.4 BEGIN Get Device Path
DEBUG: 26.4 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 26.4 END Get Device Path
DEBUG: 26.4 auto_backup_device_database - destination directory= /home/peterjt/kobobackup
DEBUG: 26.4 auto_backup_device_database - about to get version info from device...
DEBUG: 26.4 auto_backup_device_database - version_info= ['N4283C0013322', '4.9.77', '4.41.23145', '4.9.77', '4.9.77', '00000000-0000-0000-0000-000000000390']
DEBUG: 26.6 auto_backup_device_database - device_information= ('Kobo Clara Colour', '', '', '', {'main': {'device_store_uuid': '9cb03268-113b-4d0a-9065-f9d8a4ff2278', 'device_name': 'Kobo Libra Colour', 'location_code': 'main', 'last_library_uuid': 'd1da7663-faf7-415f-8e8e-df0b96a35965', 'calibre_version': '7.26.103', 'date_last_connected': '2025-03-09T17:52:21.399912+00:00', 'prefix': '/mnt/chromeos/removable/KOBOeReader/'}})
DEBUG: 26.6 auto_backup_device_database - device_name= KoboClaraColour
DEBUG: 26.6 auto_backup_device_database - backup_file_template= KoboReader-KoboClaraColour-N4283C0013322-
DEBUG: 26.6 auto_backup_device_database - backup_options= {'backupDestDirectory': '/home/peterjt/kobobackup', 'backupCopiesToKeepSpin': 5, 'doDailyBackp': False, 'backupEachCOnnection': True, 'backupZipDatabase': True, 'device_name': 'KoboClaraColour', 'serial_number': 'N4283C0013322', 'backup_file_template': 'KoboReader-{0}-{1}-{2}', 'database_file': '/mnt/chromeos/removable/KOBOeReader/.kobo/KoboReader.sqlite', 'device_path': '/mnt/chromeos/removable/KOBOeReader/'}
DEBUG: 26.6 KoboUtilitiesAction::_device_database_backup
DEBUG: 26.6 auto_backup_device_database - end
DEBUG: 26.6 Have a Kobo device connected connected
DEBUG: 26.6 BEGIN Get Device Path
DEBUG: 26.6 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 26.6 END Get Device Path
DEBUG: 26.6 KoboUtilities:get_device - self.device_path="/mnt/chromeos/removable/KOBOeReader/"
DEBUG: 26.6 KoboUtilities:get_device - drive_info: {'main': {'device_store_uuid': '9cb03268-113b-4d0a-9065-f9d8a4ff2278', 'device_name': 'Kobo Libra Colour', 'location_code': 'main', 'last_library_uuid': 'd1da7663-faf7-415f-8e8e-df0b96a35965', 'calibre_version': '7.26.103', 'date_last_connected': '2025-03-09T17:52:17.644250+00:00', 'prefix': '/mnt/chromeos/removable/KOBOeReader/'}}
DEBUG: 26.6 migrate_library_config_if_required - start
DEBUG: 26.6 get_library_config - library_config: {'SchemaVersion': 0.1, 'profiles': {'Default': {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '', 'percentReadColumn': '', 'ratingColumn': 'rating', 'restOfBookEstimateColumn': '', 'timeSpentReadingColumn': ''}, 'forDevice': None, 'storeOptionsStore': {'doNotStoreIfReopened': False, 'promptToStore': True, 'storeIfMoreRecent': False, 'storeOnConnect': False}}}}
DEBUG: 26.6 KoboUtilities:get_device - device_name: Kobo Libra Colour
DEBUG: 26.6 get_plugin_pref - start - store_name='commonOptionsStore', option='individualDeviceOptions'
DEBUG: 26.6 get_prefs - start - store_name='backupOptionsStore'
DEBUG: 26.6 rebuild_menus - self.supports_ratings=True, self.supports_tiles=True
DEBUG: 26.6 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG: 26.6 KoboUtilities:set_toolbar_button_tooltip - device connected. self.device.fwversion= (4, 41, 23145)
DEBUG: 26.6 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders
Connected Device: Kobo Libra Colour
Firmware version: 4.41.23145
Driver: KoboTouch'
DEBUG: 26.6 rebuild_menus - have device.
READING LIST: Metadata available: {'main': {'device_store_uuid': '9cb03268-113b-4d0a-9065-f9d8a4ff2278', 'device_name': 'Kobo Libra Colour', 'location_code': 'main', 'last_library_uuid': 'd1da7663-faf7-415f-8e8e-df0b96a35965', 'calibre_version': '7.26.103', 'date_last_connected': '2025-03-09T17:52:17.644250+00:00', 'prefix': '/mnt/chromeos/removable/KOBOeReader/'}}
READING LIST: Sync Now - force_sync= False
DeviceJob: 2 Get list of books on device callback returned
Job: 3 Send metadata to device started
DEBUG: 5.0 KOBO:sync_booklists - start
DEBUG: 5.0 KoboTouch:update_device_database_collections - oncard='main'
DEBUG: 5.0 KoboTouch:update_device_database_collections - device='Driver:KoboTouch, Options - format_map: ['kepub', 'epub', 'pdf', 'txt', 'cbz', 'cbr'], use_subdirs: True, read_metadata: True, use_author_sort: False, save_template: {author_sort}/{title} - {authors}, extra_customization: [], manage_collections: True, use_collections_columns: True, collections_columns: , use_collections_template: False, collections_template: , create_collections: False, delete_empty_collections: False, ignore_collections_names: , upload_covers: False, dithered_covers: False, keep_cover_aspect: False, upload_grayscale: False, letterbox_fs_covers: False, letterbox_fs_covers_color: #000000, png_covers: False, show_archived_books: False, show_previews: False, show_recommendations: False, update_series: True, force_series_id: False, update_core_metadata: False, update_purchased_kepubs: False, update_device_metadata: True, update_subtitle: False, subtitle_template: , update_bookstats: False, bookstats_wordcount_template: , bookstats_pagecount_template: , bookstats_timetoread_upper_template: , bookstats_timetoread_lower_template: , kepubify: True, template_for_kepubify: None, modify_css: False, per_device_css: {}, override_kobo_replace_existing: True, affect_hyphenation: False, disable_hyphenation: False, hyphenation_min_chars: 6, hyphenation_min_chars_before: 3, hyphenation_min_chars_after: 3, hyphenation_limit_lines: 2, support_newer_firmware: False, debugging_title: , driver_version: 2.6.0'
DEBUG: 5.0 KoboTouch::is_supported_fwversion - self.fwversion[:2] (4, 41)
DEBUG: 5.0 KoboTouch:update_device_database_collections - set_debugging_title to ''
DEBUG: 5.0 KoboTouch:update_device_database_collections - managing bookshelves and series.
DEBUG: 5.0 KoboTouch:update_device_database_collections - Number of series set=0 Number of books=167
DEBUG: 5.0 KoboTouch:update_device_database_collections - Number of core metadata set=0 Number of books=167
Job: 2 Get list of books on device finished
No details available.
DEBUG: 27.8 Have a Kobo device connected connected
DEBUG: 27.8 BEGIN Get Device Path
DEBUG: 27.8 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 27.8 END Get Device Path
DEBUG: 27.8 KoboUtilities:get_device - self.device_path="/mnt/chromeos/removable/KOBOeReader/"
DEBUG: 27.8 KoboUtilities:get_device - drive_info: {'main': {'device_store_uuid': '9cb03268-113b-4d0a-9065-f9d8a4ff2278', 'device_name': 'Kobo Libra Colour', 'location_code': 'main', 'last_library_uuid': 'd1da7663-faf7-415f-8e8e-df0b96a35965', 'calibre_version': '7.26.103', 'date_last_connected': '2025-03-09T17:52:17.644250+00:00', 'prefix': '/mnt/chromeos/removable/KOBOeReader/'}}
DEBUG: 27.8 migrate_library_config_if_required - start
DEBUG: 27.8 get_library_config - library_config: {'SchemaVersion': 0.1, 'profiles': {'Default': {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '', 'percentReadColumn': '', 'ratingColumn': 'rating', 'restOfBookEstimateColumn': '', 'timeSpentReadingColumn': ''}, 'forDevice': None, 'storeOptionsStore': {'doNotStoreIfReopened': False, 'promptToStore': True, 'storeIfMoreRecent': False, 'storeOnConnect': False}}}}
DEBUG: 27.8 KoboUtilities:get_device - device_name: Kobo Libra Colour
DEBUG: 27.8 get_plugin_pref - start - store_name='commonOptionsStore', option='individualDeviceOptions'
DEBUG: 27.8 get_prefs - start - store_name='backupOptionsStore'
DEBUG: 27.8 rebuild_menus - self.supports_ratings=True, self.supports_tiles=True
DEBUG: 27.8 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG: 27.8 KoboUtilities:set_toolbar_button_tooltip - device connected. self.device.fwversion= (4, 41, 23145)
DEBUG: 27.8 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders
Connected Device: Kobo Libra Colour
Firmware version: 4.41.23145
Driver: KoboTouch'
DEBUG: 27.8 rebuild_menus - have device.
DEBUG: 7.0 KoboTouch:update_device_database_collections - Finished
DEBUG: 7.0 USBMS: starting sync_booklists
DEBUG: 7.5 USBMS: finished sync_booklists
DEBUG: 7.5 KOBO:sync_booklists - end
DeviceJob: 3 Send metadata to device done, calling callback
DeviceJob: 3 Send metadata to device callback returned
Job: 4 Backing up Kobo device database started
DEBUG: 0.0 do_device_database_backup - start
logger - do_device_database_backup - start
calibre 7.26.103* embedded-python: True
Linux-6.6.65-06377-gaae6fc9ba7df-x86_64-with-glibc2.36 Linux ('64bit', 'ELF')
('Linux', '6.6.65-06377-gaae6fc9ba7df', '#1 SMP PREEMPT_DYNAMIC Wed, 8 Jan 2025 13:19:21 -0800')
Python 3.11.5
Interface language: None
EXE path: /opt/calibre/bin/calibre-debug
Successfully initialized third party plugins: DeACSM (0, 0, 16) && LCPL Input (0, 0, 5) && DeDRM (10, 0, 9) && Backup Configuration Folder (1, 1, 2) && EpubMerge (3, 2, 0) && Find Duplicates (1, 10, 9) && Goodreads (1, 8, 2) && Kobo Metadata (1, 10, 0) && Kobo Utilities (2, 18, 4) && Manage Series (1, 5, 2) && OverDrive Libby (0, 2, 3) && Quality Check (1, 13, 16) && Reading List (1, 15, 4) && Standard Ebooks (1, 0, 0)
Traceback (most recent call last):
File "calibre_plugins.koboutilities.action", line 2136, in check_device_database
check_result = self._check_device_database()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "calibre_plugins.koboutilities.action", line 4582, in _check_device_database
return check_device_database(self.device_database_path())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "calibre_plugins.koboutilities.common_utils", line 306, in check_device_database
cursor.execute(check_query)
File "src/cursor.c", line 1088, in APSWCursor_execute.sqlite3_prepare_v3
apsw.IOError: IOError: disk I/O error
DEBUG: 0.0 do_device_database_backup - backup_options= {'backupDestDirectory': '/home/peterjt/kobobackup', 'backupCopiesToKeepSpin': 5, 'doDailyBackp': False, 'backupEachCOnnection': True, 'backupZipDatabase': True, 'device_name': 'KoboClaraColour', 'serial_number': 'N4283C0013322', 'backup_file_template': 'KoboReader-{0}-{1}-{2}', 'database_file': '/mnt/chromeos/removable/KOBOeReader/.kobo/KoboReader.sqlite', 'device_path': '/mnt/chromeos/removable/KOBOeReader/'}
DEBUG: 0.0 do_device_database_backup - copies_to_keep= 5
DEBUG: 0.0 do_device_database_backup - backup_file_name=KoboReader-KoboClaraColour-N4283C0013322-20250309-135224
DEBUG: 0.0 do_device_database_backup - backup_file_path=/home/peterjt/kobobackup/KoboReader-KoboClaraColour-N4283C0013322-20250309-135224.sqlite
DEBUG: 0.0 do_device_database_backup - database_file=/mnt/chromeos/removable/KOBOeReader/.kobo/KoboReader.sqlite
Job: 3 Send metadata to device finished
No details available.
DEBUG: 0.5 do_device_database_backup - bookreader_backup_file_name=BookReader-KoboClaraColour-N4283C0013322-20250309-135224
DEBUG: 0.5 do_device_database_backup - bookreader_backup_file_path=/home/peterjt/kobobackup/BookReader-KoboClaraColour-N4283C0013322-20250309-135224.sqlite
DEBUG: 0.5 do_device_database_backup - bookreader_database_file=/mnt/chromeos/removable/KOBOeReader/.kobo/BookReader.sqlite
DEBUG: 29.9 _check_device_database - result line= ('ok',)
DEBUG: 0.8 do_device_database_backup - config_backup_path=/home/peterjt/kobobackup/KoboReader-KoboClaraColour-N4283C0013322-20250309-135224.zip
DEBUG: 0.8 do_device_database_backup:backup_file - file_to_add=/mnt/chromeos/removable/KOBOeReader/.kobo/Kobo/Kobo eReader.conf
DEBUG: 0.8 do_device_database_backup:backup_file - file_to_add=/mnt/chromeos/removable/KOBOeReader/.kobo/version
DEBUG: 0.8 do_device_database_backup:backup_file - file_to_add=/mnt/chromeos/removable/KOBOeReader/.kobo/affiliate.conf
DEBUG: 0.8 do_device_database_backup:backup_file - file_to_add=/mnt/chromeos/removable/KOBOeReader/.adobe-digital-editions
DEBUG: 0.8 do_device_database_backup:backup_file - file_to_add=/mnt/chromeos/removable/KOBOeReader/.adobe-digital-editions/device.xml
DEBUG: 0.8 do_device_database_backup - adding database KoboReader to zip file=/home/peterjt/kobobackup/KoboReader-KoboClaraColour-N4283C0013322-20250309-135224.sqlite
DEBUG: 0.8 do_device_database_backup:backup_file - file_to_add=/home/peterjt/kobobackup/KoboReader-KoboClaraColour-N4283C0013322-20250309-135224.sqlite
DEBUG: 2.0 do_device_database_backup - adding database BookReader to zip file=/home/peterjt/kobobackup/BookReader-KoboClaraColour-N4283C0013322-20250309-135224.sqlite
DEBUG: 2.0 do_device_database_backup:backup_file - file_to_add=/home/peterjt/kobobackup/BookReader-KoboClaraColour-N4283C0013322-20250309-135224.sqlite
DEBUG: 2.0 do_device_database_backup - copies to keep:5
DEBUG: 2.0 do_device_database_backup - backup_file_search= KoboReader-KoboClaraColour-N4283C0013322-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9]
DEBUG: 2.0 do_device_database_backup - db_backup_file_search= /home/peterjt/kobobackup/KoboReader-KoboClaraColour-N4283C0013322-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9].sqlite
DEBUG: 2.0 do_device_database_backup - backup_files= []
DEBUG: 2.0 do_device_database_backup - backup_files= []
DEBUG: 2.0 do_device_database_backup - len(backup_files) - copies_to_keep= -5
DEBUG: 2.0 do_device_database_backup - config_backup_file_search= /home/peterjt/kobobackup/KoboReader-KoboClaraColour-N4283C0013322-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9].zip
DEBUG: 2.0 do_device_database_backup - backup_files= ['/home/peterjt/kobobackup/KoboReader-KoboClaraColour-N4283C0013322-20250308-095202.zip']
DEBUG: 2.0 do_device_database_backup - len(backup_files) - copies_to_keep= 1
DEBUG: 2.0 do_device_database_backup - removing backup file: /home/peterjt/kobobackup/KoboReader-KoboClaraColour-N4283C0013322-20250308-095202.zip
DEBUG: 2.0 do_device_database_backup - Removing old backups - finished
DeviceJob: 4 Backing up Kobo device database done, calling callback
DeviceJob: 4 Backing up Kobo device database callback returned
Job: 4 Backing up Kobo device database finished
No details available.
DEBUG: 42.0 Have a Kobo device connected connected
DEBUG: 42.0 BEGIN Get Device Path
DEBUG: 42.0 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 42.0 END Get Device Path
DEBUG: 42.0 KoboUtilities:get_device - self.device_path="/mnt/chromeos/removable/KOBOeReader/"
DEBUG: 42.0 KoboUtilities:get_device - drive_info: {'main': {'device_store_uuid': '9cb03268-113b-4d0a-9065-f9d8a4ff2278', 'device_name': 'Kobo Libra Colour', 'location_code': 'main', 'last_library_uuid': 'd1da7663-faf7-415f-8e8e-df0b96a35965', 'calibre_version': '7.26.103', 'date_last_connected': '2025-03-09T17:52:17.644250+00:00', 'prefix': '/mnt/chromeos/removable/KOBOeReader/'}}
DEBUG: 42.0 migrate_library_config_if_required - start
DEBUG: 42.0 get_library_config - library_config: {'SchemaVersion': 0.1, 'profiles': {'Default': {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '', 'percentReadColumn': '', 'ratingColumn': 'rating', 'restOfBookEstimateColumn': '', 'timeSpentReadingColumn': ''}, 'forDevice': None, 'storeOptionsStore': {'doNotStoreIfReopened': False, 'promptToStore': True, 'storeIfMoreRecent': False, 'storeOnConnect': False}}}}
DEBUG: 42.0 KoboUtilities:get_device - device_name: Kobo Libra Colour
DEBUG: 42.0 get_plugin_pref - start - store_name='commonOptionsStore', option='individualDeviceOptions'
DEBUG: 42.0 get_prefs - start - store_name='backupOptionsStore'
DEBUG: 42.0 BEGIN Get Device Path
DEBUG: 42.0 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 42.0 END Get Device Path
DEBUG: 49.0 Have a Kobo device connected connected
DEBUG: 49.0 BEGIN Get Device Path
DEBUG: 49.0 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 49.0 END Get Device Path
DEBUG: 49.0 KoboUtilities:get_device - self.device_path="/mnt/chromeos/removable/KOBOeReader/"
DEBUG: 49.0 KoboUtilities:get_device - drive_info: {'main': {'device_store_uuid': '9cb03268-113b-4d0a-9065-f9d8a4ff2278', 'device_name': 'Kobo Libra Colour', 'location_code': 'main', 'last_library_uuid': 'd1da7663-faf7-415f-8e8e-df0b96a35965', 'calibre_version': '7.26.103', 'date_last_connected': '2025-03-09T17:52:17.644250+00:00', 'prefix': '/mnt/chromeos/removable/KOBOeReader/'}}
DEBUG: 49.0 migrate_library_config_if_required - start
DEBUG: 49.0 get_library_config - library_config: {'SchemaVersion': 0.1, 'profiles': {'Default': {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '', 'percentReadColumn': '', 'ratingColumn': 'rating', 'restOfBookEstimateColumn': '', 'timeSpentReadingColumn': ''}, 'forDevice': None, 'storeOptionsStore': {'doNotStoreIfReopened': False, 'promptToStore': True, 'storeIfMoreRecent': False, 'storeOnConnect': False}}}}
DEBUG: 49.0 KoboUtilities:get_device - device_name: Kobo Libra Colour
DEBUG: 49.0 get_plugin_pref - start - store_name='commonOptionsStore', option='individualDeviceOptions'
DEBUG: 49.0 get_prefs - start - store_name='backupOptionsStore'
DEBUG: 49.0 rebuild_menus - self.supports_ratings=True, self.supports_tiles=True
DEBUG: 49.0 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG: 49.0 KoboUtilities:set_toolbar_button_tooltip - device connected. self.device.fwversion= (4, 41, 23145)
DEBUG: 49.0 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders
Connected Device: Kobo Libra Colour
Firmware version: 4.41.23145
Driver: KoboTouch'
DEBUG: 49.0 rebuild_menus - have device.
DEBUG: 53.3 vacuum_device_database - start
DEBUG: 53.3 Have a Kobo device connected connected
DEBUG: 53.3 BEGIN Get Device Path
DEBUG: 53.3 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 53.3 END Get Device Path
DEBUG: 53.3 calibre 7.26.103* embedded-python: True
Linux-6.6.65-06377-gaae6fc9ba7df-x86_64-with-glibc2.36 Linux ('64bit', 'ELF')
('Linux', '6.6.65-06377-gaae6fc9ba7df', '#1 SMP PREEMPT_DYNAMIC Wed, 8 Jan 2025 13:19:21 -0800')
Python 3.11.5
Interface language: None
EXE path: /opt/calibre/bin/calibre-debug
Successfully initialized third party plugins: DeACSM (0, 0, 16) && LCPL Input (0, 0, 5) && DeDRM (10, 0, 9) && Backup Configuration Folder (1, 1, 2) && EpubMerge (3, 2, 0) && Find Duplicates (1, 10, 9) && Goodreads (1, 8, 2) && Kobo Metadata (1, 10, 0) && Kobo Utilities (2, 18, 4) && Manage Series (1, 5, 2) && OverDrive Libby (0, 2, 3) && Quality Check (1, 13, 16) && Reading List (1, 15, 4) && Standard Ebooks (1, 0, 0)
Traceback (most recent call last):
File "calibre_plugins.koboutilities.action", line 2202, in vacuum_device_database
vacuum_result = self._vacuum_device_database()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "calibre_plugins.koboutilities.action", line 4621, in _vacuum_device_database
cursor.execute(compress_query)
File "src/cursor.c", line 240, in resetcursor
apsw.IOError: IOError: disk I/O error
KoboUtilities:get_device - self.device_path="/mnt/chromeos/removable/KOBOeReader/"
DEBUG: 53.3 KoboUtilities:get_device - drive_info: {'main': {'device_store_uuid': '9cb03268-113b-4d0a-9065-f9d8a4ff2278', 'device_name': 'Kobo Libra Colour', 'location_code': 'main', 'last_library_uuid': 'd1da7663-faf7-415f-8e8e-df0b96a35965', 'calibre_version': '7.26.103', 'date_last_connected': '2025-03-09T17:52:17.644250+00:00', 'prefix': '/mnt/chromeos/removable/KOBOeReader/'}}
DEBUG: 53.3 migrate_library_config_if_required - start
DEBUG: 53.3 get_library_config - library_config: {'SchemaVersion': 0.1, 'profiles': {'Default': {'customColumnOptions': {'currentReadingLocationColumn': '', 'lastReadColumn': '', 'percentReadColumn': '', 'ratingColumn': 'rating', 'restOfBookEstimateColumn': '', 'timeSpentReadingColumn': ''}, 'forDevice': None, 'storeOptionsStore': {'doNotStoreIfReopened': False, 'promptToStore': True, 'storeIfMoreRecent': False, 'storeOnConnect': False}}}}
DEBUG: 53.3 KoboUtilities:get_device - device_name: Kobo Libra Colour
DEBUG: 53.3 get_plugin_pref - start - store_name='commonOptionsStore', option='individualDeviceOptions'
DEBUG: 53.3 get_prefs - start - store_name='backupOptionsStore'
DEBUG: 53.3 BEGIN Get Device Path
DEBUG: 53.3 Root path of device: /mnt/chromeos/removable/KOBOeReader/
DEBUG: 53.3 END Get Device Path
DEBUG: 61.1 KoboUtilities:_on_device_connection_changed - self.plugin_device_connection_changed.__class__: <class 'PyQt6.QtCore.pyqtBoundSignal'>
DEBUG: 61.1 Methods for self.plugin_device_connection_changed: ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'connect', 'disconnect', 'emit', 'signal']
DEBUG: 61.1 KoboUtilites:_on_device_connection_changed - Device disconnected
DEBUG: 61.1 No Kobo Touch, Glo or Mini appears to be connected
DEBUG: 61.1 rebuild_menus - self.supports_ratings=None, self.supports_tiles=None
DEBUG: 61.1 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG: 61.1 device_driver_name - could not load extended driver. Exception= No module named 'calibre_plugins.kobotouch_extended'
DEBUG: 61.1 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders
Driver: KoboTouch'
DEBUG: 61.1 device_driver_name - could not load extended driver. Exception= No module named 'calibre_plugins.kobotouch_extended'
DEBUG: 61.1 KoboUtilities:set_toolbar_button_tooltip - start: text='None'
DEBUG: 61.1 device_driver_name - could not load extended driver. Exception= No module named 'calibre_plugins.kobotouch_extended'
DEBUG: 61.1 KoboUtilities:set_toolbar_button_tooltip - setting to text='Utilities to use with Kobo ereaders
Driver: KoboTouch'
READING LIST: Device disconnected
[66.17] Shutdown starting...
[66.46] [Backup Configuration Folder]: starting backup process
[69.57] [Backup Configuration Folder]: wrote config backup to /home/peterjt/work/backup/backup-calibre/2025-03-09 at 13-52-59.zip. Size: 37,578,558 bytes.
[69.58] [Backup Configuration Folder]: finished
[71.64] Shutdown complete, quitting...