Skip to content

Plato does not start on new Clara BW, device has new product name and model number #409

@christopher-dG

Description

@christopher-dG

TLDR: It would appear that new Clara BW devices have a new product name "spaBWTPV" and model number 395, and the code needs to account for that.


I installed Plato 0.9.44 via the one click install package on a new Clara BW purchased last week.
Upon clicking "Plato" from NickelMenu, the device freezes until I hold the power button to restart it.

I was having a similar issue with koreader and found this, and adding the new codename did allow koreader to start, so I thought there might be a similar issue with Plato. I looked through .adds/plato/plato.sh and found this section:

plato/contrib/plato.sh

Lines 50 to 87 in 0d8303a

# Define environment variables used by `scripts/usb-*.sh`
KOBO_TAG=/mnt/onboard/.kobo/version
if [ -e "$KOBO_TAG" ] ; then
SERIAL_NUMBER=$(cut -f 1 -d ',' "$KOBO_TAG")
FIRMWARE_VERSION=$(cut -f 3 -d ',' "$KOBO_TAG")
MODEL_NUMBER=$(cut -f 6 -d ',' "$KOBO_TAG" | sed -e 's/^[0-]*//')
# This is a combination of the information given in `FBInk/fbink_device_id.c`
# and `calibre/src/calibre/devices/kobo/driver.py`.
case "$MODEL_NUMBER" in
3[12]0) PRODUCT_ID=0x4163 ;; # Touch A/B, Touch C
330) PRODUCT_ID=0x4173 ;; # Glo
340) PRODUCT_ID=0x4183 ;; # Mini
350) PRODUCT_ID=0x4193 ;; # Aura HD
360) PRODUCT_ID=0x4203 ;; # Aura
370) PRODUCT_ID=0x4213 ;; # Aura H₂O
371) PRODUCT_ID=0x4223 ;; # Glo HD
372) PRODUCT_ID=0x4224 ;; # Touch 2.0
373|381) PRODUCT_ID=0x4225 ;; # Aura ONE, Aura ONE Limited Edition
374) PRODUCT_ID=0x4227 ;; # Aura H₂O Edition 2
375) PRODUCT_ID=0x4226 ;; # Aura Edition 2
376) PRODUCT_ID=0x4228 ;; # Clara HD
377|380) PRODUCT_ID=0x4229 ;; # Forma, Forma 32GB
384) PRODUCT_ID=0x4232 ;; # Libra H₂O
382) PRODUCT_ID=0x4230 ;; # Nia
387) PRODUCT_ID=0x4233 ;; # Elipsa
383) PRODUCT_ID=0x4231 ;; # Sage
388) PRODUCT_ID=0x4234 ;; # Libra 2
386) PRODUCT_ID=0x4235 ;; # Clara 2E
389) PRODUCT_ID=0x4236 ;; # Elipsa 2E
390) PRODUCT_ID=0x4237 ;; # Libra Colour
393) PRODUCT_ID=0x4238 ;; # Clara Colour
391) PRODUCT_ID=0x4239 ;; # Clara BW
*) PRODUCT_ID=0x6666 ;;
esac
export SERIAL_NUMBER FIRMWARE_VERSION MODEL_NUMBER PRODUCT_ID
fi

Then I inspected the version file on my Kobo to see if the model number was different than 391, and indeed the model number is now 395. However, that change did not fix the problem.

Next I checked .adds/plato.info.log, and found:

OK
Plato is running on a Kobo Touch A/B.
The framebuffer resolution is 1072 by 1448.
Can't update [0, 0, 1072, 1448]: can't send framebuffer update: EINTR: Interrupted system call.
Can't update [807, 0, 871, 67]: can't send framebuffer update: EINTR: Interrupted system call.
Can't update [0, 0, 1072, 1448]: can't send framebuffer update: EINTR: Interrupted system call.
Went to sleep on August 26, 2025 at 11:35:38.
Woke up on August 26, 2025 at 11:36:15.
OK
Plato is running on a Kobo Touch A/B.
The framebuffer resolution is 1072 by 1448.
Can't update [0, 0, 1072, 1448]: can't send framebuffer update: EINTR: Interrupted system call.
Can't update [807, 0, 871, 67]: can't send framebuffer update: EINTR: Interrupted system call.

I am definitely not running a Kobo Touch A/B, so I went digging a bit more and found this which suggests that the product name is not being matched:

_ => Device {
model: if model_number == "320" { Model::TouchC } else { Model::TouchAB },
proto: TouchProto::Single,
dims: (600, 800),
dpi: 167,
},

Since the existing Clara BW product name is "spaBW", I would suggest that "spaBWTPV" should also be supported, as that was the fix for koreader. I haven't tried to build this myself, so this is where my investigation stops at least for now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions