-
Notifications
You must be signed in to change notification settings - Fork 129
Description
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:
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:
plato/crates/core/src/device.rs
Lines 229 to 234 in 0d8303a
| _ => 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.