Quantcast
Channel: MobileRead Forums - PocketBook
Viewing all articles
Browse latest Browse all 1255

[GUIDE] Fix touchpad after firmware update

$
0
0
I am using a PocketBook InkPad Color (PB741), nevertheless, the following procedure should also apply to InkPad 3 (PB740) and possibily other devices.

It actually took me a whole night to figure out what was going wrong. Hope this could help guys having the same issue.

-------------------

How to reproduce the problem: Do an OTA or manual firmware update on a jailbroken PB740/PB741. The update will fail, after reboot, the touchscreen no longer works.

-------------------

Some obervations: The issue arose today after performing an OTA update. From PB's official site, I found 3 firmwares, respectively 6.5.2918, 6.5.1684 and 6.3.560. 6.5.2918, the latest one, turns out to be the OTA update target that just killed my touchscreen. I then tried to manually downgrade to 6.5.1684, but it didn't help. I also tried to downgrade to 6.3.560, but it said this firmware was too old and rejected flashing.

After a bit of googling, I found another firmware 6.3.917, which fixed the touchscreen after flashing.

-------------------

Cause of the problem:

After unpacking the update binaries of firmware 6.3.917 and 6.5.2918, I went through the update scripts related to touchpad firmware. It turns out that on
ver. 6.5.2918, there are two sets of touchpad firmwares for two different manufacturers, the updater will flash the correct firmware according to the value of device_touchpanel in the output of /bin/hwconfig. On the other hand, 6.3.917 only supports touchpads from one of the two manufacturers (we can speculate that PocketBook introduced a new brand of touchpad controller at some time in between these two firmware's anouncement).

On jailbroken devices, since the partition fingerprints changed, some update scripts will not get executed and the updater will return a update failure (though the whole flashing process actually suceeds, only some post-processing scripts return an error). One skipped update script that only presents in firmware 6.5.* tries to create a symlink for the touchpad kernel module according to the actual model. When the reader starts up, it will tries to load the touchpad module by this symlink. In a jailbroken device, the symlink does not exist thus the module does not load, and the touchpad dies.

-------------------

How to resolve the issue:

In order to have the touchscreen work on a recent firmware 6.5.*, it suffices to create the .ko symlink manually.

1. (Skip this step if you already have USB networking and SSH server on) Downgrade to a old firmware version, e.g., 6.3.917, so that the touchscreen is working. Jailbreak and root the device, enable USB networking and SSH server.

2. Upgrade to the latest firmware. The touchscreen will break down but we still have a root shell (via SSH over USB or wireless network)

3. SSH to the reader. run /bin/hwconfig to see the value of device_touchpanel. (On my PB701 I have device_touchpanel=21).
Run mount -o rw,remount /dev/root / to remount the root partition.
Run cd /lib/modules
If device_touchpanel=26, run ln -s ektf3908.ko tp.ko,
otherwise, run ln -s cyttsp5.ko tp.ko
Run reboot. Your reader will reboot, after it starts up again, the touchscreen should work.

Viewing all articles
Browse latest Browse all 1255

Trending Articles