Cryptic Kindle notes

I don't expect the information on this page to be easily comprehensible to anyone else; it is more of an aide-mémoire for my own use.

wine python kk.py wkdir

Less cryptic notes

(Still very much a work in progress…)

I own a Tolino Epos eBook reader. It works nicely with standard epub format eBooks (as well as PDF or text files, which do work, but are far less usable, just as they are on any eBook reader).

I buy eBooks on Amazon, and use Kindle for PC (running under Wine on Linux) to download the books. I then use Calibre with a plugin which understands Amazon's non-standard AZW format to convert these into standard epub format so that I can read them. This has been working nicely for several years.

However, since around early 2023, Amazon has been creating Kindle eBooks using a new DRM mechanism called KFX, which only later versions of the Calibre plugin can convert, and this later plugin also requires a more up-to-date underlying operating system than I had been using with the above setup.

So, in February 2024, this is a writeup of my attempts (I haven't quite got there yet) to create a new system to achieve what I wanted and be able to continue buying the new Amazon eBooks.

  1. Install Devuan Daedalus with KDE (in fact I started from Chimaera and performed an upgrade, but this should not be significant)
  2. Install the wine64 package
    • I also installed wine and fonts-wine
  3. Download Kindle_for_PC_v2.0.70350.exe from Amazon
  4. Run wine Kindle_for_PC_v2.0.70350.exe and find out that you need 32-bit support as well even on a modern 64-bit machine
  5. Tell your machine to use the i386 architecture as well as AMD64, with the command dpkg --add-architecture i386
  6. Install the wine32 package
  7. Run wine Kindle_for_PC_v2.0.70350.exe again
    • This will generate the error message wine: could not load kernel32.dll, status c0000135
    • This is claimed not to be a wine bug, but something to do with gstreamer
      • So, I purged the package gstreamer1.0-x, which made no difference
      • I then purged the package libgstreamer-gl1.0-0, which also made no difference
      • So, I reverted the above package removals and tried another potential solution
      • Interestingly this seems to work
  8. Run wine Kindle_for_PC_v2.0.70350.exe again
    • The error message now says that "KRFDynamic.dll" failed to initialise
      • I downloaded it (it's not hard to find on the Internet) and put it into windows/system32, and also into windows/system
      • This made no difference
  9. As far as I know, I only need Kindle for PC version 1.40 or higher in order to be able to download the KFX format books, so I started again and tried to install KindleForPC-installer-1.40.65535.exe
    • This still needed the fix for the "kernel32.dll" bug above, but otherwise appeared to install happily
    • Unfortunately the first screen displayed is for registering your "device" with Amazon, and this is simply a blank window, so there's no way to register (without which, of course, you can't download the books you've bought).

Cannot connect to Internet

A common problem with trying to install Kindle for PC on a "newer" (I can't give any clear definition of what that means) computer is that it complains that you have no connection to the Internet, even though you do.

It turns out that this is due to an SSL certificate for Symantec which is present in older Operating Systems having been removed, and Kindle for PC still depends on it.

The solution is simple: create the following text file as /etc/ssl/certs/b204d74a.0

b204d74a.0
-----BEGIN CERTIFICATE-----
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
-----END CERTIFICATE-----

Hm, it's possible that another one is (also?) needed: /etc/ssl/certs/facacbc6.0

However, the certificate itself turns out to be identical to the one above - it just has a different name.

Other links